From e795d9ff6a72058e3f6da737d98af7e3b171ce58 Mon Sep 17 00:00:00 2001 From: Andrew Jewett Date: Thu, 12 Mar 2020 17:33:50 -0700 Subject: [PATCH 001/165] added the "math_eigen.h" and "superpose3d.h" files --- src/USER-MISC/math_eigen.h | 1378 +++++++++++++++++++++++++++++++++++ src/USER-MISC/superpose3d.h | 474 ++++++++++++ 2 files changed, 1852 insertions(+) create mode 100644 src/USER-MISC/math_eigen.h create mode 100644 src/USER-MISC/superpose3d.h diff --git a/src/USER-MISC/math_eigen.h b/src/USER-MISC/math_eigen.h new file mode 100644 index 0000000000..e851cb6a09 --- /dev/null +++ b/src/USER-MISC/math_eigen.h @@ -0,0 +1,1378 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. (Some of the code in this file is also + available using a more premissive license. See below for details.) + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + Contributing authors: Yuya Kurebayashi (Tohoku University, Lanczos algorithm) + Andrew Jewett (Scripps Research, Jacobi algorith) +------------------------------------------------------------------------- */ + +#ifndef _MATH_EIGEN_H +#define _MATH_EIGEN_H + +/// @file This file contains a library of functions and classes which can +/// efficiently perform eigendecomposition for an extremely broad +/// range of matrix types: both real and complex, dense and sparse. +/// Matrices need not be of type "double **", for example. +/// In principle, almost any type of C++ container can be used. +/// Some general C++11 compatible functions for allocating matrices and +/// calculating norms of real and complex vectors are also provided. +/// @note +/// The "Jacobi" and "PEigenDense" classes are used for calculating +/// eigenvalues and eigenvectors of conventional dense square matrices. +/// @note +/// The "LambdaLanczos" class can calculate eigenalues and eigenvectors +/// of more general types of matrices, especially large, sparse matrices. +/// It uses C++ lambda expressions to simplify and generalize the way +/// matrices can be represented. This allows it to be applied to +/// nearly any kind of sparse (or dense) matrix representation. +/// @note +/// The source code for Jacobi and LambdaLanczos is also available at: +/// https://github.com/jewettaij/jacobi_pd (CC0-1.0 license) +/// https://github.com/mrcdr/lambda-lanczos (MIT license) + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace math_eigen { + +// --- Memory allocation for matrices --- + +/// @brief Allocate an arbitrary 2-dimensional array. (Uses row-major order.) +template +void Alloc2D(size_t nrows, //!< size of the array (number of rows) + size_t ncols, //!< size of the array (number of columns) + Entry ***paaX); //!< pointer to a 2D C-style array + +/// @brief Deallocate arrays that were created using Alloc2D(). +template +void Dealloc2D(Entry ***paaX); //!< pointer to 2D multidimensional array + +// --- Complex numbers --- + +/// @brief "realTypeMap" struct is used to the define "real_t" type mapper +/// which returns the C++ type corresponding to the real component of T. +/// @details Consider a function ("l2_norm()") that calculates the +/// (Euclidian) length of a vector of numbers (either real or complex): +/// @code +/// template real_t l2_norm(const std::vector& vec); +/// @endcode +/// The l2_norm is always real by definition. +/// (See https://en.wikipedia.org/wiki/Norm_(mathematics)#Euclidean_norm) +/// The return type of this function ("real_t") indicates that +/// it returns a real number, even if the entries (of type T) +/// are complex numbers. In other words, by default, real_t returns T. +/// However real_t> returns T (not std::complex). +/// We define "real_t" below using C++ template specializations: + +template +struct realTypeMap { + typedef T type; +}; +template +struct realTypeMap> { + typedef T type; +}; +template +using real_t = typename realTypeMap::type; + + +// --- Operations on vectors (of real and complex numbers) --- + +/// @brief Calculate the inner product of two vectors. +/// (For vectors of complex numbers, std::conj() is used.) +template +T inner_prod(const std::vector& v1, const std::vector& v2); + +/// @brief Compute the sum of the absolute values of the entries in v +/// @returns a real number (of type real_t). +template +real_t l1_norm(const std::vector& v); + +/// @brief Calculate the l2_norm (Euclidian length) of vector v. +/// @returns a real number (of type real_t). +template +real_t l2_norm(const std::vector& v); + +/// @brief Multiply a vector (v) by a scalar (c). +template +void scalar_mul(T1 c, std::vector& v); + +/// @brief Divide vector "v" in-place by it's length (l2_norm(v)). +template +void normalize(std::vector& v); + + +// ---- Eigendecomposition of small dense symmetric matrices ---- + +/// @class Jacobi +/// @brief Calculate the eigenvalues and eigevectors of a symmetric matrix +/// using the Jacobi eigenvalue algorithm. Code for the Jacobi class +/// (along with tests and benchmarks) is available free of copyright at +/// https://github.com/jewettaij/jacobi_pd +/// @note The "Vector" and "Matrix" type arguments can be any +/// C or C++ object that support indexing, including pointers or vectors. +/// @details +/// -- Example: -- +/// +/// int n = 5; // Matrix size +/// double **M; // A symmetric n x n matrix you want to diagonalize +/// double *evals; // Store the eigenvalues here. +/// double **evects; // Store the eigenvectors here. +/// // Allocate space for M, evals, and evects, and load contents of M (omitted) +/// +/// // Now create an instance of Jacobi ("eigen_calc"). This will allocate space +/// // for storing intermediate calculations. Once created, it can be reused +/// // multiple times without paying the cost of allocating memory on the heap. +/// +/// Jacobi eigen_calc(n); +/// +/// // Note: +/// // If the matrix you plan to diagonalize (M) is read-only, use this instead: +/// // Jacobi eigen_calc(n); +/// // If you prefer using vectors over C-style pointers, this works also: +/// // Jacobi&, vector>&> eigen_calc(n); +/// +/// // Now, calculate the eigenvalues and eigenvectors of M +/// +/// eigen_calc.Diagonalize(M, evals, evects); +/// +/// --- end of example --- + +template + +class Jacobi +{ + int n; //!< the size of the matrices you want to diagonalize + Scalar **M; //!< local copy of the current matrix being analyzed + // Precomputed cosine, sine, and tangent of the most recent rotation angle: + Scalar c; //!< = cos(θ) + Scalar s; //!< = sin(θ) + Scalar t; //!< = tan(θ), (note |t|<=1) + int *max_idx_row; //!< = keep track of the the maximum element in row i (>i) + +public: + + /// @brief Specify the size of the matrices you want to diagonalize later. + /// @param n the size (ie. number of rows) of the (square) matrix. + void SetSize(int n); + + Jacobi(int n = 0) { Init(); SetSize(n); } + + ~Jacobi() { Dealloc(); } + + // @typedef choose the criteria for sorting eigenvalues and eigenvectors + typedef enum eSortCriteria { + DO_NOT_SORT, + SORT_DECREASING_EVALS, + SORT_INCREASING_EVALS, + SORT_DECREASING_ABS_EVALS, + SORT_INCREASING_ABS_EVALS + } SortCriteria; + + /// @brief Calculate the eigenvalues and eigevectors of a symmetric matrix + /// using the Jacobi eigenvalue algorithm. + /// @returns The number_of_sweeps (= number_of_iterations / (n*(n-1)/2)). + /// If this equals max_num_sweeps, the algorithm failed to converge. + /// @note To reduce the computation time further, set calc_evecs=false. + int + Diagonalize(ConstMatrix mat, //!< the matrix you wish to diagonalize (size n) + Vector eval, //!< store the eigenvalues here + Matrix evec, //!< store the eigenvectors here (in rows) + SortCriteria sort_criteria=SORT_DECREASING_EVALS,//!& source); + Jacobi(Jacobi&& other); + void swap(Jacobi &other); + Jacobi& operator = (Jacobi source); + +}; // class Jacobi + + + + + +// ---- Eigendecomposition of large sparse (and dense) matrices ---- + +// The "LambdaLanczos" is a class useful for calculating eigenvalues +// and eigenvectors of large sparse matrices. Unfortunately, before the +// LambdaLanczos class can be declared, several additional expressions, +// classes and functions that it depends on must be declared first. + +// @brief Create random vectors used at the beginning of the Lanczos algorithm. +// @note "Partially specialization of function" is not allowed, so +// it is mimicked by wrapping the "init" function with a class template. +template +struct VectorRandomInitializer { +public: + static void init(std::vector&); +}; + +template +struct VectorRandomInitializer> { +public: + static void init(std::vector>&); +}; + +/// @brief Return the number of significant decimal digits of type T. +template +inline constexpr int sig_decimal_digit() { + return (int)(std::numeric_limits::digits * + std::log10(std::numeric_limits::radix)); +} + +/// @brief Return 10^-n where n=number of significant decimal digits of type T. +template +inline constexpr T minimum_effective_decimal() { + return std::pow(10, -sig_decimal_digit()); +} + + +/// @brief The LambdaLanczos class provides a general way to calculate +/// the smallest or largest eigenvalue and the corresponding eigenvector +/// of a symmetric (Hermitian) matrix using the Lanczos algorithm. +/// The characteristic feature of LambdaLanczos is that the matrix-vector +/// multiplication routine used in the Lanczos algorithm is adaptable. +/// @details +/// @code +/// +/// //Example: +/// const int n = 3; +/// double M[n][n] = { {-1.0, -1.0, 1.0}, +/// {-1.0, 1.0, 1.0}, +/// { 1.0, 1.0, 1.0} }; +/// // (Its eigenvalues are {-2, 1, 2}) +/// +/// // Specify the matrix-vector multiplication function +/// auto mv_mul = [&](const vector& in, vector& out) { +/// for(int i = 0;i < n;i++) { +/// for(int j = 0;j < n;j++) { +/// out[i] += M[i][j]*in[j]; +/// } +/// } +/// }; +/// +/// LambdaLanczos engine(mv_mul, n, true); +/// // ("true" means to calculate the largest eigenvalue.) +/// engine.eigenvalue_offset = 3.0 # = max_i{Σ_j|Mij|} (see below) +/// double eigenvalue; +/// vector eigenvector(n); +/// int itern = engine.run(eigenvalue, eigenvector); +/// +/// cout << "Iteration count: " << itern << endl; +/// cout << "Eigen value: " << setprecision(16) << eigenvalue << endl; +/// cout << "Eigen vector:"; +/// for(int i = 0; i < n; i++) { +/// cout << eigenvector[i] << " "; +/// } +/// cout << endl; +/// +/// @endcode +/// This feature allows you to use a matrix whose elements are partially given, +/// e.g. a sparse matrix whose non-zero elements are stored as a list of +/// {row-index, column-index, value} tuples. You can also easily combine +/// LambdaLanczos with existing matrix libraries (e.g. Eigen) +/// +/// @note +/// If the matrices you want to analyze are ordinary square matrices, (as in +/// the example) it might be easier to use "PEigenDense" instead. (It is a +/// wrapper which takes care of all of the LambdaLanczos details for you.) +/// +/// @note +/// IMPORTANT: +/// The Lanczos algorithm finds the largest magnitude eigenvalue, so you +/// MUST ensure that the eigenvalue you are seeking has the largest magnitude +/// (regardless of whether it is the maximum or minimum eigenvalue). +/// To insure that this is so, you can add or subtract a number to all +/// of the eigenvalues of the matrix by specifying the "eigenvalue_offset". +/// This number should exceed the largest magnitude eigenvalue of the matrix. +/// According to the Gershgorin theorem, you can estimate this number using +/// r = max_i{Σ_j|Mij|} = max_j{Σ_i|Mij|} +/// (where Mij are the elements of the matrix and Σ_j denotes the sum over j). +/// If find_maximum == true (if you are seeking the maximum eigenvalue), then +/// eigenvalue_offset = +r +/// If find_maximum == false, then +/// eigenvalue_offset = -r +/// The eigenvalue_offset MUST be specified by the user. LambdaLanczos does +/// not have an efficient and general way to access the elements of the matrix. +/// +/// (You can omit this step if you are seeking the maximum eigenvalue, +/// and the matrix is positive definite, or if you are seeking the minimum +/// eigenvalue and the matrix is negative definite.) +/// +/// @note +/// LambdaLanczos is available under the MIT license and downloadable at: +/// https://github.com/mrcdr/lambda-lanczos + +template +class LambdaLanczos { +public: + LambdaLanczos(); + LambdaLanczos(std::function&, std::vector&)> mv_mul, int matrix_size, bool find_maximum); + LambdaLanczos(std::function&, std::vector&)> mv_mul, int matrix_size) : LambdaLanczos(mv_mul, matrix_size, true) {} + + /// @brief Calculate the principal (largest or smallest) eigenvalue + /// of the matrix (and its corresponding eigenvector). + int run(real_t&, std::vector&) const; + + // --- public data members --- + + /// @brief Specify the size of the matrix you will analyze. + /// (This equals the size of the eigenvector which will be returned.) + int matrix_size; + + /// @brief Specify the function used for matrix*vector multiplication + /// used by the Lanczos algorithm. For an ordinary dense matrix, + /// this function is the ordinary matrix*vector product. (See the + /// example above. For a sparse matrix, it will be something else.) + std::function&, std::vector&)> mv_mul; + + /// @brief Are we searching for the maximum or minimum eigenvalue? + /// @note (Usually, you must also specify eigenvalue_offset.) + bool find_maximum = false; + + /// @brief Shift all the eigenvalues by "eigenvalue_offset" during the Lanczos + /// iteration (ie. during LambdaLanczos::run()). The goal is to insure + /// that the correct eigenvalue is selected (the one with the maximum + /// magnitude). + /// @note The eigevalue returned by LambdaLanczos::run() is not effected + /// because after the iteration is finished, it will subtract this + /// number from the eigenvalue before it is returned to the caller. + /// @note Unless your matrix is positive definite or negative definite, + /// you MUST specify eigenvalue_offset. See comment above for details. + real_t eigenvalue_offset = 0.0; + + /// @brief This function sets "eigenvalue_offset" automatically. + /// @note Using this function is not recommended because it is very slow. + /// For efficiency, set the "eigenvalue_offset" yourself. + void ChooseOffset(); + + // The remaining data members usually can be left alone: + int max_iteration; + real_t eps = minimum_effective_decimal>() * 1e3; + real_t tridiag_eps_ratio = 1e-1; + int initial_vector_size = 200; + std::function&)> init_vector = + VectorRandomInitializer::init; + + // (for those who prefer "Set" functions...) + int SetSize(int matrix_size); + void SetMul(std::function&, + std::vector&)> mv_mul); + void SetInitVec(std::function&)> init_vector); + void SetFindMax(bool find_maximum); + void SetEvalOffset(T eigenvalue_offset); + void SetEpsilon(T eps); + void SetTriEpsRatio(T tridiag_eps_ratio); + +private: + static void schmidt_orth(std::vector&, const std::vector>&); + real_t find_minimum_eigenvalue(const std::vector>&, + const std::vector>&) const; + real_t find_maximum_eigenvalue(const std::vector>&, + const std::vector>&) const; + static real_t tridiagonal_eigen_limit(const std::vector>&, + const std::vector>&); + static int num_of_eigs_smaller_than(real_t, + const std::vector>&, + const std::vector>&); + real_t UpperBoundEvals() const; +}; + + + +/// @brief +/// PEigenDense is a class containing only one useful member function: +/// PrincipalEigen(). This function calculates the principal (largest +/// or smallest) eigenvalue and corresponding eigenvector of a square +/// n x n matrix. This can be faster than diagionalizing the entire matrix. +/// (For example by using the Lanczos algorithm or something similar.) +/// @note +/// This code is a wrapper. Internally, it uses the "LambdaLanczos" class. +/// @note +/// For matrices larger than 13x13, PEigenDense::PrincipleEigen() +/// is usually faster than Jacobi::Diagonalize().) + +template +class PEigenDense +{ + size_t n; // the size of the matrix + std::vector evec; // preallocated vector + +public: + void SetSize(int matrix_size) { + n = matrix_size; + evec.resize(n); + } + + PEigenDense(int matrix_size=0):evec(matrix_size) { + SetSize(matrix_size); + } + + /// @brief Calculate the principal eigenvalue and eigenvector of a matrix. + /// @return Return the principal eigenvalue of the matrix. + /// If you want the eigenvector, pass a non-null "evector" argument. + Scalar + PrincipalEigen(ConstMatrix matrix, //!< the input patrix + Vector evector, //!< the eigenvector is stored here + bool find_max=false); //!< want the max or min eigenvalue? + +}; // class PEigenDense + + + +// -------------------------------------- +// ----------- IMPLEMENTATION ----------- +// -------------------------------------- + + + + +// --- Implementation: Memory allocation for matrices --- +template +void Alloc2D(size_t nrows, // size of the array (number of rows) + size_t ncols, // size of the array (number of columns) + Entry ***paaX) // pointer to a 2D C-style array +{ + assert(paaX); + *paaX = new Entry* [nrows]; //conventional 2D C array (pointer-to-pointer) + (*paaX)[0] = new Entry [nrows * ncols]; // 1D C array (contiguous memor) + for(size_t iy=0; iy +void Dealloc2D(Entry ***paaX) // pointer to a 2D C-style array +{ + if (paaX && *paaX) { + delete [] (*paaX)[0]; + delete [] (*paaX); + *paaX = nullptr; + } +} + +/// @brief ConjugateProduct::prod(a,b) is a function which returns a*b by +/// default. If the arguments are complex numbers, it returns conj(a)*b instead. +template +struct ConjugateProduct { +public: + static T prod(T a, T b) { return a*b; } +}; + +template +struct ConjugateProduct> { +public: + static std::complex prod(std::complex a, std::complex b) { + return std::conj(a)*b; + } +}; + + +// --- Implementation: Operations on vectors (of real and complex numbers) --- + +template +inline T inner_prod(const std::vector& v1, const std::vector& v2) { + return std::inner_product(std::begin(v1), std::end(v1), + std::begin(v2), T(), + [](T a, T b) -> T { return a+b; }, + ConjugateProduct::prod); + // T() means zero value of type T + // This spec is required because std::inner_product calculates + // v1*v2 not conj(v1)*v2 +} + +template +inline real_t l2_norm(const std::vector& vec) { + return std::sqrt(std::real(inner_prod(vec, vec))); + // The norm of any complex vector is real by definition. +} + +template +inline void scalar_mul(T1 a, std::vector& vec) { + int n = vec.size(); + for(int i = 0;i < n;i++) + vec[i] *= a; +} + +template +inline void normalize(std::vector& vec) { + scalar_mul(1.0/l2_norm(vec), vec); +} + + +template +inline real_t l1_norm(const std::vector& vec) { + real_t norm = real_t(); // Zero initialization + for(const T& element : vec) + norm += std::abs(element); + return norm; +} + + + + +// --- Implementation: Eigendecomposition of small dense matrices --- + +template +int Jacobi:: +Diagonalize(ConstMatrix mat, // the matrix you wish to diagonalize (size n) + Vector eval, // store the eigenvalues here + Matrix evec, // store the eigenvectors here (in rows) + SortCriteria sort_criteria, // sort results? + bool calc_evec, // calculate the eigenvectors? + int max_num_sweeps) // limit the number of iterations ("sweeps") +{ + // -- Initialization -- + for (int i = 0; i < n; i++) + for (int j = i; j < n; j++) //copy mat[][] into M[][] + M[i][j] = mat[i][j]; //(M[][] is a local copy we can modify) + + if (calc_evec) + for (int i = 0; i < n; i++) + for (int j = 0; j < n; j++) + evec[i][j] = (i==j) ? 1.0 : 0.0; //Set evec equal to the identity matrix + + for (int i = 0; i < n-1; i++) //Initialize the "max_idx_row[]" array + max_idx_row[i] = MaxEntryRow(M, i); //(which is needed by MaxEntry()) + + // -- Iteration -- + int n_iters; + int max_num_iters = max_num_sweeps*n*(n-1)/2; //"sweep" = n*(n-1)/2 iters + for (n_iters=0; n_iters < max_num_iters; n_iters++) { + int i,j; + MaxEntry(M, i, j); // Find the maximum entry in the matrix. Store in i,j + + // If M[i][j] is small compared to M[i][i] and M[j][j], set it to 0. + if ((M[i][i] + M[i][j] == M[i][i]) && (M[j][j] + M[i][j] == M[j][j])) { + M[i][j] = 0.0; + max_idx_row[i] = MaxEntryRow(M,i); //must also update max_idx_row[i] + } + + if (M[i][j] == 0.0) + break; + + // Otherwise, apply a rotation to make M[i][j] = 0 + CalcRot(M, i, j); // Calculate the parameters of the rotation matrix. + ApplyRot(M, i, j); // Apply this rotation to the M matrix. + if (calc_evec) // Optional: If the caller wants the eigenvectors, then + ApplyRotLeft(evec,i,j); // apply the rotation to the eigenvector matrix + + } //for (int n_iters=0; n_iters < max_num_iters; n_iters++) + + // -- Post-processing -- + for (int i = 0; i < n; i++) + eval[i] = M[i][i]; + + // Optional: Sort results by eigenvalue. + SortRows(eval, evec, n, sort_criteria); + + return n_iters / (n*(n-1)/2); //returns the number of "sweeps" (converged?) +} + + +/// brief Calculate the components of a rotation matrix which performs a +/// rotation in the i,j plane by an angle (θ) that (when multiplied on +/// both sides) will zero the ij'th element of M, so that afterwards +/// M[i][j] = 0. The results will be stored in c, s, and t +/// (which store cos(θ), sin(θ), and tan(θ), respectively). + +template +void Jacobi:: +CalcRot(Scalar const *const *M, //!< matrix + int i, //!< row index + int j) //!< column index +{ + t = 1.0; // = tan(θ) + Scalar M_jj_ii = (M[j][j] - M[i][i]); + if (M_jj_ii != 0.0) { + // kappa = (M[j][j] - M[i][i]) / (2*M[i][j]) + Scalar kappa = M_jj_ii; + t = 0.0; + Scalar M_ij = M[i][j]; + if (M_ij != 0.0) { + kappa /= (2.0*M_ij); + // t satisfies: t^2 + 2*t*kappa - 1 = 0 + // (choose the root which has the smaller absolute value) + t = 1.0 / (std::sqrt(1 + kappa*kappa) + std::abs(kappa)); + if (kappa < 0.0) + t = -t; + } + } + assert(std::abs(t) <= 1.0); + c = 1.0 / std::sqrt(1 + t*t); + s = c*t; +} + + +/// brief Perform a similarity transformation by multiplying matrix M on both +/// sides by a rotation matrix (and its transpose) to eliminate M[i][j]. +/// details This rotation matrix performs a rotation in the i,j plane by +/// angle θ. This function assumes that c=cos(θ). s=som(θ), t=tan(θ) +/// have been calculated previously (using the CalcRot() function). +/// It also assumes that iv) are not computed. +/// +/// verbatim +/// +/// M' = R^T * M * R +/// where R the rotation in the i,j plane and ^T denotes the transpose. +/// i j +/// _ _ +/// | 1 | +/// | . | +/// | . | +/// | 1 | +/// | c ... s | +/// | . . . | +/// R = | . 1 . | +/// | . . . | +/// | -s ... c | +/// | 1 | +/// | . | +/// | . | +/// |_ 1 _| +/// +/// endverbatim +/// +/// Let M' denote the matrix M after multiplication by R^T and R. +/// The components of M' are: +/// M'_uv = Σ_w Σ_z R_wu * M_wz * R_zv +/// +/// note +/// The rotation at location i,j will modify all of the matrix +/// elements containing at least one index which is either i or j +/// such as: M[w][i], M[i][w], M[w][j], M[j][w]. +/// Check and see whether these modified matrix elements exceed the +/// corresponding values in max_idx_row[] array for that row. +/// If so, then update max_idx_row for that row. +/// This is somewhat complicated by the fact that we must only consider +/// matrix elements in the upper-right triangle strictly above the diagonal. +/// (ie. matrix elements whose second index is > the first index). + +template +void Jacobi:: +ApplyRot(Scalar **M, // matrix + int i, // row index + int j) // column index +{ + // Recall that c = cos(θ), s = sin(θ), t = tan(θ) (and t <= 1.0) + + // Compute the diagonal elements of M which have changed: + M[i][i] -= t * M[i][j]; + M[j][j] += t * M[i][j]; + + //Update the off-diagonal elements of M which will change (above the diagonal) + assert(i < j); + M[i][j] = 0.0; + + //compute M[w][i] and M[i][w] for all w!=i,considering above-diagonal elements + for (int w=0; w < i; w++) { // 0 <= w < i < j < n + M[i][w] = M[w][i]; //backup the previous value. store below diagonal (i>w) + M[w][i] = c*M[w][i] - s*M[w][j]; //M[w][i], M[w][j] from previous iteration + if (i == max_idx_row[w]) max_idx_row[w] = MaxEntryRow(M, w); + else if (std::abs(M[w][i])>std::abs(M[w][max_idx_row[w]])) max_idx_row[w]=i; + //assert(max_idx_row[w] == MaxEntryRow(M, w)); + } + for (int w=i+1; w < j; w++) { // 0 <= i < w < j < n + M[w][i] = M[i][w]; //backup the previous value. store below diagonal (w>i) + M[i][w] = c*M[i][w] - s*M[w][j]; //M[i][w], M[w][j] from previous iteration + } + for (int w=j+1; w < n; w++) { // 0 <= i < j+1 <= w < n + M[w][i] = M[i][w]; //backup the previous value. store below diagonal (w>i) + M[i][w] = c*M[i][w] - s*M[j][w]; //M[i][w], M[j][w] from previous iteration + } + + // now that we're done modifying row i, we can update max_idx_row[i] + max_idx_row[i] = MaxEntryRow(M, i); + + //compute M[w][j] and M[j][w] for all w!=j,considering above-diagonal elements + for (int w=0; w < i; w++) { // 0 <= w < i < j < n + M[w][j] = s*M[i][w] + c*M[w][j]; //M[i][w], M[w][j] from previous iteration + if (j == max_idx_row[w]) max_idx_row[w] = MaxEntryRow(M, w); + else if (std::abs(M[w][j])>std::abs(M[w][max_idx_row[w]])) max_idx_row[w]=j; + //assert(max_idx_row[w] == MaxEntryRow(M, w)); + } + for (int w=i+1; w < j; w++) { // 0 <= i+1 <= w < j < n + M[w][j] = s*M[w][i] + c*M[w][j]; //M[w][i], M[w][j] from previous iteration + if (j == max_idx_row[w]) max_idx_row[w] = MaxEntryRow(M, w); + else if (std::abs(M[w][j])>std::abs(M[w][max_idx_row[w]])) max_idx_row[w]=j; + //assert(max_idx_row[w] == MaxEntryRow(M, w)); + } + for (int w=j+1; w < n; w++) { // 0 <= i < j < w < n + M[j][w] = s*M[w][i] + c*M[j][w]; //M[w][i], M[j][w] from previous iteration + } + // now that we're done modifying row j, we can update max_idx_row[j] + max_idx_row[j] = MaxEntryRow(M, j); +} //Jacobi::ApplyRot() + + +/// brief Multiply matrix E on the left by the (previously calculated) +/// rotation matrix. +/// +/// details +/// Multiply matrix M on the LEFT side by a transposed rotation matrix, R^T. +/// This matrix performs a rotation in the i,j plane by angle θ +/// (where the arguments "s" and "c" refer to cos(θ) and sin(θ), respectively). +/// +/// verbatim +/// E'_uv = Σ_w R_wu * E_wv +/// endverbatim + +template +void Jacobi:: +ApplyRotLeft(Matrix E, // matrix + int i, // row index + int j) // column index +{ + // recall that c = cos(θ) and s = sin(θ) + for (int v = 0; v < n; v++) { + Scalar Eiv = E[i][v]; //backup E[i][v] + E[i][v] = c*E[i][v] - s*E[j][v]; + E[j][v] = s*Eiv + c*E[j][v]; + } +} + +/// brief Find the off-diagonal index in row i whose absolute value is largest +template +int Jacobi:: +MaxEntryRow(Scalar const *const *M, int i) const { + int j_max = i+1; + for(int j = i+2; j < n; j++) + if (std::abs(M[i][j]) > std::abs(M[i][j_max])) + j_max = j; + return j_max; +} + +/// brief Find the indices (i_max, j_max) marking the location of the +/// entry in the matrix with the largest absolute value. This +/// uses the max_idx_row[] array to find the answer in O(n) time. +/// returns This function does not return a avalue. However after it is +/// invoked, the location of the largest matrix element will be +/// stored in the i_max and j_max arguments. +template +void Jacobi:: +MaxEntry(Scalar const *const *M, int& i_max, int& j_max) const { + // find the maximum entry in the matrix M in O(n) time + i_max = 0; + j_max = max_idx_row[i_max]; + Scalar max_entry = std::abs(M[i_max][j_max]); + int nm1 = n-1; + for (int i=1; i < nm1; i++) { + int j = max_idx_row[i]; + if (std::abs(M[i][j]) > max_entry) { + max_entry = std::abs(M[i][j]); + i_max = i; + j_max = j; + } + } +} + +/// brief Sort the rows in matrix "evec" according to the numbers in "eval". +template +void Jacobi:: +SortRows(Vector eval, // vector containing the keys used for sorting + Matrix evec, // matrix whose rows will be sorted according to v + int n, // size of the vector and matrix + SortCriteria sort_criteria) const // sort eigenvalues? +{ + for (int i = 0; i < n-1; i++) { + int i_max = i; + for (int j = i+1; j < n; j++) { + // find the "maximum" element in the array starting at position i+1 + switch (sort_criteria) { + case SORT_DECREASING_EVALS: + if (eval[j] > eval[i_max]) + i_max = j; + break; + case SORT_INCREASING_EVALS: + if (eval[j] < eval[i_max]) + i_max = j; + break; + case SORT_DECREASING_ABS_EVALS: + if (std::abs(eval[j]) > std::abs(eval[i_max])) + i_max = j; + break; + case SORT_INCREASING_ABS_EVALS: + if (std::abs(eval[j]) < std::abs(eval[i_max])) + i_max = j; + break; + default: + break; + } + } + std::swap(eval[i], eval[i_max]); // sort "eval" + for (int k = 0; k < n; k++) + std::swap(evec[i][k], evec[i_max][k]); // sort "evec" + } +} + +template +void Jacobi:: +Init() { + n = 0; + M = nullptr; + max_idx_row = nullptr; +} + +template +void Jacobi:: +SetSize(int n) { + Dealloc(); + Alloc(n); +} + +// Implementation: Jacobi memory management: + +template +void Jacobi:: +Alloc(int n) { + this->n = n; + if (n > 0) { + max_idx_row = new int[n]; + Alloc2D(n, n, &M); + } +} + +template +void Jacobi:: +Dealloc() { + if (max_idx_row) + delete [] max_idx_row; + Dealloc2D(&M); + Init(); +} + +// Jacobi copy and move constructor, swap, and assignment operator: + +template +Jacobi:: +Jacobi(const Jacobi& source) +{ + Init(); + SetSize(source.n); + assert(n == source.n); + // The following lines aren't really necessary, because the contents + // of source.M and source.max_idx_row are not needed (since they are + // overwritten every time Jacobi::Diagonalize() is invoked). + std::copy(source.max_idx_row, + source.max_idx_row + n, + max_idx_row); + for (int i = 0; i < n; i++) + std::copy(source.M[i], + source.M[i] + n, + M[i]); +} + +template +void Jacobi:: +swap(Jacobi &other) { + std::swap(n, other.n); + std::swap(max_idx_row, other.max_idx_row); + std::swap(M, other.M); +} + +// Move constructor (C++11) +template +Jacobi:: +Jacobi(Jacobi&& other) { + Init(); + swap(*this, other); +} + +// Using the "copy-swap" idiom for the assignment operator +template +Jacobi& +Jacobi:: +operator = (Jacobi source) { + this->swap(source); + return *this; +} + + + +// --- Implementation: Eigendecomposition of large matrices ---- + +template +inline LambdaLanczos::LambdaLanczos() { + this->matrix_size = 0; + this->max_iteration = 0; + this->find_maximum = 0; +} + + +template +inline LambdaLanczos:: +LambdaLanczos(std::function&, + std::vector&)> mv_mul, + int matrix_size, + bool find_maximum) +{ + this->mv_mul = mv_mul; + this->matrix_size = matrix_size; + this->max_iteration = matrix_size; + this->find_maximum = find_maximum; +} + + +template +inline int LambdaLanczos:: +run(real_t& eigvalue, std::vector& eigvec) const +{ + assert(matrix_size > 0); + assert(0 < this->tridiag_eps_ratio && this->tridiag_eps_ratio < 1); + + std::vector> u; // Lanczos vectors + std::vector> alpha; // Diagonal elements of an approximated tridiagonal matrix + std::vector> beta; // Subdiagonal elements of an approximated tridiagonal matrix + + const int n = this->matrix_size; + + u.reserve(this->initial_vector_size); + alpha.reserve(this->initial_vector_size); + beta.reserve(this->initial_vector_size); + + u.emplace_back(n, 0.0); // Same as u.push_back(std::vector(n, 0.0)) + + std::vector vk(n, 0.0); + + real_t alphak = 0.0; + alpha.push_back(alphak); + real_t betak = 0.0; + beta.push_back(betak); + + std::vector uk(n); + this->init_vector(uk); + normalize(uk); + u.push_back(uk); + + real_t ev, pev; // Calculated eigenvalue and previous one + pev = std::numeric_limits>::max(); + + int itern = this->max_iteration; + for(int k = 1;k <= this->max_iteration;k++) { + // vk = (A + offset*E)uk, here E is the identity matrix + for(int i = 0;i < n;i++) { + vk[i] = uk[i]*this->eigenvalue_offset; + } + this->mv_mul(uk, vk); + + alphak = std::real(inner_prod(u.back(), vk)); + + // The inner product is real. + // Proof: + // = + // On the other hand its complex conjugate is + // ^* = = = + // here the condition that matrix A is a symmetric (Hermitian) is used. + // Therefore + // = ^* + // is real. + + alpha.push_back(alphak); + + for(int i = 0;i < n; i++) { + uk[i] = vk[i] - betak*u[k-1][i] - alphak*u[k][i]; + } + + schmidt_orth(uk, u); + + betak = l2_norm(uk); + beta.push_back(betak); + + if(this->find_maximum) { + ev = find_maximum_eigenvalue(alpha, beta); + } else { + ev = find_minimum_eigenvalue(alpha, beta); + } + + const real_t zero_threshold = minimum_effective_decimal>()*1e-1; + if(betak < zero_threshold) { + u.push_back(uk); + // This element will never be accessed, + // but this "push" guarantees u to always have one more element than + // alpha and beta do. + itern = k; + break; + } + + normalize(uk); + u.push_back(uk); + + if(abs(ev-pev) < std::min(abs(ev), abs(pev))*this->eps) { + itern = k; + break; + } else { + pev = ev; + } + } + + eigvalue = ev - this->eigenvalue_offset; + + int m = alpha.size(); + std::vector cv(m+1); + cv[0] = 0.0; + cv[m] = 0.0; + cv[m-1] = 1.0; + + beta[m-1] = 0.0; + + if(eigvec.size() < n) { + eigvec.resize(n); + } + + for(int i = 0;i < n;i++) { + eigvec[i] = cv[m-1]*u[m-1][i]; + } + + for(int k = m-2;k >= 1;k--) { + cv[k] = ((ev - alpha[k+1])*cv[k+1] - beta[k+1]*cv[k+2])/beta[k]; + + for(int i = 0;i < n;i++) { + eigvec[i] += cv[k]*u[k][i]; + } + } + + normalize(eigvec); + + return itern; + +} //LambdaLancos::run() + + + +template +inline void LambdaLanczos:: +schmidt_orth(std::vector& uorth, const std::vector>& u) +{ + // Vectors in u must be normalized, but uorth doesn't have to be. + + int n = uorth.size(); + + for(int k = 0;k < u.size();k++) { + T innprod = inner_prod(uorth, u[k]); + for(int i = 0;i < n;i++) + uorth[i] -= innprod * u[k][i]; + } +} + + +template +inline real_t LambdaLanczos:: +find_minimum_eigenvalue(const std::vector>& alpha, + const std::vector>& beta) const +{ + real_t eps = this->eps * this->tridiag_eps_ratio; + real_t pmid = std::numeric_limits>::max(); + real_t r = tridiagonal_eigen_limit(alpha, beta); + real_t lower = -r; + real_t upper = r; + real_t mid; + int nmid; // Number of eigenvalues smaller than the "mid" + + while(upper-lower > std::min(abs(lower), abs(upper))*eps) { + mid = (lower+upper)/2.0; + nmid = num_of_eigs_smaller_than(mid, alpha, beta); + if(nmid >= 1) { + upper = mid; + } else { + lower = mid; + } + + if(mid == pmid) { + break; // This avoids an infinite loop due to zero matrix + } + pmid = mid; + } + + return lower; // The "lower" almost equals the "upper" here. +} + + +template +inline real_t LambdaLanczos:: +find_maximum_eigenvalue(const std::vector>& alpha, + const std::vector>& beta) const +{ + real_t eps = this->eps * this->tridiag_eps_ratio; + real_t pmid = std::numeric_limits>::max(); + real_t r = tridiagonal_eigen_limit(alpha, beta); + real_t lower = -r; + real_t upper = r; + real_t mid; + int nmid; // Number of eigenvalues smaller than the "mid" + + int m = alpha.size() - 1; // Number of eigenvalues of the approximated + // triangular matrix, which equals the rank of it + + + while(upper-lower > std::min(abs(lower), abs(upper))*eps) { + mid = (lower+upper)/2.0; + nmid = num_of_eigs_smaller_than(mid, alpha, beta); + + if(nmid < m) { + lower = mid; + } else { + upper = mid; + } + + if(mid == pmid) { + break; // This avoids an infinite loop due to zero matrix + } + pmid = mid; + } + + return lower; // The "lower" almost equals the "upper" here. +} + + +/// @brief +/// Compute the upper bound of the absolute value of eigenvalues +/// by Gerschgorin theorem. This routine gives a rough upper bound, +/// but it is sufficient because the bisection routine using +/// the upper bound converges exponentially. + +template +inline real_t LambdaLanczos:: +tridiagonal_eigen_limit(const std::vector>& alpha, + const std::vector>& beta) +{ + real_t r = l1_norm(alpha); + r += 2*l1_norm(beta); + + return r; +} + + + +// Algorithm from +// Peter Arbenz et al. +// "High Performance Algorithms for Structured Matrix Problems" +// Nova Science Publishers, Inc. + +template +inline int LambdaLanczos:: +num_of_eigs_smaller_than(real_t c, + const std::vector>& alpha, + const std::vector>& beta) +{ + real_t q_i = 1.0; + int count = 0; + int m = alpha.size(); + + for(int i = 1;i < m;i++){ + q_i = alpha[i] - c - beta[i-1]*beta[i-1]/q_i; + if(q_i < 0){ + count++; + } + if(q_i == 0){ + q_i = minimum_effective_decimal>(); + } + } + + return count; +} + + +template +inline void LambdaLanczos::ChooseOffset() { + const auto n = this->matrix_size; + std::vector unit_vec_j(n); + std::vector matrix_column_j(n); + real_t eval_upper_bound = 0.0; + /// According to Gershgorin theorem, the maximum (magnitude) eigenvalue should + /// not exceed max_j{Σ_i|Mij|}. We can infer the contents of each column in + /// the matrix by multiplying it by different unit vectors. This is slow. + for (int j = 0; j < n; j++) { + std::fill(unit_vec_j.begin(), unit_vec_j.end(), 0); // fill with zeros + unit_vec_j[j] = 1.0; // = jth element is 1, all other elements are 0 + // Multiplying the matrix by a unit vector (a vector containing only one + // non-zero element at position j) extracts the jth column of the matrix. + this->mv_mul(unit_vec_j, matrix_column_j); + real_t sum_column = 0.0; // compute Σ_i|Mij| + for (int i = 0; i < n; i++) + sum_column += std::abs(matrix_column_j[i]); + if (eval_upper_bound < sum_column) + eval_upper_bound = sum_column; // compute max_j{Σ_i|Mij|} + } + if (find_maximum) + this->eigenvalue_offset = eval_upper_bound; + else + this->eigenvalue_offset = -eval_upper_bound; +} + + +template +inline int LambdaLanczos::SetSize(int matrix_size) +{ + this->matrix_size = matrix_size; + this->max_iteration = matrix_size; + return matrix_size; +} + +template +inline void LambdaLanczos::SetMul(std::function&, std::vector&)> mv_mul) +{ + this->mv_mul = mv_mul; +} + +template +inline void LambdaLanczos::SetInitVec(std::function&)> init_vector) +{ + this->init_vector = init_vector; +} + +template +inline void LambdaLanczos::SetFindMax(bool find_maximum) { + this->find_maximum = find_maximum; +} + +template +inline void LambdaLanczos::SetEvalOffset(T offset) +{ + this->eigenvalue_offset = offset; +} + +template +inline void LambdaLanczos::SetEpsilon(T epsilon) +{ + this->eps = epsilon; +} + +template +inline void LambdaLanczos::SetTriEpsRatio(T tri_eps_ratio) +{ + this->tridiag_eps_ratio = tri_eps_ratio; +} + + + + + +template +inline void VectorRandomInitializer:: +init(std::vector& v) +{ + std::random_device dev; + std::mt19937 mt(dev()); + std::uniform_real_distribution rand((T)(-1.0), (T)(1.0)); + + int n = v.size(); + for(int i = 0;i < n;i++) { + v[i] = rand(mt); + } + + normalize(v); +} + + +template +inline void VectorRandomInitializer>:: +init(std::vector>& v) +{ + std::random_device dev; + std::mt19937 mt(dev()); + std::uniform_real_distribution rand((T)(-1.0), (T)(1.0)); + + int n = v.size(); + for(int i = 0;i < n;i++) { + v[i] = std::complex(rand(mt), rand(mt)); + } + + normalize(v); +} + + +// --- Implementation of PEigenDense + +template +Scalar PEigenDense:: +PrincipalEigen(ConstMatrix matrix, + Vector eigenvector, + bool find_max) +{ + assert(n > 0); + auto matmul = [&](const std::vector& in, std::vector& out) { + for(int i = 0; i < n; i++) { + for(int j = 0; j < n; j++) { + out[i] += matrix[i][j]*in[j]; + } + } + }; + auto init_vec = [&](std::vector& vec) { + for(int i = 0; i < n; i++) + vec[i] = 0.0; + vec[0] = 1.0; + }; + + // "ll_engine" calculates the eigenvalue and eigenvector. + LambdaLanczos ll_engine(matmul, n, find_max); + + // The Lanczos algorithm selects the eigenvalue with the largest magnitude. + // In order to insure that this is the one we want (maxima or minima), we can + // add a constant to all of the eigenvalues by setting "eigenvalue_offset". + Scalar eval_upper_bound = 0.0; + for (int i = 0; i < n; i++) { + Scalar sum_row = 0.0; + for (int j = 0; j < n; i++) + sum_row += std::abs(matrix[i][j]); + if (eval_upper_bound < sum_row) + eval_upper_bound = sum_row; + } + if (find_max) + ll_engine.eigenvalue_offset = eval_upper_bound; + else + ll_engine.eigenvalue_offset = -eval_upper_bound; + + ll_engine.init_vector = init_vec; + + Scalar eval; + + // This line does all of the hard work: + size_t itern = ll_engine.run(eval, evec); + + for (int i = 0; i < n; i++) + eigenvector[i] = evec[i]; + + return eval; +} + + +} //namespace math_eigen + + +#endif //#ifndef _MATH_EIGEN_H diff --git a/src/USER-MISC/superpose3d.h b/src/USER-MISC/superpose3d.h new file mode 100644 index 0000000000..370b0c0826 --- /dev/null +++ b/src/USER-MISC/superpose3d.h @@ -0,0 +1,474 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. (Some of the code in this file is also + available using a more premissive license. See below for details.) + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + Contributing author: Andrew Jewett (Scripps Research) + Availability: https://github.com/jewettaij/superpose3d_cpp (MIT license) +------------------------------------------------------------------------- */ + +/// @file superpose3d.hpp +/// @brief Calculate the optimal rotation, translation and scale needed to +/// optimally fit two different point clouds containing n points. +/// @author Andrew Jewett +/// @license MIT + +#ifndef _SUPERPOSE3D_H +#define _SUPERPOSE3D_H + +#include "math_eigen.h" //functions to calculate eigenvalues and eigenvectors + +namespace superpose3d { + +using namespace math_eigen; + +// ----------------------------------------------------------- +// ------------------------ INTERFACE ------------------------ +// ----------------------------------------------------------- + +/// @brief Superpose3d is a class with only one important member function +/// Superpose(). It is useful for calculating the optimal +/// superposition (rotations, translations, and scale transformations) +/// between two point clouds of the same size. +template +class Superpose3D { +private: + size_t N; //number of points in the point clouds + Scalar *aWeights; //weights applied to points when computing RMSD + Jacobi eigen_calc; // calculates eigenvectors + Scalar **aaXf_shifted; //preallocated space for fixed point cloud (Nx3 array) + Scalar **aaXm_shifted; //preallocated space for mobile point cloud (Nx3 array) + +public: + // The following data members store the rotation, translation and scale + // after optimal superposition + Scalar **R; //!< store optimal rotation here (this is a 3x3 array). + Scalar T[3]; //!< store optimal translation here + Scalar c; //!< store optimal scale (typically 1 unless requested by the user) + Scalar q[4]; //!< quaternion corresponding to the rotation stored in R. + // The first entry of q is cos(θ/2). The remaining 3 entries + // of q are the axis of rotation (with length sin(θ/2)). + // (Note: This is not the same as "p" from Diamond's 1988 paper.) + + Superpose3D(size_t N = 0); //!< N=number of points in both point clouds + + Superpose3D(size_t N, //!< N = number of points in both point clouds + ConstArray aWeights); //!< weight per point for computing RMSD + + ~Superpose3D(); + + /// @brief specify he number of points in both point clouds + void SetNumPoints(size_t N); + /// @brief return the number of points in both point clouds + size_t GetNumPoints() { return N; } + /// @brief specify the weight applied to each point when computing RMSD + void SetWeights(ConstArray aWeights); + + /// @brief Use rigid-body transformations (rotations, translations, and + /// optionally scale transformations) to superimpose two point clouds. + /// + /// @details + /// This function takes two lists of xyz coordinates (of the same length) and + /// attempts to superimpose them using rotations, translations, and + /// (optionally) scale transformations. These transformations are applied to + /// to the coordinates in the "aaXm_orig" array (the "mobile" point cloud) + /// in order to minimize the root-mean-squared-distance (RMSD) between the + /// corresponding points in each cloud, where RMSD is defined as: + /// + /// @verbatim + /// sqrt((Σ_n w[n]*Σ_i |X[n][i] - (Σ_j c*R[i][j]*x[n][j]+T[i])|^2)/(Σ_n w[n])) + /// @endverbatim + /// + /// In this formula, the "X_i" and "x_i" are coordinates of the ith fixed and + /// mobile point clouds (represented by "aaXf" and "aaXm" in the code below) + /// and "w_i" are optional weights (represented by "aWeights" in the code). + /// This function implements a more general variant of the method from: + /// @verbatim + /// R. Diamond, (1988) "A Note on the Rotational Superposition Problem", + /// Acta Cryst. A44, pp. 211-216 + /// @endverbatim + /// + /// @note: + /// This code has been augmented with a new feature. The version in the + /// original paper only considers rotation and translation and does not allow + /// coordinates of either cloud to be rescaled (multiplied by a scalar). + /// To enable the ability to rescale the coordinates, set allow_rescale=true. + /// (By default, this feature is disabled.) + /// + /// @returns + /// The RMSD between the 2 pointclouds after optimal rotation, translation + /// (and scaling if requested) was applied to the "mobile" point cloud. + /// After this function is called, the optimal rotation, translation, + /// and scale (if requested) will be stored in the "R", "T", and "c" + /// public data members. + Scalar Superpose(ConstArrayOfCoords aaXf, //!< coords for the "frozen" object + ConstArrayOfCoords aaXm, //!< coords for the "mobile" object + bool allow_rescale=false //!< rescale mobile object? (c≠1?) + ); + + // C++ boilerplate: copy and move constructor, swap, and assignment operator + Superpose3D(const Superpose3D& source); + Superpose3D(Superpose3D&& other); + void swap(Superpose3D &other); + Superpose3D& operator = (Superpose3D source); + +private: + + // memory management: + void Alloc(size_t N); + void Init(); + void Dealloc(); + +}; // class Superpose3D + + + + + +// -------------- IMPLEMENTATION -------------- + + +template +static inline Scalar SQR(Scalar x) {return x*x;} + +template +Scalar Superpose3D:: +Superpose(ConstArrayOfCoords aaXf, // coords for the "frozen" object + ConstArrayOfCoords aaXm, // coords for the "mobile" object + bool allow_rescale) // rescale mobile object? (c!=1?) +{ + assert(aaXf && aaXm); + assert(aaXf_shifted && aaXm_shifted); + assert(aWeights); + assert(R && T); + + // Find the center of mass of each object: + Scalar aCenter_f[3] = {0.0, 0.0, 0.0}; + Scalar aCenter_m[3] = {0.0, 0.0, 0.0}; + Scalar sum_weights = 0.0; + for (size_t n=0; n < N; n++) { + Scalar weight = aWeights[n]; + for (int d=0; d < 3; d++) { + aCenter_f[d] += aaXf[n][d]*weight; + aCenter_m[d] += aaXm[n][d]*weight; + } + sum_weights += weight; + } + assert(sum_weights != 0.0); + for (int d=0; d < 3; d++) { + aCenter_f[d] /= sum_weights; + aCenter_m[d] /= sum_weights; + } + + //Subtract the centers-of-mass from the original coordinates for each object + for (size_t n=0; n < N; n++) { + for (int d=0; d < 3; d++) { + // shift the coordinates so that the new center of mass is at the origin + aaXf_shifted[n][d] = aaXf[n][d] - aCenter_f[d]; + aaXm_shifted[n][d] = aaXm[n][d] - aCenter_m[d]; + } + } + + // Calculate the "M" array from the Diamond paper (equation 16) + Scalar M[3][3]; + for (int i=0; i < 3; i++) + for (int j=0; j < 3; j++) + M[i][j] = 0.0; + + for (size_t n=0; n < N; n++) { + Scalar weight = aWeights[n]; + for (int i=0; i < 3; i++) { + for (int j=0; j < 3; j++) { + M[i][j] += weight * aaXm_shifted[n][i] * aaXf_shifted[n][j]; + } + } + } + + // Calculate Q (equation 17) + Scalar traceM = 0.0; + for (int i=0; i < 3; i++) + traceM += M[i][i]; + Scalar Q[3][3]; + for (int i=0; i < 3; i++) { + for (int j=0; j < 3; j++) { + Q[i][j] = M[i][j] + M[j][i]; + if (i==j) + Q[i][j] -= 2.0 * traceM; + } + } + + // Calculate V (equation 18) + Scalar V[3]; + V[0] = M[1][2] - M[2][1]; + V[1] = M[2][0] - M[0][2]; + V[2] = M[0][1] - M[1][0]; + + // Calculate "P" (equation 22) + // First we must allocate space for the P matrix. It's not safe to declare: + // Scalar P[4][4]; + // ...because most matrix solvers expect arrays in pointer-to-pointer format. + // (a different format). Below I create a fixed size matrix P in this format. + Scalar _P[4*4]; // Contiguous 1D array for storing contents of the 2D P array + Scalar *P[4]; // This version of P has has ** (pointer-to-pointer) format. + for (int i=0; i < 4; i++) // We must make sure that + P[i] = &(_P[4*i]); // P[i] points to the appropriate location in memory + + // Now fill the P array + for (int i=0; i < 3; i++) + for (int j=0; j < 3; j++) + P[i][j] = Q[i][j]; + P[0][3] = V[0]; + P[3][0] = V[0]; + P[1][3] = V[1]; + P[3][1] = V[1]; + P[2][3] = V[2]; + P[3][2] = V[2]; + P[3][3] = 0.0; + + // The vector "p" contains the optimal rotation (backwards quaternion format) + Scalar p[4] = {0.0, 0.0, 0.0, 1.0}; // default value + Scalar pPp = 0.0; // = p^T * P * p (zero by default) + Scalar rmsd = 0.0; // default value + + bool singular = N<2; // (it doesn't make sense to rotate a single point) + + if (! singular) { + // Calculate the principal eigenvalue and eigenvector of matrix P. + // Store the principal eigenvector in "p" + // The vector "p" will contain the optimal rotation (in quaternion format) + + Scalar Evl[4]; // Store the eigenvalues of P here. + Scalar *Evc[4]; // Store the eigevectors here. This version has ** format. + Scalar _Evc[4*4]; // Contiguous 1D array for storing contents of "Evc" array + for (int i=0; i < 4; i++) // We must make sure that + Evc[i] = &(_Evc[4*i]); // Evc[i] points to the correct location in memory + + eigen_calc.Diagonalize(P, Evl, Evc); + + // Note: The eigenvalues are sorted in decreasing order by default. + pPp = Evl[0]; // = the maximum eigenvalue of P + for (int i=0; i < 4; i++) + p[i] = Evc[0][i]; //copy eigenvector corresponding to this eigenvalue to p + } //if (! singular) + + // Now normalize p + Scalar pnorm = 0.0; + for (int i=0; i < 4; i++) + pnorm += p[i]*p[i]; + pnorm = sqrt(pnorm); + for (int i=0; i < 4; i++) + p[i] /= pnorm; + + // Finally, calculate the rotation matrix corresponding to "p" + // (convert a quaternion into a 3x3 rotation matrix) + + R[0][0] = (p[0]*p[0])-(p[1]*p[1])-(p[2]*p[2])+(p[3]*p[3]); + R[1][1] = -(p[0]*p[0])+(p[1]*p[1])-(p[2]*p[2])+(p[3]*p[3]); + R[2][2] = -(p[0]*p[0])-(p[1]*p[1])+(p[2]*p[2])+(p[3]*p[3]); + R[0][1] = 2*(p[0]*p[1] - p[2]*p[3]); + R[1][0] = 2*(p[0]*p[1] + p[2]*p[3]); + R[1][2] = 2*(p[1]*p[2] - p[0]*p[3]); + R[2][1] = 2*(p[1]*p[2] + p[0]*p[3]); + R[0][2] = 2*(p[0]*p[2] + p[1]*p[3]); + R[2][0] = 2*(p[0]*p[2] - p[1]*p[3]); + + q[0] = p[3]; // Note: The "p" variable is not a quaternion in the + q[1] = p[0]; // conventional sense because its elements + q[2] = p[1]; // are in the wrong order. I correct for that here. + q[3] = p[2]; // "q" is the quaternion correspond to rotation R. + + // Optional: Decide the scale factor, c + c = 1.0; // by default, don't rescale the coordinates + + if ((allow_rescale) && (! singular)) { + Scalar Waxaixai = 0.0; + Scalar WaxaiXai = 0.0; + for (size_t a=0; a < N; a++) { + Scalar weight = aWeights[a]; + for (int i=0; i < 3; i++) { + Waxaixai += weight * aaXm_shifted[a][i] * aaXm_shifted[a][i]; + WaxaiXai += weight * aaXm_shifted[a][i] * aaXf_shifted[a][i]; + } + } + c = (WaxaiXai + pPp) / Waxaixai; + + } // if (allow_rescale) + + // Finally compute the RMSD between the two coordinate sets: + // First compute E0 from equation 24 of the paper + Scalar E0 = 0.0; + for (size_t n=0; n < N; n++) { + Scalar weight = aWeights[n]; + for (int d=0; d < 3; d++) + // (remember to include the scale factor "c" that we inserted) + E0 += weight * (SQR(aaXf_shifted[n][d] - c*aaXm_shifted[n][d])); + } + Scalar sum_sqr_dist = E0 - c*2.0*pPp; + if (sum_sqr_dist < 0.0) //(edge case due to rounding error) + sum_sqr_dist = 0.0; + + if (! singular) + rmsd = sqrt(sum_sqr_dist/sum_weights); + + // Lastly, calculate the translational offset. + // If c!=1, this is slightly more complicated than it seems. Recall that: + //RMSD=sqrt((Sum_i w_i * |X_i - Sum_j(c*R_ij*x_j + T_i))|^2) / (Sum_j w_j)) + // =sqrt((Sum_i w_i * |X_i - x_i')|^2) / (Sum_j w_j)) + // where + // x_i' = Sum_j(c*R_ij*x_j) + T_i + // = Xcm_i + c*R_ij*(x_j - xcm_j) + // and Xcm and xcm = center_of_mass for the frozen and mobile point clouds + // + // Hence: + // T_i = Xcm_i - Sum_j c*R_ij*xcm_j + // In the code, Xcm_i is represented by "aCenter_f[i]" + // and xcm_j is represented by "aCenter_m[j]" + + for (int i=0; i < 3; i++) { + T[i] = aCenter_f[i]; + for (int j=0; j < 3; j++) { + T[i] -= c*R[i][j]*aCenter_m[j]; + } + } + + return rmsd; + +} //Superpose3D::Superpose(aaXf, aaXm, allow_rescale) + + +template +void Superpose3D:: +SetNumPoints(size_t N) { + Dealloc(); + Alloc(N); +} + +template +void Superpose3D:: +SetWeights(ConstArray aWeights) { + for (size_t i = 0; i < N; i++) + this->aWeights[i] = aWeights[i]; +} + +template +Superpose3D::Superpose3D(size_t N) + :eigen_calc(4) +{ + Init(); + Alloc(N); +} + +template +Superpose3D:: +Superpose3D(size_t N, ConstArray aWeights) + :eigen_calc(4) +{ + Init(); + Alloc(N); + SetWeights(aWeights); +} + +template +Superpose3D::~Superpose3D() { + Dealloc(); +} + +template +void Superpose3D:: +Init() { + R = nullptr; + aWeights = nullptr; + aaXf_shifted = nullptr; + aaXm_shifted = nullptr; +} + +// memory management: + +template +void Superpose3D:: +Alloc(size_t N) { + this->N = N; + aWeights = new Scalar [N]; + for (size_t i = 0; i < N; i++) + aWeights[i] = 1.0 / N; + Alloc2D(3, 3, &R); + Alloc2D(N, 3, &aaXf_shifted); + Alloc2D(N, 3, &aaXm_shifted); +} + +template +void Superpose3D:: +Dealloc() { + if (R) + Dealloc2D(&R); + if (aWeights) + delete [] aWeights; + if (aaXf_shifted) + Dealloc2D(&aaXf_shifted); + if (aaXm_shifted) + Dealloc2D(&aaXm_shifted); +} + +// memory management: copy and move constructor, swap, and assignment operator: + +template +Superpose3D:: +Superpose3D(const Superpose3D& source) + :eigen_calc(4) +{ + Init(); + Alloc(source.N); + assert(N == source.N); + for (int i = 0; i < N; i++) { + std::copy(source.aaXf_shifted[i], + source.aaXf_shifted[i] + 3, + aaXf_shifted[i]); + std::copy(source.aaXm_shifted[i], + source.aaXm_shifted[i] + 3, + aaXm_shifted[i]); + } +} + +template +void Superpose3D:: +swap(Superpose3D &other) { + std::swap(N, other.N); + std::swap(R, other.R); + std::swap(aaXf_shifted, other.aaXf_shifted); + std::swap(aaXm_shifted, other.aaXm_shifted); +} + +// Move constructor (C++11) +template +Superpose3D:: +Superpose3D(Superpose3D&& other) { + Init(); + swap(*this, other); +} + +// Using the "copy-swap" idiom for the assignment operator +template +Superpose3D& +Superpose3D:: +operator = (Superpose3D source) { + this->swap(source); + return *this; +} + + +} //namespace superposed3d + + + +#endif //#ifndef _SUPERPOSE3D_H -- GitLab From 8d0cb2a70aab0c80cd19842f13a71e951018bc1f Mon Sep 17 00:00:00 2001 From: Andrew Jewett Date: Mon, 23 Mar 2020 14:19:04 -0700 Subject: [PATCH 002/165] removed the "superpose3d" namespace, and renamed "namespace math_eigen" to "namespace MathEigen" (to imitate the style used in "math_extra.h"). --- src/USER-MISC/math_eigen.h | 6 ++++-- src/USER-MISC/superpose3d.h | 10 +--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/USER-MISC/math_eigen.h b/src/USER-MISC/math_eigen.h index e851cb6a09..0e90c28773 100644 --- a/src/USER-MISC/math_eigen.h +++ b/src/USER-MISC/math_eigen.h @@ -49,11 +49,13 @@ #include #include -namespace math_eigen { +namespace MathEigen { // --- Memory allocation for matrices --- /// @brief Allocate an arbitrary 2-dimensional array. (Uses row-major order.) +/// @note This function was intended for relatively small matrices (eg 4x4). +/// For large arrays, please use the 2d create() function from "memory.h" template void Alloc2D(size_t nrows, //!< size of the array (number of rows) size_t ncols, //!< size of the array (number of columns) @@ -1372,7 +1374,7 @@ PrincipalEigen(ConstMatrix matrix, } -} //namespace math_eigen +} //namespace MathEigen #endif //#ifndef _MATH_EIGEN_H diff --git a/src/USER-MISC/superpose3d.h b/src/USER-MISC/superpose3d.h index 370b0c0826..480ce6fe2e 100644 --- a/src/USER-MISC/superpose3d.h +++ b/src/USER-MISC/superpose3d.h @@ -27,10 +27,6 @@ #include "math_eigen.h" //functions to calculate eigenvalues and eigenvectors -namespace superpose3d { - -using namespace math_eigen; - // ----------------------------------------------------------- // ------------------------ INTERFACE ------------------------ // ----------------------------------------------------------- @@ -46,7 +42,7 @@ class Superpose3D { private: size_t N; //number of points in the point clouds Scalar *aWeights; //weights applied to points when computing RMSD - Jacobi eigen_calc; // calculates eigenvectors + MathEigen::Jacobi eigen_calc; // calc eigenvectors Scalar **aaXf_shifted; //preallocated space for fixed point cloud (Nx3 array) Scalar **aaXm_shifted; //preallocated space for mobile point cloud (Nx3 array) @@ -467,8 +463,4 @@ operator = (Superpose3D source) { } -} //namespace superposed3d - - - #endif //#ifndef _SUPERPOSE3D_H -- GitLab From 94e5e8de766833e4d642e71947b932f325717c6f Mon Sep 17 00:00:00 2001 From: mrcdr Date: Fri, 3 Apr 2020 01:23:30 +0900 Subject: [PATCH 003/165] modified the "math_eigen.h" file to track the commit 9cdfcac069335e5a4c5341e0df2ef17585b59236 --- src/USER-MISC/math_eigen.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/USER-MISC/math_eigen.h b/src/USER-MISC/math_eigen.h index 0e90c28773..526463895b 100644 --- a/src/USER-MISC/math_eigen.h +++ b/src/USER-MISC/math_eigen.h @@ -13,7 +13,7 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- Contributing authors: Yuya Kurebayashi (Tohoku University, Lanczos algorithm) - Andrew Jewett (Scripps Research, Jacobi algorith) + Andrew Jewett (Scripps Research, Jacobi algorithm) ------------------------------------------------------------------------- */ #ifndef _MATH_EIGEN_H -- GitLab From 6a68715d7bf7fb091f71f87c37860b2311aafcbe Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Fri, 26 Jun 2020 23:33:40 -0600 Subject: [PATCH 004/165] bond/react:RMSD constraint --- src/USER-REACTION/fix_bond_react.cpp | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 6ba5d1ce49..77be72c47d 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -41,6 +41,7 @@ Contributing Author: Jacob Gissinger (jacob.gissinger@colorado.edu) #include "error.h" #include "input.h" #include "variable.h" +#include "superpose3d.h" #include @@ -1875,6 +1876,45 @@ int FixBondReact::check_constraints() prrhob = constraints[i][3]*pow(t,constraints[i][4])* exp(-constraints[i][5]/(force->boltz*t)); if (prrhob < rrhandom[(int) constraints[i][2]]->uniform()) return 0; + } else if (constraints[i][1] == RMSD) { + // call superpose + int n2superpose = 0; + double **xfrozen; // coordinates for the "frozen" target molecule + double **xmobile; // coordinates for the "mobile" molecule + int ifragment = constraints[i][3]; + if (ifragment >= 0) { + printf("made it\n" ); + for (int j = 0; j < onemol->natoms; j++) + if (onemol->fragmentmask[ifragment][j]) n2superpose++; + memory->create(xfrozen,n2superpose,3,"bond/react:xfrozen"); + memory->create(xmobile,n2superpose,3,"bond/react:xmobile"); + int myincr = 0; + for (int j = 0; j < onemol->natoms; j++) { + if (onemol->fragmentmask[ifragment][j]) { + for (int k = 0; k < 3; k++) { + xfrozen[myincr][k] = x[atom->map(glove[j][1])][k]; + xmobile[myincr][k] = onemol->x[j][k]; + } + myincr++; + } + } + } else { + n2superpose = onemol->natoms; + memory->create(xfrozen,n2superpose,3,"bond/react:xfrozen"); + memory->create(xmobile,n2superpose,3,"bond/react:xmobile"); + for (int j = 0; j < n2superpose; j++) { + for (int k = 0; k < 3; k++) { + xfrozen[j][k] = x[atom->map(glove[j][1])][k]; + xmobile[j][k] = onemol->x[j][k]; + } + } + } + Superpose3D superposer(n2superpose); + double rmsd = superposer.Superpose(xfrozen, xmobile); + printf("rmsd %g %d\n", rmsd,n2superpose); + if (rmsd > constraints[i][2]) return 0; + memory->destroy(xfrozen); + memory->destroy(xmobile); } } } @@ -3337,6 +3377,17 @@ void FixBondReact::Constraints(char *line, int myrxn) constraints[nconstraints][4] = tmp[1]; constraints[nconstraints][5] = tmp[2]; constraints[nconstraints][6] = tmp[3]; + } else if (strcmp(constraint_type,"RMSD") == 0) { + constraints[nconstraints][1] = RMSD; + strcpy(strargs[0],"0"); + sscanf(line,"%*s %lg %s",&tmp[0],strargs[0]); + constraints[nconstraints][2] = tmp[0]; // RMSDmax + constraints[nconstraints][3] = -1; // optional molecule fragment + if (isalpha(strargs[0][0])) { + int ifragment = onemol->findfragment(strargs[0]); + if (ifragment < 0) error->one(FLERR,"Bond/react: Molecule fragment does not exist"); + else constraints[nconstraints][3] = ifragment; + } } else error->one(FLERR,"Bond/react: Illegal constraint type in 'Constraints' section of map file"); nconstraints++; -- GitLab From b75d9b8224b83e7de1a92dd1fde5e15865af875f Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Fri, 26 Jun 2020 23:43:08 -0600 Subject: [PATCH 005/165] bond/react: RMSD constraint docs --- doc/src/fix_bond_react.rst | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) mode change 100644 => 100755 doc/src/fix_bond_react.rst diff --git a/doc/src/fix_bond_react.rst b/doc/src/fix_bond_react.rst old mode 100644 new mode 100755 index d5f917bfdb..54422d61a1 --- a/doc/src/fix_bond_react.rst +++ b/doc/src/fix_bond_react.rst @@ -300,8 +300,8 @@ either 'none' or 'charges.' Further details are provided in the discussion of the 'update_edges' keyword. The fifth optional section begins with the keyword 'Constraints' and lists additional criteria that must be satisfied in order for the reaction to occur. Currently, -there are four types of constraints available, as discussed below: -'distance', 'angle', 'dihedral', and 'arrhenius'. +there are five types of constraints available, as discussed below: +'distance', 'angle', 'dihedral', 'arrhenius', and 'RMSD'. A sample map file is given below: @@ -421,6 +421,24 @@ temperature calculations. A uniform random number between 0 and 1 is generated using *seed*\ ; if this number is less than the result of the Arrhenius equation above, the reaction is permitted to occur. +The constraint of type 'RMSD' has the following syntax: + +.. parsed-literal:: + + RMSD *RMSDmax* *molfragment* + +where 'RMSD' is the required keyword, and *RMSDmax* is the maximum +root-mean-square deviation between atom positions of the pre-reaction +template and the local reaction site, after optimal translation and +rotation of the pre-reaction template. Optionally, a molecule fragment +(of the pre-reaction template) can be specified by *molfragment*\ . +Only atoms that are part of this molecule fragment are used to +determine the RMSD. A molecule fragment must have been defined in the +:doc:`molecule ` command for the pre-reaction template. For +example, the molecule fragment could consist of only the backbone +atoms of a polymer chain. This constraint can be used to enforce a +specific relative position and orientation between reacting molecules. + Once a reaction site has been successfully identified, data structures within LAMMPS that store bond topology are updated to reflect the post-reacted molecule template. All force fields with fixed bonds, -- GitLab From a6cd4a935ebda9328a5c8fa2d134423f5885d707 Mon Sep 17 00:00:00 2001 From: "Jibril B. Coulibaly" Date: Sat, 27 Jun 2020 01:17:46 -0500 Subject: [PATCH 006/165] Replace accumulated displacement by accumulated force for tangential force in styles mindlin and mindlin_rescale. Change documentation accordingly --- doc/src/pair_granular.rst | 61 +++++++++++++++++++----------- src/GRANULAR/pair_granular.cpp | 69 +++++++++++++++++++++++----------- 2 files changed, 87 insertions(+), 43 deletions(-) diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index ee90d1537a..a8509a6019 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -93,7 +93,7 @@ on particle *i* due to contact with particle *j* is given by: .. math:: - \mathbf{F}_{ne, Hooke} = k_N \delta_{ij} \mathbf{n} + \mathbf{F}_{ne, Hooke} = k_n \delta_{ij} \mathbf{n} Where :math:`\delta_{ij} = R_i + R_j - \|\mathbf{r}_{ij}\|` is the particle overlap, :math:`R_i, R_j` are the particle radii, :math:`\mathbf{r}_{ij} = \mathbf{r}_i - \mathbf{r}_j` is the vector separating the two @@ -106,7 +106,7 @@ For the *hertz* model, the normal component of force is given by: .. math:: - \mathbf{F}_{ne, Hertz} = k_N R_{eff}^{1/2}\delta_{ij}^{3/2} \mathbf{n} + \mathbf{F}_{ne, Hertz} = k_n R_{eff}^{1/2}\delta_{ij}^{3/2} \mathbf{n} Here, :math:`R_{eff} = \frac{R_i R_j}{R_i + R_j}` is the effective radius, denoted for simplicity as *R* from here on. For *hertz*\ , the @@ -123,7 +123,7 @@ Here, :math:`E_{eff} = E = \left(\frac{1-\nu_i^2}{E_i} + \frac{1-\nu_j^2}{E_j}\r modulus, with :math:`\nu_i, \nu_j` the Poisson ratios of the particles of types *i* and *j*\ . Note that if the elastic modulus and the shear modulus of the two particles are the same, the *hertz/material* model -is equivalent to the *hertz* model with :math:`k_N = 4/3 E_{eff}` +is equivalent to the *hertz* model with :math:`k_n = 4/3 E_{eff}` The *dmt* model corresponds to the :ref:`(Derjaguin-Muller-Toporov) ` cohesive model, where the force @@ -268,7 +268,7 @@ coefficient, and :math:`k_t` is the tangential stiffness coefficient. For *tangential linear_nohistory*, a simple velocity-dependent Coulomb friction criterion is used, which mimics the behavior of the *pair -gran/hooke* style. The tangential force (\mathbf{F}_t\) is given by: +gran/hooke* style. The tangential force :math:`\mathbf{F}_t` is given by: .. math:: @@ -294,8 +294,8 @@ keyword also affects the tangential damping. The parameter literature use :math:`x_{\gamma,t} = 1` (:ref:`Marshall `, :ref:`Tsuji et al `, :ref:`Silbert et al `). The relative tangential velocity at the point of contact is given by -:math:`\mathbf{v}_{t, rel} = \mathbf{v}_{t} - (R_i\Omega_i + R_j\Omega_j) \times \mathbf{n}`, where :math:`\mathbf{v}_{t} = \mathbf{v}_r - \mathbf{v}_r\cdot\mathbf{n}{n}`, -:math:`\mathbf{v}_r = \mathbf{v}_j - \mathbf{v}_i`. +:math:`\mathbf{v}_{t, rel} = \mathbf{v}_{t} - (R_i\mathbf{\Omega}_i + R_j\mathbf{\Omega}_j) \times \mathbf{n}`, where :math:`\mathbf{v}_{t} = \mathbf{v}_r - \mathbf{v}_r\cdot\mathbf{n}\mathbf{n}`, +:math:`\mathbf{v}_r = \mathbf{v}_j - \mathbf{v}_i` . The direction of the applied force is :math:`\mathbf{t} = \mathbf{v_{t,rel}}/\|\mathbf{v_{t,rel}}\|` . The normal force value :math:`F_{n0}` used to compute the critical force @@ -319,10 +319,11 @@ form: Where :math:`F_{pulloff} = 3\pi \gamma R` for *jkr*\ , and :math:`F_{pulloff} = 4\pi \gamma R` for *dmt*\ . -The remaining tangential options all use accumulated tangential -displacement (i.e. contact history). This is discussed below in the -context of the *linear_history* option, but the same treatment of the -accumulated displacement applies to the other options as well. +The remaining tangential options all use accumulated tangential displacement, +or accumulated tangential force (i.e. contact history). This is discussed +in details below for accumulated tangential displacement in the context +of the *linear_history* option. The same treatment of the accumulated +displacement, or accumulated force, applies to the other options as well. For *tangential linear_history*, the tangential force is given by: @@ -372,7 +373,7 @@ discussion): .. math:: - \mathbf{\xi} = -\frac{1}{k_t}\left(\mu_t F_{n0}\mathbf{t} + \mathbf{F}_{t,damp}\right) + \mathbf{\xi} = -\frac{1}{k_t}\left(\mu_t F_{n0}\mathbf{t} - \mathbf{F}_{t,damp}\right) The tangential force is added to the total normal force (elastic plus damping) to produce the total force on the particle. The tangential @@ -387,35 +388,51 @@ overlap region) to induce a torque on each particle according to: \mathbf{\tau}_j = -(R_j - 0.5 \delta) \mathbf{n} \times \mathbf{F}_t -For *tangential mindlin*\ , the :ref:`Mindlin ` no-slip solution is used, which differs from the *linear_history* -option by an additional factor of *a*\ , the radius of the contact region. The tangential force is given by: +For *tangential mindlin*\ , the :ref:`Mindlin ` no-slip solution +is used which differs from the *linear_history* option by an additional factor +of *a*\ , the radius of the contact region. The tangential stiffness depends +on the radius of the contact region and the force must therefore be computed +incrementally. The accumulated tangential force characterizes the contact history. +The increment of the elastic component of the tangential force :math:`\mathbf{F}_{te}` +is given by: .. math:: - \mathbf{F}_t = -min(\mu_t F_{n0}, \|-k_t a \mathbf{\xi} + \mathbf{F}_\mathrm{t,damp}\|) \mathbf{t} + \mathrm{d}\mathbf{F}_{te} = -k_t a \mathbf{v}_{t,rel} \mathrm{d}\tau + +The tangential force is given by: + +.. math:: + + \mathbf{F}_t = -min(\mu_t F_{n0}, \|\mathbf{F}_{te} + \mathbf{F}_\mathrm{t,damp}\|) \mathbf{t} Here, *a* is the radius of the contact region, given by :math:`a =\sqrt{R\delta}` for all normal contact models, except for *jkr*\ , where it is given implicitly by :math:`\delta = a^2/R - 2\sqrt{\pi \gamma a/E}`, see -discussion above. To match the Mindlin solution, one should set :math:`k_t = 4G/(2-\nu)`, where :math:`G` is the shear modulus, related to Young's modulus -:math:`E` by :math:`G = E/(2(1+\nu))`, where :math:`\nu` is Poisson's ratio. This -can also be achieved by specifying *NULL* for :math:`k_t`, in which case a +discussion above. To match the Mindlin solution, one should set +:math:`k_t = 8G_{eff}`, where :math:`G` is the effective shear modulus given by: + +.. math:: + + G_{eff} = \left(\frac{2-\nu_i}{G_i} + \frac{2-\nu_j}{G_j}\right)^{-1} + +where :math:`G` is the shear modulus, related to Young's modulus :math:`E` +and Poisson's ratio :math:`\nu` by :math:`G = E/(2(1+\nu))`. This can also be +achieved by specifying *NULL* for :math:`k_t`, in which case a normal contact model that specifies material parameters :math:`E` and :math:`\nu` is required (e.g. *hertz/material*\ , *dmt* or *jkr*\ ). In this case, mixing of the shear modulus for different particle types *i* and -*j* is done according to: +*j* is done according to the formula above. -.. math:: - 1/G = 2(2-\nu_i)(1+\nu_i)/E_i + 2(2-\nu_j)(1+\nu_j)/E_j The *mindlin_rescale* option uses the same form as *mindlin*\ , but the -magnitude of the tangential displacement is re-scaled as the contact +magnitude of the tangential force is re-scaled as the contact unloads, i.e. if :math:`a < a_{t_{n-1}}`: .. math:: - \mathbf{\xi} = \mathbf{\xi_{t_{n-1}}} \frac{a}{a_{t_{n-1}}} + \mathbf{F}_{te} = \mathbf{F}_{te, t_{n-1}} \frac{a}{a_{t_{n-1}}} Here, :math:`t_{n-1}` indicates the value at the previous time step. This rescaling accounts for the fact that a decrease in the diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index fef8ded5f7..ece1e9e211 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -377,6 +377,9 @@ void PairGranular::compute(int eflag, int vflag) // tangential force, including history effects //**************************************** + // For linear forces, history = cumulative tangential displacement + // For nonlinear forces, history = cumulative elastic tangential force + // tangential component vt1 = vr1 - vn1; vt2 = vr2 - vn2; @@ -424,7 +427,7 @@ void PairGranular::compute(int eflag, int vflag) } else if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { k_tangential *= a; - // on unloading, rescale the shear displacements + // on unloading, rescale the shear force if (a < history[3]) { double factor = a/history[3]; history[0] *= factor; @@ -432,11 +435,11 @@ void PairGranular::compute(int eflag, int vflag) history[2] *= factor; } } - // rotate and update displacements. + // rotate and update displacements / force // see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235 if (historyupdate) { rsht = history[0]*nx + history[1]*ny + history[2]*nz; - if (fabs(rsht) < EPSILON) rsht = 0; + if (fabs(rsht) < EPSILON) rsht = 0; // EPSILON still valid when history is a force??? if (rsht > 0) { shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + history[2]*history[2]); @@ -451,18 +454,30 @@ void PairGranular::compute(int eflag, int vflag) history[1] *= scalefac; history[2] *= scalefac; } - // update history - history[0] += vtr1*dt; - history[1] += vtr2*dt; - history[2] += vtr3*dt; - if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) - history[3] = a; + // update tangential displacement / force history + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY) { + history[0] += vtr1*dt; + history[1] += vtr2*dt; + history[2] += vtr3*dt; + } else { // Eq. (18) Thornton et al., 2013 (http://dx.doi.org/10.1016/j.powtec.2012.08.012) + history[0] -= k_tangential*vtr1*dt; + history[1] -= k_tangential*vtr2*dt; + history[2] -= k_tangential*vtr3*dt; + if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) + history[3] = a; + } } // tangential forces = history + tangential velocity damping - fs1 = -k_tangential*history[0] - damp_tangential*vtr1; - fs2 = -k_tangential*history[1] - damp_tangential*vtr2; - fs3 = -k_tangential*history[2] - damp_tangential*vtr3; + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY) { + fs1 = -k_tangential*history[0] - damp_tangential*vtr1; + fs2 = -k_tangential*history[1] - damp_tangential*vtr2; + fs3 = -k_tangential*history[2] - damp_tangential*vtr3; + } else { + fs1 = history[0] - damp_tangential*vtr1; + fs2 = history[1] - damp_tangential*vtr2; + fs3 = history[2] - damp_tangential*vtr3; + } // rescale frictional displacements and forces if needed fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3); @@ -470,12 +485,18 @@ void PairGranular::compute(int eflag, int vflag) shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + history[2]*history[2]); if (shrmag != 0.0) { - history[0] = -1.0/k_tangential*(Fscrit*fs1/fs + - damp_tangential*vtr1); - history[1] = -1.0/k_tangential*(Fscrit*fs2/fs + - damp_tangential*vtr2); - history[2] = -1.0/k_tangential*(Fscrit*fs3/fs + - damp_tangential*vtr3); + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY) { + history[0] = -1.0/k_tangential*(Fscrit*fs1/fs + + damp_tangential*vtr1); + history[1] = -1.0/k_tangential*(Fscrit*fs2/fs + + damp_tangential*vtr2); + history[2] = -1.0/k_tangential*(Fscrit*fs3/fs + + damp_tangential*vtr3); + } else { + history[0] = Fscrit*fs1/fs + damp_tangential*vtr1; + history[1] = Fscrit*fs2/fs + damp_tangential*vtr2; + history[2] = Fscrit*fs3/fs + damp_tangential*vtr3; + } fs1 *= Fscrit/fs; fs2 *= Fscrit/fs; fs3 *= Fscrit/fs; @@ -1534,9 +1555,15 @@ double PairGranular::single(int i, int j, int itype, int jtype, history[2]*history[2]); // tangential forces = history + tangential velocity damping - fs1 = -k_tangential*history[0] - damp_tangential*vtr1; - fs2 = -k_tangential*history[1] - damp_tangential*vtr2; - fs3 = -k_tangential*history[2] - damp_tangential*vtr3; + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY) { + fs1 = -k_tangential*history[0] - damp_tangential*vtr1; + fs2 = -k_tangential*history[1] - damp_tangential*vtr2; + fs3 = -k_tangential*history[2] - damp_tangential*vtr3; + } else { + fs1 = history[0] - damp_tangential*vtr1; + fs2 = history[1] - damp_tangential*vtr2; + fs3 = history[2] - damp_tangential*vtr3; + } // rescale frictional forces if needed fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3); -- GitLab From 57f639c0e535b781738bd394abcae45f2a0d8064 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 12:42:47 -0600 Subject: [PATCH 007/165] bond/react:reset_mol_ids keyword --- src/USER-REACTION/fix_bond_react.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 2c6c20c844..c908526067 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -144,7 +144,8 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : int iarg = 3; stabilization_flag = 0; - int num_common_keywords = 1; + reset_mol_ids_flag = 1; + int num_common_keywords = 2; for (int m = 0; m < num_common_keywords; m++) { if (strcmp(arg[iarg],"stabilization") == 0) { if (strcmp(arg[iarg+1],"no") == 0) { @@ -162,6 +163,14 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : nve_limit_xmax = arg[iarg+3]; iarg += 4; } + } else if (strcmp(arg[iarg],"reset_mol_ids") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " + "'reset_mol_ids' keyword has too few arguments"); + if (strcmp(arg[iarg+1],"yes") == 0) iarg += 2; //default + if (strcmp(arg[iarg+1],"no") == 0) { + reset_mol_ids_flag = 0; + iarg += 2; + } } else if (strcmp(arg[iarg],"react") == 0) { break; } else error->all(FLERR,"Illegal fix bond/react command: unknown keyword"); @@ -2503,11 +2512,14 @@ void FixBondReact::ghost_glovecast() } /* ---------------------------------------------------------------------- -update charges, types, special lists and all topology +update molecule IDs, charges, types, special lists and all topology ------------------------------------------------------------------------- */ void FixBondReact::update_everything() { + if (reset_mol_ids_flag) + input->one("reset_mol_ids " + std::string(group->names[igroup])); + int *type = atom->type; int nlocal = atom->nlocal; -- GitLab From 371a5c5b6156de97ba992b46304b84be2888d47b Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 12:44:34 -0600 Subject: [PATCH 008/165] bond/react: reset_mol_ids docs --- doc/src/fix_bond_react.rst | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/doc/src/fix_bond_react.rst b/doc/src/fix_bond_react.rst index d5f917bfdb..d1671d7c78 100644 --- a/doc/src/fix_bond_react.rst +++ b/doc/src/fix_bond_react.rst @@ -14,19 +14,22 @@ Syntax react react-ID react-group-ID Nevery Rmin Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ... ... -* ID, group-ID are documented in :doc:`fix ` command. Group-ID is ignored. +* ID, group-ID are documented in :doc:`fix ` command. * bond/react = style name of this fix command * the common keyword/values may be appended directly after 'bond/react' * this applies to all reaction specifications (below) -* common_keyword = *stabilization* +* common_keyword = *stabilization* or *reset_mol_ids* .. parsed-literal:: *stabilization* values = *no* or *yes* *group-ID* *xmax* - *no* = no reaction site stabilization + *no* = no reaction site stabilization (default) *yes* = perform reaction site stabilization *group-ID* = user-assigned prefix for the dynamic group of atoms not currently involved in a reaction *xmax* = xmax value that is used by an internally-created :doc:`nve/limit ` integrator + *reset_mol_ids* values = *yes* or *no* + *yes* = update molecule IDs based on new global topology (default) + *no* = do not update molecule IDs * react = mandatory argument indicating new reaction specification * react-ID = user-assigned name for the reaction @@ -50,9 +53,9 @@ Syntax *stabilize_steps* value = timesteps timesteps = number of timesteps to apply the internally-created :doc:`nve/limit ` fix to reacting atoms *update_edges* value = *none* or *charges* or *custom* - none = do not update topology near the edges of reaction templates - charges = update atomic charges of all atoms in reaction templates - custom = force the update of user-specified atomic charges + *none* = do not update topology near the edges of reaction templates + *charges* = update atomic charges of all atoms in reaction templates + *custom* = force the update of user-specified atomic charges Examples """""""" @@ -154,6 +157,13 @@ due to the internal dynamic grouping performed by fix bond/react. If the group-ID is an existing static group, react-group-IDs should also be specified as this static group, or a subset. +The *reset_mol_ids* keyword invokes the :doc:`reset_mol_ids ` +command after a reaction occurs, to ensure that molecule IDs are +consistent with the new bond topology. The group-ID used for +:doc:`reset_mol_ids ` is the group-ID for this fix. +Resetting molecule IDs is necessarily a global operation, and so can +be slow for very large systems. + The following comments pertain to each *react* argument (in other words, can be customized for each reaction, or reaction step): @@ -553,7 +563,7 @@ Default """"""" The option defaults are stabilization = no, prob = 1.0, stabilize_steps = 60, -update_edges = none +reset_mol_ids = yes, update_edges = none ---------- -- GitLab From da91f81d4062b4acad75c25af8523ea41edb91de Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 13:42:47 -0600 Subject: [PATCH 009/165] bond/react:doc clarification --- doc/src/fix_bond_react.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/fix_bond_react.rst b/doc/src/fix_bond_react.rst index d1671d7c78..82ab6beaa3 100644 --- a/doc/src/fix_bond_react.rst +++ b/doc/src/fix_bond_react.rst @@ -213,9 +213,9 @@ surrounding topology. As described below, the bonding atom pairs of the pre-reacted template are specified by atom ID in the map file. The pre-reacted molecule template should contain as few atoms as possible while still completely describing the topology of all atoms affected -by the reaction. For example, if the force field contains dihedrals, -the pre-reacted template should contain any atom within three bonds of -reacting atoms. +by the reaction (which includes all atoms that change atom type). For +example, if the force field contains dihedrals, the pre-reacted +template should contain any atom within three bonds of reacting atoms. Some atoms in the pre-reacted template that are not reacting may have missing topology with respect to the simulation. For example, the -- GitLab From 6272b7d2bf55e9b8637ae33591d9a0b19d29c5e7 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 13:52:13 -0600 Subject: [PATCH 010/165] add (undocumented) verbosity option to reset_mol_ids --- src/reset_mol_ids.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index e3cc877548..7f71aee0b4 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -56,6 +56,7 @@ void ResetMolIDs::command(int narg, char **arg) int compressflag = 1; int singleflag = 0; tagint offset = -1; + int verbose = 1; int iarg = 1; while (iarg < narg) { @@ -76,6 +77,10 @@ void ResetMolIDs::command(int narg, char **arg) offset = utils::tnumeric(FLERR,arg[iarg+1],1,lmp); if (offset < -1) error->all(FLERR,"Illegal reset_mol_ids command"); iarg += 2; + } else if (strcmp(arg[iarg],"verbose") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal reset_mol_ids command"); + verbose = utils::tnumeric(FLERR,arg[iarg+1],1,lmp); + iarg += 2; } else error->all(FLERR,"Illegal reset_mol_ids command"); } @@ -203,7 +208,7 @@ void ResetMolIDs::command(int narg, char **arg) MPI_Barrier(world); - if (comm->me == 0) { + if (verbose == 1 && comm->me == 0) { if (nchunk < 0) utils::logmesg(lmp,fmt::format(" number of new molecule IDs = unknown\n")); else -- GitLab From a2547701e6bec294d362685442b6252b033ddd5f Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 13:59:30 -0600 Subject: [PATCH 011/165] fix verbose reset_mol_ids --- src/reset_mol_ids.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index 7f71aee0b4..f62d1bf402 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -84,7 +84,7 @@ void ResetMolIDs::command(int narg, char **arg) } else error->all(FLERR,"Illegal reset_mol_ids command"); } - if (comm->me == 0) utils::logmesg(lmp,"Resetting molecule IDs ...\n"); + if (verbose == 1 && comm->me == 0) utils::logmesg(lmp,"Resetting molecule IDs ...\n"); // record wall time for resetting molecule IDs -- GitLab From e00b0e96f6a3162518ee05f48716dba3a3afe89e Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 14:00:46 -0600 Subject: [PATCH 012/165] bond/react: prevent reset_mol_ids printing --- src/USER-REACTION/fix_bond_react.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index c908526067..ea64fb5447 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -2518,7 +2518,7 @@ update molecule IDs, charges, types, special lists and all topology void FixBondReact::update_everything() { if (reset_mol_ids_flag) - input->one("reset_mol_ids " + std::string(group->names[igroup])); + input->one("reset_mol_ids " + std::string(group->names[igroup]) + " verbose 0"); int *type = atom->type; -- GitLab From 9ec5708f2fb878a2bfc8cc7b1cd02e2997a96430 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 14:21:10 -0600 Subject: [PATCH 013/165] Update reset_mol_ids.cpp --- src/reset_mol_ids.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index f62d1bf402..ff663ddf24 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -79,7 +79,7 @@ void ResetMolIDs::command(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"verbose") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal reset_mol_ids command"); - verbose = utils::tnumeric(FLERR,arg[iarg+1],1,lmp); + verbose = utils::inumeric(FLERR,arg[iarg+1],1,lmp); iarg += 2; } else error->all(FLERR,"Illegal reset_mol_ids command"); } -- GitLab From fe6efe8861e287510931835b64dba97bc010946e Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 14:29:39 -0600 Subject: [PATCH 014/165] need header file! --- src/USER-REACTION/fix_bond_react.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/USER-REACTION/fix_bond_react.h b/src/USER-REACTION/fix_bond_react.h index e8a4253ce7..01e8a5ee96 100644 --- a/src/USER-REACTION/fix_bond_react.h +++ b/src/USER-REACTION/fix_bond_react.h @@ -61,6 +61,7 @@ class FixBondReact : public Fix { int *max_rxn,*nlocalskips,*nghostlyskips; tagint lastcheck; int stabilization_flag; + int reset_mol_ids_flag; int custom_exclude_flag; int *stabilize_steps_flag; int *update_edges_flag; -- GitLab From edd3fb7108682a853dee3335f57bccf712af4c24 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 20:51:14 -0600 Subject: [PATCH 015/165] reset_mol_ids: documented verbose option --- doc/src/reset_mol_ids.rst | 9 +++++++-- src/USER-REACTION/fix_bond_react.cpp | 2 +- src/reset_mol_ids.cpp | 8 +++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/doc/src/reset_mol_ids.rst b/doc/src/reset_mol_ids.rst index 0d6063b3ef..9554ac86c2 100644 --- a/doc/src/reset_mol_ids.rst +++ b/doc/src/reset_mol_ids.rst @@ -19,6 +19,7 @@ Syntax *compress* value = *yes* or *no* *offset* value = *Noffset* >= -1 *single* value = *yes* or *no* to treat single atoms (no bonds) as molecules + *verbose* value = *yes* or *no* Examples """""""" @@ -95,6 +96,10 @@ is not *all* there may be collisions with the molecule IDs of other atoms. does not perform a full update of the bond topology data structures within LAMMPS. +The *verbose* keyword determines if this command outputs run-time +information to the screen and log file, including the number of new +molecule IDs and CPU time used by the command. + Restrictions """""""""""" none @@ -112,5 +117,5 @@ Related commands Default """"""" -The default keyword settings are compress = yes, single = no, and -offset = -1. +The default keyword settings are compress = yes, single = no, +verbose = yes, and offset = -1. diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index ea64fb5447..54e9720ea7 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -2518,7 +2518,7 @@ update molecule IDs, charges, types, special lists and all topology void FixBondReact::update_everything() { if (reset_mol_ids_flag) - input->one("reset_mol_ids " + std::string(group->names[igroup]) + " verbose 0"); + input->one("reset_mol_ids " + std::string(group->names[igroup]) + " verbose no"); int *type = atom->type; diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index ff663ddf24..7caa8f1e77 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -79,12 +79,14 @@ void ResetMolIDs::command(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"verbose") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal reset_mol_ids command"); - verbose = utils::inumeric(FLERR,arg[iarg+1],1,lmp); + if (strcmp(arg[iarg+1],"yes") == 0) verbose = 1; + else if (strcmp(arg[iarg+1],"no") == 0) verbose = 0; + else error->all(FLERR,"Illegal reset_mol_ids command"); iarg += 2; } else error->all(FLERR,"Illegal reset_mol_ids command"); } - if (verbose == 1 && comm->me == 0) utils::logmesg(lmp,"Resetting molecule IDs ...\n"); + if (verbose && (comm->me == 0)) utils::logmesg(lmp,"Resetting molecule IDs ...\n"); // record wall time for resetting molecule IDs @@ -208,7 +210,7 @@ void ResetMolIDs::command(int narg, char **arg) MPI_Barrier(world); - if (verbose == 1 && comm->me == 0) { + if (verbose && (comm->me == 0)) { if (nchunk < 0) utils::logmesg(lmp,fmt::format(" number of new molecule IDs = unknown\n")); else -- GitLab From 845b9185010b12b8a655c487f9d134d5acc45f52 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 20:59:17 -0600 Subject: [PATCH 016/165] probably better reset_mol_id doc version --- doc/src/reset_mol_ids.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/src/reset_mol_ids.rst b/doc/src/reset_mol_ids.rst index 9554ac86c2..d0e8bc179a 100644 --- a/doc/src/reset_mol_ids.rst +++ b/doc/src/reset_mol_ids.rst @@ -97,8 +97,10 @@ is not *all* there may be collisions with the molecule IDs of other atoms. within LAMMPS. The *verbose* keyword determines if this command outputs run-time -information to the screen and log file, including the number of new -molecule IDs and CPU time used by the command. +information to the screen and log file. If the setting is *yes* +(the default), the command prints out information including the number +of new molecule IDs and CPU time used by the command. If the setting +is *no*, no information is printed. Restrictions """""""""""" -- GitLab From 295d75f230d231f5a696fc5d9400a90a4f9f3883 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 18 Jul 2020 21:14:36 -0600 Subject: [PATCH 017/165] guess should reset_mol_IDs *after* updating bonds --- src/USER-REACTION/fix_bond_react.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 54e9720ea7..6ce19bf22a 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -2517,9 +2517,6 @@ update molecule IDs, charges, types, special lists and all topology void FixBondReact::update_everything() { - if (reset_mol_ids_flag) - input->one("reset_mol_ids " + std::string(group->names[igroup]) + " verbose no"); - int *type = atom->type; int nlocal = atom->nlocal; @@ -3054,6 +3051,10 @@ void FixBondReact::update_everything() atom->natoms -= ndel; // done deleting atoms + // reset mol ids + if (reset_mol_ids_flag) + input->one("reset_mol_ids " + std::string(group->names[igroup]) + " verbose no"); + // something to think about: this could done much more concisely if // all atom-level info (bond,angles, etc...) were kinda inherited from a common data struct --JG -- GitLab From cf83ce674548f4424166d095816f66f47ed17c30 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 25 Jul 2020 00:52:39 -0600 Subject: [PATCH 018/165] reset_mol_ids->reset() version --- doc/src/reset_mol_ids.rst | 11 +--- src/USER-REACTION/fix_bond_react.cpp | 13 ++++- src/USER-REACTION/fix_bond_react.h | 1 + src/reset_mol_ids.cpp | 84 +++++++++++++++------------- src/reset_mol_ids.h | 7 +++ 5 files changed, 66 insertions(+), 50 deletions(-) diff --git a/doc/src/reset_mol_ids.rst b/doc/src/reset_mol_ids.rst index d0e8bc179a..0d6063b3ef 100644 --- a/doc/src/reset_mol_ids.rst +++ b/doc/src/reset_mol_ids.rst @@ -19,7 +19,6 @@ Syntax *compress* value = *yes* or *no* *offset* value = *Noffset* >= -1 *single* value = *yes* or *no* to treat single atoms (no bonds) as molecules - *verbose* value = *yes* or *no* Examples """""""" @@ -96,12 +95,6 @@ is not *all* there may be collisions with the molecule IDs of other atoms. does not perform a full update of the bond topology data structures within LAMMPS. -The *verbose* keyword determines if this command outputs run-time -information to the screen and log file. If the setting is *yes* -(the default), the command prints out information including the number -of new molecule IDs and CPU time used by the command. If the setting -is *no*, no information is printed. - Restrictions """""""""""" none @@ -119,5 +112,5 @@ Related commands Default """"""" -The default keyword settings are compress = yes, single = no, -verbose = yes, and offset = -1. +The default keyword settings are compress = yes, single = no, and +offset = -1. diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 6ce19bf22a..16a9ca29f1 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -33,6 +33,7 @@ Contributing Author: Jacob Gissinger (jacob.gissinger@colorado.edu) #include "neigh_list.h" #include "neigh_request.h" #include "random_mars.h" +#include "reset_mol_ids.h" #include "molecule.h" #include "group.h" #include "citeme.h" @@ -92,6 +93,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : fix1 = NULL; fix2 = NULL; fix3 = NULL; + reset_mol_ids = NULL; if (narg < 8) error->all(FLERR,"Illegal fix bond/react command: " "too few arguments"); @@ -166,7 +168,11 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"reset_mol_ids") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " "'reset_mol_ids' keyword has too few arguments"); - if (strcmp(arg[iarg+1],"yes") == 0) iarg += 2; //default + if (strcmp(arg[iarg+1],"yes") == 0) { // default + delete reset_mol_ids; + reset_mol_ids = new ResetMolIDs(lmp); + iarg += 2; + } if (strcmp(arg[iarg+1],"no") == 0) { reset_mol_ids_flag = 0; iarg += 2; @@ -508,6 +514,8 @@ FixBondReact::~FixBondReact() } delete [] random; + delete reset_mol_ids; + memory->destroy(partner); memory->destroy(finalpartner); memory->destroy(ncreate); @@ -3052,8 +3060,7 @@ void FixBondReact::update_everything() // done deleting atoms // reset mol ids - if (reset_mol_ids_flag) - input->one("reset_mol_ids " + std::string(group->names[igroup]) + " verbose no"); + if (reset_mol_ids_flag) reset_mol_ids->reset(group->names[igroup]); // something to think about: this could done much more concisely if // all atom-level info (bond,angles, etc...) were kinda inherited from a common data struct --JG diff --git a/src/USER-REACTION/fix_bond_react.h b/src/USER-REACTION/fix_bond_react.h index 01e8a5ee96..1b98614064 100644 --- a/src/USER-REACTION/fix_bond_react.h +++ b/src/USER-REACTION/fix_bond_react.h @@ -94,6 +94,7 @@ class FixBondReact : public Fix { class RanMars **random; // random number for 'prob' keyword class RanMars **rrhandom; // random number for Arrhenius constraint class NeighList *list; + class ResetMolIDs *reset_mol_ids; // class for resetting mol IDs int *reacted_mol,*unreacted_mol; int *limit_duration; // indicates how long to relax diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index 7caa8f1e77..e6add7df9b 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -33,9 +33,15 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -ResetMolIDs::ResetMolIDs(LAMMPS *lmp) : Pointers(lmp) {} +ResetMolIDs::ResetMolIDs(LAMMPS *lmp) : Pointers(lmp) { + compressflag = 1; + singleflag = 0; + offset = -1; +} -/* ---------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + called as reset_mol_ids command in input script +------------------------------------------------------------------------- */ void ResetMolIDs::command(int narg, char **arg) { @@ -49,14 +55,7 @@ void ResetMolIDs::command(int narg, char **arg) // process args if (narg < 1) error->all(FLERR,"Illegal reset_mol_ids command"); - int igroup = group->find(arg[0]); - if (igroup == -1) error->all(FLERR,"Could not find reset_mol_ids group ID"); - int groupbit = group->bitmask[igroup]; - - int compressflag = 1; - int singleflag = 0; - tagint offset = -1; - int verbose = 1; + char *groupid = arg[0]; int iarg = 1; while (iarg < narg) { @@ -77,39 +76,61 @@ void ResetMolIDs::command(int narg, char **arg) offset = utils::tnumeric(FLERR,arg[iarg+1],1,lmp); if (offset < -1) error->all(FLERR,"Illegal reset_mol_ids command"); iarg += 2; - } else if (strcmp(arg[iarg],"verbose") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal reset_mol_ids command"); - if (strcmp(arg[iarg+1],"yes") == 0) verbose = 1; - else if (strcmp(arg[iarg+1],"no") == 0) verbose = 0; - else error->all(FLERR,"Illegal reset_mol_ids command"); - iarg += 2; } else error->all(FLERR,"Illegal reset_mol_ids command"); } - if (verbose && (comm->me == 0)) utils::logmesg(lmp,"Resetting molecule IDs ...\n"); + if (comm->me == 0) utils::logmesg(lmp,"Resetting molecule IDs ...\n"); // record wall time for resetting molecule IDs MPI_Barrier(world); double time1 = MPI_Wtime(); + // initialize system since comm->borders() will be invoked + + lmp->init(); + + // reset molecule IDs + + reset(groupid); + + // total time + + MPI_Barrier(world); + + if (comm->me == 0) { + if (nchunk < 0) + utils::logmesg(lmp,fmt::format(" number of new molecule IDs = unknown\n")); + else + utils::logmesg(lmp,fmt::format(" number of new molecule IDs = {}\n",nchunk)); + utils::logmesg(lmp,fmt::format(" reset_mol_ids CPU = {:.3f} seconds\n", + MPI_Wtime()-time1)); + } +} + +/* ---------------------------------------------------------------------- + called from command() and directly from fixes that update molecules +------------------------------------------------------------------------- */ + +void ResetMolIDs::reset(char *groupid) +{ + int igroup = group->find(groupid); + if (igroup == -1) error->all(FLERR,"Could not find reset_mol_ids group ID"); + int groupbit = group->bitmask[igroup]; + // create instances of compute fragment/atom, compute reduce (if needed), // and compute chunk/atom. all use the group-ID for this command const std::string idfrag = "reset_mol_ids_FRAGMENT_ATOM"; if (singleflag) - modify->add_compute(fmt::format("{} {} fragment/atom single yes",idfrag,arg[0])); + modify->add_compute(fmt::format("{} {} fragment/atom single yes",idfrag,groupid)); else - modify->add_compute(fmt::format("{} {} fragment/atom single no",idfrag,arg[0])); + modify->add_compute(fmt::format("{} {} fragment/atom single no",idfrag,groupid)); const std::string idchunk = "reset_mol_ids_CHUNK_ATOM"; if (compressflag) modify->add_compute(fmt::format("{} {} chunk/atom molecule compress yes", - idchunk,arg[0])); - - // initialize system since comm->borders() will be invoked - - lmp->init(); + idchunk,groupid)); // setup domain, communication // exchange will clear map, borders will reset @@ -145,7 +166,7 @@ void ResetMolIDs::command(int narg, char **arg) // if compressflag = 0, done // set nchunk = -1 since cannot easily determine # of new molecule IDs - int nchunk = -1; + nchunk = -1; // if compressflag = 1, invoke peratom method of compute chunk/atom // will compress new molecule IDs to be contiguous 1 to Nmol @@ -205,17 +226,4 @@ void ResetMolIDs::command(int narg, char **arg) modify->delete_compute(idfrag); if (compressflag) modify->delete_compute(idchunk); - - // total time - - MPI_Barrier(world); - - if (verbose && (comm->me == 0)) { - if (nchunk < 0) - utils::logmesg(lmp,fmt::format(" number of new molecule IDs = unknown\n")); - else - utils::logmesg(lmp,fmt::format(" number of new molecule IDs = {}\n",nchunk)); - utils::logmesg(lmp,fmt::format(" reset_mol_ids CPU = {:.3f} seconds\n", - MPI_Wtime()-time1)); - } } diff --git a/src/reset_mol_ids.h b/src/reset_mol_ids.h index 83c0b5d80f..cb7c472724 100644 --- a/src/reset_mol_ids.h +++ b/src/reset_mol_ids.h @@ -28,6 +28,13 @@ class ResetMolIDs : protected Pointers { public: ResetMolIDs(class LAMMPS *); void command(int, char **); + void reset(char *); + +private: + int nchunk; + int compressflag; // 1 = contiguous values for new IDs + int singleflag; // 0 = mol IDs of single atoms set to 0 + tagint offset; // offset for contiguous mol ID values }; } -- GitLab From bf724332d480d80578b1fd76e614c077a86fb831 Mon Sep 17 00:00:00 2001 From: "Jibril B. Coulibaly" Date: Mon, 10 Aug 2020 10:53:30 -0500 Subject: [PATCH 019/165] implement tangential force history in mindlin/force and mindlin_rescale/force --- doc/src/pair_granular.rst | 128 ++++++++++++++++++++++++--------- src/GRANULAR/pair_granular.cpp | 83 ++++++++++++++------- 2 files changed, 155 insertions(+), 56 deletions(-) diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index a8509a6019..ab735bdfde 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -140,7 +140,7 @@ where the force is computed as: \mathbf{F}_{ne, jkr} = \left(\frac{4Ea^3}{3R} - 2\pi a^2\sqrt{\frac{4\gamma E}{\pi a}}\right)\mathbf{n} -Here, *a* is the radius of the contact zone, related to the overlap +Here, :math:`a` is the radius of the contact zone, related to the overlap :math:`\delta` according to: .. math:: @@ -167,7 +167,7 @@ following general form: \mathbf{F}_{n,damp} = -\eta_n \mathbf{v}_{n,rel} -Here, :math:`\mathbf{v}_{n,rel} = (\mathbf{v}_j - \mathbf{v}_i) \cdot \mathbf{n} \mathbf{n}` is the component of relative velocity along +Here, :math:`\mathbf{v}_{n,rel} = (\mathbf{v}_j - \mathbf{v}_i) \cdot \mathbf{n}\ \mathbf{n}` is the component of relative velocity along :math:`\mathbf{n}`. The optional *damping* keyword to the *pair_coeff* command followed by @@ -259,7 +259,9 @@ tangential model choices and their expected parameters are as follows: 1. *linear_nohistory* : :math:`x_{\gamma,t}`, :math:`\mu_s` 2. *linear_history* : :math:`k_t`, :math:`x_{\gamma,t}`, :math:`\mu_s` 3. *mindlin* : :math:`k_t` or NULL, :math:`x_{\gamma,t}`, :math:`\mu_s` -4. *mindlin_rescale* : :math:`k_t` or NULL, :math:`x_{\gamma,t}`, :math:`\mu_s` +4. *mindlin/force* : :math:`k_t` or NULL, :math:`x_{\gamma,t}`, :math:`\mu_s` +5. *mindlin_rescale* : :math:`k_t` or NULL, :math:`x_{\gamma,t}`, :math:`\mu_s` +5. *mindlin_rescale/force* : :math:`k_t` or NULL, :math:`x_{\gamma,t}`, :math:`\mu_s` Here, :math:`x_{\gamma,t}` is a dimensionless multiplier for the normal damping :math:`\eta_n` that determines the magnitude of the tangential @@ -272,7 +274,7 @@ gran/hooke* style. The tangential force :math:`\mathbf{F}_t` is given by: .. math:: - \mathbf{F}_t = -min(\mu_t F_{n0}, \|\mathbf{F}_\mathrm{t,damp}\|) \mathbf{t} + \mathbf{F}_t = -\min(\mu_t F_{n0}, \|\mathbf{F}_\mathrm{t,damp}\|) \mathbf{t} The tangential damping force :math:`\mathbf{F}_\mathrm{t,damp}` is given by: @@ -294,7 +296,7 @@ keyword also affects the tangential damping. The parameter literature use :math:`x_{\gamma,t} = 1` (:ref:`Marshall `, :ref:`Tsuji et al `, :ref:`Silbert et al `). The relative tangential velocity at the point of contact is given by -:math:`\mathbf{v}_{t, rel} = \mathbf{v}_{t} - (R_i\mathbf{\Omega}_i + R_j\mathbf{\Omega}_j) \times \mathbf{n}`, where :math:`\mathbf{v}_{t} = \mathbf{v}_r - \mathbf{v}_r\cdot\mathbf{n}\mathbf{n}`, +:math:`\mathbf{v}_{t, rel} = \mathbf{v}_{t} - (R_i\mathbf{\Omega}_i + R_j\mathbf{\Omega}_j) \times \mathbf{n}`, where :math:`\mathbf{v}_{t} = \mathbf{v}_r - \mathbf{v}_r\cdot\mathbf{n}\ \mathbf{n}`, :math:`\mathbf{v}_r = \mathbf{v}_j - \mathbf{v}_i` . The direction of the applied force is :math:`\mathbf{t} = \mathbf{v_{t,rel}}/\|\mathbf{v_{t,rel}}\|` . @@ -314,22 +316,24 @@ form: .. math:: - F_{n0} = \|\mathbf{F}_ne + 2 F_{pulloff}\| + F_{n0} = \|\mathbf{F}_{ne} + 2 F_{pulloff}\| Where :math:`F_{pulloff} = 3\pi \gamma R` for *jkr*\ , and :math:`F_{pulloff} = 4\pi \gamma R` for *dmt*\ . -The remaining tangential options all use accumulated tangential displacement, -or accumulated tangential force (i.e. contact history). This is discussed -in details below for accumulated tangential displacement in the context -of the *linear_history* option. The same treatment of the accumulated -displacement, or accumulated force, applies to the other options as well. +The remaining tangential options all use accumulated tangential +displacement (i.e. contact history), except for the options +*mindlin/force* and *mindlin_rescale/force*, that use accumulated +tangential force instead, and are discussed further below. +The accumulated tangential displacement is discussed in details below +in the context of the *linear_history* option. The same treatment of +the accumulated displacement applies to the other options as well. For *tangential linear_history*, the tangential force is given by: .. math:: - \mathbf{F}_t = -min(\mu_t F_{n0}, \|-k_t\mathbf{\xi} + \mathbf{F}_\mathrm{t,damp}\|) \mathbf{t} + \mathbf{F}_t = -\min(\mu_t F_{n0}, \|-k_t\mathbf{\xi} + \mathbf{F}_\mathrm{t,damp}\|) \mathbf{t} Here, :math:`\mathbf{\xi}` is the tangential displacement accumulated during the entire duration of the contact: @@ -390,27 +394,18 @@ overlap region) to induce a torque on each particle according to: For *tangential mindlin*\ , the :ref:`Mindlin ` no-slip solution is used which differs from the *linear_history* option by an additional factor -of *a*\ , the radius of the contact region. The tangential stiffness depends -on the radius of the contact region and the force must therefore be computed -incrementally. The accumulated tangential force characterizes the contact history. -The increment of the elastic component of the tangential force :math:`\mathbf{F}_{te}` -is given by: +of :math:`a`, the radius of the contact region. The tangential force is given by: .. math:: - \mathrm{d}\mathbf{F}_{te} = -k_t a \mathbf{v}_{t,rel} \mathrm{d}\tau - -The tangential force is given by: - -.. math:: + \mathbf{F}_t = -\min(\mu_t F_{n0}, \|-k_t a \mathbf{\xi} + \mathbf{F}_\mathrm{t,damp}\|) \mathbf{t} - \mathbf{F}_t = -min(\mu_t F_{n0}, \|\mathbf{F}_{te} + \mathbf{F}_\mathrm{t,damp}\|) \mathbf{t} -Here, *a* is the radius of the contact region, given by :math:`a =\sqrt{R\delta}` +Here, :math:`a` is the radius of the contact region, given by :math:`a =\sqrt{R\delta}` for all normal contact models, except for *jkr*\ , where it is given implicitly by :math:`\delta = a^2/R - 2\sqrt{\pi \gamma a/E}`, see discussion above. To match the Mindlin solution, one should set -:math:`k_t = 8G_{eff}`, where :math:`G` is the effective shear modulus given by: +:math:`k_t = 8G_{eff}`, where :math:`G_{eff}` is the effective shear modulus given by: .. math:: @@ -424,23 +419,80 @@ normal contact model that specifies material parameters :math:`E` and case, mixing of the shear modulus for different particle types *i* and *j* is done according to the formula above. +.. note:: + + The radius of the contact region :math:`a` depends on the normal overlap. + As a result, the tangential force for *mindlin* can change due to + a variation in normal overlap, even with no change in tangential displacement. + +For *tangential mindlin/force*, the accumulated elastic tangential force +characterizes the contact history, instead of the accumulated tangential +displacement. This prevents the dependence of the tangential force on the +normal overlap as noted above. The tangential force is given by: + +.. math:: + + \mathbf{F}_t = -\min(\mu_t F_{n0}, \|\mathbf{F}_{te} + \mathbf{F}_\mathrm{t,damp}\|) \mathbf{t} + +The increment of the elastic component of the tangential force +:math:`\mathbf{F}_{te}` is given by: + +.. math:: + + \mathrm{d}\mathbf{F}_{te} = -k_t a \mathbf{v}_{t,rel} \mathrm{d}\tau + +The changes in frame of reference of the contacting pair of particles during +contact are accounted for by the same formula as above, replacing the +accumulated tangential displacement :math:`\xi`, by the accumulated tangential +elastic force :math:`F_{te}`. When the tangential force exceeds the critical +force, the tangential force is directly re-scaled to match the value for +the critical force: + +.. math:: + + \mathbf{F}_{te} = - \mu_t F_{n0}\mathbf{t} + \mathbf{F}_{t,damp} +The same rules as those described for *mindlin* apply regarding the tangential +stiffness and mixing of the shear modulus for different particle types. The *mindlin_rescale* option uses the same form as *mindlin*\ , but the -magnitude of the tangential force is re-scaled as the contact +magnitude of the tangential displacement is re-scaled as the contact unloads, i.e. if :math:`a < a_{t_{n-1}}`: .. math:: - \mathbf{F}_{te} = \mathbf{F}_{te, t_{n-1}} \frac{a}{a_{t_{n-1}}} + \mathbf{\xi} = \mathbf{\xi_{t_{n-1}}} \frac{a}{a_{t_{n-1}}} Here, :math:`t_{n-1}` indicates the value at the previous time step. This rescaling accounts for the fact that a decrease in the contact area upon unloading leads to the contact being unable to support the previous tangential loading, and spurious energy is -created without the rescaling above (:ref:`Walton ` ). See also -discussion in :ref:`Thornton et al, 2013 ` , particularly -equation 18(b) of that work and associated discussion. +created without the rescaling above (:ref:`Walton ` ). + +.. note:: + + For *mindlin*, a decrease in the tangential force already occurs as the + contact unloads, due to the dependence of the tangential force on the normal + force described above. By re-scaling :math:`\xi`, *mindlin_rescale* + effectively re-scales the tangential force twice, i.e., proportionally to + :math:`a^2`. This peculiar behavior results from use of the accumulated + tangential displacement to characterize the contact history. Although + *mindlin_rescale* remains available for historic reasons and backward + compatibility purposes, it should be avoided in favor of *mindlin_rescale/force*. + +The *mindlin_rescale/force* option uses the same form as *mindlin/force*, +but the magnitude of the tangential elastic force is re-scaled as the contact +unloads, i.e. if :math:`a < a_{t_{n-1}}`: + +.. math:: + + \mathbf{F}_{te} = \mathbf{F}_{te, t_{n-1}} \frac{a}{a_{t_{n-1}}} + +This approach provides a better approximation of the :ref:`Mindlin-Deresiewicz ` +laws and is more consistent than *mindlin_rescale*. See discussions in +:ref:`Thornton et al, 2013 `, particularly equation 18(b) of that +work and associated discussion, and :ref:`Agnolin and Roux, 2007 `, +particularly Appendix A. ---------- @@ -477,7 +529,7 @@ exceeds a critical value: .. math:: - \mathbf{F}_{roll} = min(\mu_{roll} F_{n,0}, \|\mathbf{F}_{roll,0}\|)\mathbf{k} + \mathbf{F}_{roll} = \min(\mu_{roll} F_{n,0}, \|\mathbf{F}_{roll,0}\|)\mathbf{k} Here, :math:`\mathbf{k} = \mathbf{v}_{roll}/\|\mathbf{v}_{roll}\|` is the direction of the pseudo-force. As with tangential displacement, the rolling @@ -529,7 +581,7 @@ is then truncated according to: .. math:: - \tau_{twist} = min(\mu_{twist} F_{n,0}, \tau_{twist,0}) + \tau_{twist} = \min(\mu_{twist} F_{n,0}, \tau_{twist,0}) Similar to the sliding and rolling displacement, the angular displacement is rescaled so that it corresponds to the critical value @@ -794,3 +846,15 @@ Technology, 233, 30-46. .. _WaltonPC: **(Otis R. Walton)** Walton, O.R., Personal Communication + +** _Mindlin1953: + +**(Mindlin and Deresiewicz, 1953)** Mindlin, R.D., & Deresiewicz, H (1953). +Elastic Spheres in Contact under Varying Oblique Force. +J. Appl. Mech., ASME 20, 327-344. + +** _AgnolinRoux2007: + +**(Agnolin and Roux 2007)** Agnolin, I. & Roux, J-N. (2007). +Internal states of model isotropic granular packings. +I. Assembling process, geometry, and contact networks. Phys. Rev. E, 76, 061302. \ No newline at end of file diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index ece1e9e211..e732453757 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -54,7 +54,8 @@ using namespace MathSpecial; enum {HOOKE, HERTZ, HERTZ_MATERIAL, DMT, JKR}; enum {VELOCITY, MASS_VELOCITY, VISCOELASTIC, TSUJI}; enum {TANGENTIAL_NOHISTORY, TANGENTIAL_HISTORY, - TANGENTIAL_MINDLIN, TANGENTIAL_MINDLIN_RESCALE}; + TANGENTIAL_MINDLIN, TANGENTIAL_MINDLIN_RESCALE, + TANGENTIAL_MINDLIN_FORCE, TANGENTIAL_MINDLIN_RESCALE_FORCE}; enum {TWIST_NONE, TWIST_SDS, TWIST_MARSHALL}; enum {ROLL_NONE, ROLL_SDS}; @@ -377,8 +378,11 @@ void PairGranular::compute(int eflag, int vflag) // tangential force, including history effects //**************************************** - // For linear forces, history = cumulative tangential displacement - // For nonlinear forces, history = cumulative elastic tangential force + // For linear, mindlin, mindlin_rescale: + // history = cumulative tangential displacement + // + // For mindlin/force, mindlin_rescale/force: + // history = cumulative tangential elastic force // tangential component vt1 = vr1 - vn1; @@ -422,12 +426,15 @@ void PairGranular::compute(int eflag, int vflag) damp_normal_prefactor; if (tangential_history) { - if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN) { + if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_FORCE) { k_tangential *= a; } else if (tangential_model[itype][jtype] == - TANGENTIAL_MINDLIN_RESCALE) { + TANGENTIAL_MINDLIN_RESCALE || + tangential_model[itype][jtype] == + TANGENTIAL_MINDLIN_RESCALE_FORCE) { k_tangential *= a; - // on unloading, rescale the shear force + // on unloading, rescale the shear displacements/force if (a < history[3]) { double factor = a/history[3]; history[0] *= factor; @@ -435,11 +442,11 @@ void PairGranular::compute(int eflag, int vflag) history[2] *= factor; } } - // rotate and update displacements / force + // rotate and update displacements / force. // see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235 if (historyupdate) { rsht = history[0]*nx + history[1]*ny + history[2]*nz; - if (fabs(rsht) < EPSILON) rsht = 0; // EPSILON still valid when history is a force??? + if (fabs(rsht) < EPSILON) rsht = 0; // EPSILON = 1e-10 can fail for small granular media: if (rsht > 0) { shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + history[2]*history[2]); @@ -454,22 +461,31 @@ void PairGranular::compute(int eflag, int vflag) history[1] *= scalefac; history[2] *= scalefac; } - // update tangential displacement / force history - if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY) { + // update history + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { + // tangential displacement history[0] += vtr1*dt; history[1] += vtr2*dt; history[2] += vtr3*dt; - } else { // Eq. (18) Thornton et al., 2013 (http://dx.doi.org/10.1016/j.powtec.2012.08.012) + } else { + // tangential force + // see e.g. eq. 18 of Thornton et al, Pow. Tech. 2013, v223,p30-46 history[0] -= k_tangential*vtr1*dt; history[1] -= k_tangential*vtr2*dt; history[2] -= k_tangential*vtr3*dt; - if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) - history[3] = a; } + if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE || + tangential_model[itype][jtype] == + TANGENTIAL_MINDLIN_RESCALE_FORCE) + history[3] = a; } // tangential forces = history + tangential velocity damping - if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY) { + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { fs1 = -k_tangential*history[0] - damp_tangential*vtr1; fs2 = -k_tangential*history[1] - damp_tangential*vtr2; fs3 = -k_tangential*history[2] - damp_tangential*vtr3; @@ -485,7 +501,10 @@ void PairGranular::compute(int eflag, int vflag) shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + history[2]*history[2]); if (shrmag != 0.0) { - if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY) { + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || + tangential_model[itype][jtype] == + TANGENTIAL_MINDLIN_RESCALE) { history[0] = -1.0/k_tangential*(Fscrit*fs1/fs + damp_tangential*vtr1); history[1] = -1.0/k_tangential*(Fscrit*fs2/fs + @@ -760,7 +779,8 @@ void PairGranular::coeff(int narg, char **arg) //Defaults normal_model_one = tangential_model_one = -1; - roll_model_one = twist_model_one = 0; + roll_model_one = ROLL_NONE; + twist_model_one = TWIST_NONE; damping_model_one = VISCOELASTIC; int iarg = 2; @@ -846,7 +866,9 @@ void PairGranular::coeff(int narg, char **arg) iarg += 4; } else if ((strcmp(arg[iarg+1], "linear_history") == 0) || (strcmp(arg[iarg+1], "mindlin") == 0) || - (strcmp(arg[iarg+1], "mindlin_rescale") == 0)) { + (strcmp(arg[iarg+1], "mindlin_rescale") == 0) || + (strcmp(arg[iarg+1], "mindlin/force") == 0) || + (strcmp(arg[iarg+1], "mindlin_rescale/force") == 0)) { if (iarg + 4 >= narg) error->all(FLERR,"Illegal pair_coeff command, " "not enough parameters provided for tangential model"); @@ -856,9 +878,15 @@ void PairGranular::coeff(int narg, char **arg) tangential_model_one = TANGENTIAL_MINDLIN; else if (strcmp(arg[iarg+1], "mindlin_rescale") == 0) tangential_model_one = TANGENTIAL_MINDLIN_RESCALE; + else if (strcmp(arg[iarg+1], "mindlin/force") == 0) + tangential_model_one = TANGENTIAL_MINDLIN_FORCE; + else if (strcmp(arg[iarg+1], "mindlin_rescale/force") == 0) + tangential_model_one = TANGENTIAL_MINDLIN_RESCALE_FORCE; tangential_history = 1; if ((tangential_model_one == TANGENTIAL_MINDLIN || - tangential_model_one == TANGENTIAL_MINDLIN_RESCALE) && + tangential_model_one == TANGENTIAL_MINDLIN_RESCALE || + tangential_model_one == TANGENTIAL_MINDLIN_FORCE || + tangential_model_one == TANGENTIAL_MINDLIN_RESCALE_FORCE) && (strcmp(arg[iarg+2], "NULL") == 0)) { if (normal_model_one == HERTZ || normal_model_one == HOOKE) { error->all(FLERR, "NULL setting for Mindlin tangential " @@ -1040,7 +1068,8 @@ void PairGranular::init_style() } for (int i = 1; i <= atom->ntypes; i++) for (int j = i; j <= atom->ntypes; j++) - if (tangential_model[i][j] == TANGENTIAL_MINDLIN_RESCALE) { + if (tangential_model[i][j] == TANGENTIAL_MINDLIN_RESCALE || + tangential_model[i][j] == TANGENTIAL_MINDLIN_RESCALE_FORCE) { size_history += 1; roll_history_index += 1; twist_history_index += 1; @@ -1510,6 +1539,12 @@ double PairGranular::single(int i, int j, int itype, int jtype, // tangential force, including history effects //**************************************** + // For linear, mindlin, mindlin_rescale: + // history = cumulative tangential displacement + // + // For mindlin/force, mindlin_rescale/force: + // history = cumulative tangential elastic force + // tangential component vt1 = vr1 - vn1; vt2 = vr2 - vn2; @@ -1545,9 +1580,7 @@ double PairGranular::single(int i, int j, int itype, int jtype, damp_tangential = tangential_coeffs[itype][jtype][1]*damp_normal_prefactor; if (tangential_history) { - if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN) { - k_tangential *= a; - } else if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { + if (tangential_model[itype][jtype] != TANGENTIAL_HISTORY) { k_tangential *= a; } @@ -1555,7 +1588,9 @@ double PairGranular::single(int i, int j, int itype, int jtype, history[2]*history[2]); // tangential forces = history + tangential velocity damping - if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY) { + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { fs1 = -k_tangential*history[0] - damp_tangential*vtr1; fs2 = -k_tangential*history[1] - damp_tangential*vtr2; fs3 = -k_tangential*history[2] - damp_tangential*vtr3; @@ -1572,7 +1607,7 @@ double PairGranular::single(int i, int j, int itype, int jtype, fs1 *= Fscrit/fs; fs2 *= Fscrit/fs; fs3 *= Fscrit/fs; - fs *= Fscrit/fs; + fs *= Fscrit/fs; } else fs1 = fs2 = fs3 = fs = 0.0; } -- GitLab From 2de98999c139c0694a263fb90556875add79e7e1 Mon Sep 17 00:00:00 2001 From: "Jibril B. Coulibaly" Date: Mon, 10 Aug 2020 14:51:00 -0500 Subject: [PATCH 020/165] bug fix formula for frame of reference rotation for granular tangential history --- doc/src/pair_granular.rst | 2 +- src/GRANULAR/pair_granular.cpp | 57 ++++++++++++++++++---------------- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index ab735bdfde..0b6e12ade7 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -361,7 +361,7 @@ work: .. math:: - \mathbf{\xi} = \left(\mathbf{\xi'} - (\mathbf{n} \cdot \mathbf{\xi'})\mathbf{n}\right) \frac{\|\mathbf{\xi'}\|}{\|\mathbf{\xi'}\| - \mathbf{n}\cdot\mathbf{\xi'}} + \mathbf{\xi} = \left(\mathbf{\xi'} - (\mathbf{n} \cdot \mathbf{\xi'})\mathbf{n}\right) \frac{\|\mathbf{\xi'}\|}{\|\mathbf{\xi'} - (\mathbf{n}\cdot\mathbf{\xi'})\mathbf{n}\|} Here, :math:`\mathbf{\xi'}` is the accumulated displacement prior to the current time step and :math:`\mathbf{\xi}` is the corrected diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index e732453757..9bde81b981 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -446,20 +446,20 @@ void PairGranular::compute(int eflag, int vflag) // see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235 if (historyupdate) { rsht = history[0]*nx + history[1]*ny + history[2]*nz; - if (fabs(rsht) < EPSILON) rsht = 0; // EPSILON = 1e-10 can fail for small granular media: - if (rsht > 0) { - shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + - history[2]*history[2]); - // if rsht == shrmag, contacting pair has rotated 90 deg - // in one step, in which case you deserve a crash! - scalefac = shrmag/(shrmag - rsht); - history[0] -= rsht*nx; - history[1] -= rsht*ny; - history[2] -= rsht*nz; - // also rescale to preserve magnitude - history[0] *= scalefac; - history[1] *= scalefac; - history[2] *= scalefac; + shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + + history[2]*history[2]); + // projection + history[0] -= rsht*nx; + history[1] -= rsht*ny; + history[2] -= rsht*nz; + + // also rescale to preserve magnitude + prjmag = sqrt(history[0]*history[0] + history[1]*history[1] + + history[2]*history[2]); + scalefac = shrmag/prjmag; + history[0] *= scalefac; + history[1] *= scalefac; + history[2] *= scalefac; } // update history if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || @@ -559,19 +559,22 @@ void PairGranular::compute(int eflag, int vflag) rolldotn = history[rhist0]*nx + history[rhist1]*ny + history[rhist2]*nz; if (historyupdate) { - if (fabs(rolldotn) < EPSILON) rolldotn = 0; - if (rolldotn > 0) { // rotate into tangential plane - rollmag = sqrt(history[rhist0]*history[rhist0] + - history[rhist1]*history[rhist1] + - history[rhist2]*history[rhist2]); - scalefac = rollmag/(rollmag - rolldotn); - history[rhist0] -= rolldotn*nx; - history[rhist1] -= rolldotn*ny; - history[rhist2] -= rolldotn*nz; - // also rescale to preserve magnitude - history[rhist0] *= scalefac; - history[rhist1] *= scalefac; - history[rhist2] *= scalefac; + // rotate into tangential plane + rollmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); + // projection + history[rhist0] -= rolldotn*nx; + history[rhist1] -= rolldotn*ny; + history[rhist2] -= rolldotn*nz; + // also rescale to preserve magnitude + prjmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); + scalefac = rollmag/prjmag; + history[rhist0] *= scalefac; + history[rhist1] *= scalefac; + history[rhist2] *= scalefac; } history[rhist0] += vrl1*dt; history[rhist1] += vrl2*dt; -- GitLab From 5ebac27fd5d45492b02ae1d46d1fe8f345593a9e Mon Sep 17 00:00:00 2001 From: "Jibril B. Coulibaly" Date: Mon, 10 Aug 2020 15:15:47 -0500 Subject: [PATCH 021/165] safety for division by zero in scaling of the projection --- src/GRANULAR/pair_granular.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index 9bde81b981..f59c00e90a 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -181,7 +181,7 @@ void PairGranular::compute(int eflag, int vflag) double signtwist, magtwist, magtortwist, Mtcrit; double tortwist1, tortwist2, tortwist3; - double shrmag,rsht; + double shrmag,rsht,prjmag; int *ilist,*jlist,*numneigh,**firstneigh; int *touch,**firsttouch; double *history,*allhistory,**firsthistory; @@ -456,11 +456,12 @@ void PairGranular::compute(int eflag, int vflag) // also rescale to preserve magnitude prjmag = sqrt(history[0]*history[0] + history[1]*history[1] + history[2]*history[2]); - scalefac = shrmag/prjmag; + if (prjmag > 0) scalefac = shrmag/prjmag; + else scalefac = 0; history[0] *= scalefac; history[1] *= scalefac; history[2] *= scalefac; - } + // update history if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || @@ -571,11 +572,12 @@ void PairGranular::compute(int eflag, int vflag) prjmag = sqrt(history[rhist0]*history[rhist0] + history[rhist1]*history[rhist1] + history[rhist2]*history[rhist2]); - scalefac = rollmag/prjmag; + if (prjmag > 0) scalefac = rollmag/prjmag; + else scalefac = 0; history[rhist0] *= scalefac; history[rhist1] *= scalefac; history[rhist2] *= scalefac; - } + history[rhist0] += vrl1*dt; history[rhist1] += vrl2*dt; history[rhist2] += vrl3*dt; -- GitLab From f6d91b3b2c92d4f8c820265a3bcea5a6649c9daa Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Tue, 11 Aug 2020 15:02:37 -0400 Subject: [PATCH 022/165] move domain/comm commands --- src/reset_mol_ids.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index e6add7df9b..aa0fe37ce7 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -90,6 +90,18 @@ void ResetMolIDs::command(int narg, char **arg) lmp->init(); + // setup domain, communication + // exchange will clear map, borders will reset + // this is the map needed to lookup current global IDs for bond topology + + if (domain->triclinic) domain->x2lamda(atom->nlocal); + domain->pbc(); + domain->reset_box(); + comm->setup(); + comm->exchange(); + comm->borders(); + if (domain->triclinic) domain->lamda2x(atom->nlocal+atom->nghost); + // reset molecule IDs reset(groupid); @@ -132,18 +144,6 @@ void ResetMolIDs::reset(char *groupid) modify->add_compute(fmt::format("{} {} chunk/atom molecule compress yes", idchunk,groupid)); - // setup domain, communication - // exchange will clear map, borders will reset - // this is the map needed to lookup current global IDs for bond topology - - if (domain->triclinic) domain->x2lamda(atom->nlocal); - domain->pbc(); - domain->reset_box(); - comm->setup(); - comm->exchange(); - comm->borders(); - if (domain->triclinic) domain->lamda2x(atom->nlocal+atom->nghost); - // invoke peratom method of compute fragment/atom // walks bond connectivity and assigns each atom a fragment ID // if singleflag = 0, atoms w/out bonds will be assigned fragID = 0 -- GitLab From 3c69ebc6696f83f81f5b6f28bce35193d5bf93c6 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Tue, 11 Aug 2020 17:12:36 -0400 Subject: [PATCH 023/165] reset_mold_ids: add create_computes --- src/reset_mol_ids.cpp | 55 ++++++++++++++++++++++++++++++------------- src/reset_mol_ids.h | 10 +++++++- 2 files changed, 48 insertions(+), 17 deletions(-) diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index aa0fe37ce7..efeb6a672a 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -17,7 +17,6 @@ #include "reset_mol_ids.h" #include -#include #include "atom.h" #include "domain.h" #include "comm.h" @@ -34,11 +33,24 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ ResetMolIDs::ResetMolIDs(LAMMPS *lmp) : Pointers(lmp) { + cfa = NULL; + cca = NULL; + + // default settings + compressflag = 1; singleflag = 0; offset = -1; } +/* ---------------------------------------------------------------------- */ + +ResetMolIDs::~ResetMolIDs() +{ + modify->delete_compute(idfrag); + if (compressflag) modify->delete_compute(idchunk); +} + /* ---------------------------------------------------------------------- called as reset_mol_ids command in input script ------------------------------------------------------------------------- */ @@ -102,9 +114,13 @@ void ResetMolIDs::command(int narg, char **arg) comm->borders(); if (domain->triclinic) domain->lamda2x(atom->nlocal+atom->nghost); + // create computes + + create_computes(groupid); + // reset molecule IDs - reset(groupid); + reset(); // total time @@ -121,35 +137,49 @@ void ResetMolIDs::command(int narg, char **arg) } /* ---------------------------------------------------------------------- - called from command() and directly from fixes that update molecules + create computes used by reset_mol_ids ------------------------------------------------------------------------- */ -void ResetMolIDs::reset(char *groupid) +void ResetMolIDs::create_computes(char *groupid) { int igroup = group->find(groupid); if (igroup == -1) error->all(FLERR,"Could not find reset_mol_ids group ID"); - int groupbit = group->bitmask[igroup]; + groupbit = group->bitmask[igroup]; // create instances of compute fragment/atom, compute reduce (if needed), // and compute chunk/atom. all use the group-ID for this command - const std::string idfrag = "reset_mol_ids_FRAGMENT_ATOM"; + idfrag = "reset_mol_ids_FRAGMENT_ATOM"; if (singleflag) modify->add_compute(fmt::format("{} {} fragment/atom single yes",idfrag,groupid)); else modify->add_compute(fmt::format("{} {} fragment/atom single no",idfrag,groupid)); - const std::string idchunk = "reset_mol_ids_CHUNK_ATOM"; + idchunk = "reset_mol_ids_CHUNK_ATOM"; if (compressflag) modify->add_compute(fmt::format("{} {} chunk/atom molecule compress yes", idchunk,groupid)); + int icompute = modify->find_compute(idfrag); + cfa = (ComputeFragmentAtom *) modify->compute[icompute]; + + + if (compressflag) { + icompute = modify->find_compute(idchunk); + cca = (ComputeChunkAtom *) modify->compute[icompute]; + } +} + +/* ---------------------------------------------------------------------- + called from command() and directly from fixes that update molecules +------------------------------------------------------------------------- */ + +void ResetMolIDs::reset() +{ // invoke peratom method of compute fragment/atom // walks bond connectivity and assigns each atom a fragment ID // if singleflag = 0, atoms w/out bonds will be assigned fragID = 0 - int icompute = modify->find_compute(idfrag); - ComputeFragmentAtom *cfa = (ComputeFragmentAtom *) modify->compute[icompute]; cfa->compute_peratom(); double *fragIDs = cfa->vector_atom; @@ -173,8 +203,6 @@ void ResetMolIDs::reset(char *groupid) // NOTE: use of compute chunk/atom limits Nmol to a 32-bit int if (compressflag) { - icompute = modify->find_compute(idchunk); - ComputeChunkAtom *cca = (ComputeChunkAtom *) modify->compute[icompute]; cca->compute_peratom(); double *chunkIDs = cca->vector_atom; nchunk = cca->nchunk; @@ -221,9 +249,4 @@ void ResetMolIDs::reset(char *groupid) } } } - - // clean up - - modify->delete_compute(idfrag); - if (compressflag) modify->delete_compute(idchunk); } diff --git a/src/reset_mol_ids.h b/src/reset_mol_ids.h index cb7c472724..62543f6eda 100644 --- a/src/reset_mol_ids.h +++ b/src/reset_mol_ids.h @@ -21,20 +21,28 @@ CommandStyle(reset_mol_ids,ResetMolIDs) #define LMP_RESET_MOL_IDS_H #include "pointers.h" +#include namespace LAMMPS_NS { class ResetMolIDs : protected Pointers { public: ResetMolIDs(class LAMMPS *); + ~ResetMolIDs(); void command(int, char **); - void reset(char *); + void create_computes(char *); + void reset(); private: + std::string idfrag, idchunk; int nchunk; + int groupbit; int compressflag; // 1 = contiguous values for new IDs int singleflag; // 0 = mol IDs of single atoms set to 0 tagint offset; // offset for contiguous mol ID values + + class ComputeFragmentAtom *cfa; + class ComputeChunkAtom *cca; }; } -- GitLab From 9d486d734b3365e835f3b28b17eaa115c2f741b1 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Tue, 11 Aug 2020 17:29:27 -0400 Subject: [PATCH 024/165] update bond/react for reset_mol_ids->create_computes --- src/USER-REACTION/fix_bond_react.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 16a9ca29f1..9b33630b59 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -171,6 +171,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg+1],"yes") == 0) { // default delete reset_mol_ids; reset_mol_ids = new ResetMolIDs(lmp); + reset_mol_ids->create_computes(group->names[igroup]); iarg += 2; } if (strcmp(arg[iarg+1],"no") == 0) { @@ -246,9 +247,9 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : if (n > MAXLINE) error->all(FLERR,"Reaction name (react-ID) is too long (limit: 256 characters)"); strncpy(rxn_name[rxn],arg[iarg++],n); - int igroup = group->find(arg[iarg++]); - if (igroup == -1) error->all(FLERR,"Could not find fix group ID"); - groupbits[rxn] = group->bitmask[igroup]; + int groupid = group->find(arg[iarg++]); + if (groupid == -1) error->all(FLERR,"Could not find fix group ID"); + groupbits[rxn] = group->bitmask[groupid]; if (strncmp(arg[iarg],"v_",2) == 0) { n = strlen(&arg[iarg][2]) + 1; @@ -640,9 +641,9 @@ void FixBondReact::post_constructor() group->assign(cmd); if (stabilization_flag == 1) { - int igroup = group->find(exclude_group); + int groupid = group->find(exclude_group); // create exclude_group if not already existing, or use as parent group if static - if (igroup == -1 || group->dynamic[igroup] == 0) { + if (groupid == -1 || group->dynamic[groupid] == 0) { // create stabilization per-atom property cmd = std::string("bond_react_stabilization_internal"); id_fix3 = new char[cmd.size()+1]; @@ -672,7 +673,7 @@ void FixBondReact::post_constructor() strcat(exclude_group,"_REACT"); group->find_or_create(exclude_group); - if (igroup == -1) + if (groupid == -1) cmd = fmt::format("{} dynamic all property statted_tags",exclude_group); else cmd = fmt::format("{} dynamic {} property statted_tags",exclude_group,exclude_PARENT_group); @@ -3060,7 +3061,7 @@ void FixBondReact::update_everything() // done deleting atoms // reset mol ids - if (reset_mol_ids_flag) reset_mol_ids->reset(group->names[igroup]); + if (reset_mol_ids_flag) reset_mol_ids->reset(); // something to think about: this could done much more concisely if // all atom-level info (bond,angles, etc...) were kinda inherited from a common data struct --JG -- GitLab From df497e4853ac26faf7d13d43efbcb7bfdc254aec Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Tue, 18 Aug 2020 17:53:07 -0400 Subject: [PATCH 025/165] bond/react: clarify bond-type-checking error --- src/USER-REACTION/fix_bond_react.cpp | 6 +++--- src/USER-REACTION/fix_bond_react.h | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 9b33630b59..57bc42cffd 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -2079,7 +2079,7 @@ void FixBondReact::find_landlocked_atoms(int myrxn) for (int i = 0; i < twomol->natoms; i++) { if (twomol->type[i] != onemol->type[equivalences[i][1][myrxn]-1] && landlocked_atoms[i][myrxn] == 0) { char str[128]; - snprintf(str,128,"Bond/react: Atom affected by reaction %s too close to template edge",rxn_name[myrxn]); + snprintf(str,128,"Bond/react: Atom type affected by reaction %s too close to template edge",rxn_name[myrxn]); error->all(FLERR,str); } } @@ -2098,7 +2098,7 @@ void FixBondReact::find_landlocked_atoms(int myrxn) if (onemol_batom == equivalences[twomol_atomj-1][1][myrxn]) { if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomi-1][m]) { char str[128]; - snprintf(str,128,"Bond/react: Atom affected by reaction %s too close to template edge",rxn_name[myrxn]); + snprintf(str,128,"Bond/react: Bond type affected by reaction %s too close to template edge",rxn_name[myrxn]); error->all(FLERR,str); } } @@ -2110,7 +2110,7 @@ void FixBondReact::find_landlocked_atoms(int myrxn) if (onemol_batom == equivalences[i][1][myrxn]) { if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomj-1][m]) { char str[128]; - snprintf(str,128,"Bond/react: Atom affected by reaction %s too close to template edge",rxn_name[myrxn]); + snprintf(str,128,"Bond/react: Bond type affected by reaction %s too close to template edge",rxn_name[myrxn]); error->all(FLERR,str); } } diff --git a/src/USER-REACTION/fix_bond_react.h b/src/USER-REACTION/fix_bond_react.h index 1b98614064..61a1bd4213 100644 --- a/src/USER-REACTION/fix_bond_react.h +++ b/src/USER-REACTION/fix_bond_react.h @@ -242,8 +242,10 @@ E: Bond/react: Invalid template atom ID in map file Atom IDs in molecule templates range from 1 to the number of atoms in the template. E or W: Bond/react: Atom affected by reaction %s too close to template edge + Bond/react: Atom type affected by reaction %s too close to template edge + Bond/react: Bond type affected by reaction %s too close to template edge -This means an atom which changes type or connectivity during the +This means an atom (or bond) that changes type or connectivity during the reaction is too close to an 'edge' atom defined in the map file. This could cause incorrect assignment of bonds, angle, etc. Generally, this means you must include more atoms in your templates, such that there -- GitLab From e4ab49c2e5d0856b78047088f0442be2d801bb8f Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Tue, 18 Aug 2020 18:12:01 -0400 Subject: [PATCH 026/165] bond/react: bond-type-checking docs --- doc/src/Errors_messages.rst | 3 ++- doc/src/fix_bond_react.rst | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/src/Errors_messages.rst b/doc/src/Errors_messages.rst index f3be94a239..96e21da681 100644 --- a/doc/src/Errors_messages.rst +++ b/doc/src/Errors_messages.rst @@ -502,7 +502,8 @@ Doc page with :doc:`WARNING messages ` *Bond/react: Unknown section in map file* Please ensure reaction map files are properly formatted. -*Bond/react: Atom affected by reaction too close to template edge* +*Bond/react: Atom type affected by reaction too close to template edge* +*Bond/react: Bond type affected by reaction too close to template edge* This means an atom which changes type or connectivity during the reaction is too close to an 'edge' atom defined in the map file. This could cause incorrect assignment of bonds, angle, etc. diff --git a/doc/src/fix_bond_react.rst b/doc/src/fix_bond_react.rst index 82ab6beaa3..bbc6fbf864 100644 --- a/doc/src/fix_bond_react.rst +++ b/doc/src/fix_bond_react.rst @@ -213,9 +213,10 @@ surrounding topology. As described below, the bonding atom pairs of the pre-reacted template are specified by atom ID in the map file. The pre-reacted molecule template should contain as few atoms as possible while still completely describing the topology of all atoms affected -by the reaction (which includes all atoms that change atom type). For -example, if the force field contains dihedrals, the pre-reacted -template should contain any atom within three bonds of reacting atoms. +by the reaction (which includes all atoms that change atom type or +connectivity, and all bonds that change bond type). For example, if +the force field contains dihedrals, the pre-reacted template should +contain any atom within three bonds of reacting atoms. Some atoms in the pre-reacted template that are not reacting may have missing topology with respect to the simulation. For example, the -- GitLab From e742ae747532dd7e12558974216dab5fd45cc4d2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Aug 2020 00:31:55 -0400 Subject: [PATCH 027/165] fix RST syntax and spelling issues in granular pair style docs --- doc/src/pair_granular.rst | 8 ++++---- doc/utils/sphinx-config/false_positives.txt | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index 40f3888e8f..d846e79e35 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -261,7 +261,7 @@ tangential model choices and their expected parameters are as follows: 3. *mindlin* : :math:`k_t` or NULL, :math:`x_{\gamma,t}`, :math:`\mu_s` 4. *mindlin/force* : :math:`k_t` or NULL, :math:`x_{\gamma,t}`, :math:`\mu_s` 5. *mindlin_rescale* : :math:`k_t` or NULL, :math:`x_{\gamma,t}`, :math:`\mu_s` -5. *mindlin_rescale/force* : :math:`k_t` or NULL, :math:`x_{\gamma,t}`, :math:`\mu_s` +6. *mindlin_rescale/force* : :math:`k_t` or NULL, :math:`x_{\gamma,t}`, :math:`\mu_s` Here, :math:`x_{\gamma,t}` is a dimensionless multiplier for the normal damping :math:`\eta_n` that determines the magnitude of the tangential @@ -831,14 +831,14 @@ Technology, 233, 30-46. **(Otis R. Walton)** Walton, O.R., Personal Communication -** _Mindlin1953: +.. _Mindlin1953: **(Mindlin and Deresiewicz, 1953)** Mindlin, R.D., & Deresiewicz, H (1953). Elastic Spheres in Contact under Varying Oblique Force. J. Appl. Mech., ASME 20, 327-344. -** _AgnolinRoux2007: +.. _AgnolinRoux2007: **(Agnolin and Roux 2007)** Agnolin, I. & Roux, J-N. (2007). Internal states of model isotropic granular packings. -I. Assembling process, geometry, and contact networks. Phys. Rev. E, 76, 061302. \ No newline at end of file +I. Assembling process, geometry, and contact networks. Phys. Rev. E, 76, 061302. diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 2bf3e917cf..443478a9fc 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -43,6 +43,7 @@ Afshar agilio Agilio agni +Agnolin Ai Aidan aij @@ -599,6 +600,7 @@ Dequidt der dereference derekt +Deresiewicz Derjagin Derjaguin Derlet @@ -2219,6 +2221,7 @@ oxdna oxrna oxDNA oxRNA +packings padua Padua palegoldenrod -- GitLab From ee6ef98b9be42a4d20cce584b5acaa175666f98d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Aug 2020 00:42:57 -0400 Subject: [PATCH 028/165] remove trailing whitespace --- doc/src/pair_granular.rst | 6 +++--- src/GRANULAR/pair_granular.cpp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index d846e79e35..2fce2d24f1 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -410,7 +410,7 @@ discussion above. To match the Mindlin solution, one should set .. math:: G_{eff} = \left(\frac{2-\nu_i}{G_i} + \frac{2-\nu_j}{G_j}\right)^{-1} - + where :math:`G` is the shear modulus, related to Young's modulus :math:`E` and Poisson's ratio :math:`\nu` by :math:`G = E/(2(1+\nu))`. This can also be achieved by specifying *NULL* for :math:`k_t`, in which case a @@ -476,8 +476,8 @@ created without the rescaling above (:ref:`Walton ` ). force described above. By re-scaling :math:`\xi`, *mindlin_rescale* effectively re-scales the tangential force twice, i.e., proportionally to :math:`a^2`. This peculiar behavior results from use of the accumulated - tangential displacement to characterize the contact history. Although - *mindlin_rescale* remains available for historic reasons and backward + tangential displacement to characterize the contact history. Although + *mindlin_rescale* remains available for historic reasons and backward compatibility purposes, it should be avoided in favor of *mindlin_rescale/force*. The *mindlin_rescale/force* option uses the same form as *mindlin/force*, diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index b16fd40236..1b92c2686d 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -447,7 +447,7 @@ void PairGranular::compute(int eflag, int vflag) history[0] -= rsht*nx; history[1] -= rsht*ny; history[2] -= rsht*nz; - + // also rescale to preserve magnitude prjmag = sqrt(history[0]*history[0] + history[1]*history[1] + history[2]*history[2]); @@ -572,7 +572,7 @@ void PairGranular::compute(int eflag, int vflag) history[rhist0] *= scalefac; history[rhist1] *= scalefac; history[rhist2] *= scalefac; - + history[rhist0] += vrl1*dt; history[rhist1] += vrl2*dt; history[rhist2] += vrl3*dt; -- GitLab From 921b6d8135d4aa92c9050e7a33d6e05b77a94d6e Mon Sep 17 00:00:00 2001 From: "Jibril B. Coulibaly" Date: Fri, 21 Aug 2020 13:20:53 -0500 Subject: [PATCH 029/165] relative threshold for contact frame update based on tangential critical force --- src/GRANULAR/pair_granular.cpp | 86 +++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index 1b92c2686d..8bf2d1bf17 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -177,6 +177,7 @@ void PairGranular::compute(int eflag, int vflag) double tortwist1, tortwist2, tortwist3; double shrmag,rsht,prjmag; + bool frameupdate; int *ilist,*jlist,*numneigh,**firstneigh; int *touch,**firsttouch; double *history,*allhistory,**firsthistory; @@ -441,22 +442,29 @@ void PairGranular::compute(int eflag, int vflag) // see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235 if (historyupdate) { rsht = history[0]*nx + history[1]*ny + history[2]*nz; - shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + - history[2]*history[2]); - // projection - history[0] -= rsht*nx; - history[1] -= rsht*ny; - history[2] -= rsht*nz; - - // also rescale to preserve magnitude - prjmag = sqrt(history[0]*history[0] + history[1]*history[1] + - history[2]*history[2]); - if (prjmag > 0) scalefac = shrmag/prjmag; - else scalefac = 0; - history[0] *= scalefac; - history[1] *= scalefac; - history[2] *= scalefac; - + if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_FORCE || + tangential_model[itype][jtype] == + TANGENTIAL_MINDLIN_RESCALE_FORCE) + frameupdate = fabs(rsht) < EPSILON*Fscrit; + else + frameupdate = fabs(rsht)*k_tangential < EPSILON*Fscrit; + if (frameupdate) { + shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + + history[2]*history[2]); + // projection + history[0] -= rsht*nx; + history[1] -= rsht*ny; + history[2] -= rsht*nz; + + // also rescale to preserve magnitude + prjmag = sqrt(history[0]*history[0] + history[1]*history[1] + + history[2]*history[2]); + if (prjmag > 0) scalefac = shrmag/prjmag; + else scalefac = 0; + history[0] *= scalefac; + history[1] *= scalefac; + history[2] *= scalefac; + } // update history if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || @@ -553,39 +561,41 @@ void PairGranular::compute(int eflag, int vflag) int rhist1 = rhist0 + 1; int rhist2 = rhist1 + 1; - rolldotn = history[rhist0]*nx + history[rhist1]*ny + history[rhist2]*nz; - if (historyupdate) { - // rotate into tangential plane - rollmag = sqrt(history[rhist0]*history[rhist0] + - history[rhist1]*history[rhist1] + - history[rhist2]*history[rhist2]); - // projection - history[rhist0] -= rolldotn*nx; - history[rhist1] -= rolldotn*ny; - history[rhist2] -= rolldotn*nz; - // also rescale to preserve magnitude - prjmag = sqrt(history[rhist0]*history[rhist0] + - history[rhist1]*history[rhist1] + - history[rhist2]*history[rhist2]); - if (prjmag > 0) scalefac = rollmag/prjmag; - else scalefac = 0; - history[rhist0] *= scalefac; - history[rhist1] *= scalefac; - history[rhist2] *= scalefac; + k_roll = roll_coeffs[itype][jtype][0]; + damp_roll = roll_coeffs[itype][jtype][1]; + Frcrit = roll_coeffs[itype][jtype][2] * Fncrit; + if (historyupdate) { + rolldotn = history[rhist0]*nx + history[rhist1]*ny + history[rhist2]*nz; + frameupdate = fabs(rolldotn)*k_roll < EPSILON*Frcrit; + if (frameupdate) { // rotate into tangential plane + rollmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); + // projection + history[rhist0] -= rolldotn*nx; + history[rhist1] -= rolldotn*ny; + history[rhist2] -= rolldotn*nz; + // also rescale to preserve magnitude + prjmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); + if (prjmag > 0) scalefac = rollmag/prjmag; + else scalefac = 0; + history[rhist0] *= scalefac; + history[rhist1] *= scalefac; + history[rhist2] *= scalefac; + } history[rhist0] += vrl1*dt; history[rhist1] += vrl2*dt; history[rhist2] += vrl3*dt; } - k_roll = roll_coeffs[itype][jtype][0]; - damp_roll = roll_coeffs[itype][jtype][1]; fr1 = -k_roll*history[rhist0] - damp_roll*vrl1; fr2 = -k_roll*history[rhist1] - damp_roll*vrl2; fr3 = -k_roll*history[rhist2] - damp_roll*vrl3; // rescale frictional displacements and forces if needed - Frcrit = roll_coeffs[itype][jtype][2] * Fncrit; fr = sqrt(fr1*fr1 + fr2*fr2 + fr3*fr3); if (fr > Frcrit) { -- GitLab From 6fc2ab07ef4797372063c349247877d0d9d02cd8 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Fri, 21 Aug 2020 14:52:39 -0400 Subject: [PATCH 030/165] reset_mol_ids: unique created computes --- src/USER-REACTION/fix_bond_react.cpp | 2 +- src/reset_mol_ids.cpp | 11 ++++++----- src/reset_mol_ids.h | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 57bc42cffd..a1154c9221 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -171,7 +171,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg+1],"yes") == 0) { // default delete reset_mol_ids; reset_mol_ids = new ResetMolIDs(lmp); - reset_mol_ids->create_computes(group->names[igroup]); + reset_mol_ids->create_computes(id,group->names[igroup]); iarg += 2; } if (strcmp(arg[iarg+1],"no") == 0) { diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index efeb6a672a..1461a49f32 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -116,7 +116,7 @@ void ResetMolIDs::command(int narg, char **arg) // create computes - create_computes(groupid); + create_computes(NULL,groupid); // reset molecule IDs @@ -140,22 +140,23 @@ void ResetMolIDs::command(int narg, char **arg) create computes used by reset_mol_ids ------------------------------------------------------------------------- */ -void ResetMolIDs::create_computes(char *groupid) +void ResetMolIDs::create_computes(char *fixid, char *groupid) { int igroup = group->find(groupid); if (igroup == -1) error->all(FLERR,"Could not find reset_mol_ids group ID"); groupbit = group->bitmask[igroup]; // create instances of compute fragment/atom, compute reduce (if needed), - // and compute chunk/atom. all use the group-ID for this command + // and compute chunk/atom. all use the group-ID for this command. + // 'fixid' allows for creating independent instances of the computes - idfrag = "reset_mol_ids_FRAGMENT_ATOM"; + idfrag = fmt::format("{}_reset_mol_ids_FRAGMENT_ATOM",fixid); if (singleflag) modify->add_compute(fmt::format("{} {} fragment/atom single yes",idfrag,groupid)); else modify->add_compute(fmt::format("{} {} fragment/atom single no",idfrag,groupid)); - idchunk = "reset_mol_ids_CHUNK_ATOM"; + idchunk = fmt::format("{}_reset_mol_ids_CHUNK_ATOM",fixid); if (compressflag) modify->add_compute(fmt::format("{} {} chunk/atom molecule compress yes", idchunk,groupid)); diff --git a/src/reset_mol_ids.h b/src/reset_mol_ids.h index 62543f6eda..9d2dd24bc8 100644 --- a/src/reset_mol_ids.h +++ b/src/reset_mol_ids.h @@ -30,7 +30,7 @@ class ResetMolIDs : protected Pointers { ResetMolIDs(class LAMMPS *); ~ResetMolIDs(); void command(int, char **); - void create_computes(char *); + void create_computes(char *, char *); void reset(); private: -- GitLab From 450fd12d31398d922aa60de9da76a36d6baf943c Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Fri, 21 Aug 2020 14:45:12 -0500 Subject: [PATCH 031/165] Changes needed for Kokkos v3.2 --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 12 ++-- src/KOKKOS/kokkos.h | 2 +- src/KOKKOS/kokkos_type.h | 18 +++--- src/KOKKOS/pair_eam_alloy_kokkos.cpp | 16 ++--- src/KOKKOS/pair_eam_alloy_kokkos.h | 16 ++--- src/KOKKOS/pair_eam_fs_kokkos.cpp | 16 ++--- src/KOKKOS/pair_eam_fs_kokkos.h | 16 ++--- src/KOKKOS/pair_eam_kokkos.cpp | 16 ++--- src/KOKKOS/pair_eam_kokkos.h | 16 ++--- src/KOKKOS/pair_kokkos.h | 20 +++--- src/KOKKOS/pair_reaxc_kokkos.cpp | 88 +++++++++++++------------- src/KOKKOS/pair_reaxc_kokkos.h | 38 +++++------ src/KOKKOS/pair_snap_kokkos.h | 8 +-- src/KOKKOS/pair_snap_kokkos_impl.h | 10 +-- src/KOKKOS/pair_sw_kokkos.cpp | 20 +++--- src/KOKKOS/pair_sw_kokkos.h | 12 ++-- src/KOKKOS/pair_tersoff_kokkos.cpp | 16 ++--- src/KOKKOS/pair_tersoff_kokkos.h | 12 ++-- src/KOKKOS/pair_tersoff_mod_kokkos.cpp | 16 ++--- src/KOKKOS/pair_tersoff_mod_kokkos.h | 12 ++-- src/KOKKOS/pair_tersoff_zbl_kokkos.cpp | 16 ++--- src/KOKKOS/pair_tersoff_zbl_kokkos.h | 12 ++-- src/KOKKOS/sna_kokkos.h | 1 + src/KOKKOS/sna_kokkos_impl.h | 7 +- 24 files changed, 210 insertions(+), 206 deletions(-) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index 7e798c740b..69b59af856 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -1057,8 +1057,8 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse13_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_o = ScatterViewHelper::value,decltype(dup_o),decltype(ndup_o)>::get(dup_o,ndup_o); - auto a_o = v_o.template access::value>(); + auto v_o = ScatterViewHelper::value,decltype(dup_o),decltype(ndup_o)>::get(dup_o,ndup_o); + auto a_o = v_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -1110,8 +1110,8 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse23_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_o = ScatterViewHelper::value,decltype(dup_o),decltype(ndup_o)>::get(dup_o,ndup_o); - auto a_o = v_o.template access::value>(); + auto v_o = ScatterViewHelper::value,decltype(dup_o),decltype(ndup_o)>::get(dup_o,ndup_o); + auto a_o = v_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -1170,8 +1170,8 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse33_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_o = ScatterViewHelper::value,decltype(dup_o),decltype(ndup_o)>::get(dup_o,ndup_o); - auto a_o = v_o.template access::value>(); + auto v_o = ScatterViewHelper::value,decltype(dup_o),decltype(ndup_o)>::get(dup_o,ndup_o); + auto a_o = v_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { diff --git a/src/KOKKOS/kokkos.h b/src/KOKKOS/kokkos.h index 7b605bee1e..72b7d19305 100644 --- a/src/KOKKOS/kokkos.h +++ b/src/KOKKOS/kokkos.h @@ -55,7 +55,7 @@ class KokkosLMP : protected Pointers { int value = 0; if (neighflag == HALFTHREAD) - value = NeedDup::value; + value = std::is_same::value,Kokkos::Experimental::ScatterDuplicated>::value; return value; } diff --git a/src/KOKKOS/kokkos_type.h b/src/KOKKOS/kokkos_type.h index c3f8e71829..b2f9051b87 100644 --- a/src/KOKKOS/kokkos_type.h +++ b/src/KOKKOS/kokkos_type.h @@ -223,20 +223,20 @@ struct AtomicF { // Do atomic trait when running HALFTHREAD neighbor list style with CUDA template struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterNonAtomic}; + using value = Kokkos::Experimental::ScatterNonAtomic; }; #ifdef KOKKOS_ENABLE_CUDA template<> struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterAtomic}; + using value = Kokkos::Experimental::ScatterAtomic; }; #endif #if defined(KOKKOS_ENABLE_HIP) template<> struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterAtomic}; + using value = Kokkos::Experimental::ScatterAtomic; }; #endif @@ -245,14 +245,14 @@ struct AtomicDup { #ifdef KOKKOS_ENABLE_OPENMP template<> struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterAtomic}; + using value = Kokkos::Experimental::ScatterAtomic; }; #endif #ifdef KOKKOS_ENABLE_THREADS template<> struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterAtomic}; + using value = Kokkos::Experimental::ScatterAtomic; }; #endif @@ -263,7 +263,7 @@ struct AtomicDup { // Use duplication when running threaded and not using atomics template struct NeedDup { - enum {value = Kokkos::Experimental::ScatterNonDuplicated}; + using value = Kokkos::Experimental::ScatterNonDuplicated; }; #ifndef LMP_KOKKOS_USE_ATOMICS @@ -271,20 +271,20 @@ struct NeedDup { #ifdef KOKKOS_ENABLE_OPENMP template<> struct NeedDup { - enum {value = Kokkos::Experimental::ScatterDuplicated}; + using value = Kokkos::Experimental::ScatterDuplicated; }; #endif #ifdef KOKKOS_ENABLE_THREADS template<> struct NeedDup { - enum {value = Kokkos::Experimental::ScatterDuplicated}; + using value = Kokkos::Experimental::ScatterDuplicated; }; #endif #endif -template +template class ScatterViewHelper {}; template diff --git a/src/KOKKOS/pair_eam_alloy_kokkos.cpp b/src/KOKKOS/pair_eam_alloy_kokkos.cpp index 96a07628e8..35e464d3da 100644 --- a/src/KOKKOS/pair_eam_alloy_kokkos.cpp +++ b/src/KOKKOS/pair_eam_alloy_kokkos.cpp @@ -533,8 +533,8 @@ void PairEAMAlloyKokkos::operator()(TagPairEAMAlloyKernelA::value,decltype(dup_rho),decltype(ndup_rho)>::get(dup_rho,ndup_rho); - auto a_rho = v_rho.template access::value>(); + auto v_rho = ScatterViewHelper::value,decltype(dup_rho),decltype(ndup_rho)>::get(dup_rho,ndup_rho); + auto a_rho = v_rho.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -704,8 +704,8 @@ void PairEAMAlloyKokkos::operator()(TagPairEAMAlloyKernelC::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -814,11 +814,11 @@ void PairEAMAlloyKokkos::ev_tally(EV_FLOAT &ev, const int &i, const // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); if (EFLAG) { if (eflag_atom) { diff --git a/src/KOKKOS/pair_eam_alloy_kokkos.h b/src/KOKKOS/pair_eam_alloy_kokkos.h index 5796bdd1d4..aee94471cf 100644 --- a/src/KOKKOS/pair_eam_alloy_kokkos.h +++ b/src/KOKKOS/pair_eam_alloy_kokkos.h @@ -129,14 +129,14 @@ class PairEAMAlloyKokkos : public PairEAM, public KokkosBase { typename ArrayTypes::t_virial_array d_vatom; int need_dup; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_rho; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_rho; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_rho; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_rho; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; DAT::tdual_ffloat_1d k_rho; DAT::tdual_ffloat_1d k_fp; diff --git a/src/KOKKOS/pair_eam_fs_kokkos.cpp b/src/KOKKOS/pair_eam_fs_kokkos.cpp index 4f3302b455..fd8b587670 100644 --- a/src/KOKKOS/pair_eam_fs_kokkos.cpp +++ b/src/KOKKOS/pair_eam_fs_kokkos.cpp @@ -533,8 +533,8 @@ void PairEAMFSKokkos::operator()(TagPairEAMFSKernelA::value,decltype(dup_rho),decltype(ndup_rho)>::get(dup_rho,ndup_rho); - auto a_rho = v_rho.template access::value>(); + auto v_rho = ScatterViewHelper::value,decltype(dup_rho),decltype(ndup_rho)>::get(dup_rho,ndup_rho); + auto a_rho = v_rho.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -704,8 +704,8 @@ void PairEAMFSKokkos::operator()(TagPairEAMFSKernelC::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -814,11 +814,11 @@ void PairEAMFSKokkos::ev_tally(EV_FLOAT &ev, const int &i, const int // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); if (EFLAG) { if (eflag_atom) { diff --git a/src/KOKKOS/pair_eam_fs_kokkos.h b/src/KOKKOS/pair_eam_fs_kokkos.h index 64e1c78d56..5f1a912f54 100644 --- a/src/KOKKOS/pair_eam_fs_kokkos.h +++ b/src/KOKKOS/pair_eam_fs_kokkos.h @@ -129,14 +129,14 @@ class PairEAMFSKokkos : public PairEAM, public KokkosBase { typename ArrayTypes::t_virial_array d_vatom; int need_dup; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_rho; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_rho; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_rho; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_rho; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; DAT::tdual_ffloat_1d k_rho; DAT::tdual_ffloat_1d k_fp; diff --git a/src/KOKKOS/pair_eam_kokkos.cpp b/src/KOKKOS/pair_eam_kokkos.cpp index f0ac646b6b..3f09491992 100644 --- a/src/KOKKOS/pair_eam_kokkos.cpp +++ b/src/KOKKOS/pair_eam_kokkos.cpp @@ -531,8 +531,8 @@ void PairEAMKokkos::operator()(TagPairEAMKernelA::value,decltype(dup_rho),decltype(ndup_rho)>::get(dup_rho,ndup_rho); - auto a_rho = v_rho.template access::value>(); + auto v_rho = ScatterViewHelper::value,decltype(dup_rho),decltype(ndup_rho)>::get(dup_rho,ndup_rho); + auto a_rho = v_rho.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -700,8 +700,8 @@ void PairEAMKokkos::operator()(TagPairEAMKernelC::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -810,11 +810,11 @@ void PairEAMKokkos::ev_tally(EV_FLOAT &ev, const int &i, const int & // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); if (EFLAG) { if (eflag_atom) { diff --git a/src/KOKKOS/pair_eam_kokkos.h b/src/KOKKOS/pair_eam_kokkos.h index 20bac4ed16..5992b7ed6d 100644 --- a/src/KOKKOS/pair_eam_kokkos.h +++ b/src/KOKKOS/pair_eam_kokkos.h @@ -126,14 +126,14 @@ class PairEAMKokkos : public PairEAM, public KokkosBase { typename ArrayTypes::t_virial_array d_vatom; int need_dup; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_rho; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_rho; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_rho; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_rho; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; DAT::tdual_ffloat_1d k_rho; DAT::tdual_ffloat_1d k_fp; diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index 06458948ef..021b7d191d 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -68,16 +68,16 @@ class PairComputeFunctor { // The force array is atomic for Half/Thread neighbor style //Kokkos::View::value,Kokkos::MemoryTraits::value> > f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,NeedDup::value > dup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,typename NeedDup::value > dup_f; // The eatom and vatom arrays are atomic for Half/Thread neighbor style //Kokkos::View::value,Kokkos::MemoryTraits::value> > eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,NeedDup::value > dup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,typename NeedDup::value > dup_eatom; //Kokkos::View::value,Kokkos::MemoryTraits::value> > vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,NeedDup::value > dup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,typename NeedDup::value > dup_vatom; @@ -90,9 +90,9 @@ class PairComputeFunctor { f = c.f; d_eatom = c.d_eatom; d_vatom = c.d_vatom; - dup_f = Kokkos::Experimental::create_scatter_view::value >(c.f); - dup_eatom = Kokkos::Experimental::create_scatter_view::value >(c.d_eatom); - dup_vatom = Kokkos::Experimental::create_scatter_view::value >(c.d_vatom); + dup_f = Kokkos::Experimental::create_scatter_view::value >(c.f); + dup_eatom = Kokkos::Experimental::create_scatter_view::value >(c.d_eatom); + dup_vatom = Kokkos::Experimental::create_scatter_view::value >(c.d_vatom); }; // Call cleanup_copy which sets allocations NULL which are destructed by the PairStyle @@ -119,7 +119,7 @@ class PairComputeFunctor { EV_FLOAT compute_item(const int& ii, const NeighListKokkos &list, const NoCoulTag&) const { - auto a_f = dup_f.template access::value>(); + auto a_f = dup_f.template access::value>(); EV_FLOAT ev; const int i = list.d_ilist[ii]; @@ -186,7 +186,7 @@ class PairComputeFunctor { EV_FLOAT compute_item(const int& ii, const NeighListKokkos &list, const CoulTag& ) const { - auto a_f = dup_f.template access::value>(); + auto a_f = dup_f.template access::value>(); EV_FLOAT ev; const int i = list.d_ilist[ii]; @@ -587,8 +587,8 @@ class PairComputeFunctor { const F_FLOAT &epair, const F_FLOAT &fpair, const F_FLOAT &delx, const F_FLOAT &dely, const F_FLOAT &delz) const { - auto a_eatom = dup_eatom.template access::value>(); - auto a_vatom = dup_vatom.template access::value>(); + auto a_eatom = dup_eatom.template access::value>(); + auto a_vatom = dup_vatom.template access::value>(); const int EFLAG = c.eflag; const int NEWTON_PAIR = c.newton_pair; diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index 201167f992..30edbb1d14 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -1084,8 +1084,8 @@ void PairReaxCKokkos::operator()(PairReaxComputeLJCoulomb::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); F_FLOAT powr_vdw, powgi_vdw, fn13, dfn13, exp1, exp2, etmp; F_FLOAT evdwl, fvdwl; @@ -1236,8 +1236,8 @@ void PairReaxCKokkos::operator()(PairReaxComputeTabulatedLJCoulomb::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -1599,11 +1599,11 @@ void PairReaxCKokkos::operator()(PairReaxBuildListsHalf, if (d_resize_bo() || d_resize_hb()) return; - auto v_dDeltap_self = ScatterViewHelper::value,decltype(dup_dDeltap_self),decltype(ndup_dDeltap_self)>::get(dup_dDeltap_self,ndup_dDeltap_self); - auto a_dDeltap_self = v_dDeltap_self.template access::value>(); + auto v_dDeltap_self = ScatterViewHelper::value,decltype(dup_dDeltap_self),decltype(ndup_dDeltap_self)>::get(dup_dDeltap_self,ndup_dDeltap_self); + auto a_dDeltap_self = v_dDeltap_self.template access::value>(); - auto v_total_bo = ScatterViewHelper::value,decltype(dup_total_bo),decltype(ndup_total_bo)>::get(dup_total_bo,ndup_total_bo); - auto a_total_bo = v_total_bo.template access::value>(); + auto v_total_bo = ScatterViewHelper::value,decltype(dup_total_bo),decltype(ndup_total_bo)>::get(dup_total_bo,ndup_total_bo); + auto a_total_bo = v_total_bo.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -2039,8 +2039,8 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeMulti2, const int &ii, EV_FLOAT_REAX& ev) const { - auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); - auto a_CdDelta = v_CdDelta.template access::value>(); + auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); + auto a_CdDelta = v_CdDelta.template access::value>(); const int i = d_ilist[ii]; const int itype = type(i); @@ -2191,12 +2191,12 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeAngular, const int &ii, EV_FLOAT_REAX& ev) const { - auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); Kokkos::View::value,Kokkos::MemoryTraits::value> > a_Cdbo = d_Cdbo; - auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); - auto a_CdDelta = v_CdDelta.template access::value>(); + auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); + auto a_CdDelta = v_CdDelta.template access::value>(); const int i = d_ilist[ii]; const int itype = type(i); @@ -2503,13 +2503,13 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeTorsion, const int &ii, EV_FLOAT_REAX& ev) const { - auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); - auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); - auto a_CdDelta = v_CdDelta.template access::value>(); + auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); + auto a_CdDelta = v_CdDelta.template access::value>(); Kokkos::View::value,Kokkos::MemoryTraits::value> > a_Cdbo = d_Cdbo; - //auto a_Cdbo = dup_Cdbo.template access::value>(); + //auto a_Cdbo = dup_Cdbo.template access::value>(); // in reaxc_torsion_angles: j = i, k = j, i = k; @@ -2879,8 +2879,8 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeHydrogen, const int &ii, EV_FLOAT_REAX& ev) const { - auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); int hblist[MAX_BONDS]; F_FLOAT theta, cos_theta, sin_xhz4, cos_xhz1, sin_theta2; @@ -3030,9 +3030,9 @@ void PairReaxCKokkos::operator()(PairReaxUpdateBond, cons Kokkos::View::value,Kokkos::MemoryTraits::value> > a_Cdbo = d_Cdbo; Kokkos::View::value,Kokkos::MemoryTraits::value> > a_Cdbopi = d_Cdbopi; Kokkos::View::value,Kokkos::MemoryTraits::value> > a_Cdbopi2 = d_Cdbopi2; - //auto a_Cdbo = dup_Cdbo.template access::value>(); - //auto a_Cdbopi = dup_Cdbopi.template access::value>(); - //auto a_Cdbopi2 = dup_Cdbopi2.template access::value>(); + //auto a_Cdbo = dup_Cdbo.template access::value>(); + //auto a_Cdbopi = dup_Cdbopi.template access::value>(); + //auto a_Cdbopi2 = dup_Cdbopi2.template access::value>(); const int i = d_ilist[ii]; const tagint itag = tag(i); @@ -3079,11 +3079,11 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeBond1, const int &ii, EV_FLOAT_REAX& ev) const { - auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); - auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); - auto a_CdDelta = v_CdDelta.template access::value>(); + auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); + auto a_CdDelta = v_CdDelta.template access::value>(); F_FLOAT delij[3]; F_FLOAT p_be1, p_be2, De_s, De_p, De_pp, pow_BOs_be2, exp_be12, CEbo, ebond; @@ -3220,8 +3220,8 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeBond2, const int &ii, EV_FLOAT_REAX& ev) const { - auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); F_FLOAT delij[3], delik[3], deljk[3], tmpvec[3]; F_FLOAT dBOp_i[3], dBOp_k[3], dln_BOp_pi[3], dln_BOp_pi2[3]; @@ -3435,11 +3435,11 @@ void PairReaxCKokkos::ev_tally(EV_FLOAT_REAX &ev, const int &i, cons // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); if (eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; @@ -3494,8 +3494,8 @@ void PairReaxCKokkos::e_tally(EV_FLOAT_REAX &ev, const int &i, const if (eflag_atom) { - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); const E_FLOAT epairhalf = 0.5 * epair; a_eatom[i] += epairhalf; @@ -3512,8 +3512,8 @@ void PairReaxCKokkos::e_tally_single(EV_FLOAT_REAX &ev, const int &i const F_FLOAT &epair) const { // The eatom array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); a_eatom[i] += epair; } @@ -3546,8 +3546,8 @@ void PairReaxCKokkos::v_tally(EV_FLOAT_REAX &ev, const int &i, } if (vflag_atom) { - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); a_vatom(i,0) += v[0]; a_vatom(i,1) += v[1]; a_vatom(i,2) += v[2]; a_vatom(i,3) += v[3]; a_vatom(i,4) += v[4]; a_vatom(i,5) += v[5]; @@ -3564,8 +3564,8 @@ void PairReaxCKokkos::v_tally3(EV_FLOAT_REAX &ev, const int &i, cons { // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); F_FLOAT v[6]; @@ -3626,8 +3626,8 @@ void PairReaxCKokkos::v_tally4(EV_FLOAT_REAX &ev, const int &i, cons } if (vflag_atom) { - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); a_vatom(i,0) += 0.25 * v[0]; a_vatom(i,1) += 0.25 * v[1]; a_vatom(i,2) += 0.25 * v[2]; a_vatom(i,3) += 0.25 * v[3]; a_vatom(i,4) += 0.25 * v[4]; a_vatom(i,5) += 0.25 * v[5]; diff --git a/src/KOKKOS/pair_reaxc_kokkos.h b/src/KOKKOS/pair_reaxc_kokkos.h index 60865bfbe2..c133cfd1e2 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.h +++ b/src/KOKKOS/pair_reaxc_kokkos.h @@ -386,25 +386,25 @@ class PairReaxCKokkos : public PairReaxC { typename AT::t_ffloat_2d_dl d_C1dbopi2, d_C2dbopi2, d_C3dbopi2, d_C4dbopi2; typename AT::t_ffloat_2d_dl d_Cdbo, d_Cdbopi, d_Cdbopi2, d_dDeltap_self; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_total_bo; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_CdDelta; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_dDeltap_self; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_Cdbo; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_Cdbopi; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_Cdbopi2; - - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_total_bo; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_CdDelta; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_dDeltap_self; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_Cdbo; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_Cdbopi; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_Cdbopi2; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_total_bo; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_CdDelta; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_dDeltap_self; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_Cdbo; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_Cdbopi; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_Cdbopi2; + + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_total_bo; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_CdDelta; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_dDeltap_self; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_Cdbo; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_Cdbopi; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_Cdbopi2; int need_dup; diff --git a/src/KOKKOS/pair_snap_kokkos.h b/src/KOKKOS/pair_snap_kokkos.h index 37844f9380..e7a1f3173d 100644 --- a/src/KOKKOS/pair_snap_kokkos.h +++ b/src/KOKKOS/pair_snap_kokkos.h @@ -228,10 +228,10 @@ inline double dist2(double* x,double* y); typename AT::t_int_1d_randomread type; int need_dup; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; friend void pair_virial_fdotr_compute(PairSNAPKokkos*); diff --git a/src/KOKKOS/pair_snap_kokkos_impl.h b/src/KOKKOS/pair_snap_kokkos_impl.h index e2a66ee28c..f332bacaad 100644 --- a/src/KOKKOS/pair_snap_kokkos_impl.h +++ b/src/KOKKOS/pair_snap_kokkos_impl.h @@ -608,7 +608,7 @@ void PairSNAPKokkos::operator() (TagPairSNAPComputeNeigh,const typen if ( rsq < rnd_cutsq(itype,jtype) ) { if (final) { #ifdef LMP_KOKKOS_GPU - if (std::is_same::value) { + if (!host_flag) { my_sna.compute_cayley_klein(ii, offset, dx, dy, dz, (radi + d_radelem[elem_j])*rcutfac, d_wjelem[elem_j]); } else { @@ -1056,8 +1056,8 @@ void PairSNAPKokkos::operator() (TagPairSNAPComputeForce::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); int ii = team.league_rank(); const int i = d_ilist[ii + chunk_offset]; @@ -1170,8 +1170,8 @@ void PairSNAPKokkos::v_tally_xyz(EV_FLOAT &ev, const int &i, const i { // The vatom array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); const E_FLOAT v0 = delx*fx; const E_FLOAT v1 = dely*fy; diff --git a/src/KOKKOS/pair_sw_kokkos.cpp b/src/KOKKOS/pair_sw_kokkos.cpp index 4b5e9eafe2..9d18d304f7 100644 --- a/src/KOKKOS/pair_sw_kokkos.cpp +++ b/src/KOKKOS/pair_sw_kokkos.cpp @@ -244,8 +244,8 @@ void PairSWKokkos::operator()(TagPairSWComputeHalf // The f array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); F_FLOAT delr1[3],delr2[3],fj[3],fk[3]; F_FLOAT evdwl = 0.0; @@ -800,11 +800,11 @@ void PairSWKokkos::ev_tally(EV_FLOAT &ev, const int &i, const int &j // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); if (eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; @@ -878,11 +878,11 @@ void PairSWKokkos::ev_tally3(EV_FLOAT &ev, const int &i, const int & // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); if (eflag_atom) { epairthird = THIRD * (evdwl + ecoul); diff --git a/src/KOKKOS/pair_sw_kokkos.h b/src/KOKKOS/pair_sw_kokkos.h index 2fc7f93c12..31b7f3301d 100644 --- a/src/KOKKOS/pair_sw_kokkos.h +++ b/src/KOKKOS/pair_sw_kokkos.h @@ -135,12 +135,12 @@ class PairSWKokkos : public PairSW { typename AT::t_virial_array d_vatom; int need_dup; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; typename AT::t_int_1d_randomread d_type2frho; typename AT::t_int_2d_randomread d_type2rhor; diff --git a/src/KOKKOS/pair_tersoff_kokkos.cpp b/src/KOKKOS/pair_tersoff_kokkos.cpp index 910e8da4f3..222013c3fe 100644 --- a/src/KOKKOS/pair_tersoff_kokkos.cpp +++ b/src/KOKKOS/pair_tersoff_kokkos.cpp @@ -324,8 +324,8 @@ void PairTersoffKokkos::operator()(TagPairTersoffComputeHalf::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); const int i = d_ilist[ii]; if (i >= nlocal) return; @@ -1139,11 +1139,11 @@ void PairTersoffKokkos::ev_tally(EV_FLOAT &ev, const int &i, const i // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); if (eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; @@ -1207,8 +1207,8 @@ void PairTersoffKokkos::v_tally3(EV_FLOAT &ev, const int &i, const i { // The vatom array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); F_FLOAT v[6]; diff --git a/src/KOKKOS/pair_tersoff_kokkos.h b/src/KOKKOS/pair_tersoff_kokkos.h index 0c57e21a6c..60247301ee 100644 --- a/src/KOKKOS/pair_tersoff_kokkos.h +++ b/src/KOKKOS/pair_tersoff_kokkos.h @@ -202,12 +202,12 @@ class PairTersoffKokkos : public PairTersoff { typename ArrayTypes::t_virial_array d_vatom; int need_dup; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; typedef Kokkos::DualView tdual_ffloat_2d_n7; typedef typename tdual_ffloat_2d_n7::t_dev_const_randomread t_ffloat_2d_n7_randomread; diff --git a/src/KOKKOS/pair_tersoff_mod_kokkos.cpp b/src/KOKKOS/pair_tersoff_mod_kokkos.cpp index d51983bfc8..c1a7e64685 100644 --- a/src/KOKKOS/pair_tersoff_mod_kokkos.cpp +++ b/src/KOKKOS/pair_tersoff_mod_kokkos.cpp @@ -324,8 +324,8 @@ void PairTersoffMODKokkos::operator()(TagPairTersoffMODComputeHalf::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); const int i = d_ilist[ii]; if (i >= nlocal) return; @@ -1142,11 +1142,11 @@ void PairTersoffMODKokkos::ev_tally(EV_FLOAT &ev, const int &i, cons // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); if (eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; @@ -1210,8 +1210,8 @@ void PairTersoffMODKokkos::v_tally3(EV_FLOAT &ev, const int &i, cons { // The vatom array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); F_FLOAT v[6]; diff --git a/src/KOKKOS/pair_tersoff_mod_kokkos.h b/src/KOKKOS/pair_tersoff_mod_kokkos.h index b47f11e029..67cca7e761 100644 --- a/src/KOKKOS/pair_tersoff_mod_kokkos.h +++ b/src/KOKKOS/pair_tersoff_mod_kokkos.h @@ -202,12 +202,12 @@ class PairTersoffMODKokkos : public PairTersoffMOD { typename ArrayTypes::t_virial_array d_vatom; int need_dup; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; typedef Kokkos::DualView tdual_ffloat_2d_n7; typedef typename tdual_ffloat_2d_n7::t_dev_const_randomread t_ffloat_2d_n7_randomread; diff --git a/src/KOKKOS/pair_tersoff_zbl_kokkos.cpp b/src/KOKKOS/pair_tersoff_zbl_kokkos.cpp index 9c8bb6e1a5..af86d7c9cc 100644 --- a/src/KOKKOS/pair_tersoff_zbl_kokkos.cpp +++ b/src/KOKKOS/pair_tersoff_zbl_kokkos.cpp @@ -340,8 +340,8 @@ void PairTersoffZBLKokkos::operator()(TagPairTersoffZBLComputeHalf::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); - auto a_f = v_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); const int i = d_ilist[ii]; if (i >= nlocal) return; @@ -1238,11 +1238,11 @@ void PairTersoffZBLKokkos::ev_tally(EV_FLOAT &ev, const int &i, cons // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); - auto a_eatom = v_eatom.template access::value>(); + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); if (eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; @@ -1306,8 +1306,8 @@ void PairTersoffZBLKokkos::v_tally3(EV_FLOAT &ev, const int &i, cons { // The vatom array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); - auto a_vatom = v_vatom.template access::value>(); + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); F_FLOAT v[6]; diff --git a/src/KOKKOS/pair_tersoff_zbl_kokkos.h b/src/KOKKOS/pair_tersoff_zbl_kokkos.h index bed2564da5..48d83baeed 100644 --- a/src/KOKKOS/pair_tersoff_zbl_kokkos.h +++ b/src/KOKKOS/pair_tersoff_zbl_kokkos.h @@ -207,12 +207,12 @@ class PairTersoffZBLKokkos : public PairTersoffZBL { typename ArrayTypes::t_virial_array d_vatom; int need_dup; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; - Kokkos::Experimental::ScatterView::value,Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterDuplicated> dup_vatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_f; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_eatom; + Kokkos::Experimental::ScatterView::value,typename Kokkos::Experimental::ScatterSum,Kokkos::Experimental::ScatterNonDuplicated> ndup_vatom; typedef Kokkos::DualView tdual_ffloat_2d_n7; typedef typename tdual_ffloat_2d_n7::t_dev_const_randomread t_ffloat_2d_n7_randomread; diff --git a/src/KOKKOS/sna_kokkos.h b/src/KOKKOS/sna_kokkos.h index 765ec1a05a..a6a5854841 100644 --- a/src/KOKKOS/sna_kokkos.h +++ b/src/KOKKOS/sna_kokkos.h @@ -77,6 +77,7 @@ inline double memory_usage(); int ncoeff; + int host_flag; // functions for bispectrum coefficients, GPU only KOKKOS_INLINE_FUNCTION diff --git a/src/KOKKOS/sna_kokkos_impl.h b/src/KOKKOS/sna_kokkos_impl.h index 817617090d..2ca6759ce3 100644 --- a/src/KOKKOS/sna_kokkos_impl.h +++ b/src/KOKKOS/sna_kokkos_impl.h @@ -31,6 +31,9 @@ SNAKokkos::SNAKokkos(double rfac0_in, int twojmax_in, double rmin0_in, int switch_flag_in, int bzero_flag_in, int chem_flag_in, int bnorm_flag_in, int wselfall_flag_in, int nelements_in) { + LAMMPS_NS::ExecutionSpace execution_space = ExecutionSpaceFromDevice::space; + host_flag = (execution_space == LAMMPS_NS::Host); + wself = 1.0; rfac0 = rfac0_in; @@ -267,7 +270,7 @@ void SNAKokkos::grow_rij(int newnatom, int newnmax) dedr = t_sna_3d(Kokkos::ViewAllocateWithoutInitializing("sna:dedr"),natom,nmax,3); #ifdef LMP_KOKKOS_GPU - if (std::is_same::value) { + if (!host_flag) { cayleyklein = t_sna_2ckp(Kokkos::ViewAllocateWithoutInitializing("sna:cayleyklein"), natom, nmax); ulisttot = t_sna_3c_ll(Kokkos::ViewAllocateWithoutInitializing("sna:ulisttot"),1,1,1); // dummy allocation @@ -2161,7 +2164,7 @@ double SNAKokkos::memory_usage() bytes += idxcg_max * sizeof(double); // cglist #ifdef LMP_KOKKOS_GPU - if (std::is_same::value) { + if (!host_flag) { auto natom_pad = (natom+32-1)/32; -- GitLab From 86153a0f772e8ab74765e8e0250df9f8a362f5b9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Aug 2020 15:03:27 -0400 Subject: [PATCH 032/165] avoid division by zero in MathExtra normalize functions --- src/math_extra.h | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/math_extra.h b/src/math_extra.h index af2dcbcfe7..a818bae4f4 100644 --- a/src/math_extra.h +++ b/src/math_extra.h @@ -169,10 +169,13 @@ inline void MathExtra::zero3(double *v) inline void MathExtra::norm3(double *v) { - double scale = 1.0/sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]); - v[0] *= scale; - v[1] *= scale; - v[2] *= scale; + const double val = v[0]*v[0]+v[1]*v[1]+v[2]*v[2]; + if (val > 0.0) { + const double scale = 1.0/sqrt(val); + v[0] *= scale; + v[1] *= scale; + v[2] *= scale; + } } /* ---------------------------------------------------------------------- @@ -181,10 +184,13 @@ inline void MathExtra::norm3(double *v) inline void MathExtra::normalize3(const double *v, double *ans) { - double scale = 1.0/sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]); - ans[0] = v[0]*scale; - ans[1] = v[1]*scale; - ans[2] = v[2]*scale; + const double val = v[0]*v[0]+v[1]*v[1]+v[2]*v[2]; + if (val > 0.0) { + double scale = 1.0/sqrt(val); + ans[0] = v[0]*scale; + ans[1] = v[1]*scale; + ans[2] = v[2]*scale; + } } /* ---------------------------------------------------------------------- @@ -194,10 +200,13 @@ inline void MathExtra::normalize3(const double *v, double *ans) inline void MathExtra::snormalize3(const double length, const double *v, double *ans) { - double scale = length/sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]); - ans[0] = v[0]*scale; - ans[1] = v[1]*scale; - ans[2] = v[2]*scale; + const double val = v[0]*v[0]+v[1]*v[1]+v[2]*v[2]; + if (val > 0.0) { + double scale = length/sqrt(val); + ans[0] = v[0]*scale; + ans[1] = v[1]*scale; + ans[2] = v[2]*scale; + } } /* ---------------------------------------------------------------------- -- GitLab From 2fd654f4fda297bec45a34e515593c1ac3aa6b88 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Aug 2020 15:06:00 -0400 Subject: [PATCH 033/165] silence compiler warnings about unused variables --- src/molecule.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/molecule.cpp b/src/molecule.cpp index 650ba69855..8221a08b5f 100644 --- a/src/molecule.cpp +++ b/src/molecule.cpp @@ -879,7 +879,7 @@ void Molecule::masses(char *line) void Molecule::bonds(int flag, char *line) { - int tmp,itype; + int itype; tagint m,atom1,atom2; int newton_bond = force->newton_bond; @@ -947,7 +947,7 @@ void Molecule::bonds(int flag, char *line) void Molecule::angles(int flag, char *line) { - int tmp,itype; + int itype; tagint m,atom1,atom2,atom3; int newton_bond = force->newton_bond; @@ -1031,7 +1031,7 @@ void Molecule::angles(int flag, char *line) void Molecule::dihedrals(int flag, char *line) { - int tmp,itype; + int itype; tagint m,atom1,atom2,atom3,atom4; int newton_bond = force->newton_bond; @@ -1131,7 +1131,7 @@ void Molecule::dihedrals(int flag, char *line) void Molecule::impropers(int flag, char *line) { - int tmp,itype; + int itype; tagint m,atom1,atom2,atom3,atom4; int newton_bond = force->newton_bond; -- GitLab From 9152a8e98ff41fa69c8ae0c81ed99211f12c9436 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Aug 2020 15:32:04 -0400 Subject: [PATCH 034/165] avoid division by zero in imaging code --- src/image.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/image.cpp b/src/image.cpp index 315348065a..e264ba3979 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -651,7 +651,7 @@ void Image::draw_cylinder(double *x, double *y, double c = surface[0] * surface[0] + surface[1] * surface[1] - radsq; double partial = b*b - 4*a*c; - if (partial < 0) continue; + if ((partial < 0.0) || (a == 0.0)) continue; partial = sqrt (partial); double t = (-b + partial) / (2*a); -- GitLab From 2907a10937dfbc2f7bdf019f67c160d760baaf6f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Aug 2020 16:42:39 -0400 Subject: [PATCH 035/165] update version strings for new attempt for a patch release --- doc/lammps.1 | 2 +- src/version.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/lammps.1 b/doc/lammps.1 index 23cbeb4198..c123bf8a63 100644 --- a/doc/lammps.1 +++ b/doc/lammps.1 @@ -1,4 +1,4 @@ -.TH LAMMPS "21 August 2020" "2020-08-21" +.TH LAMMPS "24 August 2020" "2020-08-24" .SH NAME .B LAMMPS \- Molecular Dynamics Simulator. diff --git a/src/version.h b/src/version.h index 89cf3d441d..1803ea012d 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "21 Aug 2020" +#define LAMMPS_VERSION "24 Aug 2020" -- GitLab From e78100bdba55937fb0b1935bdc4998b03e1889ee Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Aug 2020 22:00:13 -0400 Subject: [PATCH 036/165] add (partial) tests for pair styles dpd and dpd/tstat --- unittest/force-styles/test_pair_style.cpp | 13 ++- unittest/force-styles/tests/mol-pair-dpd.yaml | 93 +++++++++++++++++++ .../tests/mol-pair-dpd_tstat.yaml | 93 +++++++++++++++++++ 3 files changed, 197 insertions(+), 2 deletions(-) create mode 100644 unittest/force-styles/tests/mol-pair-dpd.yaml create mode 100644 unittest/force-styles/tests/mol-pair-dpd_tstat.yaml diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index 2cc39f712d..b86c6bd667 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -651,6 +651,14 @@ TEST(PairStyle, omp) EXPECT_THAT(output, StartsWith("LAMMPS (")); EXPECT_THAT(output, HasSubstr("Loop time")); + if (utils::strmatch(test_config.pair_style, "^dpd")) { + std::cerr << "Skipping pair style " << lmp->force->pair_style << "\n"; + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); + GTEST_SKIP(); + } + // abort if running in parallel and not all atoms are local const int nlocal = lmp->atom->nlocal; ASSERT_EQ(lmp->atom->natoms, nlocal); @@ -823,11 +831,11 @@ TEST(PairStyle, intel) GTEST_SKIP(); } - if (test_config.pair_style == "rebo") { + if ((test_config.pair_style == "rebo") || utils::strmatch(test_config.pair_style, "^dpd")) { + std::cerr << "Skipping pair style " << lmp->force->pair_style << "\n"; if (!verbose) ::testing::internal::CaptureStdout(); cleanup_lammps(lmp, test_config); if (!verbose) ::testing::internal::GetCapturedStdout(); - std::cerr << "Skipping pair style rebo/intel\n"; GTEST_SKIP(); } @@ -1105,6 +1113,7 @@ TEST(PairStyle, single) // Pair styles colloid and yukawa/colloid are also not compatible with this single tester if ((test_config.pair_style.substr(0, 7) == "colloid") || (test_config.pair_style.substr(0, 14) == "yukawa/colloid") || + (test_config.pair_style.substr(0, 3) == "dpd") || (test_config.pair_style.substr(0, 3) == "eam") || ((test_config.pair_style.substr(0, 6) == "hybrid") && (test_config.pair_style.find("eam") != std::string::npos))) { diff --git a/unittest/force-styles/tests/mol-pair-dpd.yaml b/unittest/force-styles/tests/mol-pair-dpd.yaml new file mode 100644 index 0000000000..aef725b439 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-dpd.yaml @@ -0,0 +1,93 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 21:10:43 202 +epsilon: 5e-14 +prerequisites: ! | + atom full + pair dpd +pre_commands: ! | + variable newton_pair delete + variable newton_pair index on + comm_modify vel yes +post_commands: ! "" +input_file: in.fourmol +pair_style: dpd 100.0 8.0 11223344 +pair_coeff: ! | + * * 0.4 4.0 + 1 1 0.4 4.0 + 2 2 0.1 2.0 + 2 4 0.1 1.0 + 3 3 0.4 3.2 + 4 4 0.3 3.1 + 5 5 0.3 3.1 +extract: ! "" +natoms: 29 +init_vdwl: 50.8160702483393 +init_coul: 0 +init_stress: ! |2- + 3.6659006242073438e+01 5.4261754086936989e+01 3.3682647206296181e+01 -1.0639502210269674e+01 -1.3242166325151132e+01 -1.4005742776704770e+00 +init_forces: ! |2 + 1 -1.1844697157183162e+00 1.6367083324345932e+00 -1.6164431978301712e+00 + 2 5.9078058310112114e-01 -6.0553807698868589e-01 -2.1617375342810174e-01 + 3 -7.6670713851187267e-01 9.5003276134905523e-01 -6.7203322276142896e-01 + 4 4.4787169248842112e-01 -4.3914625391182971e-01 -5.8111112052406744e-01 + 5 -1.2566744054424648e+00 1.8761399407436345e+00 -4.8645772466641685e-01 + 6 -1.6171557231152949e+00 7.1464499795349412e-01 -1.1092084859232529e+00 + 7 1.1956986434615127e-01 1.2135254550373868e+00 2.6819777778344200e-01 + 8 -2.1606790779612939e+00 -1.0009077427785185e+00 1.7624525183721518e+00 + 9 1.3390099051452800e+00 -2.4735014123573014e+00 2.6740746462472815e+00 + 10 -7.8052872767806614e-01 -5.1102960795557006e-01 1.2478278288073179e+00 + 11 4.0096519237235989e-01 2.7454704972916344e-01 -3.3778771500254134e-01 + 12 3.9978944625028723e-01 3.4308831109613191e-01 -1.5338273501432327e+00 + 13 1.5638145849054872e+00 -1.6306100536412178e+00 -6.9077800227627340e-01 + 14 -4.5890077116425876e-01 1.1040393265955490e+00 -6.5255433176928690e-01 + 15 9.9955212362127699e-01 3.1523397810554382e-01 7.6033632594470357e-01 + 16 1.5206637793429758e+00 -6.8865472048468579e-01 4.3111441160847097e-01 + 17 1.2013544348947844e+00 -1.4553000830334836e-01 -2.1134769947313517e-01 + 18 -3.8609684136209549e-01 1.9552632553349421e+00 -1.0993171536681696e+00 + 19 -8.7985885053838198e-02 1.1064297962553900e+00 -6.4383823839455312e-01 + 20 -4.9390620910171601e-01 -6.2494494552751112e-01 5.9205844998622170e-01 + 21 1.8588598933035880e+00 -2.0526524676732811e+00 -1.6157827761100985e+00 + 22 3.0244171858353114e-01 -2.0994555123327979e-01 -4.2015481943755384e-01 + 23 1.1308097884067911e+00 -7.4934399707572041e-01 -7.2061737164241713e-01 + 24 -9.7930735171085498e-02 -7.1020024239408686e-01 -1.3895944206820467e+00 + 25 -6.7072087315358186e-02 2.5524051048184027e+00 2.5032108743828103e+00 + 26 5.8007929647205347e-01 1.1494769544353340e+00 1.2006491604999117e+00 + 27 -8.5101327467370091e-01 -1.3381699849691291e+00 4.7454538915767125e-01 + 28 -5.0171482039485948e-01 -7.6930558428086560e-01 6.3938995552320765e-01 + 29 -1.7447268905698865e+00 -1.2420546143135882e+00 1.4431700454195584e+00 +run_vdwl: 50.7374424640537 +run_coul: 0 +run_stress: ! |2- + 4.1422955803623331e+01 4.3064652697165656e+01 4.1559179146658437e+01 7.4714571002631666e-02 -6.1411164156467883e+00 1.4393452677580411e+01 +run_forces: ! |2 + 1 3.4481229012955250e-02 8.7676427505874033e-01 8.6953159985570505e-01 + 2 -6.0685163413262000e-01 1.8054270473749765e+00 -1.3447724583087066e+00 + 3 -1.5489568074370474e+00 -1.1697195695126381e+00 -4.2016898199405944e-01 + 4 6.6483248479230617e-01 -2.8537552833949398e-01 -1.4262159415572853e-01 + 5 -2.5079573819493115e+00 -5.4749684288447742e-01 -9.2176487630526061e-01 + 6 -3.3683366742684075e+00 -2.8370086919843733e+00 2.3787004700359460e+00 + 7 -1.1088909812982797e+00 1.0662320225284174e+00 -1.5547571601775303e+00 + 8 4.8274899963537232e-02 -1.2662741349835094e+00 -1.1264999586848734e-02 + 9 -7.9392140576769521e-01 6.6309466709101994e-01 -9.3428302967917221e-01 + 10 6.5582745048635882e-01 -1.3935631322559230e+00 3.9652481372835024e-01 + 11 -8.9581634608744354e-01 5.8270221289096336e-01 -1.3470229861712517e+00 + 12 -2.4813480073283825e-01 -2.7914371015992118e-01 8.8475895601011501e-01 + 13 1.4411772191850578e+00 3.4229035626071758e-01 -9.6466421809601099e-01 + 14 -3.1820502106474224e-01 2.1107989751378229e+00 -8.3403511682963416e-01 + 15 2.0411952060439429e+00 -5.1687781239112196e-01 3.4118955931228845e-01 + 16 3.0305751663940432e+00 -2.4465966801613774e+00 1.3803648518062497e+00 + 17 -1.0562126497005115e+00 9.6026338984160364e-01 -2.3396185799019276e-01 + 18 -7.5924641415145447e-02 7.1108337715179815e-01 -1.6611081292757415e-01 + 19 3.1563313366696760e-01 9.5045473920794418e-02 -1.0350203415743287e+00 + 20 7.1217787971185398e-01 8.5821099595470418e-01 -6.2148643809194115e-01 + 21 1.1641790863537491e+00 -1.2981288871776584e+00 -1.0807519983757896e+00 + 22 6.7878931351872340e-01 -9.8995510259034769e-01 -9.1730222916933746e-01 + 23 8.2288292170920641e-01 -5.9516667563818060e-01 -3.0490413116568965e-01 + 24 1.5162054875185491e+00 2.0320373989442251e+00 3.4664118563573796e+00 + 25 -3.1630494516391483e-01 6.7230329810281941e-01 -3.3471315058754225e-01 + 26 1.5511596931497584e+00 1.6116056217251533e+00 2.0701295755454581e+00 + 27 -3.7771214801276926e-01 5.3972810782104752e-01 1.8785917006737876e-01 + 28 -6.7292064687859554e-01 -5.3102331619676224e-01 1.3811176625034274e-01 + 29 -7.8124508759768641e-01 -7.7125713552902087e-01 1.0560237622173840e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml b/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml new file mode 100644 index 0000000000..888480c849 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml @@ -0,0 +1,93 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 21:31:49 202 +epsilon: 5e-14 +prerequisites: ! | + atom full + pair dpd/tstat +pre_commands: ! | + variable newton_pair delete + variable newton_pair index on + comm_modify vel yes +post_commands: ! "" +input_file: in.fourmol +pair_style: dpd/tstat 100.0 100.0 8.0 55667788 +pair_coeff: ! | + * * 4.0 + 1 1 4.0 + 2 2 2.0 + 2 4 1.0 + 3 3 3.2 + 4 4 3.1 + 5 5 3.1 +extract: ! "" +natoms: 29 +init_vdwl: 0 +init_coul: 0 +init_stress: ! |- + -1.4863518588872060e+01 1.5507190667237291e+01 6.1320555319686756e+00 3.9903391393997706e-01 8.4645463107459147e+00 9.5549166743249305e+00 +init_forces: ! |2 + 1 -2.2862827209360765e+00 1.8273528276910633e+00 -6.0159909432330982e-01 + 2 -1.4856656887782247e+00 8.2761293548833348e-01 4.2555006425664910e-01 + 3 2.1292650733221401e+00 -1.8951288305607377e+00 -1.0712180441166039e+00 + 4 2.1475547687962981e+00 1.4267316029329133e-01 2.3856061975565590e-01 + 5 7.2250550075718567e-01 -9.8475783851067783e-02 -2.2535728434952168e-01 + 6 1.2405083695898295e-01 8.3877987836870205e-01 -1.8325499188852330e+00 + 7 -6.8641567371201515e-02 -2.2059602234048303e+00 8.0324856247662213e-01 + 8 7.2737406915213798e-02 1.6777618193756783e-02 -2.0734596877401831e-01 + 9 1.4450773135946633e+00 1.2980713925188412e+00 -8.2828426571510438e-01 + 10 4.1171139262563566e-01 -1.3556848612751655e+00 -1.0739762365888486e+00 + 11 2.6835323013616164e-01 -1.9588302977733782e+00 2.6813105151748928e-01 + 12 -1.6632137162094256e+00 1.9498046949511176e+00 1.0143819707834012e-02 + 13 -8.7976243986653102e-01 1.3631910113257160e+00 1.1410083492464635e+00 + 14 -1.8965600133047860e+00 9.3937776064309891e-02 2.0467744909156078e+00 + 15 1.6976061149407253e+00 -1.1280904614799869e+00 5.1319657625596116e-01 + 16 -1.5977255554923007e+00 1.0221367042201095e-02 -5.8489694260239411e-01 + 17 9.5438719219347445e-01 -1.7720481905618479e-01 1.0156393167078182e-01 + 18 -9.8730930021237306e-01 -1.3247846104852807e+00 1.8813126261912012e+00 + 19 -1.3254672806140730e-01 1.8620333793350834e+00 -1.9282622481261882e+00 + 20 7.2225428344170295e-01 -2.5659914253624355e-03 -2.2920240922768265e-01 + 21 -2.4203470930416701e-01 2.4120310618804819e-01 1.8895553235188441e-02 + 22 5.2798332199600295e-01 -9.3201542918092561e-01 -7.4176429016929357e-01 + 23 -5.2845051218111827e-01 -4.1317228656597849e-01 -2.5007643564248250e-01 + 24 5.6707723481417194e-01 5.1429055736404905e-01 7.3131657174007469e-01 + 25 -6.6896850435818875e-02 3.3284288810290708e-01 4.5699653538675844e-01 + 26 -2.6362901957130650e-02 4.6946935629112840e-01 8.0786005811105099e-01 + 27 -3.9512178307521062e-01 -6.2478190671493694e-01 2.4875747677438484e-01 + 28 9.4276840865047695e-01 1.2060543067370164e+00 -7.3475860849092600e-01 + 29 -4.7675759195706352e-01 -8.7762075418173024e-01 6.1597545976988388e-01 +run_vdwl: 0 +run_coul: 0 +run_stress: ! |2- + 8.3092195130617679e+00 8.8087197187448734e+00 1.0866432257972122e+01 -8.1281050865178219e+00 6.1784321167959544e-01 1.2769573774314161e+01 +run_forces: ! |2 + 1 -2.6266020324984418e+00 8.2201323231265433e-01 1.4749772754591481e+00 + 2 -6.7727359927535269e-01 3.4376214998698523e-01 3.3945746781764990e-01 + 3 1.2005782584962879e+00 -1.2936196454264879e+00 -2.2402845222284338e+00 + 4 -4.6620764610046389e-01 1.2647101563213287e-01 5.5250822226653018e-01 + 5 4.7978394625545873e-01 8.4332151113409659e-01 4.0792830629323895e-01 + 6 -1.9542443055945939e+00 1.8975617142665895e+00 -1.4594911348609056e+00 + 7 -1.4108099415497104e+00 2.3954491258832861e-01 -1.2427949751680076e-01 + 8 -1.1547560498892029e+00 -1.8379407309448745e+00 -4.6290176506793662e-01 + 9 8.7444831756269625e-01 1.7307448537307921e-01 -9.4793513740431135e-01 + 10 -1.5440048971445408e+00 1.1902331107098123e+00 1.5660650435305974e+00 + 11 3.2614898531042802e-01 -4.2343515656746933e-01 5.0440985609457700e-02 + 12 1.3776465372608324e+00 1.4429336351759697e-01 -1.6572768459783505e+00 + 13 -8.6025935005236043e-01 2.7602052190506163e+00 2.5047228082143205e+00 + 14 4.4891746327495946e-01 1.3153910663546353e-01 -3.2960784140102711e-01 + 15 2.8031565087975010e+00 -4.0492304325231793e-02 -4.5542531410557574e-01 + 16 1.1568450190673436e+00 -1.1170400443284660e+00 -1.2861306908004659e+00 + 17 -8.2046202580916117e-01 -6.3104829619459157e-01 8.5616193459003953e-01 + 18 6.0985267110501340e-01 2.9694956148679935e-01 -4.9116597815368851e-01 + 19 8.9776027762713906e-01 -2.1131588536445838e+00 9.4252335520116859e-02 + 20 -6.9884697162063159e-01 -5.5952187995536673e-01 5.5287452375002544e-01 + 21 1.1130356718786313e-01 -1.5375054927828511e+00 -8.7481829335361294e-01 + 22 -2.2236601797334588e-01 -3.7232353752499980e-01 -1.2962704074569753e-01 + 23 5.4653190458065948e-01 -2.7157662292855400e-01 -1.4905757681812964e-01 + 24 -2.8461666700526816e-01 -1.1789184552344745e+00 -1.5110335752078661e+00 + 25 2.9600652072485212e-01 1.6062798669357845e+00 2.8507004383966761e+00 + 26 4.3391222627809989e-01 5.1464600762894475e-01 7.3814317764947623e-01 + 27 -4.1598115100324368e-01 -7.2346157494410113e-01 8.9386495870487659e-01 + 28 1.6883094994906600e+00 1.4344049162319250e+00 -1.0316591583781085e+00 + 29 -1.1477104750347786e-01 -4.2425757868875719e-01 2.6859689421875543e-01 +... -- GitLab From c8f2634b44879a43f5b5c83f3dfe7770c39fa5c1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Aug 2020 22:08:08 -0400 Subject: [PATCH 037/165] add tests for tabulated msm coulomb --- .../tests/mol-pair-born_coul_msm_table.yaml | 105 ++++++++++++++++ .../tests/mol-pair-buck_coul_msm_table.yaml | 105 ++++++++++++++++ .../tests/mol-pair-coul_msm_table.yaml | 92 ++++++++++++++ .../mol-pair-lj_charmm_coul_msm_table.yaml | 102 ++++++++++++++++ .../tests/mol-pair-lj_cut_coul_msm_table.yaml | 99 +++++++++++++++ .../tests/mol-pair-lj_sdk_coul_msm_table.yaml | 115 ++++++++++++++++++ 6 files changed, 618 insertions(+) create mode 100644 unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml create mode 100644 unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml create mode 100644 unittest/force-styles/tests/mol-pair-coul_msm_table.yaml create mode 100644 unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml create mode 100644 unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml create mode 100644 unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml diff --git a/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml new file mode 100644 index 0000000000..e3df84b71f --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml @@ -0,0 +1,105 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:05:53 202 +epsilon: 5e-14 +prerequisites: ! | + atom full + pair born/coul/msm + kspace msm +pre_commands: ! "" +post_commands: ! | + pair_modify table 16 + kspace_style msm 1.0e-4 + kspace_modify compute no + kspace_modify cutoff/adjust no + kspace_modify pressure/scalar no # required for USER-OMP with msm +input_file: in.fourmol +pair_style: born/coul/msm 12.0 +pair_coeff: ! "1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 + 141.547923828784 \n1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 + 4.09225030876458 \n1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 + 403.51858739517 \n1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 + 303.336540547726 \n1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 + 303.336540547726 \n2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 + 0.177172207445923 \n2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 + 17.5662073921955 \n2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 + 0.000703093129207124 \n2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 + 12.548008396489 \n3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 + 1019.38354056979 \n3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 + 778.254162800904 \n3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 + 778.254162800904 \n4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 + 592.979935420722 \n4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 + 592.979935420722 \n5 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 + 592.979935420722 \n" +extract: ! | + cut_coul 0 +natoms: 29 +init_vdwl: 225.009623463391 +init_coul: 114.131380823567 +init_stress: ! |2- + 4.6462918813446385e+02 4.4899642853749270e+02 7.8631555812755107e+02 -1.0022375678502866e+02 3.8087783960336296e+01 1.0611933533009946e+02 +init_forces: ! |2 + 1 -4.6723261224668660e+00 6.5701645962102603e+01 8.4412589327695187e+01 + 2 4.0395442422812486e+01 3.0141607924568596e+01 -4.9169071035813957e+01 + 3 -3.3567064784907856e+01 -9.0458717556272944e+01 -3.5275914745939566e+01 + 4 -5.3726052314941528e+00 1.4856907007116891e+00 -4.1900444408514659e+00 + 5 -2.1184692270616057e+00 -2.0517294329937981e+00 7.8248404545307251e+00 + 6 -1.3434686887227471e+02 1.4589993143586958e+02 1.3317608911480906e+02 + 7 2.9902207817226154e+00 -4.3285726954722698e+01 -2.4334239817321239e+02 + 8 7.6989933369348558e+00 -8.7777446495507263e+00 6.6292540139546105e+01 + 9 2.0040115867204552e+01 1.4119828793975080e+01 8.2000389230951342e+01 + 10 9.2973009747760003e+01 -1.1559552055771047e+02 -3.3780566435417931e+01 + 11 -2.5148533173464114e+00 -2.7774621859037905e+00 -7.0583062947297206e+00 + 12 1.4462787741182396e+01 4.8670746269266143e+00 -3.2507550523105726e+00 + 13 5.4977481909545070e+00 -2.1597762048992268e+00 -2.9867089215469472e-01 + 14 -3.5242869843273863e+00 9.5162834714696631e-01 -6.1560476392546875e+00 + 15 1.1914633616965276e-01 5.7895660512190057e+00 1.0301278141889270e+00 + 16 7.5124810371904985e+01 -5.8101592336106691e+01 -1.7456046391106855e+02 + 17 -7.2053759563535166e+01 5.3840306817213474e+01 1.8041339619504487e+02 + 18 7.8956558407798627e-01 6.1014275840242931e+00 -8.9970202163964288e+00 + 19 1.8456876917207437e+00 -1.3991078906125181e+00 6.2358620148659005e+00 + 20 -3.1293946770382166e+00 -4.5663074955207463e+00 4.7514600744934903e+00 + 21 -1.6406749515304256e+01 -1.6501420409899136e+01 5.1644386660251392e+01 + 22 -2.7850617363250315e+01 -7.9941476236414841e+00 -3.9964370968810492e+01 + 23 4.3750260684569071e+01 2.5045875846617850e+01 -1.1097655938205337e+01 + 24 9.6389348571380502e+00 -4.5960755334976632e+01 2.5705344553332495e+01 + 25 -3.7946729268568383e+01 3.0655306989902984e+00 -3.0929646313763389e+01 + 26 2.7688882325387258e+01 4.2709307251291918e+01 4.5814320636962496e+00 + 27 9.2127777588853803e+00 -4.9743145817451357e+01 1.8793705897680244e+01 + 28 -4.2446746701351501e+01 1.5146990306640154e+01 -2.7893182357714910e+01 + 29 3.3722087930502333e+01 3.4506742102964189e+01 9.1019508745580708e+00 +run_vdwl: 158.517821228768 +run_coul: 115.962240913696 +run_stress: ! |2- + 3.6387648397931588e+02 3.5301003752982047e+02 5.1307556406547917e+02 -9.1562321417279833e+01 3.3594654109187168e+01 7.7956883465375853e+01 +run_forces: ! |2 + 1 3.1145970722922813e+00 5.4525990307381853e+01 5.7918976793358901e+01 + 2 2.4809254082586381e+01 1.7077500801694065e+01 -3.0676642389207348e+01 + 3 -3.0681041713774849e+01 -6.2343477316464032e+01 -2.4087070040233044e+01 + 4 -5.1593256652650918e+00 1.5471587511193317e+00 -4.1007486840186926e+00 + 5 -1.9072339462680974e+00 -1.6445169266698272e+00 7.1844780492534994e+00 + 6 -9.7227061060233538e+01 9.9934898952367107e+01 5.1846594365018234e+01 + 7 3.9872822224787048e+00 -2.6783719185441875e+01 -1.3414790026540734e+02 + 8 3.9254286479685390e+00 -1.8806812769936683e+00 5.7983856261910056e+01 + 9 1.4010216424977763e+01 6.2974294391086145e+00 5.3689010717585475e+01 + 10 6.9394114287350163e+01 -8.8353236590403000e+01 -2.9800578882665189e+01 + 11 -2.7156479275017289e+00 -2.4963131920388135e+00 -6.9853574089021198e+00 + 12 1.3808226882219833e+01 4.9563009446178379e+00 -3.8000668589540143e+00 + 13 5.1568629281476310e+00 -1.9299562668444334e+00 -3.1250556113418748e-01 + 14 -3.3113070014742112e+00 8.1572283230231080e-01 -5.2530150667850624e+00 + 15 -4.2234869535507903e-02 5.5876265612171423e+00 1.0603082430152573e+00 + 16 4.7392602397085675e+01 -4.0554132567343352e+01 -9.5667482600039818e+01 + 17 -4.3240644435896243e+01 3.4796459526178062e+01 1.0306838335312038e+02 + 18 1.7035976233006297e-01 5.8315308908160244e+00 -8.3008273079895538e+00 + 19 2.2737281999154466e+00 -1.2136493217418693e+00 6.2706215245225865e+00 + 20 -3.0498375670139026e+00 -4.4804073660705370e+00 4.1711099502749791e+00 + 21 -1.1564346721782504e+01 -9.8933258271453663e+00 3.5174887378978461e+01 + 22 -1.9796455445188602e+01 -6.1471247339727784e+00 -2.7299108457038624e+01 + 23 3.0799852418096041e+01 1.6634666356950142e+01 -7.2149017818155388e+00 + 24 9.3653371836176404e+00 -3.3214622489949974e+01 2.0067072450130503e+01 + 25 -3.0504095515309999e+01 1.7046500588910687e+00 -2.4914216393450818e+01 + 26 2.0444518202980291e+01 3.1326578284999453e+01 4.1342439375362732e+00 + 27 5.8450920562190083e+00 -3.3514776371852228e+01 1.1710721520060646e+01 + 28 -2.9102697260303724e+01 9.7310403863154153e+00 -1.8687137784921696e+01 + 29 2.3804456361282547e+01 2.3682385338973308e+01 6.9672949377977824e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml new file mode 100644 index 0000000000..c5aa956f68 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml @@ -0,0 +1,105 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:05:53 202 +epsilon: 5e-14 +prerequisites: ! | + atom full + pair buck/coul/msm + kspace msm +pre_commands: ! "" +post_commands: ! | + pair_modify mix arithmetic + pair_modify table 16 + kspace_style msm 1.0e-4 + kspace_modify compute no + kspace_modify cutoff/adjust no + kspace_modify pressure/scalar no # required for USER-OMP with msm +input_file: in.fourmol +pair_style: buck/coul/msm 8.0 +pair_coeff: ! | + 1 1 170339.505032359 0.166879344173798 13.642356513989 + 1 2 85988.1490021027 0.116722557424471 0.80085535265993 + 1 3 169866.420176425 0.190286500706475 29.9623467274028 + 1 4 147160.913151695 0.186942613268455 23.3320434749744 + 1 5 147160.913151695 0.186942613268455 23.3320434749744 + 2 2 43972.4676803832 0.0665738276248451 0.0138732735747516 + 2 3 85535.686235147 0.140128612516736 2.39406114840173 + 2 4 45975.8370021332 0.0331639834863857 0.000214673167591639 + 2 5 74124.142292174 0.136784828511181 1.79395952625758 + 3 3 169504.649065961 0.213692863412526 60.0617510100503 + 3 4 146835.114678908 0.210349185259049 47.3225728524629 + 3 5 146835.114678908 0.210349185259049 47.3225728524629 + 4 4 127198.698386798 0.207005479340455 37.2289658745028 + 4 5 127198.698386798 0.207005479340455 37.2289658745028 + 5 5 127198.698386798 0.207005479340455 37.2289658745028 +extract: ! "" +natoms: 29 +init_vdwl: 143.749538808172 +init_coul: 226.465163473713 +init_stress: ! |2- + 2.6217223817480522e+02 2.4398322761761119e+02 4.2145301245028469e+02 -4.9520774663735487e+01 2.4077558427717523e+01 5.6176686601157868e+01 +init_forces: ! |2 + 1 -1.3612342552978220e+00 3.7909060286159267e+01 4.9085082764621667e+01 + 2 2.3384237617804189e+01 1.6578021556655582e+01 -2.9200205053508675e+01 + 3 -1.9508282117948774e+01 -5.0839662734296446e+01 -2.0148561655103677e+01 + 4 -4.2930801564872265e+00 1.1255473254979382e+00 -3.2382742736470407e+00 + 5 -1.8877720380059577e+00 -1.5461570903475677e+00 6.0118689548541830e+00 + 6 -6.9589084749026085e+01 7.3118756927051336e+01 6.3231771334210471e+01 + 7 -4.3724871335865292e-02 -2.0532324533041741e+01 -1.2592639037046813e+02 + 8 1.2648881771246683e+00 -1.8786992646127081e+00 3.7593093258171066e+01 + 9 1.2005271628774135e+01 5.3525296254412540e+00 4.7408988016202606e+01 + 10 4.8222747575363414e+01 -6.2496088450414845e+01 -1.8169669037695034e+01 + 11 -2.1105378066035065e+00 -1.9658359658074545e+00 -5.5150469163105340e+00 + 12 1.1661458001278147e+01 3.4698278379554428e+00 -2.1478928080178994e+00 + 13 4.3695170389235267e+00 -1.7548352635670732e+00 -2.8776610558846555e-01 + 14 -2.9000866600077493e+00 7.5292541582614581e-01 -4.8122502463774639e+00 + 15 2.3866544210097013e-01 4.4342895397381499e+00 5.7974073697843775e-01 + 16 4.0260804920218717e+01 -3.2786734505684542e+01 -8.8162851681529972e+01 + 17 -3.8501159131475156e+01 3.0778512895587767e+01 9.1944594492016193e+01 + 18 3.0801880440615237e-01 4.9132078056488648e+00 -8.1683038515224116e+00 + 19 2.0372330247567172e+00 -7.8344722174261450e-01 5.7300336837057255e+00 + 20 -2.9205040066053636e+00 -4.0408507047551110e+00 4.2766322240054420e+00 + 21 -8.8758130576947298e+00 -8.1407343529264882e+00 2.7233741565175436e+01 + 22 -1.5713544083150392e+01 -4.9120837817353022e+00 -2.1424487689922053e+01 + 23 2.4121976082940886e+01 1.3519097827294384e+01 -5.2358829438607426e+00 + 24 5.3286664511158159e+00 -2.4073959159127980e+01 1.3330235366046221e+01 + 25 -2.1443057901243794e+01 9.2275387140334386e-01 -1.7061835525979092e+01 + 26 1.5531992012034367e+01 2.2886553694303810e+01 3.0943152624172980e+00 + 27 4.5726620680707963e+00 -2.6041323711122949e+01 9.8983244066517280e+00 + 28 -2.3279647768186493e+01 7.5396562185096743e+00 -1.5121646456861377e+01 + 29 1.9119389758156409e+01 1.8491995912109910e+01 5.2026425513360959e+00 +run_vdwl: 121.764878699463 +run_coul: 227.174468571459 +run_stress: ! |2- + 2.3542362350854432e+02 2.1732857470978792e+02 3.4472872871544200e+02 -4.8097476436750938e+01 2.2369545314645602e+01 5.0594671233200948e+01 +run_forces: ! |2 + 1 1.6703129529188125e+00 3.4615582607988060e+01 4.0156155487042973e+01 + 2 1.8087345537075151e+01 1.2247204990680453e+01 -2.2665758471508582e+01 + 3 -1.8969092698810176e+01 -4.2052594493213547e+01 -1.6679347422023483e+01 + 4 -4.0762667520270668e+00 1.1088205577625916e+00 -3.1416367224964117e+00 + 5 -1.7678353724119078e+00 -1.3301897054473499e+00 5.6330370956881159e+00 + 6 -5.9319268507752213e+01 6.0841537480092008e+01 4.0526115553361379e+01 + 7 8.8197849278017915e-01 -1.6601884583255984e+01 -9.4662430990127262e+01 + 8 -9.0664542798844002e-03 8.3849196112176427e-01 3.6094764212959127e+01 + 9 1.0122083928370071e+01 2.3532006764935063e+00 3.8098586062348510e+01 + 10 4.2012980601056533e+01 -5.5259625245129641e+01 -1.7635039095700673e+01 + 11 -2.1198968586681946e+00 -1.6662336986889545e+00 -5.1830106293186446e+00 + 12 1.1303967282261448e+01 3.4217489934165921e+00 -2.5868228383514604e+00 + 13 4.1464470139290048e+00 -1.5944726495865951e+00 -2.8930972653980136e-01 + 14 -2.7453263746156091e+00 6.5881424768576058e-01 -4.2024319297101744e+00 + 15 1.2798850726417882e-01 4.3346698713149454e+00 6.2227752479031195e-01 + 16 3.2800909379922267e+01 -2.8372092411729398e+01 -6.7005163968173846e+01 + 17 -3.0833546436884490e+01 2.6162284883577250e+01 7.1085692250425879e+01 + 18 -2.6243189073280659e-01 4.4893832376191423e+00 -7.7149617889642652e+00 + 19 2.4655330016857104e+00 -4.9990485216883768e-01 5.8662127723815907e+00 + 20 -2.8386657032986222e+00 -3.9057484936458429e+00 3.7658352426302830e+00 + 21 -7.8025665187305808e+00 -6.1434141193403526e+00 2.2713506699381345e+01 + 22 -1.3535975224784096e+01 -4.4827843399063267e+00 -1.7867515969273331e+01 + 23 2.0843097978764426e+01 1.1110852346733548e+01 -4.2354694728748186e+00 + 24 6.0068797217371701e+00 -2.1571306718840283e+01 1.2644273378870498e+01 + 25 -2.0661723875999876e+01 5.7300982588680638e-01 -1.6538850991387701e+01 + 26 1.4038902406895604e+01 2.0734396551962067e+01 3.2302015846198913e+00 + 27 4.0044507075362379e+00 -2.1705500021459482e+01 7.8803384605089679e+00 + 28 -1.9812970429932285e+01 6.1603163670174572e+00 -1.2629825517655037e+01 + 29 1.6241755586731013e+01 1.5535436733060664e+01 4.7205792090965915e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml new file mode 100644 index 0000000000..20d4092a13 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml @@ -0,0 +1,92 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:05:54 202 +epsilon: 5e-14 +prerequisites: ! | + atom full + pair coul/msm + kspace msm +pre_commands: ! "" +post_commands: ! | + pair_modify mix arithmetic + pair_modify table 16 + kspace_style msm 1.0e-4 + kspace_modify compute no + kspace_modify cutoff/adjust no + kspace_modify pressure/scalar no # required for USER-OMP with msm +input_file: in.fourmol +pair_style: coul/msm 12.0 +pair_coeff: ! | + * * +extract: ! | + cut_coul 0 +natoms: 29 +init_vdwl: 0 +init_coul: 114.131383580102 +init_stress: ! |- + -2.4267791676000897e+01 -4.5756714657540712e+01 -4.2967563337009388e+01 5.5703418947052219e+00 -6.0923254743244728e+00 1.1018049168817702e+01 +init_forces: ! |2 + 1 2.3169325100317013e+00 -3.2800480739253385e-01 6.5603422816590351e-01 + 2 -5.6424554047622089e-02 -3.1396306035355757e+00 -1.5595008030179369e+00 + 3 -1.2700262031204916e-02 -9.2560426588892381e-02 4.0737784936038683e-02 + 4 3.4781275998342576e-02 4.0994829004894588e-02 -3.4239925440003510e-01 + 5 -4.2395915161477971e-01 7.3603819252737801e-01 -1.2739657485555148e-01 + 6 1.9757076027592493e+00 -3.4960933327797803e+00 -3.4201640458971170e+00 + 7 -3.7518522247763547e-01 5.3993395276598177e-01 4.3601447564521854e+00 + 8 -1.7266850997494634e+00 3.9708659451301056e+00 2.8915126735539340e+00 + 9 1.8258602901011922e+00 -5.5141844061531726e+00 1.3724847938529174e+00 + 10 -2.7392541645951002e-01 4.4765428046829320e-01 -2.8146989358605301e-01 + 11 -9.5966471539752174e-01 1.1528003795466106e+00 -6.4309478458295954e-01 + 12 3.1819854039328130e+00 -8.6335309803608784e-01 1.5901475324063978e+00 + 13 -1.7042167132415392e-01 8.8783726727787074e-02 -1.9529590434809427e-01 + 14 -1.1856852388425367e+00 4.7789671882553947e-01 -1.1934088465639706e-01 + 15 2.5833476465361460e-01 -1.1906750618178201e-01 -1.0660303258853581e+00 + 16 -8.5770008777767304e-01 -2.3622089562426579e-01 2.2531357894722248e+00 + 17 -2.4521445214821540e+00 5.8973227888201434e+00 -7.3263768033004615e+00 + 18 8.0719126492359361e-01 6.1331715862786673e+00 -9.0265273923160407e+00 + 19 1.8459668272905374e+00 -1.3980305234975205e+00 6.2336430423356131e+00 + 20 -3.1288247722403573e+00 -4.5655215458408431e+00 4.7507320914323099e+00 + 21 2.0306484245543475e+00 5.1315180023614095e+00 -9.8207018498313996e+00 + 22 1.7292843033088272e+00 -8.2619025539429258e-01 6.4426324079548163e+00 + 23 -4.2559874654145267e+00 -3.7674932717836032e+00 3.9486661748207328e+00 + 24 -1.7163476483970905e+00 1.0716417346012644e+01 -5.5167626336597309e+00 + 25 3.2240507209146498e+00 -3.5600869457826900e+00 3.6846059450737161e+00 + 26 -2.1144772398874316e+00 -7.3303757329350745e+00 1.2129063148913726e+00 + 27 -2.5417586170969213e+00 1.1648838819071136e+01 -4.5036470766211476e+00 + 28 4.6868036569188680e+00 -5.1092487641625155e+00 3.9981377912030145e+00 + 29 -1.6656553611471538e+00 -6.6361744518519572e+00 5.1318690040709902e-01 +run_vdwl: 0 +run_coul: 113.058278557077 +run_stress: ! |- + -2.5695957966588988e+01 -4.5981169313887513e+01 -4.2433702988798949e+01 4.9052466337291829e+00 -7.1301483187493266e+00 1.0197238660774085e+01 +run_forces: ! |2 + 1 2.3257705447467725e+00 -3.0941342747436373e-01 6.5880016059557889e-01 + 2 -1.3947454543444543e-01 -3.1637609203207386e+00 -1.5506784401654559e+00 + 3 -1.3501468089142533e-02 -9.4693297871044219e-02 3.9215391415630213e-02 + 4 4.4390369968501979e-02 3.7461281743725233e-02 -3.4679110740559621e-01 + 5 -4.1240515231104102e-01 7.3495006173040534e-01 -1.3401795642039521e-01 + 6 1.9229817470285877e+00 -3.4765249742743793e+00 -3.3275985038787672e+00 + 7 -3.2865465377006303e-01 5.2742951123680060e-01 4.2528727749433388e+00 + 8 -1.6241606992068600e+00 3.9340613353418044e+00 2.8844871680749176e+00 + 9 1.7990485715469549e+00 -5.5959890430769823e+00 1.4618558883071644e+00 + 10 -2.7761093745666804e-01 4.4114683002656824e-01 -2.9059112554914118e-01 + 11 -9.6058018626142461e-01 1.1580599432799330e+00 -6.2754026009395514e-01 + 12 3.1741794086629773e+00 -8.4292239402730706e-01 1.6107421415442400e+00 + 13 -1.8014382636779289e-01 7.9043389696342142e-02 -1.9737478903795086e-01 + 14 -1.1875091158199436e+00 4.8600216681926522e-01 -1.1399770942841514e-01 + 15 2.7386113048081051e-01 -1.4253751708511392e-01 -1.0907260540827179e+00 + 16 -8.7550768068249074e-01 -2.3897348755219194e-01 2.2704719703311018e+00 + 17 -2.4705763748799603e+00 6.0345390897601661e+00 -7.4206364034699179e+00 + 18 3.7629574650683789e-01 5.6654728131047181e+00 -8.7189931352643928e+00 + 19 2.2635603864135616e+00 -1.0437750539445705e+00 6.3986649377434608e+00 + 20 -3.1041980586399185e+00 -4.4566395693871916e+00 4.2630597894210052e+00 + 21 2.1685843975388770e+00 4.8958239601552114e+00 -9.8875399885346518e+00 + 22 2.0543356817887046e+00 -5.7288055423943229e-01 6.5771296114913929e+00 + 23 -4.7062446099170252e+00 -3.8094489766104949e+00 3.8689546597030233e+00 + 24 -1.9486309348760944e+00 1.1028753107789740e+01 -5.7541887048587794e+00 + 25 3.7178614197912321e+00 -3.4866928057490392e+00 4.1071469026299114e+00 + 26 -2.3505729309823300e+00 -7.6942423581408788e+00 1.0642772360399546e+00 + 27 -2.7656630156568407e+00 1.1908437194961415e+01 -4.3968861734940354e+00 + 28 5.0074553961332953e+00 -5.2000175890681524e+00 4.0672946896522948e+00 + 29 -1.7828906102550728e+00 -6.8026687168242104e+00 3.3258702979115212e-01 +... diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml new file mode 100644 index 0000000000..da153afa67 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml @@ -0,0 +1,102 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:05:54 202 +epsilon: 1e-13 +prerequisites: ! | + atom full + pair lj/charmm/coul/msm + kspace msm +pre_commands: ! "" +post_commands: ! | + pair_modify mix arithmetic + pair_modify table 16 + kspace_style msm 1.0e-4 + kspace_modify compute no + kspace_modify cutoff/adjust no + kspace_modify pressure/scalar no # required for USER-OMP with msm +input_file: in.fourmol +pair_style: lj/charmm/coul/msm 10.0 12.0 +pair_coeff: ! | + 1 1 0.02 2.5 + 2 2 0.005 1.0 + 2 4 0.005 0.5 + 3 3 0.02 3.2 + 4 4 0.015 3.1 + 5 5 0.015 3.1 +extract: ! | + lj14_1 2 + lj14_2 2 + lj14_3 2 + lj14_4 2 + implicit 0 + cut_coul 0 +natoms: 29 +init_vdwl: 749.235242989762 +init_coul: 114.131383580102 +init_stress: ! |2- + 2.1551140289603964e+03 2.1531297597181838e+03 4.6224268583061594e+03 -7.5399507416514484e+02 1.8659551442944785e+01 6.7753821086444407e+02 +init_forces: ! |2 + 1 -2.1016380354948158e+01 2.6961785557664524e+02 3.3338429823109425e+02 + 2 1.5822912231522645e+02 1.2711045773465023e+02 -1.8785632356758191e+02 + 3 -1.3530170284827557e+02 -3.8713572095630821e+02 -1.4564908156260313e+02 + 4 -7.8363281359506205e+00 2.1760453823536059e+00 -5.9378543319326811e+00 + 5 -2.9416336815195878e+00 -3.3161143331731791e+00 1.2025305271714011e+01 + 6 -8.2993095821214786e+02 9.6044557870079154e+02 1.1474899697646276e+03 + 7 5.7828212898947214e+01 -3.3555019956065917e+02 -1.7136025103150396e+03 + 8 1.4278724057098458e+02 -1.0530389653126699e+02 4.0279744716730005e+02 + 9 8.0982805377311450e+01 7.9758825988698021e+01 3.5169424193064100e+02 + 10 5.3091482798676179e+02 -6.0996230942128796e+02 -1.8384019719823837e+02 + 11 -3.3126808633877260e+00 -4.7549665706658537e+00 -1.0302167471844491e+01 + 12 2.0709158396969688e+01 9.7697682816250477e+00 -6.3353098769230556e+00 + 13 7.9282234480363947e+00 -3.1210246531914776e+00 -3.4426007406958159e-01 + 14 -4.5709573859095318e+00 1.1642596874970981e+00 -8.8700617863544640e+00 + 15 5.3785764937894137e-02 8.3655513176221206e+00 1.9471296006627532e+00 + 16 4.6240562753242131e+02 -3.3111360939022404e+02 -1.1870498727021129e+03 + 17 -4.5579534058865829e+02 3.2144019198467834e+02 1.1985160111733887e+03 + 18 7.8833406562650621e-01 6.0999554252435724e+00 -8.9955874963728615e+00 + 19 1.8462849171260798e+00 -1.3982659648562021e+00 6.2353855703795755e+00 + 20 -3.1298223595149097e+00 -4.5665456163268878e+00 4.7511037952582154e+00 + 21 -6.9535719808298694e+01 -7.6484212441331081e+01 2.1607515770563893e+02 + 22 -1.0635913159992312e+02 -2.7019987848622574e+01 -1.6313649128816729e+02 + 23 1.7538864954346764e+02 1.0405353910214299e+02 -5.2357140315307298e+01 + 24 3.4875008778634452e+01 -2.0109952801221368e+02 1.0666644920377433e+02 + 25 -1.4529091353043674e+02 2.0347045547091323e+01 -1.2117180395146300e+02 + 26 1.0979686558409357e+02 1.8056746593108005e+02 1.3863047172801807e+01 + 27 4.9268790999233929e+01 -2.1540598666832003e+02 8.6345383063447272e+01 + 28 -1.7572634968463726e+02 7.2424826918876605e+01 -1.1807149075889181e+02 + 29 1.2694498087382951e+02 1.4289100038945139e+02 3.1729223046173637e+01 +run_vdwl: 147.043776338633 +run_coul: 120.800133817676 +run_stress: ! |2- + 6.0714663311745971e+02 6.2725634708136886e+02 4.5374173242579457e+02 -3.0771637405213085e+02 -2.8793287826109200e+01 1.3172686086977939e+02 +run_forces: ! |2 + 1 1.4901689535860479e+01 7.9362943315789622e+01 6.1758299937921862e+01 + 2 1.9582049051333076e+01 1.2033717565360126e+01 -2.5527893317457991e+01 + 3 -2.4595995282925898e+02 1.0320599122943503e+02 8.5016527877222359e+01 + 4 -8.7666850483451171e+00 3.3307143270895119e+00 -6.5800981487831054e+00 + 5 -2.2550238252519654e+00 -1.8189558325611479e+00 1.0381639706668242e+01 + 6 1.1566144809091207e+02 -9.8961452523049076e+01 -1.4206288484204066e+02 + 7 4.0310097102795677e+00 -1.0796608303994823e+01 -4.1053737720803127e+01 + 8 -2.0278669408347216e+01 2.2416739338834109e+01 5.7007588075069044e+01 + 9 1.3831275616847163e+01 6.3233093276437895e+00 5.3125632370161163e+01 + 10 6.4034493496778907e+01 -7.5459379922332801e+01 -7.5613081848628468e+01 + 11 -7.3900442377866602e+00 -6.7494604284263069e+00 -1.7185400236387881e+01 + 12 1.7678277469830054e+01 1.1269091649304952e+01 -6.5110753072794152e+00 + 13 7.2168896794944652e+00 -2.6444828686963686e+00 -4.2612463395781347e-01 + 14 -4.3479906531649180e+00 9.4719526295738032e-01 -7.1776577441146348e+00 + 15 -3.2415894349659252e-01 7.8105564183168070e+00 1.9327777783774476e+00 + 16 5.2553220358744781e+01 -6.8222989829586311e+01 1.4027040949009853e+01 + 17 -1.8352933977506851e+01 1.7361842537843906e+01 3.6403387920358220e+01 + 18 -2.7788368930208829e-01 6.3931125373835611e+00 -7.3568514904287898e+00 + 19 2.2961493263766268e+00 -1.7083534014704733e+00 5.9508358805826278e+00 + 20 -2.9296182765742396e+00 -4.5612267825102339e+00 3.9549263809911017e+00 + 21 -9.6780978167157254e+00 -8.5051106959227312e+00 3.4792566153070915e+01 + 22 -1.8186664029647432e+01 -5.4051690417593203e+00 -2.6632304585921133e+01 + 23 2.7110232217737764e+01 1.4702213683923395e+01 -7.2378947376832157e+00 + 24 1.1387747767279770e+01 -3.0705432107706503e+01 2.0564397900216544e+01 + 25 -2.9706818761609675e+01 2.8110985578415022e+00 -2.4644099885398674e+01 + 26 1.7395573900768980e+01 2.7712408960708544e+01 3.1227837959301090e+00 + 27 1.6512707537981939e+00 -3.2507870938781259e+01 9.2893135681090975e+00 + 28 -2.3920412291442325e+01 8.5646513166516911e+00 -1.5561037446647953e+01 + 29 2.3043626812407886e+01 2.3800906647713308e+01 6.2424236518441303e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml new file mode 100644 index 0000000000..610ce16216 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml @@ -0,0 +1,99 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:05:54 202 +epsilon: 1e-13 +prerequisites: ! | + atom full + pair lj/cut/coul/msm + kspace msm +pre_commands: ! "" +post_commands: ! | + pair_modify mix arithmetic + pair_modify table 16 + kspace_style msm 1.0e-4 + kspace_modify compute no + kspace_modify cutoff/adjust no + kspace_modify pressure/scalar no # required for USER-OMP with msm +input_file: in.fourmol +pair_style: lj/cut/coul/msm 12.0 +pair_coeff: ! | + 1 1 0.02 2.5 + 2 2 0.005 1.0 + 2 4 0.005 0.5 + 3 3 0.02 3.2 + 4 4 0.015 3.1 + 5 5 0.015 3.1 +extract: ! | + epsilon 2 + sigma 2 + cut_coul 0 +natoms: 29 +init_vdwl: 749.234609413223 +init_coul: 114.131383580102 +init_stress: ! |2- + 2.1551147134940634e+03 2.1531310043019439e+03 4.6224274905057619e+03 -7.5399489040253616e+02 1.8659601917152798e+01 6.7753815264542743e+02 +init_forces: ! |2 + 1 -2.1016398613902432e+01 2.6961779624733612e+02 3.3338430266934483e+02 + 2 1.5822912217103132e+02 1.2711045735801059e+02 -1.8785632296895872e+02 + 3 -1.3530169474253765e+02 -3.8713571710725029e+02 -1.4564908007934187e+02 + 4 -7.8363271298941575e+00 2.1760460115294813e+00 -5.9378537512323213e+00 + 5 -2.9416332391210940e+00 -3.3161141337674049e+00 1.2025305475901273e+01 + 6 -8.2993095351386967e+02 9.6044557435048569e+02 1.1474899755372073e+03 + 7 5.7828224243858998e+01 -3.3555018633851938e+02 -1.7136025039914462e+03 + 8 1.4278724016527929e+02 -1.0530389425667126e+02 4.0279744396738505e+02 + 9 8.0982805438763322e+01 7.9758825468674118e+01 3.5169424198884144e+02 + 10 5.3091483100762991e+02 -6.0996228497863081e+02 -1.8384019943386130e+02 + 11 -3.3126807717484699e+00 -4.7549652275666920e+00 -1.0302167711930355e+01 + 12 2.0709153033166174e+01 9.7697672523470089e+00 -6.3353019731541398e+00 + 13 7.9282218135476130e+00 -3.1210248953367650e+00 -3.4425991897618957e-01 + 14 -4.5709573285079044e+00 1.1642595497841777e+00 -8.8700619757017858e+00 + 15 5.3785979101786764e-02 8.3655504435943691e+00 1.9471305801234779e+00 + 16 4.6240562060257622e+02 -3.3111358855132767e+02 -1.1870498719446668e+03 + 17 -4.5579535313967983e+02 3.2144023226543231e+02 1.1985160014499788e+03 + 18 7.8834015726373985e-01 6.0999277042620061e+00 -8.9956148397839950e+00 + 19 1.8462853741375946e+00 -1.3982669968851122e+00 6.2353852312560640e+00 + 20 -3.1298217011514065e+00 -4.5665466358399378e+00 4.7511026917118233e+00 + 21 -6.9535713582295315e+01 -7.6484217222184697e+01 2.1607515198697774e+02 + 22 -1.0635913033712905e+02 -2.7019987046677663e+01 -1.6313649104476522e+02 + 23 1.7538864888155865e+02 1.0405353808910958e+02 -5.2357141196585268e+01 + 24 3.4874995649520713e+01 -2.0109952696022702e+02 1.0666645814253336e+02 + 25 -1.4529091403440106e+02 2.0347045058129897e+01 -1.2117180305854629e+02 + 26 1.0979686532462689e+02 1.8056746518909861e+02 1.3863047317934335e+01 + 27 4.9268806410294808e+01 -2.1540599247253076e+02 8.6345394352289631e+01 + 28 -1.7572634941651745e+02 7.2424827092422973e+01 -1.1807149055311780e+02 + 29 1.2694498129839906e+02 1.4289100074319830e+02 3.1729223050582846e+01 +run_vdwl: 147.043158278144 +run_coul: 120.800133551438 +run_stress: ! |2- + 6.0714735740280275e+02 6.2725763883474872e+02 4.5374246399858856e+02 -3.0771618191338013e+02 -2.8793231854467404e+01 1.3172684870552641e+02 +run_forces: ! |2 + 1 1.4901675583492649e+01 7.9362893485607074e+01 6.1758303801776677e+01 + 2 1.9582047650794976e+01 1.2033716239720336e+01 -2.5527891030087925e+01 + 3 -2.4595994786662976e+02 1.0320598812414032e+02 8.5016525942643483e+01 + 4 -8.7666839250043687e+00 3.3307149120245305e+00 -6.5800974835544821e+00 + 5 -2.2550233650943934e+00 -1.8189556399495419e+00 1.0381639864492326e+01 + 6 1.1566145240868445e+02 -9.8961460261867614e+01 -1.4206288203855189e+02 + 7 4.0310209390432030e+00 -1.0796588511368931e+01 -4.1053720801867243e+01 + 8 -2.0278670881257984e+01 2.2416742936565260e+01 5.7007585559173336e+01 + 9 1.3831275694806225e+01 6.3233085873332664e+00 5.3125632363022113e+01 + 10 6.4034498149769362e+01 -7.5459355479744090e+01 -7.5613086008100510e+01 + 11 -7.3900439809383522e+00 -6.7494589952608370e+00 -1.7185399937194173e+01 + 12 1.7678272792401259e+01 1.1269091176034271e+01 -6.5110679865879675e+00 + 13 7.2168880154879682e+00 -2.6444827040094014e+00 -4.2612454283250001e-01 + 14 -4.3479905468099984e+00 9.4719512701402819e-01 -7.1776577863788580e+00 + 15 -3.2415863415535051e-01 7.8105555959089106e+00 1.9327787931880600e+00 + 16 5.2553213679928191e+01 -6.8222972952036258e+01 1.4027042589531810e+01 + 17 -1.8352944498401982e+01 1.7361878444285995e+01 3.6403366162658173e+01 + 18 -2.7787692318779877e-01 6.3930914662408584e+00 -7.3568722694957902e+00 + 19 2.2961498690818205e+00 -1.7083544552471590e+00 5.9508357697061820e+00 + 20 -2.9296176821651323e+00 -4.5612277581705190e+00 3.9549254419787103e+00 + 21 -9.6780943328486053e+00 -8.5051158809872085e+00 3.4792558330370234e+01 + 22 -1.8186663082382136e+01 -5.4051681950087875e+00 -2.6632304851060997e+01 + 23 2.7110231716026480e+01 1.4702212722177208e+01 -7.2378957033999054e+00 + 24 1.1387734320341307e+01 -3.0705433946606558e+01 2.0564412882298658e+01 + 25 -2.9706819424206476e+01 2.8110979147921533e+00 -2.4644099136588650e+01 + 26 1.7395573642934945e+01 2.7712407773302992e+01 3.1227839975096043e+00 + 27 1.6512843306132134e+00 -3.2507878288627197e+01 9.2893210007872344e+00 + 28 -2.3920410938056225e+01 8.5646511943612946e+00 -1.5561036552169440e+01 + 29 2.3043627287732598e+01 2.3800907369375526e+01 6.2424236287337598e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml new file mode 100644 index 0000000000..c35f5d7c19 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml @@ -0,0 +1,115 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:05:54 202 +epsilon: 5e-14 +prerequisites: ! | + atom full + pair lj/sdk/coul/long + kspace ewald +pre_commands: ! | + variable write_data_pair index ij +post_commands: ! | + pair_modify table 16 + kspace_style msm 1.0e-4 + kspace_modify compute no + kspace_modify cutoff/adjust no + kspace_modify pressure/scalar no # required for USER-OMP with msm +input_file: in.fourmol +pair_style: lj/sdk/coul/msm 12.0 +pair_coeff: ! | + 1 1 lj9_6 0.02 2.5 + 1 2 lj9_6 0.01 1.58114 + 1 3 lj9_6 0.02 2.82843 + 1 4 lj9_6 0.0173205 2.78388 + 1 5 lj9_6 0.0173205 2.78388 + 2 2 lj12_4 0.005 1.0 + 2 3 lj12_4 0.01 1.78885 + 2 4 lj12_4 0.005 0.5 + 2 5 lj12_4 0.00866025 1.76068 + 3 3 lj12_6 0.02 3.2 + 3 4 lj12_6 0.0173205 3.1496 + 3 5 lj12_6 0.0173205 3.1496 + 4 4 lj9_6 0.015 3.1 + 4 5 lj9_6 0.015 3.1 + 5 5 lj9_6 0.015 3.1 +extract: ! | + cut_coul 0 + epsilon 2 + sigma 2 + lj_type 2 + lj1 2 + lj2 2 + lj3 2 + lj4 2 + rminsq 2 + emin 2 +natoms: 29 +init_vdwl: 96.7010777193035 +init_coul: 114.131383580102 +init_stress: ! |2- + 2.1426829544057128e+02 1.9935971136506137e+02 4.3556533091279061e+02 -7.4617042670646882e+01 1.2498073409815488e+01 6.6416969682910434e+01 +init_forces: ! |2 + 1 3.8063540038860815e+00 3.6504334556230098e+01 3.6401036653794819e+01 + 2 1.4992151245291565e+01 9.2377701764587314e+00 -1.9271618350986557e+01 + 3 -1.8467677444306791e+01 -4.5942266229595141e+01 -1.6545420874054852e+01 + 4 -7.6975005709256816e-01 2.6211762302308950e-01 -9.1555678538711993e-01 + 5 -6.6462340336505532e-01 3.4183289400279693e-01 1.0634710493565265e+00 + 6 -7.9071623790678899e+01 8.8001381958858630e+01 9.4186714231107260e+01 + 7 -2.5739703617720280e+00 -2.5636845737214525e+01 -1.6738718973925620e+02 + 8 1.5351191151846669e+01 -6.1847662111865054e+00 6.1897996076445629e+01 + 9 9.3500622122834400e+00 2.5923080621048316e+00 3.4665809438371554e+01 + 10 5.2836346805999348e+01 -6.4993623768568071e+01 -2.0864140654218623e+01 + 11 -1.1941982406185945e+00 5.6806846401317801e-01 -1.6059705754150249e+00 + 12 8.6462977561398766e+00 2.5575488133658530e+00 -1.4254724713359790e+00 + 13 6.7597708342886142e-01 -2.5072508106023988e-01 -2.0896855337022507e-01 + 14 -1.5434867277483466e+00 5.4765696604674541e-01 -1.0190709158699214e+00 + 15 2.2457155104637833e-01 7.6231382062150277e-01 -7.4802783492469904e-01 + 16 4.5137436898325845e+01 -3.4326825112634985e+01 -1.0960850806297756e+02 + 17 -4.5603216943836216e+01 3.5547301969456093e+01 1.0945044673096160e+02 + 18 7.8962867031022954e-01 6.1010209082701365e+00 -8.9949289768152934e+00 + 19 1.8465216648238358e+00 -1.3981992396425149e+00 6.2356861718737768e+00 + 20 -3.1301465769913177e+00 -4.5668945072673912e+00 4.7513171877290912e+00 + 21 -5.4923412999627610e+00 -3.4240832616840540e+00 1.3905788016613014e+01 + 22 -9.6175558072073954e+00 -3.5754449960876262e+00 -1.1359707487149203e+01 + 23 1.4601433075235096e+01 7.5510862657383138e+00 -1.9622586855343780e+00 + 24 2.1174251144433560e+00 -1.1529396499686596e+01 6.2428051021405864e+00 + 25 -1.2368746082613741e+01 -1.0508894937953444e+00 -9.4260176597300021e+00 + 26 9.6324510178657121e+00 1.2393700305539674e+01 2.5399815609697223e+00 + 27 2.9037102814588285e+00 -1.2180624835780948e+01 5.0275816273007337e+00 + 28 -1.4250304832815443e+01 3.0300321386140592e+00 -8.8153806609288345e+00 + 29 1.1836083036624068e+01 9.0621100518602020e+00 3.7896044412902152e+00 +run_vdwl: 74.7342521124953 +run_coul: 114.477093451889 +run_stress: ! |2- + 1.8073976304151648e+02 1.6546464431202676e+02 2.9434760578205413e+02 -5.9041359865100034e+01 1.5901862039479150e+01 5.0299664956031876e+01 +run_forces: ! |2 + 1 5.0720673386300685e+00 3.1372737640509989e+01 2.9095987810352344e+01 + 2 1.1307952415771164e+01 6.3291707652771878e+00 -1.4733646596577190e+01 + 3 -1.7059001227023501e+01 -3.6956250979301672e+01 -1.3230585592914581e+01 + 4 -7.6865277133023691e-01 2.7308980119907567e-01 -9.2233193415774428e-01 + 5 -6.5570289876695731e-01 3.6800613176525593e-01 1.0577533761918376e+00 + 6 -6.0114236760779129e+01 6.2566916086590808e+01 4.1457851153494595e+01 + 7 -1.5445644682017661e+00 -1.5411481764084417e+01 -9.7111604752474165e+01 + 8 6.9542709638649072e+00 -4.0059060120689480e-02 4.8165519281907571e+01 + 9 8.0381201831761704e+00 4.7371613333586310e-01 2.8332304868623229e+01 + 10 4.3755234593318242e+01 -5.4675082985544329e+01 -1.9293462529707895e+01 + 11 -1.2242383799455581e+00 6.2498818361923714e-01 -1.5972308246825191e+00 + 12 8.4518567321118638e+00 2.5475977398264344e+00 -1.4071497824803458e+00 + 13 6.3969617700223647e-01 -2.1778270741514713e-01 -2.3005840637595679e-01 + 14 -1.5673412610561024e+00 5.4153161593712684e-01 -9.2853461250465397e-01 + 15 2.0342679190436708e-01 7.3131233966783793e-01 -7.6174832898700773e-01 + 16 3.0105343210851437e+01 -2.4546470086741568e+01 -6.8808712420063088e+01 + 17 -3.0400991200475612e+01 2.5590470801017116e+01 6.8885048107547732e+01 + 18 2.9029803288998091e-01 5.7405233903947002e+00 -8.5019336119143194e+00 + 19 2.2584765619309159e+00 -1.1454608830507993e+00 6.3424579647253072e+00 + 20 -3.0863427527774303e+00 -4.4738061119916726e+00 4.2219710843087261e+00 + 21 -4.9892659452493335e+00 -2.4483410137505488e+00 1.1705159097816299e+01 + 22 -8.5093402713626460e+00 -3.3143034580955666e+00 -9.5860798789826429e+00 + 23 1.2967980174140818e+01 6.3255093357461938e+00 -1.5004336929053061e+00 + 24 3.5060356644410446e+00 -1.1529287766502682e+01 7.1572025894365243e+00 + 25 -1.3660083035582883e+01 -1.0151676247673949e+00 -1.0565992640651116e+01 + 26 9.5211323632394791e+00 1.2381558293734670e+01 2.7625770178818838e+00 + 27 2.4457436082871862e+00 -9.9002670260458654e+00 3.9197599195423201e+00 + 28 -1.2367913977887723e+01 2.2433754166930502e+00 -7.4760013078640846e+00 + 29 1.0430040138879031e+01 7.5632577920978168e+00 3.5519146414142320e+00 +... -- GitLab From f18d0507b3ecd9c8b67381eb1811abe1f040ef71 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Aug 2020 22:54:38 -0400 Subject: [PATCH 038/165] fix issues with lj/long pair styles when not using long-range for dispersion --- src/KSPACE/pair_buck_long_coul_long.cpp | 25 ++++++++++++------------- src/KSPACE/pair_lj_long_coul_long.cpp | 5 +++++ src/KSPACE/pair_lj_long_tip4p_long.cpp | 5 +++++ 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/KSPACE/pair_buck_long_coul_long.cpp b/src/KSPACE/pair_buck_long_coul_long.cpp index 92db9ff069..7408ac12b9 100644 --- a/src/KSPACE/pair_buck_long_coul_long.cpp +++ b/src/KSPACE/pair_buck_long_coul_long.cpp @@ -90,6 +90,8 @@ void PairBuckLongCoulLong::settings(int narg, char **arg) error->warning(FLERR,"Using largest cutoff for buck/long/coul/long"); if (!*(++arg)) error->all(FLERR,"Cutoffs missing in pair_style buck/long/coul/long"); + if (!((ewald_order^ewald_off) & (1<<6))) + dispersionflag = 0; if (ewald_off & (1<<6)) error->all(FLERR,"LJ6 off not supported in pair_style buck/long/coul/long"); if (!((ewald_order^ewald_off) & (1<<1))) @@ -387,6 +389,7 @@ void PairBuckLongCoulLong::write_restart_settings(FILE *fp) fwrite(&ncoultablebits,sizeof(int),1,fp); fwrite(&tabinner,sizeof(double),1,fp); fwrite(&ewald_order,sizeof(int),1,fp); + fwrite(&dispersionflag,sizeof(int),1,fp); } /* ---------------------------------------------------------------------- @@ -403,6 +406,7 @@ void PairBuckLongCoulLong::read_restart_settings(FILE *fp) utils::sfread(FLERR,&ncoultablebits,sizeof(int),1,fp,NULL,error); utils::sfread(FLERR,&tabinner,sizeof(double),1,fp,NULL,error); utils::sfread(FLERR,&ewald_order,sizeof(int),1,fp,NULL,error); + utils::sfread(FLERR,&dispersionflag,sizeof(int),1,fp,NULL,error); } MPI_Bcast(&cut_buck_global,1,MPI_DOUBLE,0,world); MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world); @@ -411,6 +415,7 @@ void PairBuckLongCoulLong::read_restart_settings(FILE *fp) MPI_Bcast(&ncoultablebits,1,MPI_INT,0,world); MPI_Bcast(&tabinner,1,MPI_DOUBLE,0,world); MPI_Bcast(&ewald_order,1,MPI_INT,0,world); + MPI_Bcast(&dispersionflag,1,MPI_INT,0,world); } /* ---------------------------------------------------------------------- @@ -529,8 +534,7 @@ void PairBuckLongCoulLong::compute(int eflag, int vflag) if (eflag) ecoul = qiqj*(etable[k]+f*detable[k]-t.f); } } - } - else force_coul = ecoul = 0.0; + } else force_coul = ecoul = 0.0; if (rsq < cut_bucksqi[typej]) { // buckingham double rn = r2inv*r2inv*r2inv, @@ -543,16 +547,14 @@ void PairBuckLongCoulLong::compute(int eflag, int vflag) force_buck = r*expr*buck1i[typej]-g8*(((6.0*a2+6.0)*a2+3.0)*a2+1.0)*x2*rsq; if (eflag) evdwl = expr*buckai[typej]-g6*((a2+1.0)*a2+0.5)*x2; - } - else { // special case + } else { // special case double f = special_lj[ni], t = rn*(1.0-f); force_buck = f*r*expr*buck1i[typej]- g8*(((6.0*a2+6.0)*a2+3.0)*a2+1.0)*x2*rsq+t*buck2i[typej]; if (eflag) evdwl = f*expr*buckai[typej] - g6*((a2+1.0)*a2+0.5)*x2+t*buckci[typej]; } - } - else { //table real space + } else { //table real space union_int_float_t disp_t; disp_t.f = rsq; const int disp_k = (disp_t.i & ndispmask)>>ndispshiftbits; @@ -560,21 +562,18 @@ void PairBuckLongCoulLong::compute(int eflag, int vflag) if (ni == 0) { force_buck = r*expr*buck1i[typej]-(fdisptable[disp_k]+f_disp*dfdisptable[disp_k])*buckci[typej]; if (eflag) evdwl = expr*buckai[typej]-(edisptable[disp_k]+f_disp*dedisptable[disp_k])*buckci[typej]; - } - else { //speial case + } else { //special case double f = special_lj[ni], t = rn*(1.0-f); force_buck = f*r*expr*buck1i[typej] -(fdisptable[disp_k]+f_disp*dfdisptable[disp_k])*buckci[typej] +t*buck2i[typej]; if (eflag) evdwl = f*expr*buckai[typej] -(edisptable[disp_k]+f_disp*dedisptable[disp_k])*buckci[typej]+t*buckci[typej]; } } - } - else { // cut + } else { // cut if (ni == 0) { force_buck = r*expr*buck1i[typej]-rn*buck2i[typej]; if (eflag) evdwl = expr*buckai[typej] - rn*buckci[typej]-offseti[typej]; - } - else { // special case + } else { // special case double f = special_lj[ni]; force_buck = f*(r*expr*buck1i[typej]-rn*buck2i[typej]); if (eflag) @@ -1018,7 +1017,7 @@ double PairBuckLongCoulLong::single(int i, int j, int itype, int jtype, g6*((a2+1.0)*a2+0.5)*x2+t*buck_c[itype][jtype]; } else { // cut force_buck = - buck1[itype][jtype]*r*expr-factor_buck*buck_c[itype][jtype]*r6inv; + factor_buck*(buck1[itype][jtype]*r*expr-buck2[itype][jtype]*r6inv); eng += buck_a[itype][jtype]*expr- factor_buck*(buck_c[itype][jtype]*r6inv-offset[itype][jtype]); } diff --git a/src/KSPACE/pair_lj_long_coul_long.cpp b/src/KSPACE/pair_lj_long_coul_long.cpp index 70c385f9b8..8ece088bd3 100644 --- a/src/KSPACE/pair_lj_long_coul_long.cpp +++ b/src/KSPACE/pair_lj_long_coul_long.cpp @@ -92,6 +92,8 @@ void PairLJLongCoulLong::settings(int narg, char **arg) error->warning(FLERR,"Using largest cutoff for lj/long/coul/long"); if (!*(++arg)) error->all(FLERR,"Cutoffs missing in pair_style lj/long/coul/long"); + if (!((ewald_order^ewald_off) & (1<<6))) + dispersionflag = 0; if (!((ewald_order^ewald_off) & (1<<1))) error->all(FLERR, "Coulomb cut not supported in pair_style lj/long/coul/long"); @@ -386,6 +388,7 @@ void PairLJLongCoulLong::write_restart_settings(FILE *fp) fwrite(&ncoultablebits,sizeof(int),1,fp); fwrite(&tabinner,sizeof(double),1,fp); fwrite(&ewald_order,sizeof(int),1,fp); + fwrite(&dispersionflag,sizeof(int),1,fp); } /* ---------------------------------------------------------------------- @@ -402,6 +405,7 @@ void PairLJLongCoulLong::read_restart_settings(FILE *fp) utils::sfread(FLERR,&ncoultablebits,sizeof(int),1,fp,NULL,error); utils::sfread(FLERR,&tabinner,sizeof(double),1,fp,NULL,error); utils::sfread(FLERR,&ewald_order,sizeof(int),1,fp,NULL,error); + utils::sfread(FLERR,&dispersionflag,sizeof(int),1,fp,NULL,error); } MPI_Bcast(&cut_lj_global,1,MPI_DOUBLE,0,world); MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world); @@ -410,6 +414,7 @@ void PairLJLongCoulLong::read_restart_settings(FILE *fp) MPI_Bcast(&ncoultablebits,1,MPI_INT,0,world); MPI_Bcast(&tabinner,1,MPI_DOUBLE,0,world); MPI_Bcast(&ewald_order,1,MPI_INT,0,world); + MPI_Bcast(&dispersionflag,1,MPI_INT,0,world); } /* ---------------------------------------------------------------------- diff --git a/src/KSPACE/pair_lj_long_tip4p_long.cpp b/src/KSPACE/pair_lj_long_tip4p_long.cpp index 92ff2f9ad1..fa8c221382 100644 --- a/src/KSPACE/pair_lj_long_tip4p_long.cpp +++ b/src/KSPACE/pair_lj_long_tip4p_long.cpp @@ -1440,6 +1440,8 @@ void PairLJLongTIP4PLong::settings(int narg, char **arg) if (!comm->me && ewald_order==((1<<1)|(1<<6))) error->warning(FLERR, "Using largest cutoff for pair_style lj/long/tip4p/long"); + if (!((ewald_order^ewald_off) & (1<<6))) + dispersionflag = 0; if (!((ewald_order^ewald_off)&(1<<1))) error->all(FLERR, "Coulomb cut not supported in pair_style lj/long/tip4p/long"); @@ -1532,6 +1534,7 @@ void PairLJLongTIP4PLong::write_restart_settings(FILE *fp) fwrite(&ncoultablebits,sizeof(int),1,fp); fwrite(&tabinner,sizeof(double),1,fp); fwrite(&ewald_order,sizeof(int),1,fp); + fwrite(&dispersionflag,sizeof(int),1,fp); } /* ---------------------------------------------------------------------- @@ -1554,6 +1557,7 @@ void PairLJLongTIP4PLong::read_restart_settings(FILE *fp) utils::sfread(FLERR,&ncoultablebits,sizeof(int),1,fp,NULL,error); utils::sfread(FLERR,&tabinner,sizeof(double),1,fp,NULL,error); utils::sfread(FLERR,&ewald_order,sizeof(int),1,fp,NULL,error); + utils::sfread(FLERR,&dispersionflag,sizeof(int),1,fp,NULL,error); } MPI_Bcast(&typeO,1,MPI_INT,0,world); @@ -1569,6 +1573,7 @@ void PairLJLongTIP4PLong::read_restart_settings(FILE *fp) MPI_Bcast(&ncoultablebits,1,MPI_INT,0,world); MPI_Bcast(&tabinner,1,MPI_DOUBLE,0,world); MPI_Bcast(&ewald_order,1,MPI_INT,0,world); + MPI_Bcast(&dispersionflag,1,MPI_INT,0,world); } /* ---------------------------------------------------------------------- -- GitLab From 3def826dbe5746fb8ff66f19ade9567456193208 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Aug 2020 22:55:15 -0400 Subject: [PATCH 039/165] add more tests for variants using long-range dispersion pair styles --- .../mol-pair-buck_long_cut_coul_long.yaml | 103 ++++++++++++++ .../tests/mol-pair-buck_table_coul_long.yaml | 104 ++++++++++++++ .../tests/mol-pair-lj_long_coul_off.yaml | 98 +++++++++++++ .../tests/mol-pair-lj_long_cut_coul_long.yaml | 98 +++++++++++++ .../mol-pair-lj_long_cut_tip4p_long.yaml | 104 ++++++++++++++ .../tests/mol-pair-lj_table_coul_long.yaml | 99 +++++++++++++ .../tests/mol-pair-lj_table_coul_off.yaml | 98 +++++++++++++ .../tests/mol-pair-lj_table_coul_table.yaml | 131 +++++++++--------- .../tests/mol-pair-lj_table_tip4p_long.yaml | 107 ++++++++++++++ .../tests/mol-pair-lj_table_tip4p_table.yaml | 99 ++++++------- 10 files changed, 927 insertions(+), 114 deletions(-) create mode 100644 unittest/force-styles/tests/mol-pair-buck_long_cut_coul_long.yaml create mode 100644 unittest/force-styles/tests/mol-pair-buck_table_coul_long.yaml create mode 100644 unittest/force-styles/tests/mol-pair-lj_long_coul_off.yaml create mode 100644 unittest/force-styles/tests/mol-pair-lj_long_cut_coul_long.yaml create mode 100644 unittest/force-styles/tests/mol-pair-lj_long_cut_tip4p_long.yaml create mode 100644 unittest/force-styles/tests/mol-pair-lj_table_coul_long.yaml create mode 100644 unittest/force-styles/tests/mol-pair-lj_table_coul_off.yaml create mode 100644 unittest/force-styles/tests/mol-pair-lj_table_tip4p_long.yaml diff --git a/unittest/force-styles/tests/mol-pair-buck_long_cut_coul_long.yaml b/unittest/force-styles/tests/mol-pair-buck_long_cut_coul_long.yaml new file mode 100644 index 0000000000..64c3bd3960 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-buck_long_cut_coul_long.yaml @@ -0,0 +1,103 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:40:37 202 +epsilon: 2e-09 +prerequisites: ! | + atom full + pair buck/long/coul/long + kspace ewald +pre_commands: ! "" +post_commands: ! | + pair_modify table 0 + kspace_style ewald 1.0e-6 + kspace_modify gewald 0.3 + kspace_modify compute no +input_file: in.fourmol +pair_style: buck/long/coul/long cut long 8.0 +pair_coeff: ! | + 1 1 170339.505032359 0.166879344173798 13.642356513989 + 1 2 85988.1490021027 0.116722557424471 0.80085535265993 + 1 3 169866.420176425 0.190286500706475 29.9623467274028 + 1 4 147160.913151695 0.186942613268455 23.3320434749744 + 1 5 147160.913151695 0.186942613268455 23.3320434749744 + 2 2 43972.4676803832 0.0665738276248451 0.0138732735747516 + 2 3 85535.686235147 0.140128612516736 2.39406114840173 + 2 4 45975.8370021332 0.0331639834863857 0.000214673167591639 + 2 5 74124.142292174 0.136784828511181 1.79395952625758 + 3 3 169504.649065961 0.213692863412526 60.0617510100503 + 3 4 146835.114678908 0.210349185259049 47.3225728524629 + 3 5 146835.114678908 0.210349185259049 47.3225728524629 + 4 4 127198.698386798 0.207005479340455 37.2289658745028 + 4 5 127198.698386798 0.207005479340455 37.2289658745028 + 5 5 127198.698386798 0.207005479340455 37.2289658745028 +extract: ! "" +natoms: 29 +init_vdwl: 143.749538808172 +init_coul: 225.821815126925 +init_stress: ! |2- + 2.6268452425769618e+02 2.4453034296967053e+02 4.2238505666906303e+02 -4.9838202342760418e+01 2.3794887708191212e+01 5.6299161015968693e+01 +init_forces: ! |2 + 1 -1.4474037223079457e+00 3.7999183865453034e+01 4.9063402692498379e+01 + 2 2.3385018179518472e+01 1.6548231914415034e+01 -2.9130921709597132e+01 + 3 -1.9509489731363985e+01 -5.0839327569343602e+01 -2.0151992600370619e+01 + 4 -4.2902698449218191e+00 1.1246083725774112e+00 -3.2386594179892856e+00 + 5 -1.8673395690321795e+00 -1.5566621157655762e+00 6.0081947200605752e+00 + 6 -6.9623879032280783e+01 7.3169301174687945e+01 6.3504461792907826e+01 + 7 2.4976052383701920e-02 -2.0564774352429865e+01 -1.2606741654717769e+02 + 8 1.1999204132552546e+00 -1.8702541375667467e+00 3.7422573588357807e+01 + 9 1.2011007394777417e+01 5.3887621673616604e+00 4.7397746849038590e+01 + 10 4.8240765271078928e+01 -6.2509801734119279e+01 -1.8154762092646045e+01 + 11 -2.0864927402180093e+00 -1.9911628114379896e+00 -5.4829376367465965e+00 + 12 1.1614107033774024e+01 3.5496527510716414e+00 -2.2649460905190857e+00 + 13 4.3603055296190742e+00 -1.7673745770018574e+00 -2.5815702008392255e-01 + 14 -2.8755551194747806e+00 7.2403090110386059e-01 -4.7878686167359614e+00 + 15 2.4918583415812345e-01 4.4128459374226505e+00 6.2377876373979257e-01 + 16 4.0306843599015686e+01 -3.2805117791041916e+01 -8.8341496083771005e+01 + 17 -3.8536199265195123e+01 3.0773683317223295e+01 9.2201615614046048e+01 + 18 3.5425773688079076e-01 4.7680468970639582e+00 -7.8548098344622970e+00 + 19 1.9901672339942567e+00 -7.2127458892808693e-01 5.5218640044973135e+00 + 20 -2.9133512950138218e+00 -3.9874404871658311e+00 4.1253618631279911e+00 + 21 -8.8844116266297615e+00 -8.3728466486539990e+00 2.7527584224905251e+01 + 22 -1.5742524376274762e+01 -4.8230856186441260e+00 -2.1626092613857782e+01 + 23 2.4211616028772319e+01 1.3610517090014445e+01 -5.3978666004875366e+00 + 24 5.3555806194711355e+00 -2.4300719514690602e+01 1.3582566605825981e+01 + 25 -2.1457590669049722e+01 1.0103860336556327e+00 -1.7195992447430289e+01 + 26 1.5538192651088657e+01 2.3034564973883338e+01 2.9963400042574078e+00 + 27 4.6275296350353177e+00 -2.6304782126946186e+01 9.9375753439373451e+00 + 28 -2.3342785641579749e+01 7.6604241443883918e+00 -1.5178331872815008e+01 + 29 1.9107819420519260e+01 1.8640384533413357e+01 5.2191851174899631e+00 +run_vdwl: 121.726025515065 +run_coul: 226.519738503437 +run_stress: ! |2- + 2.3590204527232925e+02 2.1786393126646038e+02 3.4555759318888499e+02 -4.8490269243807141e+01 2.2044769313031111e+01 5.0730483761672573e+01 +run_forces: ! |2 + 1 1.5698395725255674e+00 3.4705556898309830e+01 4.0148491866687003e+01 + 2 1.8094875652358759e+01 1.2213630078485194e+01 -2.2605062548525950e+01 + 3 -1.8970349974421204e+01 -4.2047722899416321e+01 -1.6680481083122142e+01 + 4 -4.0730430309457528e+00 1.1077146510796581e+00 -3.1425822003985973e+00 + 5 -1.7469087373654002e+00 -1.3413009601224968e+00 5.6286880883787296e+00 + 6 -5.9373579553237860e+01 6.0904871315189993e+01 4.0745560815144955e+01 + 7 9.5244057493357359e-01 -1.6629783568045990e+01 -9.4751671277804491e+01 + 8 -5.2492178373691460e-02 8.2699339057486687e-01 3.5936464226984853e+01 + 9 1.0123263972386873e+01 2.3916817645843178e+00 3.8071793104925952e+01 + 10 4.2031045095599445e+01 -5.5269901976988372e+01 -1.7617529134712779e+01 + 11 -2.0952561898940183e+00 -1.6935815390946380e+00 -5.1512427397552827e+00 + 12 1.1255682986610852e+01 3.5014143175130528e+00 -2.7019794585819299e+00 + 13 4.1367916699665317e+00 -1.6074665893708475e+00 -2.5938631878569440e-01 + 14 -2.7211635378819987e+00 6.2995917240926580e-01 -4.1812665894137560e+00 + 15 1.3850219876212885e-01 4.3143675373140438e+00 6.6656278185689333e-01 + 16 3.2834764837529349e+01 -2.8386832139907472e+01 -6.7144586519238231e+01 + 17 -3.0854759910701400e+01 2.6148951816432497e+01 7.1307049881498230e+01 + 18 -2.1756807799839875e-01 4.3443600520467207e+00 -7.4141279833337226e+00 + 19 2.4152971434356703e+00 -4.3993293029159058e-01 5.6618008951619156e+00 + 20 -2.8256323844508984e+00 -3.8503505970848475e+00 3.6226831451184780e+00 + 21 -7.7979007642415299e+00 -6.3680923555356372e+00 2.2973695774273409e+01 + 22 -1.3550747679201205e+01 -4.3873029016943530e+00 -1.8044475303852884e+01 + 23 2.0908983051842547e+01 1.1185886498098528e+01 -4.3920068262594558e+00 + 24 6.0257564312999286e+00 -2.1770275627355794e+01 1.2877121314067722e+01 + 25 -2.0654126913428435e+01 6.5561692975690367e-01 -1.6655661388994940e+01 + 26 1.4031287466748058e+01 2.0860799256575362e+01 3.1333900079652808e+00 + 27 4.0575741331511441e+00 -2.1951936355694329e+01 7.9047074667543722e+00 + 28 -1.9856066053289229e+01 6.2812958827502268e+00 -1.2673997852836854e+01 + 29 1.6213490198280603e+01 1.5671380879482198e+01 4.7380478567989348e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-buck_table_coul_long.yaml b/unittest/force-styles/tests/mol-pair-buck_table_coul_long.yaml new file mode 100644 index 0000000000..aaabfcd1d0 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-buck_table_coul_long.yaml @@ -0,0 +1,104 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:13:59 202 +epsilon: 2e-09 +prerequisites: ! | + atom full + pair buck/long/coul/long + kspace ewald/disp +pre_commands: ! "" +post_commands: ! | + pair_modify table 0 + pair_modify table/disp 16 + kspace_style ewald/disp 1.0e-6 + kspace_modify gewald 0.3 + kspace_modify compute no +input_file: in.fourmol +pair_style: buck/long/coul/long long long 8.0 +pair_coeff: ! | + 1 1 170339.505032359 0.166879344173798 13.642356513989 + 1 2 85988.1490021027 0.116722557424471 0.80085535265993 + 1 3 169866.420176425 0.190286500706475 29.9623467274028 + 1 4 147160.913151695 0.186942613268455 23.3320434749744 + 1 5 147160.913151695 0.186942613268455 23.3320434749744 + 2 2 43972.4676803832 0.0665738276248451 0.0138732735747516 + 2 3 85535.686235147 0.140128612516736 2.39406114840173 + 2 4 45975.8370021332 0.0331639834863857 0.000214673167591639 + 2 5 74124.142292174 0.136784828511181 1.79395952625758 + 3 3 169504.649065961 0.213692863412526 60.0617510100503 + 3 4 146835.114678908 0.210349185259049 47.3225728524629 + 3 5 146835.114678908 0.210349185259049 47.3225728524629 + 4 4 127198.698386798 0.207005479340455 37.2289658745028 + 4 5 127198.698386798 0.207005479340455 37.2289658745028 + 5 5 127198.698386798 0.207005479340455 37.2289658745028 +extract: ! "" +natoms: 29 +init_vdwl: 143.844978555225 +init_coul: 225.821815126925 +init_stress: ! |2- + 2.6272115353924420e+02 2.4458745265633888e+02 4.2242971700722717e+02 -4.9851077226985659e+01 2.3789370689053712e+01 5.6295145616802088e+01 +init_forces: ! |2 + 1 -1.4505626037598716e+00 3.8004147181095746e+01 4.9065031149717804e+01 + 2 2.3385004350363623e+01 1.6548373059266599e+01 -2.9130977758076160e+01 + 3 -1.9512020672775265e+01 -5.0838221307680186e+01 -2.0151693397419081e+01 + 4 -4.2904209887533842e+00 1.1246498927859521e+00 -3.2387274227146063e+00 + 5 -1.8674710687203737e+00 -1.5566491093593153e+00 6.0082553408991988e+00 + 6 -6.9625355109282424e+01 7.3169399827953285e+01 6.3503698038580929e+01 + 7 2.2868387354607268e-02 -2.0565222802705840e+01 -1.2607143807791246e+02 + 8 1.1996681333273793e+00 -1.8715118413785594e+00 3.7423149479050302e+01 + 9 1.2011042862918044e+01 5.3887311216312375e+00 4.7397824040685521e+01 + 10 4.8241808354062698e+01 -6.2511419249847641e+01 -1.8155088100635353e+01 + 11 -2.0864824072580990e+00 -1.9912626676072076e+00 -5.4830251303318533e+00 + 12 1.1616736273499749e+01 3.5495697969553270e+00 -2.2660037782255715e+00 + 13 4.3604501549080776e+00 -1.7673671000610207e+00 -2.5819547530012105e-01 + 14 -2.8754771035335445e+00 7.2404590880037734e-01 -4.7880074885987609e+00 + 15 2.4933085474031463e-01 4.4129068754666410e+00 6.2372602290618939e-01 + 16 4.0308375459353250e+01 -3.2807273817104949e+01 -8.8340521150460305e+01 + 17 -3.8534551008762733e+01 3.0771085173571883e+01 9.2205189694900810e+01 + 18 3.5576858759214958e-01 4.7710863654728559e+00 -7.8576980464312012e+00 + 19 1.9901899970908770e+00 -7.2120494774927324e-01 5.5217488427780914e+00 + 20 -2.9133095916068035e+00 -3.9873825487281436e+00 4.1252912739113263e+00 + 21 -8.8829720357618331e+00 -8.3744024885118051e+00 2.7526234045384967e+01 + 22 -1.5742514391908522e+01 -4.8231234673740637e+00 -2.1626154414070808e+01 + 23 2.4211676289044206e+01 1.3610504586432981e+01 -5.3979045459401744e+00 + 24 5.3565422527413071e+00 -2.4298981872435522e+01 1.3585253853560943e+01 + 25 -2.1457575287603696e+01 1.0104637707724495e+00 -1.7195902082823135e+01 + 26 1.5538242811308470e+01 2.3034633531429442e+01 2.9964006799619058e+00 + 27 4.6260665022831926e+00 -2.6306305097421209e+01 9.9386139962010169e+00 + 28 -2.3342848199929932e+01 7.6603913255098890e+00 -1.5178322120309636e+01 + 29 1.9107789199068538e+01 1.8640339900820063e+01 5.2192425307102530e+00 +run_vdwl: 121.820825901609 +run_coul: 226.519747770181 +run_stress: ! |2- + 2.3593829017644876e+02 2.1792044162360438e+02 3.4560175301048969e+02 -4.8502992604961904e+01 2.2039232760362367e+01 5.0726500806511929e+01 +run_forces: ! |2 + 1 1.5666349308748257e+00 3.4710342742354641e+01 4.0150016936063771e+01 + 2 1.8094852325517561e+01 1.2213722025257505e+01 -2.2605094936489639e+01 + 3 -1.8972764030069886e+01 -4.2046442566512148e+01 -1.6680119363391821e+01 + 4 -4.0732081623735210e+00 1.1077591111378640e+00 -3.1426639915212573e+00 + 5 -1.7470376120241193e+00 -1.3412894299953042e+00 5.6287510804214440e+00 + 6 -5.9374890020083242e+01 6.0904798391126072e+01 4.0744679719207113e+01 + 7 9.5034995701770009e-01 -1.6630190440089113e+01 -9.4755384658126189e+01 + 8 -5.2837337094888845e-02 8.2576795840735340e-01 3.5936873175859219e+01 + 9 1.0123301399189680e+01 2.3916604961995334e+00 3.8071865572717144e+01 + 10 4.2032036605899663e+01 -5.5271385693424492e+01 -1.7617826796410039e+01 + 11 -2.0952498098944980e+00 -1.6936833902275663e+00 -5.1513369730147245e+00 + 12 1.1258237998299577e+01 3.5013284075330748e+00 -2.7030140093994710e+00 + 13 4.1369568794483298e+00 -1.6074660976695168e+00 -2.5942402457912178e-01 + 14 -2.7210873224773366e+00 6.2997283112559455e-01 -4.1814031805656784e+00 + 15 1.3864549458477479e-01 4.3144198177742474e+00 6.6650912032449383e-01 + 16 3.2836210041505360e+01 -2.8388917370840122e+01 -6.7143474917156894e+01 + 17 -3.0853057250678230e+01 2.6146329698133453e+01 7.1310455819000708e+01 + 18 -2.1605111154692405e-01 4.3473938615434999e+00 -7.4170088346486720e+00 + 19 2.4153215863143864e+00 -4.3985844504479843e-01 5.6616775835399764e+00 + 20 -2.8256043612795856e+00 -3.8503050803195893e+00 3.6226183691002083e+00 + 21 -7.7964609920424381e+00 -6.3696771485886652e+00 2.2972351459771641e+01 + 22 -1.3550751703342016e+01 -4.3873374702386210e+00 -1.8044545105391247e+01 + 23 2.0909059758580067e+01 1.1185892672463510e+01 -4.3920460169748559e+00 + 24 6.0266165085563976e+00 -2.1768589638868864e+01 1.2879762890287099e+01 + 25 -2.0654046611647885e+01 6.5567897851752432e-01 -1.6655521932647208e+01 + 26 1.4031376620563028e+01 2.0860933229015561e+01 3.1334455018104905e+00 + 27 4.0561476968538468e+00 -2.1953415255215369e+01 7.9057583604740760e+00 + 28 -1.9856121995401349e+01 6.2812691494221520e+00 -1.2673991869655868e+01 + 29 1.6213420516750695e+01 1.5671288657022597e+01 4.7380910213953102e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-lj_long_coul_off.yaml b/unittest/force-styles/tests/mol-pair-lj_long_coul_off.yaml new file mode 100644 index 0000000000..090f2fbf2f --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-lj_long_coul_off.yaml @@ -0,0 +1,98 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:51:24 202 +epsilon: 2.5e-09 +prerequisites: ! | + atom full + pair lj/long/coul/long + kspace ewald/disp +pre_commands: ! "" +post_commands: ! | + pair_modify mix arithmetic + pair_modify table/disp 0 + kspace_style ewald/disp 1.0e-6 + kspace_modify gewald 0.3 + kspace_modify compute no +input_file: in.fourmol +pair_style: lj/long/coul/long long off 8.0 +pair_coeff: ! | + 1 1 0.02 2.5 + 2 2 0.005 1.0 + 2 4 0.005 0.5 + 3 3 0.02 3.2 + 4 4 0.015 3.1 + 5 5 0.015 3.1 +extract: ! | + epsilon 2 + sigma 2 + cut_coul 0 +natoms: 29 +init_vdwl: 749.373800441949 +init_coul: 0 +init_stress: ! |2- + 2.1794381361227847e+03 2.1989774840427094e+03 4.6654633746826312e+03 -7.5958387064933254e+02 2.4743497068166821e+01 6.6651487411200151e+02 +init_forces: ! |2 + 1 -2.3337909172249933e+01 2.6995277662718200e+02 3.3273060820109373e+02 + 2 1.5828552646766067e+02 1.3025029081705716e+02 -1.8629690390747203e+02 + 3 -1.3529265986876069e+02 -3.8704154994753128e+02 -1.4568935592890898e+02 + 4 -7.8713263629426660e+00 2.1351114170220513e+00 -5.5955506895296718e+00 + 5 -2.5178642564350207e+00 -4.0521323902744308e+00 1.2152790996562628e+01 + 6 -8.3190876839626185e+02 9.6394179484290805e+02 1.1509090561603070e+03 + 7 5.8200400824213503e+01 -3.3609077741879764e+02 -1.7179683537120463e+03 + 8 1.4451356511697733e+02 -1.0927655957419289e+02 3.9990676707764408e+02 + 9 7.9156996102301804e+01 8.5272965315569124e+01 3.5032186769241565e+02 + 10 5.3119024475723040e+02 -6.1041222359450956e+02 -1.8355919329004368e+02 + 11 -2.3530009298654013e+00 -5.9079071875320412e+00 -9.6591978445356794e+00 + 12 1.7530918212173905e+01 1.0633001009447074e+01 -7.9269535978740695e+00 + 13 8.0988483275382901e+00 -3.2097981060158460e+00 -1.4901913823408430e-01 + 14 -3.3851602826722700e+00 6.8638333901697834e-01 -8.7509182003502701e+00 + 15 -2.0434208928962025e-01 8.4847039593685558e+00 3.0130859506082452e+00 + 16 4.6326550704168022e+02 -3.3088039086238530e+02 -1.1893016218722667e+03 + 17 -4.5334086294319104e+02 3.1553926299825940e+02 1.2058474547628798e+03 + 18 -1.6701423429373786e-02 -2.9053821928417926e-02 2.6868864995710166e-02 + 19 3.5105626492089510e-04 -1.3932327103187588e-04 1.5776173871471617e-03 + 20 -9.3782290819926129e-04 -9.3783157665147513e-04 2.6790958588311821e-04 + 21 -7.1564098969561499e+01 -8.1617942516228155e+01 2.2589378768120048e+02 + 22 -1.0808839336641709e+02 -2.6193853729760022e+01 -1.6957921711074977e+02 + 23 1.7964472491220030e+02 1.0782100927636041e+02 -5.6305867147250893e+01 + 24 3.6592799317562836e+01 -2.1181348907140742e+02 1.1218691549601272e+02 + 25 -1.4851493867543326e+02 2.3907240723383875e+01 -1.2485627739317191e+02 + 26 1.1191141861207664e+02 1.8789793252952484e+02 1.2650230084948744e+01 + 27 5.1808319664002056e+01 -2.2705686796460878e+02 9.0850639433566855e+01 + 28 -1.8041324502064901e+02 7.7534032022981322e+01 -1.2206961052936214e+02 + 29 1.2861058916818402e+02 1.4952711846193802e+02 3.1216122432587827e+01 +run_vdwl: 146.274336045943 +run_coul: 0 +run_stress: ! |2- + 6.2612940858666786e+02 6.7194041553066359e+02 4.8491203168600907e+02 -3.1996539109718168e+02 -2.8461924805315942e+01 1.2291631216125924e+02 +run_forces: ! |2 + 1 1.2959444194738845e+01 8.0898657781884836e+01 6.0325084614883416e+01 + 2 1.8550175209963768e+01 1.4016344275214038e+01 -2.2757540152374148e+01 + 3 -2.4823858542693634e+02 1.0508823543408165e+02 8.6171981312581735e+01 + 4 -8.6009635382922092e+00 3.1744963675682092e+00 -6.2093700605490287e+00 + 5 -1.7310166722161666e+00 -2.5575649257863291e+00 1.0273556182888123e+01 + 6 1.1683023651623166e+02 -9.8725175789905080e+01 -1.4208699506900228e+02 + 7 3.8012668079406629e+00 -1.0705658909259578e+01 -4.2405641385391803e+01 + 8 -1.9936207186723550e+01 1.9884969056476368e+01 5.5348739481022683e+01 + 9 1.1205857996363660e+01 1.3198889372191456e+01 4.9879908126077417e+01 + 10 6.4813933039033500e+01 -7.6376996513659606e+01 -7.5660201231994151e+01 + 11 -6.2988735276650250e+00 -8.0953930898506492e+00 -1.6391554679785166e+01 + 12 1.4372880910920143e+01 1.2193137383094831e+01 -8.2541733867590636e+00 + 13 7.3379802062643069e+00 -2.7955143739745485e+00 -1.0304519348193049e-01 + 14 -2.7951413222466086e+00 4.3890905663444740e-01 -7.1102884788721745e+00 + 15 -3.9760226178493857e-01 8.1106630333311713e+00 3.0710276619837260e+00 + 16 5.2789368835854596e+01 -6.7736228403319828e+01 1.5089237177921778e+01 + 17 -1.4630960101266135e+01 1.0010612922715861e+01 4.0805291250567549e+01 + 18 -1.5924442862563063e-02 -2.7304351418597654e-02 2.5570260244284840e-02 + 19 2.8731962520741353e-04 -1.4554852984096180e-04 1.5107946033024373e-03 + 20 -8.2455683493138537e-04 -8.3306875079146043e-04 2.6070403093194841e-04 + 21 -9.9339560550336277e+00 -1.2020250112213802e+01 3.8869124159616057e+01 + 22 -1.8317783646564060e+01 -4.4400391077958137e+00 -2.9440731934380462e+01 + 23 2.8242619540411720e+01 1.6470760764061239e+01 -9.4180585767606804e+00 + 24 1.2414476508929853e+01 -3.6421089095847393e+01 2.3798463813179126e+01 + 25 -3.0031215500644425e+01 5.3797110538284896e+00 -2.5778173574848172e+01 + 26 1.7604893833924972e+01 3.1032456854172594e+01 1.9587231049711544e+00 + 27 3.4705701804029294e+00 -3.8997340262787105e+01 1.1704660044327099e+01 + 28 -2.5472565911683386e+01 1.1754653690855724e+01 -1.7174771794465958e+01 + 29 2.2007629050148079e+01 2.7247036506988046e+01 5.4674068297666185e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-lj_long_cut_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_long_cut_coul_long.yaml new file mode 100644 index 0000000000..e0f11394e8 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-lj_long_cut_coul_long.yaml @@ -0,0 +1,98 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:30:48 202 +epsilon: 2.5e-09 +prerequisites: ! | + atom full + pair lj/long/coul/long + kspace ewald/disp +pre_commands: ! "" +post_commands: ! | + pair_modify mix arithmetic + pair_modify table 0 + kspace_style ewald/disp 1.0e-6 + kspace_modify gewald 0.3 + kspace_modify compute no +input_file: in.fourmol +pair_style: lj/long/coul/long cut long 8.0 +pair_coeff: ! | + 1 1 0.02 2.5 + 2 2 0.005 1.0 + 2 4 0.005 0.5 + 3 3 0.02 3.2 + 4 4 0.015 3.1 + 5 5 0.015 3.1 +extract: ! | + epsilon 2 + sigma 2 + cut_coul 0 +natoms: 29 +init_vdwl: 749.23722617441 +init_coul: 225.821815126925 +init_stress: ! |2- + 2.1566096102905221e+03 2.1560522619501485e+03 4.6266534799074107e+03 -7.5506792664852833e+02 1.8227392498786724e+01 6.7620047095233224e+02 +init_forces: ! |2 + 1 -2.0618462763941597e+01 2.6955824557331817e+02 3.3303971969628577e+02 + 2 1.5804320290259730e+02 1.2736070680044999e+02 -1.8761875322370290e+02 + 3 -1.3527534370855790e+02 -3.8712699678510739e+02 -1.4567473564586999e+02 + 4 -7.9523001611903004e+00 2.1529958675030314e+00 -5.8368703457146163e+00 + 5 -3.0582326251525678e+00 -3.3883809187242973e+00 1.2083017854050965e+01 + 6 -8.3040738820822730e+02 9.6005828042359281e+02 1.1483437825765977e+03 + 7 5.8120185166710627e+01 -3.3519870126974780e+02 -1.7141420770646753e+03 + 8 1.4294529110557434e+02 -1.0473948537024819e+02 4.0227440364265198e+02 + 9 8.0782664801292412e+01 7.9461689376462743e+01 3.5173823756192235e+02 + 10 5.3094587078352743e+02 -6.1005663210778187e+02 -1.8379407345475144e+02 + 11 -3.2540499141649781e+00 -4.8802394286887329e+00 -1.0222975736126040e+01 + 12 2.0387995352464149e+01 1.0150732333668609e+01 -6.4963658198523673e+00 + 13 8.0249443601010526e+00 -3.2177034494059376e+00 -3.2677700468242465e-01 + 14 -4.4397845432063843e+00 1.0429791239998423e+00 -8.8467682628524411e+00 + 15 1.4977268342910144e-01 8.2844605613269025e+00 2.0022126568305461e+00 + 16 4.6252785745102705e+02 -3.3138888536570056e+02 -1.1873830399415440e+03 + 17 -4.5576456304060503e+02 3.2171257028674961e+02 1.1992024569249218e+03 + 18 3.5422516456607134e-01 4.7664525690678019e+00 -7.8521647968499186e+00 + 19 1.9902251287219574e+00 -7.2137757102175049e-01 5.5223639838180745e+00 + 20 -2.9136075741134171e+00 -3.9877101082545678e+00 4.1254812365563014e+00 + 21 -6.9665137396438126e+01 -7.7245616766991660e+01 2.1699117009298575e+02 + 22 -1.0627535437497886e+02 -2.6762752151475251e+01 -1.6366208350109019e+02 + 23 1.7552271103327649e+02 1.0442578541745208e+02 -5.2822837143660387e+01 + 24 3.5023962544067153e+01 -2.0265340222862500e+02 1.0716472334679624e+02 + 25 -1.4546285129442887e+02 2.0973097297530703e+01 -1.2144543956242964e+02 + 26 1.0987370116457645e+02 1.8142218106460942e+02 1.3660134709697306e+01 + 27 4.9789358000243837e+01 -2.1702160604151149e+02 8.7170422564672975e+01 + 28 -1.7608383951257386e+02 7.3301743321101753e+01 -1.1852450102612138e+02 + 29 1.2668894747540404e+02 1.4371756954645076e+02 3.1331335682136437e+01 +run_vdwl: 146.969932845685 +run_coul: 231.547223819221 +run_stress: ! |2- + 6.0915003500707246e+02 6.3099734489395087e+02 4.5850631347176477e+02 -3.1002781778199557e+02 -2.9989785213832896e+01 1.3053414139517670e+02 +run_forces: ! |2 + 1 1.5318919850572801e+01 7.9282401393560932e+01 6.1573406079985290e+01 + 2 1.9396976103452584e+01 1.2345009578188996e+01 -2.5332936381019135e+01 + 3 -2.4626010838248081e+02 1.0353987453079895e+02 8.5144848064076541e+01 + 4 -8.8799790196154138e+00 3.3241582453182845e+00 -6.4497295145390598e+00 + 5 -2.3921298369027224e+00 -1.8640446027230397e+00 1.0409771237667691e+01 + 6 1.1514350774120571e+02 -9.9343273705726460e+01 -1.4128643713842411e+02 + 7 4.4121943913120516e+00 -1.0659283246845636e+01 -4.1672997953406181e+01 + 8 -1.9867783268324125e+01 2.2748959518231153e+01 5.6456512822888591e+01 + 9 1.3497118196591618e+01 6.1641778280888824e+00 5.3035388456119442e+01 + 10 6.4064118589590649e+01 -7.5531391512657834e+01 -7.5546937349480942e+01 + 11 -7.3191394313774030e+00 -6.8855181594816681e+00 -1.7097024407609805e+01 + 12 1.7332128235292796e+01 1.1587338382628550e+01 -6.6950974554233973e+00 + 13 7.3167736710828635e+00 -2.7360217555016586e+00 -4.0451132381702737e-01 + 14 -4.2029786654038350e+00 8.3858585765595717e-01 -7.1469688262826487e+00 + 15 -2.3374818519103108e-01 7.7706237191767675e+00 2.0011105405761818e+00 + 16 5.2778367300681317e+01 -6.8528214427924524e+01 1.3739542066296099e+01 + 17 -1.8300842492788753e+01 1.7606322050821845e+01 3.7169239078137288e+01 + 18 -6.3726923555036208e-01 4.7973251807363990e+00 -6.5668081899777047e+00 + 19 2.4125111059935440e+00 -8.7925981492706007e-01 5.4232992638105015e+00 + 20 -2.7248803445351695e+00 -3.8904686920603009e+00 3.4619755015532716e+00 + 21 -9.8190589026954900e+00 -9.2646568261250746e+00 3.5602732479020787e+01 + 22 -1.7981862279708125e+01 -5.1466131620539555e+00 -2.7099137281623833e+01 + 23 2.7159817699916161e+01 1.5032332828113880e+01 -7.6944563510728345e+00 + 24 1.1638953097463874e+01 -3.2222663983679347e+01 2.1229971509788818e+01 + 25 -2.9814603307050636e+01 3.4701648992084255e+00 -2.4986494993856571e+01 + 26 1.7326614420233994e+01 2.8422694630059933e+01 2.8029958169551832e+00 + 27 2.2656453938689189e+00 -3.4112795985711863e+01 1.0080919795658197e+01 + 28 -2.4164736062669146e+01 9.4962417865107440e+00 -1.5922775191014150e+01 + 29 2.2535473617034121e+01 2.4637995446318744e+01 5.7705996450135064e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-lj_long_cut_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_long_cut_tip4p_long.yaml new file mode 100644 index 0000000000..46cf6930c7 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-lj_long_cut_tip4p_long.yaml @@ -0,0 +1,104 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:37:29 202 +epsilon: 2.5e-09 +prerequisites: ! | + atom full + pair lj/long/tip4p/long + kspace pppm/tip4p +pre_commands: ! | + variable newton_pair delete + variable newton_pair index on +post_commands: ! | + pair_modify mix arithmetic + pair_modify table 0 + kspace_style pppm/tip4p 1.0e-5 + kspace_modify gewald 0.3 + kspace_modify compute no +input_file: in.fourmol +pair_style: lj/long/tip4p/long cut long 5 2 5 1 0.15 10.0 +pair_coeff: ! | + 1 1 0.02 2.5 + 2 2 0.0 1.0 + 3 3 0.02 3.2 + 4 4 0.015 3.1 + 5 5 0.015 3.1 +extract: ! | + epsilon 2 + sigma 2 + cut_coul 0 + qdist 0 + typeO 0 + typeH 0 + typeA 0 + typeB 0 +natoms: 29 +init_vdwl: 584.670383161597 +init_coul: 220.904555359383 +init_stress: ! |2- + 1.4179908002675882e+03 1.6981521472771326e+03 3.8247898365498659e+03 -1.0685165973996448e+03 -2.2301723469314513e+02 7.0678972133134005e+02 +init_forces: ! |2 + 1 1.3731384428493121e+02 3.9920027854840788e+02 1.4671535403601735e+02 + 2 -1.9557407939667784e-01 -2.8434279090485344e+00 -1.2037666274486341e+00 + 3 -1.4543663403399538e+02 -3.8854700044105402e+02 -1.3922266457674951e+02 + 4 -7.9314978889013857e-02 1.6212643266693107e-02 -2.3663785465653561e-01 + 5 -5.4637120859630939e-01 6.5600989679059629e-01 -6.8980117595427104e-02 + 6 -8.3044669697571749e+02 9.6003930443804506e+02 1.1483694854778573e+03 + 7 5.8135895738828353e+01 -3.3519692236360061e+02 -1.7141558378818361e+03 + 8 2.2222305975187425e+02 -1.9487727502660317e+01 7.5254098660516138e+02 + 9 1.5618105874324246e+00 -5.8578891996706437e+00 1.3701350515471384e+00 + 10 5.2854808750532732e+02 -6.1591056046926769e+02 -1.9340282225226667e+02 + 11 -9.3766462457826905e-01 1.0563563299185068e+00 -5.5775022539970631e-01 + 12 2.4920347090319872e+01 1.6044703403776552e+01 -1.2382381138510290e+01 + 13 -7.5720425159299595e-02 3.8772041103398963e-02 -1.8346431648817585e-01 + 14 -1.0557020156519512e+00 3.6717714938726143e-01 -1.0728817695848940e-01 + 15 3.5162907632314466e-01 -1.9165325094615621e-01 -1.0148660141104417e+00 + 16 4.6235900379292792e+02 -3.3129451959604171e+02 -1.1872104846434020e+03 + 17 -4.5562419584375374e+02 3.2174933377566862e+02 1.1991777288967189e+03 + 18 3.5327038190601812e-01 4.7616027705645063e+00 -7.8715620952516669e+00 + 19 1.9911596893384120e+00 -7.2195675725850206e-01 5.5334689749229105e+00 + 20 -2.9127135301570397e+00 -4.0021946638596519e+00 4.1375019377447915e+00 + 21 1.5193592132463731e+00 3.2144198763444232e+00 -6.7582252673322509e+00 + 22 4.4657588078956723e+00 1.0585032152255676e+00 5.8268290139589860e+00 + 23 -6.2938601634201303e+00 -3.9616631352879410e+00 1.3192732707154482e+00 + 24 -1.0905447268336348e+00 6.8024490705444629e+00 -3.6841665762708757e+00 + 25 4.9746167445264264e+00 -5.2361422570157790e-01 3.9262159421100877e+00 + 26 -4.3769290854851999e+00 -6.4816134554785325e+00 -8.1534775153570904e-01 + 27 -1.5292288824966405e+00 7.3670370809055621e+00 -2.7248017347638225e+00 + 28 6.4035032875423159e+00 -2.1779017025677483e+00 4.1727109672631357e+00 + 29 -4.5201953782892055e+00 -5.1735155675050022e+00 -1.4886429234413563e+00 +run_vdwl: 102.179240398644 +run_coul: 221.720424546992 +run_stress: ! |2- + 3.9536843184623058e+02 4.7478735082143146e+02 2.6697778872541829e+02 -3.2473557133602441e+02 -9.3384532451696145e+01 1.1447113381864791e+02 +run_forces: ! |2 + 1 3.2379540774112940e+01 8.3517527414743427e+01 3.0446322576408370e+01 + 2 -2.6293126959640789e-01 -1.8753551336903787e+00 -6.6074949251544501e-01 + 3 -2.3593857243623478e+02 9.7836073928631833e+01 8.4490011242546615e+01 + 4 -3.7637774235278060e-01 1.4515275288094828e-01 -2.8559910145119410e-01 + 5 -6.8204117190800306e-01 6.2446578533889874e-01 2.7378988248683184e-01 + 6 1.0933365729165328e+02 -9.6549045037005087e+01 -1.2841653298209610e+02 + 7 4.9593737826049953e+00 -1.0982207225663634e+01 -4.0074345311087718e+01 + 8 -1.6165014052241138e+00 3.2404345058645852e+01 1.0398184289445261e+02 + 9 1.3998347047175768e+00 -6.8051250780067472e+00 5.7998397476985875e-01 + 10 3.9959095982478154e+01 -6.7059878898971292e+01 -8.8447803032655671e+01 + 11 -1.0802301059782982e+00 1.1219888940584297e+00 -8.4425239997392743e-01 + 12 2.0545804720403741e+01 1.6756506821178750e+01 -1.0147383979092723e+01 + 13 -4.0343321874813348e-02 1.7788265176798995e-01 -2.9853594465807470e-01 + 14 -1.3513516710629263e+00 4.4595934938156750e-01 -2.6265884551665269e-01 + 15 3.1593487998441483e-01 -2.5515183537208080e-01 -1.0797891014048080e+00 + 16 5.1256244569865025e+01 -6.6172009677024647e+01 1.2070939136664387e+01 + 17 -1.7692907416727870e+01 1.6463320315378233e+01 3.6795640394681179e+01 + 18 -1.6194696510616974e-01 4.5570017780853052e+00 -7.3322970257924407e+00 + 19 2.3514102714689615e+00 -7.5578860560606387e-01 5.6642936508687214e+00 + 20 -2.8597552719569386e+00 -3.9142546520933768e+00 3.6472607860602464e+00 + 21 1.4156882123083809e+00 3.1994560956847562e+00 -6.4435678999424217e+00 + 22 4.7559025720967556e+00 1.1887804903972874e+00 5.7934257053883416e+00 + 23 -6.5791547151845498e+00 -3.9974753494116477e+00 1.1725336611476698e+00 + 24 -1.2476216693532436e+00 7.0412609028878910e+00 -3.7704984044487455e+00 + 25 5.3901883576076450e+00 -3.4508321180203627e-01 4.2395901334590524e+00 + 26 -4.6303654307411399e+00 -6.8134281037859301e+00 -1.0346808880595877e+00 + 27 -1.8378768075421317e+00 7.4880775093473533e+00 -2.6847264242122688e+00 + 28 6.6966633089203391e+00 -2.2313684816363604e+00 4.2842114180410844e+00 + 29 -4.4013620273780845e+00 -5.2116284583392112e+00 -1.6564246240672249e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-lj_table_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_table_coul_long.yaml new file mode 100644 index 0000000000..c5c38fe070 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-lj_table_coul_long.yaml @@ -0,0 +1,99 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:12:39 202 +epsilon: 2.5e-09 +prerequisites: ! | + atom full + pair lj/long/coul/long + kspace ewald/disp +pre_commands: ! "" +post_commands: ! | + pair_modify mix arithmetic + pair_modify table 0 + pair_modify table/disp 16 + kspace_style ewald/disp 1.0e-6 + kspace_modify gewald 0.3 + kspace_modify compute no +input_file: in.fourmol +pair_style: lj/long/coul/long long long 8.0 +pair_coeff: ! | + 1 1 0.02 2.5 + 2 2 0.005 1.0 + 2 4 0.005 0.5 + 3 3 0.02 3.2 + 4 4 0.015 3.1 + 5 5 0.015 3.1 +extract: ! | + epsilon 2 + sigma 2 + cut_coul 0 +natoms: 29 +init_vdwl: 749.373800357348 +init_coul: 225.821815126925 +init_stress: ! |2- + 2.1566620275856822e+03 2.1561339778667862e+03 4.6267173805218372e+03 -7.5508635107482382e+02 1.8219496068776014e+01 6.7619472637775823e+02 +init_forces: ! |2 + 1 -2.0622981662071613e+01 2.6956534606014867e+02 3.3304204939219869e+02 + 2 1.5804318306597202e+02 1.2736090918199255e+02 -1.8761883354200975e+02 + 3 -1.3527896609256092e+02 -3.8712541326981932e+02 -1.4567430734293413e+02 + 4 -7.9525168534384170e+00 2.1530554219646421e+00 -5.8369678166690724e+00 + 5 -3.0584211532224148e+00 -3.3883622377471094e+00 1.2083104791023796e+01 + 6 -8.3040950102297984e+02 9.6005842181326307e+02 1.1483426895221698e+03 + 7 5.8117169950282843e+01 -3.3519934248182761e+02 -1.7141478300599165e+03 + 8 1.4294492974603324e+02 -1.0474128440577337e+02 4.0227522780613583e+02 + 9 8.0782715620397013e+01 7.9461644907824052e+01 3.5173834826917744e+02 + 10 5.3094736342439148e+02 -6.1005894716644502e+02 -1.8379453986431167e+02 + 11 -3.2540351180137450e+00 -4.8803826061744875e+00 -1.0223101182720621e+01 + 12 2.0391758280214137e+01 1.0150613757002871e+01 -6.4978795717582267e+00 + 13 8.0251517291330980e+00 -3.2176927286056829e+00 -3.2683214404384525e-01 + 14 -4.4396726972086293e+00 1.0430006503374387e+00 -8.8469673759032563e+00 + 15 1.4998058560353381e-01 8.2845479681027587e+00 2.0021370655775867e+00 + 16 4.6253004977476735e+02 -3.3139197130038559e+02 -1.1873816442572254e+03 + 17 -4.5576220537853823e+02 3.2170885360746814e+02 1.1992075701093884e+03 + 18 3.5638637071491824e-01 4.7708007691014034e+00 -7.8562964234383275e+00 + 19 1.9902577542102526e+00 -7.2127770799709612e-01 5.5221988759642180e+00 + 20 -2.9135477887388945e+00 -3.9876270213785152e+00 4.1253800364083837e+00 + 21 -6.9663077725725273e+01 -7.7247842899292053e+01 2.1698923836759030e+02 + 22 -1.0627534004503912e+02 -2.6762806432144497e+01 -1.6366217211365458e+02 + 23 1.7552279743783276e+02 1.0442576746936786e+02 -5.2822891559263937e+01 + 24 3.5025338224005949e+01 -2.0265091632393896e+02 1.0716856781058712e+02 + 25 -1.4546282924824979e+02 2.0973208750642989e+01 -1.2144531001165997e+02 + 26 1.0987377306151753e+02 1.8142227934421010e+02 1.3660221691825502e+01 + 27 4.9787264831993880e+01 -2.1702378492854734e+02 8.7171908557137229e+01 + 28 -1.7608392920068218e+02 7.3301696261216364e+01 -1.1852448703330357e+02 + 29 1.2668890412939926e+02 1.4371750554743343e+02 3.1331418003628617e+01 +run_vdwl: 147.102426694524 +run_coul: 231.547234871665 +run_stress: ! |2- + 6.0919946201421988e+02 6.3107486633797907e+02 4.5857020422771228e+02 -3.1004410289258726e+02 -2.9997162347755431e+01 1.3052869362890030e+02 +run_forces: ! |2 + 1 1.5314341205678486e+01 7.9288642490784369e+01 6.1575316271714996e+01 + 2 1.9396919695303119e+01 1.2345122420340662e+01 -2.5332949177150759e+01 + 3 -2.4626133682135156e+02 1.0354031953861355e+02 8.5144438448546651e+01 + 4 -8.8802510400027757e+00 3.3242343941129051e+00 -6.4498821695174051e+00 + 5 -2.3923102678705463e+00 -1.8640351082303857e+00 1.0409864216935313e+01 + 6 1.1513973578816243e+02 -9.9341683946117257e+01 -1.4128602776413862e+02 + 7 4.4093102526473835e+00 -1.0659981388734394e+01 -4.1678753369598915e+01 + 8 -1.9868178149055055e+01 2.2747136541665622e+01 5.6457133898202095e+01 + 9 1.3497169875038249e+01 6.1641440267915044e+00 5.3035466619223691e+01 + 10 6.4065571996948023e+01 -7.5533401579373077e+01 -7.5547052764835286e+01 + 11 -7.3191434942599534e+00 -6.8856558572360669e+00 -1.7097167936812113e+01 + 12 1.7335578038078207e+01 1.1587192649732790e+01 -6.6964876090846452e+00 + 13 7.3170467155828272e+00 -2.7360333230130927e+00 -4.0456573322628303e-01 + 14 -4.2028744833248162e+00 8.3860844630055698e-01 -7.1471584120941243e+00 + 15 -2.3354898897002949e-01 7.7706845408805894e+00 2.0010266047280063e+00 + 16 5.2780269298568335e+01 -6.8530907103753592e+01 1.3740476761760695e+01 + 17 -1.8298627906569415e+01 1.7602799822808429e+01 3.7174317049593419e+01 + 18 -6.3511706684870328e-01 4.8016019623842849e+00 -6.5708473263134044e+00 + 19 2.4125453719401606e+00 -8.7915573566205618e-01 5.4231247570072538e+00 + 20 -2.7248412430551321e+00 -3.8904055215701314e+00 3.4618835711051537e+00 + 21 -9.8169830034493941e+00 -9.2669725639388130e+00 3.5600822975931536e+01 + 22 -1.7981884126072515e+01 -5.1466604416467439e+00 -2.7099256235688927e+01 + 23 2.7159949532535283e+01 1.5032360511224208e+01 -7.6945205389021263e+00 + 24 1.1640105316120435e+01 -3.2220309671551597e+01 2.1233691209615991e+01 + 25 -2.9814417745628266e+01 3.4702385031723315e+00 -2.4986236145968000e+01 + 26 1.7326774130667435e+01 2.8422945634017008e+01 2.8030693229220005e+00 + 27 2.2636828242526583e+00 -3.4114834877109693e+01 1.0082389585491104e+01 + 28 -2.4164812532041658e+01 9.4962047236856133e+00 -1.5922767590329363e+01 + 29 2.2535326826976828e+01 2.4637800911422538e+01 5.7706514808820266e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-lj_table_coul_off.yaml b/unittest/force-styles/tests/mol-pair-lj_table_coul_off.yaml new file mode 100644 index 0000000000..93482e60dc --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-lj_table_coul_off.yaml @@ -0,0 +1,98 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:52:08 202 +epsilon: 2.0e-08 +prerequisites: ! | + atom full + pair lj/long/coul/long + kspace ewald/disp +pre_commands: ! "" +post_commands: ! | + pair_modify mix arithmetic + pair_modify table/disp 16 + kspace_style ewald/disp 1.0e-6 + kspace_modify gewald 0.3 + kspace_modify compute no +input_file: in.fourmol +pair_style: lj/long/coul/long long off 8.0 +pair_coeff: ! | + 1 1 0.02 2.5 + 2 2 0.005 1.0 + 2 4 0.005 0.5 + 3 3 0.02 3.2 + 4 4 0.015 3.1 + 5 5 0.015 3.1 +extract: ! | + epsilon 2 + sigma 2 + cut_coul 0 +natoms: 29 +init_vdwl: 749.373800357348 +init_coul: 0 +init_stress: ! |2- + 2.1794381359454856e+03 2.1989774838936992e+03 4.6654633745006640e+03 -7.5958387065313900e+02 2.4743497109181568e+01 6.6651487416349380e+02 +init_forces: ! |2 + 1 -2.3337909172660552e+01 2.6995277662274208e+02 3.3273060820212879e+02 + 2 1.5828552646761383e+02 1.3025029081691127e+02 -1.8629690390745836e+02 + 3 -1.3529265982472091e+02 -3.8704154999260845e+02 -1.4568935595816552e+02 + 4 -7.8713263628215326e+00 2.1351114169968111e+00 -5.5955506894836944e+00 + 5 -2.5178642547974577e+00 -4.0521323870840984e+00 1.2152790994956625e+01 + 6 -8.3190876843522824e+02 9.6394179488355849e+02 1.1509090561880168e+03 + 7 5.8200400849736639e+01 -3.3609077743260366e+02 -1.7179683536540094e+03 + 8 1.4451356510339352e+02 -1.0927655956042940e+02 3.9990676701677819e+02 + 9 7.9156996102213654e+01 8.5272965315447763e+01 3.5032186769183011e+02 + 10 5.3119024483193323e+02 -6.1041222352448358e+02 -1.8355919333588054e+02 + 11 -2.3530009304059547e+00 -5.9079071850446443e+00 -9.6591978422560238e+00 + 12 1.7530918125109398e+01 1.0633000938016744e+01 -7.9269535422944761e+00 + 13 8.0988483271033278e+00 -3.2097981061314753e+00 -1.4901913807529749e-01 + 14 -3.3851602831240966e+00 6.8638333858747647e-01 -8.7509181993346044e+00 + 15 -2.0434208971164095e-01 8.4847039590770699e+00 3.0130859507311012e+00 + 16 4.6326550703935260e+02 -3.3088039085831980e+02 -1.1893016218763403e+03 + 17 -4.5334086294427368e+02 3.1553926300047175e+02 1.2058474547589124e+03 + 18 -1.6701423721309835e-02 -2.9053822459326438e-02 2.6868865557970214e-02 + 19 3.5105628777967865e-04 -1.3932325746168392e-04 1.5776174113597001e-03 + 20 -9.3782293717701074e-04 -9.3783160253772791e-04 2.6790958260332982e-04 + 21 -7.1564098969661572e+01 -8.1617942516126149e+01 2.2589378768131240e+02 + 22 -1.0808839336637172e+02 -2.6193853729736823e+01 -1.6957921711072794e+02 + 23 1.7964472491215233e+02 1.0782100927634026e+02 -5.6305867147269545e+01 + 24 3.6592799317317727e+01 -2.1181348907153307e+02 1.1218691549562080e+02 + 25 -1.4851493867544147e+02 2.3907240723379402e+01 -1.2485627739321988e+02 + 26 1.1191141861204690e+02 1.8789793252950693e+02 1.2650230084931401e+01 + 27 5.1808319664078056e+01 -2.2705686796453989e+02 9.0850639433523526e+01 + 28 -1.8041324502061397e+02 7.7534032022992875e+01 -1.2206961052934710e+02 + 29 1.2861058916815250e+02 1.4952711846193120e+02 3.1216122432569136e+01 +run_vdwl: 146.274335893558 +run_coul: 0 +run_stress: ! |2- + 6.2612940829357342e+02 6.7194041520958228e+02 4.8491203145001367e+02 -3.1996539092594355e+02 -2.8461924774289425e+01 1.2291631209662745e+02 +run_forces: ! |2 + 1 1.2959444179898764e+01 8.0898657729742709e+01 6.0325084589735106e+01 + 2 1.8550175207515242e+01 1.4016344273823519e+01 -2.2757540148832035e+01 + 3 -2.4823858541661636e+02 1.0508823550185259e+02 8.6171981341141617e+01 + 4 -8.6009635351279385e+00 3.1744963674267583e+00 -6.2093700583047982e+00 + 5 -1.7310166723102316e+00 -2.5575649261036912e+00 1.0273556182687628e+01 + 6 1.1683023663322314e+02 -9.8725175915846080e+01 -1.4208699510986790e+02 + 7 3.8012667991063935e+00 -1.0705658885469246e+01 -4.2405641297857031e+01 + 8 -1.9936207146662344e+01 1.9884969005876030e+01 5.5348739365179455e+01 + 9 1.1205857995419088e+01 1.3198889371141741e+01 4.9879908122698716e+01 + 10 6.4813932923855788e+01 -7.6376996345479810e+01 -7.5660201199421323e+01 + 11 -6.2988735275266627e+00 -8.0953930874938713e+00 -1.6391554676297908e+01 + 12 1.4372880877777362e+01 1.2193137364133001e+01 -8.2541733662791366e+00 + 13 7.3379802047718004e+00 -2.7955143737428960e+00 -1.0304519329579827e-01 + 14 -2.7951413224074608e+00 4.3890905624726723e-01 -7.1102884778086555e+00 + 15 -3.9760226239019958e-01 8.1106630324186835e+00 3.0710276620073889e+00 + 16 5.2789368843161938e+01 -6.7736228415187810e+01 1.5089237193010232e+01 + 17 -1.4630960101062319e+01 1.0010612924423388e+01 4.0805291240926856e+01 + 18 -1.5924443076776620e-02 -2.7304351832779711e-02 2.5570260683432443e-02 + 19 2.8731963107011155e-04 -1.4554852722407848e-04 1.5107946171005703e-03 + 20 -8.2455684558128603e-04 -8.3306876171628387e-04 2.6070403075870245e-04 + 21 -9.9339560551715245e+00 -1.2020250112071123e+01 3.8869124159774046e+01 + 22 -1.8317783646559480e+01 -4.4400391077928063e+00 -2.9440731934378256e+01 + 23 2.8242619540405755e+01 1.6470760764059182e+01 -9.4180585767627232e+00 + 24 1.2414476508828987e+01 -3.6421089095920166e+01 2.3798463812991059e+01 + 25 -3.0031215500694653e+01 5.3797110538054911e+00 -2.5778173574937060e+01 + 26 1.7604893833914652e+01 3.1032456854162618e+01 1.9587231049669485e+00 + 27 3.4705701804687381e+00 -3.8997340262741318e+01 1.1704660044295883e+01 + 28 -2.5472565911678490e+01 1.1754653690860275e+01 -1.7174771794465844e+01 + 29 2.2007629050151305e+01 2.7247036506997258e+01 5.4674068297622522e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml index 141a8129c5..a470fcf7fe 100644 --- a/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 30 Jun 2020 -date_generated: Sun Jul 12 19:14:19 202 +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:12:39 202 epsilon: 2.5e-09 prerequisites: ! | atom full @@ -10,6 +10,7 @@ pre_commands: ! "" post_commands: ! | pair_modify mix arithmetic pair_modify table 16 + pair_modify table/disp 16 kspace_style ewald/disp 1.0e-6 kspace_modify gewald 0.3 kspace_modify compute no @@ -27,72 +28,72 @@ extract: ! | sigma 2 cut_coul 0 natoms: 29 -init_vdwl: 749.373775521848 +init_vdwl: 749.373800357348 init_coul: 225.821848735651 init_stress: ! |2- - 2.1566619971777413e+03 2.1561339403554666e+03 4.6267173339267038e+03 -7.5508634750896965e+02 1.8219503143980933e+01 6.7619476298066934e+02 + 2.1566620469893351e+03 2.1561339813185318e+03 4.6267173923329747e+03 -7.5508634691578300e+02 1.8219503726437118e+01 6.7619473035693068e+02 init_forces: ! |2 - 1 -2.0622983050283263e+01 2.6956534532026660e+02 3.3304204789258222e+02 - 2 1.5804318236525782e+02 1.2736090831253274e+02 -1.8761883190634558e+02 - 3 -1.3527896421124342e+02 -3.8712541504537563e+02 -1.4567430847877733e+02 - 4 -7.9525168048307062e+00 2.1530558910616153e+00 -5.8369676346310433e+00 - 5 -3.0584207850172209e+00 -3.3883611651162857e+00 1.2083104846337029e+01 - 6 -8.3040950170101348e+02 9.6005842292884233e+02 1.1483426887159101e+03 - 7 5.8117175687954337e+01 -3.3519934557062885e+02 -1.7141478181450425e+03 - 8 1.4294493115607600e+02 -1.0474128229188183e+02 4.0227521351864101e+02 - 9 8.0782717537312465e+01 7.9461643941257961e+01 3.5173834992581641e+02 - 10 5.3094739052295813e+02 -6.1005894283134398e+02 -1.8379453639173889e+02 - 11 -3.2540353416884504e+00 -4.8803812583757731e+00 -1.0223100574306732e+01 - 12 2.0391732339908895e+01 1.0150596136392895e+01 -6.4978645047041876e+00 - 13 8.0251516902483022e+00 -3.2176928539144192e+00 -3.2683193496839047e-01 - 14 -4.4396728398821734e+00 1.0430003764525568e+00 -8.8469671673600931e+00 - 15 1.4998012722969783e-01 8.2845474327265212e+00 2.0021377005588481e+00 - 16 4.6253004097986656e+02 -3.3139195729360387e+02 -1.1873816589058192e+03 - 17 -4.5576220608837838e+02 3.2170885522567096e+02 1.1992075671588939e+03 - 18 3.5638692666172422e-01 4.7708004662635961e+00 -7.8562973913826930e+00 - 19 1.9902557918686501e+00 -7.2127903766292345e-01 5.5221986305507542e+00 - 20 -2.9135459365280232e+00 -3.9876257468979133e+00 4.1253810225248220e+00 - 21 -6.9663078206757802e+01 -7.7247842236131575e+01 2.1698923904789154e+02 - 22 -1.0627534327922656e+02 -2.6762808345698627e+01 -1.6366217395385436e+02 - 23 1.7552280114681895e+02 1.0442576888889987e+02 -5.2822890438435344e+01 - 24 3.5025338279002199e+01 -2.0265091608486298e+02 1.0716856701427869e+02 - 25 -1.4546283072641876e+02 2.0973207656415436e+01 -1.2144531070379874e+02 - 26 1.0987377485074465e+02 1.8142228050345557e+02 1.3660223055835980e+01 - 27 4.9787264718793395e+01 -2.1702378474562562e+02 8.7171908352443239e+01 - 28 -1.7608393218721972e+02 7.3301695273891653e+01 -1.1852448845086707e+02 - 29 1.2668890703778598e+02 1.4371750615298978e+02 3.1331419699767945e+01 -run_vdwl: 147.102364008907 -run_coul: 231.547240603322 + 1 -2.0622983282961155e+01 2.6956534580029830e+02 3.3304204802960948e+02 + 2 1.5804318240413494e+02 1.2736090839234397e+02 -1.8761883191590323e+02 + 3 -1.3527896597872223e+02 -3.8712541339769712e+02 -1.4567430747473031e+02 + 4 -7.9525168146660441e+00 2.1530558963966380e+00 -5.8369676370233030e+00 + 5 -3.0584209055707383e+00 -3.3883612110150296e+00 1.2083104977092896e+01 + 6 -8.3040950136000276e+02 9.6005842227652988e+02 1.1483426878761661e+03 + 7 5.8117169450710406e+01 -3.3519934237603945e+02 -1.7141478315660804e+03 + 8 1.4294492918820637e+02 -1.0474128492342160e+02 4.0227522971952038e+02 + 9 8.0782717492831196e+01 7.9461644068013641e+01 3.5173835015620546e+02 + 10 5.3094736355394900e+02 -6.1005894670748739e+02 -1.8379454042004096e+02 + 11 -3.2540351699304226e+00 -4.8803818836117570e+00 -1.0223101113693632e+01 + 12 2.0391758449230110e+01 1.0150613676434016e+01 -6.4978803294763292e+00 + 13 8.0251518113258573e+00 -3.2176928330435310e+00 -3.2683197908682099e-01 + 14 -4.4396727813244050e+00 1.0430004383341591e+00 -8.8469673028843019e+00 + 15 1.4998046824562422e-01 8.2845476733436705e+00 2.0021375954684069e+00 + 16 4.6253005044510280e+02 -3.3139197188969183e+02 -1.1873816442310826e+03 + 17 -4.5576220557855908e+02 3.2170885409862240e+02 1.1992075698310732e+03 + 18 3.5638704479518829e-01 4.7708006412867885e+00 -7.8562975727552891e+00 + 19 1.9902557846149604e+00 -7.2127904297818812e-01 5.5221986246057204e+00 + 20 -2.9135459277550035e+00 -3.9876257393340855e+00 4.1253810240312614e+00 + 21 -6.9663078179814590e+01 -7.7247842265381763e+01 2.1698923902053193e+02 + 22 -1.0627534328039305e+02 -2.6762808346658645e+01 -1.6366217395482369e+02 + 23 1.7552280114847611e+02 1.0442576888932095e+02 -5.2822890438088827e+01 + 24 3.5025338340240566e+01 -2.0265091606082774e+02 1.0716856710763977e+02 + 25 -1.4546283072928165e+02 2.0973207655444337e+01 -1.2144531070021064e+02 + 26 1.0987377485846795e+02 1.8142228050810775e+02 1.3660223060813415e+01 + 27 4.9787264699025812e+01 -2.1702378476330091e+02 8.7171908363476405e+01 + 28 -1.7608393218830406e+02 7.3301695273279591e+01 -1.1852448845096609e+02 + 29 1.2668890703792840e+02 1.4371750615273265e+02 3.1331419700612329e+01 +run_vdwl: 147.102426252189 +run_coul: 231.547240508456 run_stress: ! |2- - 6.0919935250491551e+02 6.3107470765705614e+02 4.5857011705905336e+02 -3.1004402377451629e+02 -2.9997154278408505e+01 1.3052868202596429e+02 + 6.0919947319091500e+02 6.3107485884082109e+02 4.5857019809383860e+02 -3.1004409243413562e+02 -2.9997158953251258e+01 1.3052869846250803e+02 run_forces: ! |2 - 1 1.5314330456082375e+01 7.9288612018111891e+01 6.1575302851027473e+01 - 2 1.9396918496621819e+01 1.2345121475473629e+01 -2.5332946995506887e+01 - 3 -2.4626133602019385e+02 1.0354035819524533e+02 8.5144455301573700e+01 - 4 -8.8802504594522595e+00 3.3242350511107621e+00 -6.4498813962602277e+00 - 5 -2.3923099687291249e+00 -1.8640339713465230e+00 1.0409864464366862e+01 - 6 1.1513979588742382e+02 -9.9341738204392712e+01 -1.4128601885199984e+02 - 7 4.4093108872000943e+00 -1.0659979486113585e+01 -4.1678740081576677e+01 - 8 -1.9868174215644906e+01 2.2747119708705185e+01 5.6457083257617292e+01 - 9 1.3497170998650029e+01 6.1641420592811746e+00 5.3035466506751398e+01 - 10 6.4065527994741615e+01 -7.5533327018403170e+01 -7.5547040082015059e+01 - 11 -7.3191435057005689e+00 -6.8856547025426540e+00 -1.7097167055797030e+01 - 12 1.7335566137434544e+01 1.1587180022734630e+01 -6.6964801282487851e+00 - 13 7.3170463446330158e+00 -2.7360332431253380e+00 -4.0456559200963493e-01 - 14 -4.2028745546918724e+00 8.3860817870069837e-01 -7.1471580074965013e+00 - 15 -2.3354961647907332e-01 7.7706838073650077e+00 2.0010271260944892e+00 - 16 5.2780261844222451e+01 -6.8530902806078814e+01 1.3740502790968277e+01 - 17 -1.8298619359534733e+01 1.7602795979823796e+01 3.7174291165212864e+01 - 18 -6.3511633841592818e-01 4.8016018951715571e+00 -6.5708485328908521e+00 - 19 2.4125436021018882e+00 -8.7915717496651880e-01 5.4231245848210579e+00 - 20 -2.7248396478511525e+00 -3.8904046151637077e+00 3.4618845539001772e+00 - 21 -9.8169833938045379e+00 -9.2669714376458963e+00 3.5600822909468476e+01 - 22 -1.7981885549494010e+01 -5.1466617324636976e+00 -2.7099256944231378e+01 - 23 2.7159951409317031e+01 1.5032360893520082e+01 -7.6945199175791847e+00 - 24 1.1640105282264134e+01 -3.2220308641371709e+01 2.1233690113732802e+01 - 25 -2.9814418732341025e+01 3.4702372594087434e+00 -2.4986236433790651e+01 - 26 1.7326775614611016e+01 2.8422946226313826e+01 2.8030707467207598e+00 - 27 2.2636822475247982e+00 -3.4114834383077067e+01 1.0082389229026969e+01 - 28 -2.4164813811789394e+01 9.4962039160805443e+00 -1.5922768136625390e+01 - 29 2.2535327971293803e+01 2.4637800729644507e+01 5.7706525547454497e+00 + 1 1.5314339795060784e+01 7.9288641930908128e+01 6.1575315626625084e+01 + 2 1.9396919081319222e+01 1.2345121810564475e+01 -2.5332947835208468e+01 + 3 -2.4626133652413094e+02 1.0354031882871385e+02 8.5144438140135122e+01 + 4 -8.8802513813183328e+00 3.3242349706201999e+00 -6.4498821105100426e+00 + 5 -2.3923100708478890e+00 -1.8640342413197746e+00 1.0409864667075016e+01 + 6 1.1513974050725666e+02 -9.9341687390456983e+01 -1.4128603080915775e+02 + 7 4.4093096541452406e+00 -1.0659980189336562e+01 -4.1678749715799299e+01 + 8 -1.9868182770560075e+01 2.2747138895158351e+01 5.6457133354183995e+01 + 9 1.3497171256693235e+01 6.1641422842189559e+00 5.3035467396262327e+01 + 10 6.4065571824833668e+01 -7.5533400846362341e+01 -7.5547052498106879e+01 + 11 -7.3191436494832258e+00 -6.8856552890805203e+00 -1.7097168099011714e+01 + 12 1.7335578971692541e+01 1.1587192170630598e+01 -6.6964886678137896e+00 + 13 7.3170468008917791e+00 -2.7360333933701577e+00 -4.0456561032518107e-01 + 14 -4.2028745485810726e+00 8.3860826594211069e-01 -7.1471583459905927e+00 + 15 -2.3354931800432668e-01 7.7706842779976029e+00 2.0010271442033600e+00 + 16 5.2780267916599563e+01 -6.8530905717040810e+01 1.3740481378769744e+01 + 17 -1.8298626339154829e+01 1.7602800600136661e+01 3.7174311321441081e+01 + 18 -6.3511626475557825e-01 4.8016020177453607e+00 -6.5708486375920021e+00 + 19 2.4125435975258989e+00 -8.7915717913018132e-01 5.4231245776300163e+00 + 20 -2.7248396412540692e+00 -3.8904046105623187e+00 3.4618845567120786e+00 + 21 -9.8169833619373925e+00 -9.2669714765580018e+00 3.5600822876657119e+01 + 22 -1.7981885551113407e+01 -5.1466617338674601e+00 -2.7099256947813377e+01 + 23 2.7159951413085466e+01 1.5032360896188315e+01 -7.6945199178482415e+00 + 24 1.1640105339912965e+01 -3.2220308619296183e+01 2.1233690207804660e+01 + 25 -2.9814418744116274e+01 3.4702372618794599e+00 -2.4986236455127472e+01 + 26 1.7326775614638048e+01 2.8422946228984497e+01 2.8030707439800522e+00 + 27 2.2636822313312095e+00 -3.4114834398602163e+01 1.0082389239437273e+01 + 28 -2.4164813812212220e+01 9.4962039155387128e+00 -1.5922768136149232e+01 + 29 2.2535327972483309e+01 2.4637800729756204e+01 5.7706525555370849e+00 ... diff --git a/unittest/force-styles/tests/mol-pair-lj_table_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_table_tip4p_long.yaml new file mode 100644 index 0000000000..970c36a8d6 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-lj_table_tip4p_long.yaml @@ -0,0 +1,107 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:12:39 202 +epsilon: 2.5e-09 +prerequisites: ! | + atom full + pair lj/long/tip4p/long + kspace pppm/disp/tip4p +pre_commands: ! | + variable newton_pair delete + variable newton_pair index on +post_commands: ! | + pair_modify mix arithmetic + pair_modify table 0 + pair_modify table/disp 16 + kspace_style pppm/disp/tip4p 1.0e-5 + kspace_modify gewald 0.3 + kspace_modify force/disp/real 0.001 + kspace_modify force/disp/kspace 0.005 + kspace_modify compute no +input_file: in.fourmol +pair_style: lj/long/tip4p/long long long 5 2 5 1 0.15 10.0 +pair_coeff: ! | + 1 1 0.02 2.5 + 2 2 0.0 1.0 + 3 3 0.02 3.2 + 4 4 0.015 3.1 + 5 5 0.015 3.1 +extract: ! | + epsilon 2 + sigma 2 + cut_coul 0 + qdist 0 + typeO 0 + typeH 0 + typeA 0 + typeB 0 +natoms: 29 +init_vdwl: 584.670383080969 +init_coul: 220.904555359383 +init_stress: ! |2- + 1.4179908000957589e+03 1.6981521471393723e+03 3.8247898363754530e+03 -1.0685165974021609e+03 -2.2301723465511702e+02 7.0678972138306494e+02 +init_forces: ! |2 + 1 1.3731384428584784e+02 3.9920027854736486e+02 1.4671535403577957e+02 + 2 -1.9557407939667784e-01 -2.8434279090485344e+00 -1.2037666274486341e+00 + 3 -1.4543663399005115e+02 -3.8854700048619600e+02 -1.3922266460600832e+02 + 4 -7.9314978889013857e-02 1.6212643266693107e-02 -2.3663785465653561e-01 + 5 -5.4637120859630939e-01 6.5600989679059629e-01 -6.8980117595427104e-02 + 6 -8.3044669701467512e+02 9.6003930447861069e+02 1.1483694855049757e+03 + 7 5.8135895764350323e+01 -3.3519692237740617e+02 -1.7141558378238021e+03 + 8 2.2222305973684053e+02 -1.9487727486956750e+01 7.5254098654650420e+02 + 9 1.5618105874324246e+00 -5.8578891996706437e+00 1.3701350515471384e+00 + 10 5.2854808757954368e+02 -6.1591056040002775e+02 -1.9340282229754692e+02 + 11 -9.3766462457826905e-01 1.0563563299185068e+00 -5.5775022539970631e-01 + 12 2.4920347003511218e+01 1.6044703332627922e+01 -1.2382381082897957e+01 + 13 -7.5720425159299595e-02 3.8772041103398963e-02 -1.8346431648817585e-01 + 14 -1.0557020156519512e+00 3.6717714938726143e-01 -1.0728817695848940e-01 + 15 3.5162907632314466e-01 -1.9165325094615621e-01 -1.0148660141104417e+00 + 16 4.6235900379075730e+02 -3.3129451959213355e+02 -1.1872104846470106e+03 + 17 -4.5562419584483507e+02 3.2174933377787943e+02 1.1991777288927524e+03 + 18 3.5327038161585173e-01 4.7616027700363945e+00 -7.8715620946940819e+00 + 19 1.9911596893384120e+00 -7.2195675725850206e-01 5.5334689749229105e+00 + 20 -2.9127135301570397e+00 -4.0021946638596519e+00 4.1375019377447915e+00 + 21 1.5193592131513642e+00 3.2144198764347460e+00 -6.7582252672252565e+00 + 22 4.4657588078956723e+00 1.0585032152255676e+00 5.8268290139589860e+00 + 23 -6.2938601634201303e+00 -3.9616631352879410e+00 1.3192732707154482e+00 + 24 -1.0905447270727315e+00 6.8024490704250491e+00 -3.6841665766474767e+00 + 25 4.9746167445264264e+00 -5.2361422570157790e-01 3.9262159421100877e+00 + 26 -4.3769290854851999e+00 -6.4816134554785325e+00 -8.1534775153570904e-01 + 27 -1.5292288824197682e+00 7.3670370809736765e+00 -2.7248017348072757e+00 + 28 6.4035032875423159e+00 -2.1779017025677483e+00 4.1727109672631357e+00 + 29 -4.5201953782892055e+00 -5.1735155675050022e+00 -1.4886429234413563e+00 +run_vdwl: 102.17924022107 +run_coul: 221.720424547052 +run_stress: ! |2- + 3.9536843152958863e+02 4.7478735052880882e+02 2.6697778836010133e+02 -3.2473557116721821e+02 -9.3384532444390231e+01 1.1447113380823491e+02 +run_forces: ! |2 + 1 3.2379540762392146e+01 8.3517527376500595e+01 3.0446322562899013e+01 + 2 -2.6293126954969470e-01 -1.8753551337504288e+00 -6.6074949266768956e-01 + 3 -2.3593857244579175e+02 9.7836073990929123e+01 8.4490011269483034e+01 + 4 -3.7637774233534965e-01 1.4515275289051174e-01 -2.8559910144033024e-01 + 5 -6.8204117190585078e-01 6.2446578537000408e-01 2.7378988247551717e-01 + 6 1.0933365749740351e+02 -9.6549045229238345e+01 -1.2841653297832025e+02 + 7 4.9593737763184675e+00 -1.0982207204081561e+01 -4.0074345224736312e+01 + 8 -1.6165015030147969e+00 3.2404345132568395e+01 1.0398184275222998e+02 + 9 1.3998347047690538e+00 -6.8051250778537886e+00 5.7998397496119269e-01 + 10 3.9959095943331178e+01 -6.7059878784865489e+01 -8.8447803029101166e+01 + 11 -1.0802301059891917e+00 1.1219888941003999e+00 -8.4425239996511192e-01 + 12 2.0545804674151686e+01 1.6756506789728121e+01 -1.0147383950574667e+01 + 13 -4.0343321860028536e-02 1.7788265175415657e-01 -2.9853594465493405e-01 + 14 -1.3513516711060465e+00 4.4595934938291676e-01 -2.6265884549659041e-01 + 15 3.1593487994627950e-01 -2.5515183536659702e-01 -1.0797891014057148e+00 + 16 5.1256244542267822e+01 -6.6172009664417871e+01 1.2070939236446156e+01 + 17 -1.7692907383703862e+01 1.6463320293114926e+01 3.6795640301371016e+01 + 18 -1.6194696530598809e-01 4.5570017775494565e+00 -7.3322970254852580e+00 + 19 2.3514102714651339e+00 -7.5578860560185779e-01 5.6642936508844102e+00 + 20 -2.8597552719562440e+00 -3.9142546520874975e+00 3.6472607860552211e+00 + 21 1.4156882122230650e+00 3.1994560957760751e+00 -6.4435678998356867e+00 + 22 4.7559025720950281e+00 1.1887804903968897e+00 5.7934257053926705e+00 + 23 -6.5791547151855934e+00 -3.9974753494160717e+00 1.1725336611501176e+00 + 24 -1.2476216696331957e+00 7.0412609027869220e+00 -3.7704984048769328e+00 + 25 5.3901883576434351e+00 -3.4508321180138424e-01 4.2395901335300090e+00 + 26 -4.6303654307322102e+00 -6.8134281037798567e+00 -1.0346808880509224e+00 + 27 -1.8378768074685554e+00 7.4880775093982148e+00 -2.6847264242404041e+00 + 28 6.6966633089189811e+00 -2.2313684816367823e+00 4.2842114180401456e+00 + 29 -4.4013620273874521e+00 -5.2116284583490931e+00 -1.6564246240665144e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml b/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml index 359f98d281..b14f9befea 100644 --- a/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 30 Jun 2020 -date_generated: Sun Jul 12 19:14:20 202 +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 22:12:40 202 epsilon: 2.5e-09 prerequisites: ! | atom full @@ -12,6 +12,7 @@ pre_commands: ! | post_commands: ! | pair_modify mix arithmetic pair_modify table 16 + pair_modify table/disp 16 kspace_style pppm/disp/tip4p 1.0e-5 kspace_modify gewald 0.3 kspace_modify force/disp/real 0.001 @@ -35,72 +36,72 @@ extract: ! | typeA 0 typeB 0 natoms: 29 -init_vdwl: 584.670359070893 +init_vdwl: 584.670383080969 init_coul: 220.904588455609 init_stress: ! |2- - 1.4179907710686800e+03 1.6981521125769436e+03 3.8247897920378318e+03 -1.0685165959910000e+03 -2.2301722743707350e+02 7.0678975820574487e+02 + 1.4179908193076576e+03 1.6981521515722404e+03 3.8247898488640121e+03 -1.0685165954330873e+03 -2.2301722605901131e+02 7.0678972497923144e+02 init_forces: ! |2 - 1 1.3731384310026212e+02 3.9920027772905792e+02 1.4671535217916167e+02 + 1 1.3731384283639741e+02 3.9920027811308756e+02 1.4671535235549391e+02 2 -1.9557447317357343e-01 -2.8434285081522317e+00 -1.2037651950271924e+00 - 3 -1.4543663215803275e+02 -3.8854700230609654e+02 -1.3922266572263314e+02 + 3 -1.4543663387528653e+02 -3.8854700059611497e+02 -1.3922266472519371e+02 4 -7.9314985076196248e-02 1.6213100389693782e-02 -2.3663766119408827e-01 5 -5.4637104265427694e-01 6.5601084479287308e-01 -6.8979874489125209e-02 - 6 -8.3044669790717535e+02 9.6003930588319429e+02 1.1483694845351552e+03 - 7 5.8135901238435792e+01 -3.3519692559066823e+02 -1.7141558265358585e+03 - 8 2.2222306044968602e+02 -1.9487724696670316e+01 7.5254097292077699e+02 + 6 -8.3044669756921837e+02 9.6003930525005092e+02 1.1483694838397059e+03 + 7 5.8135895001647199e+01 -3.3519692239594548e+02 -1.7141558399562934e+03 + 8 2.2222305905610756e+02 -1.9487727708614695e+01 7.5254098853220557e+02 9 1.5618123600658955e+00 -5.8578897456975190e+00 1.3701369934457412e+00 - 10 5.2854811459765585e+02 -6.1591055640552827e+02 -1.9340281889206480e+02 + 10 5.2854808769521185e+02 -6.1591056001053619e+02 -1.9340282291147972e+02 11 -9.3766468714515061e-01 1.0563570081719669e+00 -5.5775016157678947e-01 - 12 2.4920321038787339e+01 1.6044685998834325e+01 -1.2382366088836434e+01 + 12 2.4920347089131862e+01 1.6044703488540097e+01 -1.2382381906751601e+01 13 -7.5720341868659613e-02 3.8771870463785031e-02 -1.8346420143728470e-01 14 -1.0557021360462451e+00 3.6717699327037651e-01 -1.0728805745474071e-01 15 3.5162903411425839e-01 -1.9165356159914390e-01 -1.0148654643051216e+00 - 16 4.6235899529451524e+02 -3.3129450612400723e+02 -1.1872104985788901e+03 - 17 -4.5562419655396923e+02 3.2174933527940806e+02 1.1991777261050875e+03 - 18 3.5327086472168123e-01 4.7616025813691003e+00 -7.8715629057183696e+00 + 16 4.6235900472857207e+02 -3.3129452067911240e+02 -1.1872104839786002e+03 + 17 -4.5562419604445051e+02 3.2174933415263115e+02 1.1991777287769060e+03 + 18 3.5327098206401131e-01 4.7616027553456322e+00 -7.8715630862689387e+00 19 1.9911576767872563e+00 -7.2195818815492241e-01 5.5334687249487846e+00 20 -2.9127117202365591e+00 -4.0021932942639236e+00 4.1375029574097324e+00 - 21 1.5193589736067192e+00 3.2144199746827158e+00 -6.7582249769579992e+00 + 21 1.5193589984503486e+00 3.2144199480295139e+00 -6.7582250027472179e+00 22 4.4657560788388375e+00 1.0585017750862749e+00 5.8268274399136137e+00 23 -6.2938570049582916e+00 -3.9616619683096346e+00 1.3192742125017083e+00 - 24 -1.0905447595485733e+00 6.8024491466434487e+00 -3.6841669154260241e+00 + 24 -1.0905446995608203e+00 6.8024491701061081e+00 -3.6841668244070793e+00 25 4.9746148340477232e+00 -5.2361546171101681e-01 3.9262151074199716e+00 26 -4.3769267564308079e+00 -6.4816120417538805e+00 -8.1534630212244097e-01 - 27 -1.5292288455593450e+00 7.3670373106559843e+00 -2.7248019397070147e+00 + 27 -1.5292288656803577e+00 7.3670372934081341e+00 -2.7248019284801495e+00 28 6.4035005649493479e+00 -2.1779026033513014e+00 4.1727097093108574e+00 29 -4.5201927345996555e+00 -5.1735150000565087e+00 -1.4886414114327997e+00 -run_vdwl: 102.179199300034 -run_coul: 221.720433682748 +run_vdwl: 102.179240104247 +run_coul: 221.720433690232 run_stress: ! |2- - 3.9536836553765158e+02 4.7478727916825864e+02 2.6697772038148395e+02 -3.2473550848789199e+02 -9.3384514166241019e+01 1.1447113579081204e+02 + 3.9536844653740309e+02 4.7478735337315516e+02 2.6697778676259202e+02 -3.2473556180637638e+02 -9.3384529239080990e+01 1.1447113567750279e+02 run_forces: ! |2 - 1 3.2379542492535499e+01 8.3517533524615530e+01 3.0446324181960531e+01 - 2 -2.6293174854835449e-01 -1.8753559371951027e+00 -6.6074808957246900e-01 - 3 -2.3593858163135542e+02 9.7836073832424731e+01 8.4490012437396274e+01 - 4 -3.7637792579260931e-01 1.4515340458953740e-01 -2.8559892786003699e-01 - 5 -6.8204117082861870e-01 6.2446673283831056e-01 2.7379021679282883e-01 - 6 1.0933370032075531e+02 -9.6549084434052659e+01 -1.2841653188645319e+02 - 7 4.9593743734414790e+00 -1.0982204203938888e+01 -4.0074328838316930e+01 - 8 -1.6165004112278949e+00 3.2404331460808031e+01 1.0398180213417409e+02 - 9 1.3998365183815527e+00 -6.8051264978599919e+00 5.7998556240876087e-01 - 10 3.9959069718897844e+01 -6.7059816352959103e+01 -8.8447797471709336e+01 - 11 -1.0802302724434492e+00 1.1219894781482578e+00 -8.4425247465345177e-01 - 12 2.0545790284601143e+01 1.6756491334841474e+01 -1.0147375238241514e+01 - 13 -4.0343160760632955e-02 1.7788248617435704e-01 -2.9853581127691381e-01 - 14 -1.3513520043567606e+00 4.4595903020145866e-01 -2.6265867349772881e-01 - 15 3.1593459354069853e-01 -2.5515203367685607e-01 -1.0797884995990836e+00 - 16 5.1256239710097077e+01 -6.6172008213279113e+01 1.2070962934376734e+01 - 17 -1.7692899959460693e+01 1.6463316404082686e+01 3.6795619396120955e+01 - 18 -1.6194616129658029e-01 4.5570023068648027e+00 -7.3322986650341297e+00 - 19 2.3514081527258335e+00 -7.5579018972105849e-01 5.6642935683113516e+00 - 20 -2.8597532632604890e+00 -3.9142531545561017e+00 3.6472614524509903e+00 - 21 1.4156879189472333e+00 3.1994561603022289e+00 -6.4435674649218173e+00 - 22 4.7559002342185170e+00 1.1887791924041369e+00 5.7934241514806759e+00 - 23 -6.5791517503098182e+00 -3.9974743977995999e+00 1.1725342770695508e+00 - 24 -1.2476217919079191e+00 7.0412610246690130e+00 -3.7704987274779596e+00 - 25 5.3901862883658795e+00 -3.4508438067956720e-01 4.2395892150869452e+00 - 26 -4.6303631198805855e+00 -6.8134266065659190e+00 -1.0346794664878556e+00 - 27 -1.8378773074731063e+00 7.4880773774134299e+00 -2.6847264541457050e+00 - 28 6.6966605937650083e+00 -2.2313693479552619e+00 4.2842101034958384e+00 - 29 -4.4013595213701393e+00 -5.2116280001388269e+00 -1.6564229418774461e+00 + 1 3.2379539682333338e+01 8.3517527382245007e+01 3.0446321989943470e+01 + 2 -2.6293176063144369e-01 -1.8753559257400856e+00 -6.6074805427162742e-01 + 3 -2.3593857201316504e+02 9.7836073322917471e+01 8.4490010974265999e+01 + 4 -3.7637798569004405e-01 1.4515335713556210e-01 -2.8559897785029431e-01 + 5 -6.8204117043080026e-01 6.2446673119397145e-01 2.7379021832220585e-01 + 6 1.0933366043217671e+02 -9.6549048284871404e+01 -1.2841653623699446e+02 + 7 4.9593739671988599e+00 -1.0982206335730501e+01 -4.0074341753629255e+01 + 8 -1.6165054847990841e+00 3.2404346947076910e+01 1.0398184137676870e+02 + 9 1.3998364907524725e+00 -6.8051265117854554e+00 5.7998551416406108e-01 + 10 3.9959095770863861e+01 -6.7059878128982533e+01 -8.8447802741173149e+01 + 11 -1.0802302719547214e+00 1.1219894748520014e+00 -8.4425247682312676e-01 + 12 2.0545804827691136e+01 1.6756506830789714e+01 -1.0147384874511031e+01 + 13 -4.0343127344079334e-02 1.7788248238110288e-01 -2.9853580181601497e-01 + 14 -1.3513519617990646e+00 4.4595903368229645e-01 -2.6265873011204899e-01 + 15 3.1593459894485221e-01 -2.5515203222124527e-01 -1.0797884994456801e+00 + 16 5.1256243153570345e+01 -6.6172008494980304e+01 1.2070943482776888e+01 + 17 -1.7692905548242845e+01 1.6463320056800892e+01 3.6795635641783470e+01 + 18 -1.6194608137186223e-01 4.5570024276229395e+00 -7.3322988037745080e+00 + 19 2.3514081526928847e+00 -7.5579018716763013e-01 5.6642935667905210e+00 + 20 -2.8597532637247314e+00 -3.9142531545165622e+00 3.6472614532353766e+00 + 21 1.4156879407556928e+00 3.1994561324730202e+00 -6.4435674871132829e+00 + 22 4.7559002343678038e+00 1.1887791928852809e+00 5.7934241510246531e+00 + 23 -6.5791517502195074e+00 -3.9974743969842192e+00 1.1725342766635378e+00 + 24 -1.2476217508740006e+00 7.0412610416940824e+00 -3.7704986629353101e+00 + 25 5.3901862848724358e+00 -3.4508437673520470e-01 4.2395892090383196e+00 + 26 -4.6303631204497515e+00 -6.8134266068057583e+00 -1.0346794667667554e+00 + 27 -1.8378773181966237e+00 7.4880773688139994e+00 -2.6847264500779100e+00 + 28 6.6966605937638537e+00 -2.2313693477542045e+00 4.2842101037182259e+00 + 29 -4.4013595210906642e+00 -5.2116279982892006e+00 -1.6564229412009841e+00 ... -- GitLab From 66b17fd2ce743ba27ad455bb97d5b67a881b22ae Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Aug 2020 23:03:20 -0400 Subject: [PATCH 040/165] dispersion only tests for buckingham --- .../tests/mol-pair-buck_long_coul_off.yaml | 104 ++++++++++++++++++ .../tests/mol-pair-buck_table_coul_off.yaml | 104 ++++++++++++++++++ 2 files changed, 208 insertions(+) create mode 100644 unittest/force-styles/tests/mol-pair-buck_long_coul_off.yaml create mode 100644 unittest/force-styles/tests/mol-pair-buck_table_coul_off.yaml diff --git a/unittest/force-styles/tests/mol-pair-buck_long_coul_off.yaml b/unittest/force-styles/tests/mol-pair-buck_long_coul_off.yaml new file mode 100644 index 0000000000..10f203e9c3 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-buck_long_coul_off.yaml @@ -0,0 +1,104 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 23:02:01 202 +epsilon: 2e-09 +prerequisites: ! | + atom full + pair buck/long/coul/long + kspace ewald/disp +pre_commands: ! "" +post_commands: ! | + pair_modify table 0 + pair_modify table/disp 0 + kspace_style ewald/disp 1.0e-6 + kspace_modify gewald 0.3 + kspace_modify compute no +input_file: in.fourmol +pair_style: buck/long/coul/long long off 8.0 +pair_coeff: ! | + 1 1 170339.505032359 0.166879344173798 13.642356513989 + 1 2 85988.1490021027 0.116722557424471 0.80085535265993 + 1 3 169866.420176425 0.190286500706475 29.9623467274028 + 1 4 147160.913151695 0.186942613268455 23.3320434749744 + 1 5 147160.913151695 0.186942613268455 23.3320434749744 + 2 2 43972.4676803832 0.0665738276248451 0.0138732735747516 + 2 3 85535.686235147 0.140128612516736 2.39406114840173 + 2 4 45975.8370021332 0.0331639834863857 0.000214673167591639 + 2 5 74124.142292174 0.136784828511181 1.79395952625758 + 3 3 169504.649065961 0.213692863412526 60.0617510100503 + 3 4 146835.114678908 0.210349185259049 47.3225728524629 + 3 5 146835.114678908 0.210349185259049 47.3225728524629 + 4 4 127198.698386798 0.207005479340455 37.2289658745028 + 4 5 127198.698386798 0.207005479340455 37.2289658745028 + 5 5 127198.698386798 0.207005479340455 37.2289658745028 +extract: ! "" +natoms: 29 +init_vdwl: 143.844978614334 +init_coul: 0 +init_stress: ! |2- + 2.8549726202291151e+02 2.8743095878733766e+02 4.6117571111322400e+02 -5.4348596802656758e+01 3.0313371700840868e+01 4.6615293366551008e+01 +init_forces: ! |2 + 1 -4.1654901140634646e+00 3.8391577746788862e+01 4.8753589958925843e+01 + 2 2.3627347752038087e+01 1.9437754694287040e+01 -2.7809048123534264e+01 + 3 -1.9525714435697850e+01 -5.0754357998981774e+01 -2.0166741992214259e+01 + 4 -4.2092304982209736e+00 1.1067058878357066e+00 -2.9973102955612827e+00 + 5 -1.3269141714380179e+00 -2.2204192609227569e+00 6.0779415459524966e+00 + 6 -7.1124622494313201e+01 7.7052772869854763e+01 6.6070064685073390e+01 + 7 1.0609926896346669e-01 -2.1456657743828764e+01 -1.2989196171258251e+02 + 8 2.7683035001894836e+00 -6.4067870056596279e+00 3.5054688732244159e+01 + 9 1.0385323344796136e+01 1.1200051529339559e+01 4.5981343463746384e+01 + 10 4.8484689709426576e+01 -6.2864695656797458e+01 -1.7919741540188930e+01 + 11 -1.1854482192727567e+00 -3.0187872482129885e+00 -4.9191217914577408e+00 + 12 8.7558961792132770e+00 4.0319570278620009e+00 -3.6950777875860656e+00 + 13 4.4341467531814631e+00 -1.7594724775061739e+00 -8.0382469442268803e-02 + 14 -1.8209646891338660e+00 3.6742859734981903e-01 -4.6919583127382500e+00 + 15 -1.0499182028038145e-01 4.6130628666442375e+00 1.6346749079739316e+00 + 16 4.1043832725564208e+01 -3.2295693377879068e+01 -9.0260498766730265e+01 + 17 -3.6113208573741254e+01 2.4601494565028929e+01 9.8845074347197965e+01 + 18 -1.7319206639986873e-02 -2.8768225716789744e-02 2.5467242172057005e-02 + 19 2.8329915256350354e-04 -6.6563019017700493e-05 1.1275842083702939e-03 + 20 -6.9962578497671649e-04 -6.9335893419792966e-04 1.7914708780707747e-04 + 21 -1.0783993279628111e+01 -1.2744502105417173e+01 3.6430783359028823e+01 + 22 -1.7555567713272616e+01 -4.2541707649824874e+00 -2.7543199411159279e+01 + 23 2.8333603763397033e+01 1.7005746393419379e+01 -8.8808801339328465e+00 + 24 6.9240033462244330e+00 -3.3461554619941779e+01 1.8603601538868627e+01 + 25 -2.4509684714789543e+01 3.9444957435120540e+00 -2.0606869464349504e+01 + 26 1.7575888361858489e+01 2.9510286716738694e+01 1.9864090730798412e+00 + 27 6.6471213343142246e+00 -3.6339388133461938e+01 1.3617344872617608e+01 + 28 -2.7672164019886065e+01 1.1892727087278390e+01 -1.8723445616363609e+01 + 29 2.1029474237843658e+01 2.4449952815322550e+01 5.1039469596637526e+00 +run_vdwl: 120.48447237796 +run_coul: 0 +run_stress: ! |2- + 2.5560791695843616e+02 2.5955067689101872e+02 3.7929520405743182e+02 -5.4344098211783205e+01 2.7323388083588551e+01 4.1736578225862743e+01 +run_forces: ! |2 + 1 -9.5423782156393466e-01 3.5355849554383006e+01 3.9459261148114848e+01 + 2 1.8087871295661856e+01 1.4881519859391114e+01 -2.0866843680067909e+01 + 3 -1.9027922286140750e+01 -4.1962668972973702e+01 -1.6664111490158596e+01 + 4 -3.9861577392755856e+00 1.0789007349388922e+00 -2.9030806983555042e+00 + 5 -1.2024986283474461e+00 -2.0086759088416675e+00 5.6819366740049313e+00 + 6 -6.0411079021207421e+01 6.4308036846356444e+01 4.2295934042357331e+01 + 7 9.3411892973315525e-01 -1.7314556167603708e+01 -9.7145242612140095e+01 + 8 8.4339828571339459e-01 -3.2815402668674825e+00 3.3705365813037062e+01 + 9 8.3054609193954665e+00 8.6081689391846101e+00 3.6111714795767149e+01 + 10 4.2562455332119846e+01 -5.5915592218979391e+01 -1.7451318081551776e+01 + 11 -1.1800008468264949e+00 -2.7476355482242560e+00 -4.5819298247616285e+00 + 12 8.4381026224138100e+00 3.9901359169710848e+00 -4.1484486359669743e+00 + 13 4.1922197505175003e+00 -1.5869425169594502e+00 -6.2736131649322499e-02 + 14 -1.6198688551593283e+00 2.6218095773260064e-01 -4.1333087365492887e+00 + 15 -2.0317698812261975e-01 4.5412250211743395e+00 1.7062595754533034e+00 + 16 3.3205785822180545e+01 -2.7559707901232976e+01 -6.8100078278090351e+01 + 17 -2.7955159795389019e+01 1.9376925644175991e+01 7.7082357538893760e+01 + 18 -1.7234098205033060e-02 -2.8617943773465764e-02 2.5334906858207568e-02 + 19 2.1311927426645208e-04 -1.2593084524492978e-04 1.1317884520592708e-03 + 20 -6.1559789281937362e-04 -6.2113408214011076e-04 1.8348082185836218e-04 + 21 -9.1322831737495420e+00 -9.9756772263016167e+00 2.9984274402265925e+01 + 22 -1.4775520148479893e+01 -3.7891241963825881e+00 -2.2670176991803608e+01 + 23 2.3901688449621179e+01 1.3772058086739575e+01 -7.3072073521359870e+00 + 24 7.5930494067873147e+00 -2.9272464037912094e+01 1.7213978162346269e+01 + 25 -2.2853132577427619e+01 3.3602003461898797e+00 -1.9347366858589186e+01 + 26 1.5250101683917144e+01 2.5905455052973377e+01 2.1162495837544468e+00 + 27 5.7122783234562746e+00 -3.0280583145530287e+01 1.0696226744792906e+01 + 28 -2.2862852701915180e+01 9.8829997246936809e+00 -1.5214418492444372e+01 + 29 1.7154996338910930e+01 2.0400876431605472e+01 4.5160592073445374e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-buck_table_coul_off.yaml b/unittest/force-styles/tests/mol-pair-buck_table_coul_off.yaml new file mode 100644 index 0000000000..2ddb3e0716 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-buck_table_coul_off.yaml @@ -0,0 +1,104 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 23:02:10 202 +epsilon: 2e-08 +prerequisites: ! | + atom full + pair buck/long/coul/long + kspace ewald/disp +pre_commands: ! "" +post_commands: ! | + pair_modify table 0 + pair_modify table/disp 16 + kspace_style ewald/disp 1.0e-6 + kspace_modify gewald 0.3 + kspace_modify compute no +input_file: in.fourmol +pair_style: buck/long/coul/long long off 8.0 +pair_coeff: ! | + 1 1 170339.505032359 0.166879344173798 13.642356513989 + 1 2 85988.1490021027 0.116722557424471 0.80085535265993 + 1 3 169866.420176425 0.190286500706475 29.9623467274028 + 1 4 147160.913151695 0.186942613268455 23.3320434749744 + 1 5 147160.913151695 0.186942613268455 23.3320434749744 + 2 2 43972.4676803832 0.0665738276248451 0.0138732735747516 + 2 3 85535.686235147 0.140128612516736 2.39406114840173 + 2 4 45975.8370021332 0.0331639834863857 0.000214673167591639 + 2 5 74124.142292174 0.136784828511181 1.79395952625758 + 3 3 169504.649065961 0.213692863412526 60.0617510100503 + 3 4 146835.114678908 0.210349185259049 47.3225728524629 + 3 5 146835.114678908 0.210349185259049 47.3225728524629 + 4 4 127198.698386798 0.207005479340455 37.2289658745028 + 4 5 127198.698386798 0.207005479340455 37.2289658745028 + 5 5 127198.698386798 0.207005479340455 37.2289658745028 +extract: ! "" +natoms: 29 +init_vdwl: 143.844978555225 +init_coul: 0 +init_stress: ! |2- + 2.8549726189904709e+02 2.8743095868325156e+02 4.6117571098605237e+02 -5.4348596805301213e+01 3.0313371729459480e+01 4.6615293402536935e+01 +init_forces: ! |2 + 1 -4.1654901143488354e+00 3.8391577743689069e+01 4.8753589959647861e+01 + 2 2.3627347752005466e+01 1.9437754694185347e+01 -2.7809048123524736e+01 + 3 -1.9525714404935268e+01 -5.0754358030469263e+01 -2.0166742012650491e+01 + 4 -4.2092304981365007e+00 1.1067058878181208e+00 -2.9973102955292283e+00 + 5 -1.3269141702954166e+00 -2.2204192586963050e+00 6.0779415448320284e+00 + 6 -7.1124622521530625e+01 7.7052772898248534e+01 6.6070064704427523e+01 + 7 1.0609928680842910e-01 -2.1456657753481743e+01 -1.2989196167200569e+02 + 8 2.7683034906874076e+00 -6.4067869960345005e+00 3.5054688689692803e+01 + 9 1.0385323344734676e+01 1.1200051529254964e+01 4.5981343463338234e+01 + 10 4.8484689761604592e+01 -6.2864695607886176e+01 -1.7919741572204270e+01 + 11 -1.1854482196503093e+00 -3.0187872464773644e+00 -4.9191217898672548e+00 + 12 8.7558961183950128e+00 4.0319569779691955e+00 -3.6950777487618249e+00 + 13 4.4341467528783092e+00 -1.7594724775868131e+00 -8.0382469331573128e-02 + 14 -1.8209646894490108e+00 3.6742859705041442e-01 -4.6919583120301009e+00 + 15 -1.0499182057486027e-01 4.6130628664409494e+00 1.6346749080597065e+00 + 16 4.1043832723938365e+01 -3.2295693375039349e+01 -9.0260498769575065e+01 + 17 -3.6113208574498174e+01 2.4601494566575465e+01 9.8845074344424816e+01 + 18 -1.7319206844079511e-02 -2.8768226087875184e-02 2.5467242565097720e-02 + 19 2.8329916840319789e-04 -6.6563009638648081e-05 1.1275842252329922e-03 + 20 -6.9962580508564187e-04 -6.9335895216426024e-04 1.7914708554491747e-04 + 21 -1.0783993279698061e+01 -1.2744502105345900e+01 3.6430783359107011e+01 + 22 -1.7555567713241153e+01 -4.2541707649663856e+00 -2.7543199411144158e+01 + 23 2.8333603763363762e+01 1.7005746393405406e+01 -8.8808801339457730e+00 + 24 6.9240033460530830e+00 -3.3461554620029617e+01 1.8603601538594631e+01 + 25 -2.4509684714795398e+01 3.9444957435088686e+00 -2.0606869464383053e+01 + 26 1.7575888361837848e+01 2.9510286716726259e+01 1.9864090730678057e+00 + 27 6.6471213343673661e+00 -3.6339388133413763e+01 1.3617344872587314e+01 + 28 -2.7672164019861725e+01 1.1892727087286405e+01 -1.8723445616353175e+01 + 29 2.1029474237821791e+01 2.4449952815317836e+01 5.1039469596507772e+00 +run_vdwl: 120.484472325336 +run_coul: 0 +run_stress: ! |2- + 2.5560791683599416e+02 2.5955067679291733e+02 3.7929520396358282e+02 -5.4344098200411409e+01 2.7323388133105919e+01 4.1736578236562195e+01 +run_forces: ! |2 + 1 -9.5423782226238540e-01 3.5355849549637227e+01 3.9459261146570960e+01 + 2 1.8087871295293311e+01 1.4881519858790725e+01 -2.0866843679938697e+01 + 3 -1.9027922249572359e+01 -4.1962669006938583e+01 -1.6664111513503091e+01 + 4 -3.9861577386176270e+00 1.0789007352012596e+00 -2.9030806978306991e+00 + 5 -1.2024986278241963e+00 -2.0086759078665737e+00 5.6819366733811281e+00 + 6 -6.0411079053534863e+01 6.4308036881032180e+01 4.2295934065867662e+01 + 7 9.3411893473413510e-01 -1.7314556169546478e+01 -9.7145242597961655e+01 + 8 8.4339830086843803e-01 -3.2815402671581326e+00 3.3705365792311191e+01 + 9 8.3054609190186408e+00 8.6081689385993361e+00 3.6111714793889732e+01 + 10 4.2562455368196623e+01 -5.5915592185803341e+01 -1.7451318096606581e+01 + 11 -1.1800008472399635e+00 -2.7476355467456273e+00 -4.5819298232993786e+00 + 12 8.4381025688373850e+00 3.9901358827390290e+00 -4.1484486029546446e+00 + 13 4.1922197500184888e+00 -1.5869425167725510e+00 -6.2736131625576702e-02 + 14 -1.6198688553301024e+00 2.6218095750360043e-01 -4.1333087357838076e+00 + 15 -2.0317698904186313e-01 4.5412250202397484e+00 1.7062595755992198e+00 + 16 3.3205785819014075e+01 -2.7559707896688831e+01 -6.8100078281434477e+01 + 17 -2.7955159796323354e+01 1.9376925646763990e+01 7.7082357531468730e+01 + 18 -1.7234098547717430e-02 -2.8617944174253653e-02 2.5334907277426644e-02 + 19 2.1311928069761311e-04 -1.2593084265390901e-04 1.1317884582618472e-03 + 20 -6.1559790119996899e-04 -6.2113409007452994e-04 1.8348082246759078e-04 + 21 -9.1322831738110057e+00 -9.9756772262305891e+00 2.9984274402340770e+01 + 22 -1.4775520148470900e+01 -3.7891241963773772e+00 -2.2670176991800012e+01 + 23 2.3901688449611445e+01 1.3772058086736260e+01 -7.3072073521401570e+00 + 24 7.5930494066244343e+00 -2.9272464037977382e+01 1.7213978162090275e+01 + 25 -2.2853132577424361e+01 3.3602003461941621e+00 -1.9347366858602769e+01 + 26 1.5250101683894883e+01 2.5905455052957613e+01 2.1162495837425519e+00 + 27 5.7122783235103043e+00 -3.0280583145488144e+01 1.0696226744763296e+01 + 28 -2.2862852701906395e+01 9.8829997246980774e+00 -1.5214418492441709e+01 + 29 1.7154996338905416e+01 2.0400876431607390e+01 4.5160592073395982e+00 +... -- GitLab From 0fb8f6e779836bde5e393da170ea47f7d8e44320 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Aug 2020 23:15:20 -0400 Subject: [PATCH 041/165] add test for pair style momb --- .../force-styles/tests/atomic-pair-momb.yaml | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 unittest/force-styles/tests/atomic-pair-momb.yaml diff --git a/unittest/force-styles/tests/atomic-pair-momb.yaml b/unittest/force-styles/tests/atomic-pair-momb.yaml new file mode 100644 index 0000000000..5ffcd66ea5 --- /dev/null +++ b/unittest/force-styles/tests/atomic-pair-momb.yaml @@ -0,0 +1,89 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sat Aug 22 23:12:52 202 +epsilon: 7.5e-13 +prerequisites: ! | + pair momb +pre_commands: ! "" +post_commands: ! "" +input_file: in.metal +pair_style: momb 8.0 0.75 20.0 +pair_coeff: ! | + * * 6.08 0.317 2.340 24.18 11.51 +extract: ! "" +natoms: 32 +init_vdwl: -10463.8858411894 +init_coul: 0 +init_stress: ! |- + -4.5982351309125661e+03 -4.6159516977505191e+03 -4.5897073530458192e+03 -1.3518810495042906e+01 2.8104075512935403e+00 4.2970059621415224e+00 +init_forces: ! |2 + 1 9.1779737606466472e-01 1.0649256879602969e+00 1.8647482702851059e-01 + 2 -6.8246058322387171e-02 -4.2957614486128420e-01 -8.6291497938984207e-01 + 3 3.9953169826771884e-01 1.1195193117296665e+00 -7.0134655404352486e-02 + 4 2.4163864174710614e-01 3.6313608266275355e-01 -1.4333810412820149e+00 + 5 -3.1485150269312179e-01 9.3052465695103059e-01 2.0665520687586447e-01 + 6 1.1053187647374259e+00 8.1612597673927256e-01 8.5671825566479942e-01 + 7 -1.4899543531328430e+00 1.0079450541179826e+00 1.7083730404960251e-01 + 8 4.7096536804979650e-01 8.7231297766410965e-01 5.0931903061909090e-01 + 9 -7.4380452189091528e-01 1.7300907409270283e-01 9.5334187434027606e-01 + 10 -6.8003884008907534e-01 -7.7133062052232226e-01 -5.2076102134690094e-01 + 11 2.0153802036145052e-01 -5.4773290316032330e-01 -3.7251111652770907e-01 + 12 -1.6222679176365018e-01 -1.3242375966992643e+00 3.1518711307915559e-01 + 13 1.9327714401552143e-01 1.3716724899419197e-01 -2.9440156071424972e-01 + 14 1.7434846379560076e+00 -7.2247662260948275e-01 5.6658961716309353e-01 + 15 -2.2500875336000448e-01 7.9527943480303787e-02 1.4010784444828028e-01 + 16 -5.4772001201417808e-01 -1.8113987723596616e+00 6.2175508315254824e-01 + 17 4.1605079927678235e-01 9.1776014994995680e-01 -2.0584737455204238e-01 + 18 -5.5370143571121488e-01 -8.6403414401177203e-01 -4.5790174259767991e-01 + 19 -6.3164238169289888e-01 1.5002771943588256e-01 -1.0230265788981807e+00 + 20 -4.5352710135810392e-01 1.1332653391922127e+00 8.9282494327958661e-01 + 21 2.0779621053977699e+00 7.3480383919743719e-01 1.2330733436361418e-01 + 22 2.1003366213861696e-01 -8.0572257040939022e-01 -6.5036623256560278e-01 + 23 -2.1731399273501317e-01 2.0523614494481954e+00 -7.8338354146043754e-01 + 24 -3.2485536709313934e-01 3.6830723226397355e-01 -6.7013966942484515e-01 + 25 2.5537647464916580e-01 -4.2065999942606103e-01 -7.1504327717196625e-01 + 26 -1.4421031281622732e-01 -2.2950413771189941e+00 3.3561887461840012e-01 + 27 -1.3111010582509373e+00 -9.8192773819109558e-01 6.4411368964739957e-01 + 28 -1.3239338534385681e-01 1.3157915406361003e+00 6.3873582614624169e-01 + 29 1.0452359380463001e+00 1.1872921401452996e+00 -2.0608439037307891e-01 + 30 -1.2442109923751410e-01 -1.0770559238740045e+00 3.1395720300646190e-02 + 31 9.2984933250948032e-02 -1.8228335119987582e+00 2.3781726323623342e-01 + 32 -1.2461785964541576e+00 -5.4977549941894166e-01 8.3509737369560444e-01 +run_vdwl: -10465.8413515726 +run_coul: 0 +run_stress: ! |- + -4.5989233668382385e+03 -4.6177593858915625e+03 -4.5916090651558889e+03 -1.2424092403563131e+01 1.7013964296464619e+00 6.0883467998381882e+00 +run_forces: ! |2 + 1 8.4198470261117553e-01 1.0153495574291247e+00 1.7109382518035801e-01 + 2 -7.5121877876583198e-02 -4.2599241104886904e-01 -8.6759570697158850e-01 + 3 3.5109795430827972e-01 1.0554625279207510e+00 -9.3619509195423056e-02 + 4 2.6603839528621798e-01 3.7705754918199963e-01 -1.3754693375524463e+00 + 5 -3.0787081742576916e-01 8.8121003888242377e-01 1.9777634557418011e-01 + 6 1.0754370880706272e+00 8.0221206313288329e-01 8.2390365792648668e-01 + 7 -1.4651008878030467e+00 1.0251960234129998e+00 1.3423583770802772e-01 + 8 4.2434589944626921e-01 8.3345075328014406e-01 5.1695521054053040e-01 + 9 -7.1259951171871627e-01 1.3056481375742440e-01 9.0292748502409603e-01 + 10 -6.5167477715725042e-01 -7.5857941464851120e-01 -4.8021121605168471e-01 + 11 1.9524022840020550e-01 -5.7633411994189432e-01 -3.7973448238338792e-01 + 12 -1.5231933195347258e-01 -1.2979327896885220e+00 3.1453938186377167e-01 + 13 1.8666934031186244e-01 1.2455281419832276e-01 -2.4918431158046606e-01 + 14 1.7288478568433234e+00 -6.6113176993529432e-01 5.3385579950234741e-01 + 15 -2.1851787444122728e-01 8.6346309678063560e-02 1.7041477649682801e-01 + 16 -5.9283560495212839e-01 -1.7629532546911051e+00 5.7747674641375735e-01 + 17 4.3813648675524464e-01 8.9656404881989582e-01 -1.8729024673962713e-01 + 18 -5.3745774232159960e-01 -8.4673884619545414e-01 -4.9003012388987433e-01 + 19 -6.0675027995629449e-01 1.1850584311977785e-01 -1.0446438035139618e+00 + 20 -4.5955083662432461e-01 1.1271366203863276e+00 8.7684749874699341e-01 + 21 1.8475659619245270e+00 1.0215600467704133e+00 -2.3366290246952381e-01 + 22 2.3634732874719688e-01 -7.5392745105157255e-01 -5.9560685383164857e-01 + 23 -1.8608799981202040e-01 2.0353606582114496e+00 -7.2750273667878607e-01 + 24 -3.2934621066742054e-01 3.5421377395063525e-01 -6.4513335361209467e-01 + 25 2.8068933312682143e-01 -3.8182835613705779e-01 -6.9205971304404967e-01 + 26 -1.1095562207158949e-01 -2.2358392051100626e+00 3.3344451201899439e-01 + 27 -1.2604476976770549e+00 -9.4591645833246396e-01 5.9136075442175340e-01 + 28 7.6604686124433385e-02 9.6346014894391985e-01 9.8202499581798364e-01 + 29 9.9823803412371959e-01 1.1727027000745527e+00 -1.6263664034530079e-01 + 30 -1.1429934926123231e-01 -1.0192015638725889e+00 5.1995009168094408e-02 + 31 6.2732878272861115e-02 -1.7944772843437771e+00 2.2916661162999974e-01 + 32 -1.2290397526330565e+00 -5.6005336615393952e-01 8.1636248982564741e-01 +... -- GitLab From c503bba00803a15b31ba5000488e1367d248b959 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Aug 2020 06:44:33 -0400 Subject: [PATCH 042/165] add custom pair style tests for reax/c and edip/multi --- .../tests/atomic-pair-reax_c.yaml | 172 ++++++++++++++++++ .../tests/atomic-pair-reax_c_lgvdw.yaml | 172 ++++++++++++++++++ .../tests/atomic-pair-reax_c_noqeq.yaml | 170 +++++++++++++++++ .../tests/manybody-pair-edip_multi.yaml | 155 ++++++++++++++++ 4 files changed, 669 insertions(+) create mode 100644 unittest/force-styles/tests/atomic-pair-reax_c.yaml create mode 100644 unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml create mode 100644 unittest/force-styles/tests/atomic-pair-reax_c_noqeq.yaml create mode 100644 unittest/force-styles/tests/manybody-pair-edip_multi.yaml diff --git a/unittest/force-styles/tests/atomic-pair-reax_c.yaml b/unittest/force-styles/tests/atomic-pair-reax_c.yaml new file mode 100644 index 0000000000..a1fea19d79 --- /dev/null +++ b/unittest/force-styles/tests/atomic-pair-reax_c.yaml @@ -0,0 +1,172 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sun Aug 23 06:35:54 202 +epsilon: 5e-12 +prerequisites: ! | + pair reax/c + fix qeq/reax +pre_commands: ! | + echo screen + variable newton_pair delete + variable newton_pair index on + atom_modify map array + units real + atom_style charge + lattice diamond 3.77 + region box block 0 2 0 2 0 2 + create_box 2 box + create_atoms 1 box + displace_atoms all random 0.1 0.1 0.1 623426 + mass 1 12.0 + mass 2 13.0 + set type 1 type/fraction 2 0.5 998877 + set type 1 charge 0.01 + set type 2 charge -0.01 + velocity all create 100 4534624 loop geom +post_commands: ! | + fix qeq all qeq/reax 1 0.0 8.0 1.0e-12 reax/c +input_file: in.empty +pair_style: reax/c NULL checkqeq yes +pair_coeff: ! | + * * ffield.reax.mattsson C O +extract: ! "" +natoms: 64 +init_vdwl: -4208.20379453327 +init_coul: -268.025868109969 +init_stress: ! |2- + 2.3677048490920824e+03 3.0802122558803894e+03 1.2727815110256352e+03 -1.5387991688244833e+03 -1.0906364142624241e+03 1.1229877249520346e+03 +init_forces: ! |2 + 1 2.9634051452159092e+01 -5.6267761875030658e+02 -1.6668253255975264e+02 + 2 -1.5938437728854763e+02 -2.2076601831952277e+02 -1.7161994484506349e+02 + 3 -3.1194106231120934e+01 -3.0591930644164984e+02 4.4652570958886855e+01 + 4 4.4646653320086006e+02 1.7080811286682768e+02 1.7439026170464757e+02 + 5 -1.1512606621586120e+02 7.9716954463543715e+01 1.7959700550169842e+01 + 6 -7.1695199301551634e+02 4.0749156821010061e+01 2.1512037025864390e+02 + 7 2.3022543693157868e+02 -9.0170756873660693e+01 8.2190170006827103e+01 + 8 -2.1141251466323027e+01 -1.5635879347049067e+02 1.6101907187949953e+02 + 9 -1.2130842270575529e+02 -2.7960689135673749e+02 -1.9629114850260629e+02 + 10 -3.7631710890081683e+02 3.4103240548842098e+02 -1.8166279141141010e+02 + 11 -1.6154553323830120e+02 1.5743068117734555e+02 3.5832389058238908e+02 + 12 6.1602989065533677e+02 -1.4821564423137232e+02 1.0871005319359449e+02 + 13 -2.1366561068611992e+02 -3.0163595494862591e+02 5.2420406156009221e+02 + 14 2.5933950255870195e+02 -1.7967300062480934e+01 -2.7733367021033393e+02 + 15 1.7570537661851756e+02 1.7550639099552842e+02 -9.5789475936401502e+01 + 16 3.0588529285446674e+02 -4.7675556549182751e+01 -3.4330544488853229e+02 + 17 -1.5018545342641502e+02 1.3259542010622835e+02 2.3200545258695152e+02 + 18 1.6469564396901859e+02 -1.0816413254504512e+02 2.1207485840072781e+02 + 19 2.4759285902953567e+02 -4.8758383780475292e+01 -2.2494100786652814e+02 + 20 1.2418785577595527e+02 2.5137242577522335e+02 -1.5341186115707405e+01 + 21 -1.9556210564940739e+02 2.3152590535605817e+01 -1.2529729601983919e+02 + 22 2.4829386068621537e+02 -2.9828789153725000e+02 -4.0455445433034242e+01 + 23 8.2076007650246268e+01 1.3042103437660427e+02 1.5221389911908562e+02 + 24 -7.6912973583004117e+01 2.3539925428997182e+02 -1.7129603802759658e+02 + 25 -2.9782413878288601e+01 -1.8931910469290884e+02 6.7989202537834629e+01 + 26 -3.9488494691858733e+01 2.1025614474841166e+00 -2.0748963060927093e+02 + 27 -2.7704110443954568e+02 5.3736974078111837e+02 4.2318884882982655e+02 + 28 -2.9303219943086964e+02 -5.1154115419315801e+01 -2.3633993403319352e+02 + 29 1.2970484011863229e+02 -4.2266229540891523e+01 1.6350076615001245e+02 + 30 5.6925606430450244e+01 3.7880191852738363e+01 6.8636397133393515e+01 + 31 -1.9325596697344542e+02 -1.1645368911552394e+02 -2.0671692761029085e+01 + 32 1.2360965200003356e+02 -3.3253411369799544e+01 -1.0516118459008628e+02 + 33 6.5241847803264264e+01 3.7105112939426823e+02 6.0972558235487462e+01 + 34 -2.3124259597670152e+02 -1.1681740329837199e+02 -2.5838262648349195e+02 + 35 -4.1912226107435538e+02 7.9942920270919515e+01 3.1021023518178822e+02 + 36 -1.8561789047275289e+02 -1.1563628711158724e+02 -4.2360172436739234e+01 + 37 8.8271496723997984e+00 -3.5266450940740185e+02 -6.0505384072464253e+01 + 38 -1.9249505149150679e+01 1.1716319600328805e+02 -2.3477222840192979e+02 + 39 -1.0433878247256505e+01 -7.0902801856124668e+01 1.4264113912371403e+02 + 40 3.3265570779159901e+02 -8.8675933035708010e+02 1.6250845779831312e+01 + 41 -6.4537349815542413e+01 1.5189506353207591e+02 -1.8225353662815957e+02 + 42 2.3368723487133941e+01 1.1821526859991214e+02 4.1207323013177859e+02 + 43 -3.5145546474481449e+01 -3.6511647370571314e+00 2.4936793079195368e+02 + 44 -1.2881828259629406e+00 -2.4877240180809443e+02 7.9235766494652268e+01 + 45 2.0871504532583336e+02 -1.0817588901332421e+02 -4.1291808327418767e+02 + 46 -1.3837716960724282e+02 4.6114279241771982e+02 -2.4013801845132105e+02 + 47 1.3255320792807126e+02 2.8747276038957534e+02 -3.2896384987639095e+01 + 48 7.8145138718960652e+02 6.5215432481087248e+01 -6.2304789958695994e+02 + 49 2.4486314507349098e+02 1.9101300126648027e+01 3.7417037047533785e+02 + 50 2.9821275118609668e+02 3.0684252095011033e+02 5.6994896759607411e+02 + 51 -8.0052405736428466e+02 5.1024940640343124e+02 7.5829315450302556e+02 + 52 -9.2130898885920971e+01 1.1909837120722435e+02 -2.4118832391136704e+02 + 53 -3.6386926333492499e+02 -2.0729203700042348e+02 -3.4910517647674493e+02 + 54 -8.3399710534859324e+01 1.8942260327527066e+02 -1.2868598438441273e+02 + 55 -2.5305956575882524e+02 -1.1005916187119085e+02 -3.0893514828401271e+02 + 56 1.7364614503186098e+02 -2.5754370913466397e+02 -4.3744509948530059e+01 + 57 4.2667925201490533e+02 1.5529221173801471e+02 -3.9988499000695890e+02 + 58 -3.9656744140931579e+01 7.8953243693622596e+01 2.6135299122214326e+02 + 59 -2.7594240444747766e+02 1.9891763338576968e+02 2.4122500794444767e+02 + 60 -2.5675904361267118e+02 -1.1527171320999500e+02 9.9923550442604068e+01 + 61 3.0884427580032076e+02 4.9986415802554944e+02 -1.3369122169845875e+02 + 62 2.8530106503430972e+01 5.9540697567549117e-01 -2.7403025931165831e+02 + 63 2.5297054006405324e+02 -2.7640485799390927e+02 -1.9200503841891754e+02 + 64 -8.4680445259235810e+01 -1.5737027404334836e+02 1.5637808719891763e+02 +run_vdwl: -4208.20960310156 +run_coul: -268.025834774416 +run_stress: ! |2- + 2.3675903993358406e+03 3.0802227297812642e+03 1.2727311522665882e+03 -1.5388669378280856e+03 -1.0907269208274088e+03 1.1229243202747448e+03 +run_forces: ! |2 + 1 2.9635294281436092e+01 -5.6267712552700186e+02 -1.6667999923843206e+02 + 2 -1.5938673400140527e+02 -2.2076536449677653e+02 -1.7162354129440891e+02 + 3 -3.1189858281210785e+01 -3.0593580065887033e+02 4.4645958607345577e+01 + 4 4.4646581891377559e+02 1.7080959763779822e+02 1.7439093938229493e+02 + 5 -1.1512839796352765e+02 7.9717058687958001e+01 1.7957487669481100e+01 + 6 -7.1695602565953550e+02 4.0752829698478386e+01 2.1512533839223761e+02 + 7 2.3022644486507866e+02 -9.0168915600464501e+01 8.2194655874286369e+01 + 8 -2.1149264848910175e+01 -1.5637111051646082e+02 1.6102981315503155e+02 + 9 -1.2130987756625950e+02 -2.7961363383960696e+02 -1.9628960069621482e+02 + 10 -3.7631817089739258e+02 3.4103259385919483e+02 -1.8166532788364435e+02 + 11 -1.6154687915100456e+02 1.5742797820605873e+02 3.5832199951133140e+02 + 12 6.1603841944552107e+02 -1.4820397700260011e+02 1.0871524086045234e+02 + 13 -2.1367529106982624e+02 -3.0167446795645282e+02 5.2424091634214585e+02 + 14 2.5933827511245227e+02 -1.7968203382107991e+01 -2.7733114072560983e+02 + 15 1.7570793004227912e+02 1.7551005525189765e+02 -9.5784231788957229e+01 + 16 3.0586985592964720e+02 -4.7679566106090903e+01 -3.4332192731516005e+02 + 17 -1.5018636472319054e+02 1.3259146324636768e+02 2.3200578297682745e+02 + 18 1.6469881174797919e+02 -1.0816836176970681e+02 2.1207670716671672e+02 + 19 2.4759420520521982e+02 -4.8758383157848726e+01 -2.2494116682891169e+02 + 20 1.2419960666459312e+02 2.5137933265677643e+02 -1.5328241144786812e+01 + 21 -1.9556094492813440e+02 2.3151723981859487e+01 -1.2529581330695682e+02 + 22 2.4829941584472434e+02 -2.9829345245026002e+02 -4.0446702084680311e+01 + 23 8.2074458696897636e+01 1.3042100306278206e+02 1.5221371881645402e+02 + 24 -7.6917668833393961e+01 2.3540360228741474e+02 -1.7130192995348895e+02 + 25 -2.9742104523748988e+01 -1.8935699467866542e+02 6.7995874219778344e+01 + 26 -3.9494943772414118e+01 2.1074054700131106e+00 -2.0748981609909322e+02 + 27 -2.7704003655188802e+02 5.3736954143358219e+02 4.2318574013795291e+02 + 28 -2.9302855291141344e+02 -5.1149666119061756e+01 -2.3633679976969094e+02 + 29 1.2970505460316522e+02 -4.2266433901186595e+01 1.6349685185829642e+02 + 30 5.6925896868100061e+01 3.7880918758124416e+01 6.8637128510118643e+01 + 31 -1.9325534294267334e+02 -1.1645328076630720e+02 -2.0671892621504433e+01 + 32 1.2360198063047470e+02 -3.3253019999994883e+01 -1.0516936549572080e+02 + 33 6.5239383936127538e+01 3.7104662858441014e+02 6.0974455303813109e+01 + 34 -2.3124084085048867e+02 -1.1681523003062699e+02 -2.5837805461659735e+02 + 35 -4.1912113383003572e+02 7.9943750613190943e+01 3.1020725803699969e+02 + 36 -1.8561422052416717e+02 -1.1563434085907485e+02 -4.2360108129760114e+01 + 37 8.8275421439853545e+00 -3.5266971563414063e+02 -6.0507541452884695e+01 + 38 -1.9245036832008864e+01 1.1717726898956253e+02 -2.3478417248390394e+02 + 39 -1.0434224692455489e+01 -7.0902644440221152e+01 1.4263978421851866e+02 + 40 3.3271177801104579e+02 -8.8679293552758975e+02 1.6219742097522396e+01 + 41 -6.4538764985979284e+01 1.5189397693612446e+02 -1.8225441696827028e+02 + 42 2.3368235855950271e+01 1.1822246665265955e+02 4.1207745038608465e+02 + 43 -3.5145643416957128e+01 -3.6517162539675607e+00 2.4936784353003958e+02 + 44 -1.2879745401173426e+00 -2.4877345145177651e+02 7.9236449970532846e+01 + 45 2.0871643412343590e+02 -1.0817571271652029e+02 -4.1291831345583290e+02 + 46 -1.3836372705500636e+02 4.6117938292216792e+02 -2.4016736526257426e+02 + 47 1.3255125611053478e+02 2.8747591615862939e+02 -3.2895660248580036e+01 + 48 7.8145417759941688e+02 6.5214930060474302e+01 -6.2304930828901490e+02 + 49 2.4488281403350587e+02 1.9105496615734893e+01 3.7418605144315814e+02 + 50 2.9822129513623162e+02 3.0683153982649424e+02 5.6994490418787450e+02 + 51 -8.0058572063723739e+02 5.1028617285810617e+02 7.5832431569053767e+02 + 52 -9.2137024513584748e+01 1.1910687193191870e+02 -2.4119120858089093e+02 + 53 -3.6387082584370717e+02 -2.0729771077034724e+02 -3.4910499737703145e+02 + 54 -8.3401322475858819e+01 1.8942466656608883e+02 -1.2869045777950635e+02 + 55 -2.5309678413623661e+02 -1.1001947899860551e+02 -3.0896372370111590e+02 + 56 1.7364604573970860e+02 -2.5754429115057047e+02 -4.3743962049926409e+01 + 57 4.2666362581830975e+02 1.5528157995548534e+02 -3.9988032807883297e+02 + 58 -3.9656744873436978e+01 7.8953170998895359e+01 2.6135222052438655e+02 + 59 -2.7594581611220792e+02 1.9891770704106938e+02 2.4122933700028292e+02 + 60 -2.5675992319674720e+02 -1.1527235824442458e+02 9.9923831048598458e+01 + 61 3.0884428120727830e+02 4.9986711220603212e+02 -1.3369013376809971e+02 + 62 2.8530678742782751e+01 5.9283151666778267e-01 -2.7403002505086550e+02 + 63 2.5296775626792288e+02 -2.7640525289650611e+02 -1.9200401038421046e+02 + 64 -8.4674586435418931e+01 -1.5736397776818120e+02 1.5637348700606000e+02 +... diff --git a/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml b/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml new file mode 100644 index 0000000000..1383339444 --- /dev/null +++ b/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml @@ -0,0 +1,172 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sun Aug 23 06:41:04 202 +epsilon: 5e-11 +prerequisites: ! | + pair reax/c + fix qeq/reax +pre_commands: ! | + echo screen + variable newton_pair delete + variable newton_pair index on + atom_modify map array + units real + atom_style charge + lattice diamond 3.77 + region box block 0 2 0 2 0 2 + create_box 2 box + create_atoms 1 box + displace_atoms all random 0.1 0.1 0.1 623426 + mass 1 12.0 + mass 2 13.0 + set type 1 type/fraction 2 0.5 998877 + set type 1 charge 0.01 + set type 2 charge -0.01 + velocity all create 100 4534624 loop geom +post_commands: ! | + fix qeq all qeq/reax 1 0.0 8.0 1.0e-12 reax/c +input_file: in.empty +pair_style: reax/c NULL checkqeq yes lgvdw yes safezone 1.6 +pair_coeff: ! | + * * ffield.reax.lg C O +extract: ! "" +natoms: 64 +init_vdwl: -3780.05455778888 +init_coul: -279.915673357255 +init_stress: ! |2- + 3.6448951295886809e+03 3.7339747706707872e+03 3.9381618834038791e+03 -8.8619786783545931e+02 2.5350870087071300e+02 -5.2815321737906061e+02 +init_forces: ! |2 + 1 -1.4572029645683264e+02 -2.2140279106291507e+02 -1.4808209307797372e+02 + 2 -1.7648559093934148e+02 -1.0146253457806542e+02 -1.7990394625657274e+01 + 3 -2.0615681734642330e+01 -4.0343795757803508e+02 -3.8603528931018054e+01 + 4 2.6614805335034998e+02 4.0003808276416684e+01 1.4690013778960667e+02 + 5 9.7835379063416177e+00 4.3883349405662791e+01 4.9796878717762787e+01 + 6 -2.6938292077229727e+02 3.3510334278335421e+00 2.2965715764113384e+02 + 7 3.2574907048037380e+02 -1.7976941537341810e+02 2.2179461677416583e+02 + 8 9.9964451146865471e+01 -2.8685082304987185e+02 1.4158552983794476e+02 + 9 1.6434754325282601e+01 -1.9355787416131696e+02 -9.4334270045756043e+01 + 10 -2.0854046881408067e+02 1.0026332198593936e+02 -1.5021108992594620e+02 + 11 -2.0573869228583661e+02 2.7604115414799344e+02 5.5777178022191936e+02 + 12 5.0287983468578147e+02 -6.0967301596834591e+02 3.9376960681073700e+02 + 13 -9.1248851272055674e+01 3.5482322889104140e+01 7.9771590707710800e+01 + 14 1.1722782444599024e+02 7.0786340536242163e+00 -1.1012937857655862e+02 + 15 2.0459798791677210e+02 1.1350278391711655e+01 -6.9643830810411416e+01 + 16 6.4801734481789666e+01 2.7717249468796996e+02 9.6968479199374073e+01 + 17 -1.1757359629210440e+02 7.5596700050451688e+01 8.2370289516995197e+00 + 18 1.4980090631536169e+02 4.6438235985629220e+01 1.9074239639237979e+02 + 19 9.9231823331994249e+01 -3.4161546701845765e+01 -9.3483634123621087e+01 + 20 3.4394881232874110e+02 1.8755825664166662e+02 1.8392127409682581e+02 + 21 -1.7639610172391272e+02 5.9887963695524753e+01 2.3192666899298981e+01 + 22 3.5943370198457734e+02 -4.9707358210204012e+02 2.0606470760846634e+02 + 23 1.7581454592506283e+01 2.1298589011272401e+02 1.9485076353331874e+02 + 24 -1.8644255768132263e+02 2.0152190140053236e+02 -1.5033309490489984e+02 + 25 6.6423577752363499e+01 -2.6628307450649118e+02 6.5041785228006987e+01 + 26 -2.9537785779457244e+02 1.8889631581804576e+02 8.6386764001190215e+01 + 27 1.0405918844455742e+02 -2.5941844595001200e+00 -6.3479328226780297e+01 + 28 -1.7940076477784703e+02 -1.9073773001560042e+02 -1.6921173789426470e+02 + 29 2.8517719341938289e+02 -9.8606325860704928e+01 -1.5865623093424992e+02 + 30 3.3012242903480393e-01 9.9396498728799443e+01 3.2850839694515677e+00 + 31 -1.8086381055199379e+00 -5.1096382098849077e+01 6.0017778789149006e+00 + 32 3.1529080422017097e+02 -1.2793618573898891e+02 -2.4176655958597905e+02 + 33 -5.4059845316529982e+00 1.7567793716993873e+02 -1.1807703472018468e+02 + 34 -1.9400422792080016e+02 -1.0951834015498645e+02 -1.5439493063315896e+02 + 35 -1.9195028872533084e+02 -1.2771069506738369e+01 1.3164511899864968e+02 + 36 2.1450496684040476e+02 4.8524211958783019e+02 -2.2938069671779124e+02 + 37 -3.3553470604466861e+02 -4.9645835564195778e+02 2.1990191695195585e+02 + 38 -3.2544634716452649e+01 2.4953051954442103e+01 -1.5693055302887637e+02 + 39 -1.5399380031833186e+01 2.3903552655945369e+01 9.6153869485537527e+01 + 40 -6.4358524883048119e+01 1.7841114478565163e+02 1.6199309566416363e+02 + 41 -2.4659875162869224e+02 2.3085714222291421e+02 -2.9640003056844074e+02 + 42 -2.9451816756430145e+02 4.3373137951523881e+02 4.3706447002809585e+02 + 43 1.3265813359025546e+02 -2.9267792386382844e+01 2.3063687596593061e+02 + 44 1.0054916914535585e+02 -2.0011423542533092e+02 1.1673423852526635e+02 + 45 1.5191419311763582e+02 -3.3909681846522182e+02 -6.8137727102148324e+02 + 46 -3.6974683734054048e+02 6.5878375129662163e+02 -1.2846618277461354e+02 + 47 7.0999436005486899e+01 2.6787204282530024e+02 -2.6037631699380153e+01 + 48 4.8459114652542161e+02 -1.6692984322713417e+02 -3.2654222496284581e+02 + 49 1.0015069521843192e+02 1.7138648274496632e+01 1.2769578723947120e+02 + 50 -2.5642349862470508e+02 4.8550182268850142e+02 1.7833824453195746e+02 + 51 1.5929454215699664e+03 -1.5099874513231559e+03 1.3757379604584460e+03 + 52 -3.9361841716365302e+02 2.9260629050190221e+02 -2.7081695001177656e+02 + 53 -1.2156822810124922e+03 1.0481194207223216e+03 -1.7260439380729260e+03 + 54 5.4550048561223889e+01 1.0309107570306772e+02 -6.1755737140629734e+01 + 55 -2.0237966584139775e+02 1.8109638545320627e+02 -4.9049185930881845e+02 + 56 2.0035852288703015e+02 -1.8905601495144680e+02 -1.3674988378339864e+02 + 57 -1.7850181832398803e+02 -3.3738128559238868e+02 -1.4864548151794997e+02 + 58 -2.5672973403862750e+02 -1.3337752501158548e+02 8.4361840521538781e+01 + 59 -1.7898419258529674e+02 1.8142061294130923e+02 2.7914590931082478e+02 + 60 -7.4397281468755821e+01 -6.8191313100547362e+01 5.7945873657168903e+01 + 61 9.6097455977519928e+01 4.4560160451051973e+02 5.3539867605744419e+01 + 62 3.3100209418397625e+01 1.3292271559420541e+02 -3.6118667405609742e+01 + 63 -2.5659895412732226e+01 -3.1619326785330378e+02 5.0013180663156710e+01 + 64 2.5886074093968855e+01 -6.0852122206871925e+01 7.5059691631914314e+00 +run_vdwl: -3780.05347390992 +run_coul: -279.915602843914 +run_stress: ! |2- + 3.6449190860682643e+03 3.7339547135739058e+03 3.9381731084171565e+03 -8.8617648240339543e+02 2.5350122212091981e+02 -5.2818520710537973e+02 +run_forces: ! |2 + 1 -1.4571798162167252e+02 -2.2140580848061688e+02 -1.4808148933254313e+02 + 2 -1.7648308397779235e+02 -1.0146477741996672e+02 -1.7988558948131221e+01 + 3 -2.0614227228633823e+01 -4.0344097417855238e+02 -3.8604729133131215e+01 + 4 2.6614888483484418e+02 4.0003234613562718e+01 1.4690057491500562e+02 + 5 9.7845353993210757e+00 4.3882567909729040e+01 4.9797207642045677e+01 + 6 -2.6938082734775594e+02 3.3524823444182630e+00 2.2965816523899235e+02 + 7 3.2575187542507791e+02 -1.7977227944937169e+02 2.2179960580675152e+02 + 8 9.9964011515726739e+01 -2.8685358089601482e+02 1.4158731106157231e+02 + 9 1.6438524923736644e+01 -1.9355302991489253e+02 -9.4334960672514242e+01 + 10 -2.0853805940018381e+02 1.0026019274304203e+02 -1.5021521543813694e+02 + 11 -2.0574133907407125e+02 2.7604371539616938e+02 5.5777225388303532e+02 + 12 5.0285711778760270e+02 -6.0968357929450372e+02 3.9377681166481295e+02 + 13 -9.1246236584998883e+01 3.5490065792296186e+01 7.9756754045764964e+01 + 14 1.1722762015217488e+02 7.0777587800518864e+00 -1.1012808747152181e+02 + 15 2.0459886374792103e+02 1.1352434902632419e+01 -6.9641008537041586e+01 + 16 6.4819488894277626e+01 2.7717767285477504e+02 9.6971206512117831e+01 + 17 -1.1757145373858191e+02 7.5598283763031333e+01 8.2344537953401620e+00 + 18 1.4979763484000514e+02 4.6437981230754680e+01 1.9074030927267040e+02 + 19 9.9232177039551743e+01 -3.4161491191063057e+01 -9.3482743694123911e+01 + 20 3.4394272911489560e+02 1.8755951153575882e+02 1.8391751542140381e+02 + 21 -1.7639675023083032e+02 5.9884188602876513e+01 2.3197830826168012e+01 + 22 3.5944608335498276e+02 -4.9708524898876021e+02 2.0607149093293810e+02 + 23 1.7579271068638736e+01 2.1298728097754687e+02 1.9485168054795750e+02 + 24 -1.8644003680983860e+02 2.0152727772546126e+02 -1.5032646302314092e+02 + 25 6.6427890225862839e+01 -2.6628950112809588e+02 6.5040867172812568e+01 + 26 -2.9538210986747896e+02 1.8889963664467763e+02 8.6392520853920516e+01 + 27 1.0405463527343457e+02 -2.5883797810836899e+00 -6.3473815684801785e+01 + 28 -1.7939102939145226e+02 -1.9072998240489997e+02 -1.6920314161246782e+02 + 29 2.8518125846098656e+02 -9.8610707014135585e+01 -1.5865904861816750e+02 + 30 3.2948855593638848e-01 9.9396107066086955e+01 3.2866521919189089e+00 + 31 -1.8093342589558659e+00 -5.1090324665848712e+01 5.9965783206663161e+00 + 32 3.1528757881180007e+02 -1.2794634397194349e+02 -2.4177668881260021e+02 + 33 -5.4083133243805372e+00 1.7567908978406618e+02 -1.1807415000724265e+02 + 34 -1.9400316636479977e+02 -1.0951814437454595e+02 -1.5439329543504013e+02 + 35 -1.9195026719711194e+02 -1.2774392196243292e+01 1.3164394415174289e+02 + 36 2.1450819558036866e+02 4.8524393939315888e+02 -2.2938259760791684e+02 + 37 -3.3553755452540895e+02 -4.9646067746196536e+02 2.1990265059231979e+02 + 38 -3.2545680671007766e+01 2.4954714465771517e+01 -1.5693304654702996e+02 + 39 -1.5400979972013733e+01 2.3902925031181187e+01 9.6154974338013474e+01 + 40 -6.4361324286781183e+01 1.7841294566727018e+02 1.6199313424706546e+02 + 41 -2.4660579832547052e+02 2.3084997378288404e+02 -2.9640187773211630e+02 + 42 -2.9452038269198692e+02 4.3373690323403952e+02 4.3706797334309402e+02 + 43 1.3265462163819998e+02 -2.9274830054471895e+01 2.3064015623266641e+02 + 44 1.0054965815688162e+02 -2.0011417092775127e+02 1.1673395109270328e+02 + 45 1.5191488778751707e+02 -3.3909986813212635e+02 -6.8138447286529720e+02 + 46 -3.6974585651662977e+02 6.5877949821504194e+02 -1.2846140462208882e+02 + 47 7.0999522650120099e+01 2.6787232844301741e+02 -2.6037434470741427e+01 + 48 4.8457875917949451e+02 -1.6693867974736796e+02 -3.2653088508349691e+02 + 49 1.0016330847216284e+02 1.7144939472474533e+01 1.2769410377207676e+02 + 50 -2.5643045293874383e+02 4.8550578070475757e+02 1.7833571905770887e+02 + 51 1.5929685733709441e+03 -1.5100179731534890e+03 1.3757557210338409e+03 + 52 -3.9363155553927618e+02 2.9261413115276798e+02 -2.7081680938457316e+02 + 53 -1.2156938822751686e+03 1.0481428026908065e+03 -1.7260661331518384e+03 + 54 5.4545508362448210e+01 1.0309421723440155e+02 -6.1761185913629610e+01 + 55 -2.0239005919386466e+02 1.8108787078448725e+02 -4.9048334046900078e+02 + 56 2.0036614412052225e+02 -1.8905881350356012e+02 -1.3675071587645911e+02 + 57 -1.7850227402751372e+02 -3.3738314148552627e+02 -1.4864701622354673e+02 + 58 -2.5670676029812597e+02 -1.3336092440092364e+02 8.4345104538588089e+01 + 59 -1.7898804840101980e+02 1.8142384187504891e+02 2.7914484812152023e+02 + 60 -7.4398955008919714e+01 -6.8191485113974892e+01 5.7946912127557717e+01 + 61 9.6097667682189197e+01 4.4562130970058109e+02 5.3555842003747642e+01 + 62 3.3087710298162186e+01 1.3291451685900134e+02 -3.6140086918051345e+01 + 63 -2.5660817878335301e+01 -3.1619388904758910e+02 5.0012563149825205e+01 + 64 2.5890372243019073e+01 -6.0849122994338025e+01 7.5030153780264586e+00 +... diff --git a/unittest/force-styles/tests/atomic-pair-reax_c_noqeq.yaml b/unittest/force-styles/tests/atomic-pair-reax_c_noqeq.yaml new file mode 100644 index 0000000000..511bc012f8 --- /dev/null +++ b/unittest/force-styles/tests/atomic-pair-reax_c_noqeq.yaml @@ -0,0 +1,170 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sun Aug 23 06:30:19 202 +epsilon: 5e-13 +prerequisites: ! | + pair reax/c +pre_commands: ! | + echo screen + variable newton_pair delete + variable newton_pair index on + atom_modify map array + units real + atom_style charge + lattice diamond 3.77 + region box block 0 2 0 2 0 2 + create_box 2 box + create_atoms 1 box + displace_atoms all random 0.1 0.1 0.1 623426 + mass 1 12.0 + mass 2 13.0 + set type 1 type/fraction 2 0.5 998877 + set type 1 charge 0.01 + set type 2 charge -0.01 + velocity all create 100 4534624 loop geom +post_commands: ! "" +input_file: in.empty +pair_style: reax/c NULL checkqeq no +pair_coeff: ! | + * * ffield.reax.mattsson C C +extract: ! "" +natoms: 64 +init_vdwl: -8975.38106346063 +init_coul: 0.592852986871656 +init_stress: ! |- + -1.1526162173764681e+03 -4.6218014500723507e+02 3.1954383274884901e+02 -2.2197591028227616e+03 3.4480244373669785e+02 -1.2644452447488200e+03 +init_forces: ! |2 + 1 -2.0916057489019278e+02 -1.8819573882656792e+02 -2.2843342560290171e+02 + 2 -5.9711660034805291e+01 -1.3795294129596448e+02 -6.1450415050409106e+01 + 3 1.0924699545317881e+02 5.4683388561496884e+01 8.7122903226954129e+00 + 4 2.2394129214932286e+02 -1.2607110719575815e+02 5.6116628706921283e+01 + 5 2.1339173392425103e+01 2.3982132147793212e+02 -1.1311227256425612e+02 + 6 -2.3465218593173694e+02 8.7997863600775148e+01 7.1405034243397978e+01 + 7 1.7783507933620086e+02 3.8498185748852222e+01 -2.7669272643606155e+02 + 8 -2.1014288646597468e+01 -4.0711968506334620e+02 1.5140757706928005e+02 + 9 -5.9307137188585735e+01 2.6264734812019469e+02 1.7442573676385443e+01 + 10 -8.4525778086876372e+01 1.5450140994331881e+02 6.0015146335720981e+00 + 11 -1.1159775028831375e+02 1.8656236384929730e+02 3.4449805909515084e+02 + 12 3.3347376393571255e+02 -3.8243903563632881e+02 5.1141444486612528e+01 + 13 -3.9347479057410175e+02 -9.9340014971740487e+01 2.4784035090896253e+02 + 14 1.7611459182140416e+02 -2.8017601742944402e+02 -2.7997644562222024e+02 + 15 2.5245744141516636e+02 -5.4739900421247576e+01 -1.3455773775633745e+02 + 16 1.6595098746018405e+02 1.6278076690062335e+02 4.2176787064349710e+01 + 17 4.0560547690525915e+01 2.0278202415209444e+02 1.1655337573721710e+02 + 18 1.9349019934523830e+02 -3.1749998507536635e+01 -3.0048600991173725e+01 + 19 -5.9067561742604568e+01 1.7643823088626270e+01 -1.0450409059207502e+02 + 20 1.3106558748347643e+02 2.5186173846559516e+01 1.3540015692568889e+02 + 21 -3.2006237187616756e+02 -1.1510771805635616e+02 -2.5816513201572068e+01 + 22 -1.2737471666033539e+01 -1.3033080251953407e+02 -1.4399680837176066e+02 + 23 -1.0142123148353758e+02 2.3316671624708323e+02 2.3905950409694179e+02 + 24 4.1563056415358169e+01 -1.2911164666848796e+01 -3.1668646816892700e+01 + 25 2.1166667371090460e+02 -2.0418293867725825e+02 -3.1232107629433731e+01 + 26 -2.6320989589682608e+02 1.2065128452552987e+02 2.6277305997802796e+02 + 27 -7.4498892273813865e+01 1.0778676260209129e+02 1.6095170163345196e+02 + 28 -2.4911277843488330e+02 -9.8499434443852323e+01 2.2239731087969662e+02 + 29 4.5655943120047868e+02 -5.6181584973687457e+01 -2.7582701917178326e+02 + 30 -1.1441865289035461e+02 5.2275082681973409e+01 -1.7193995473573816e+02 + 31 -1.8373014671249769e+02 -1.0039330382749462e+02 -9.6978960598961947e+01 + 32 1.5285998335729258e+02 -1.2909970668700703e+02 -1.8526770753201481e+02 + 33 2.0676721005976013e+01 3.7957156269713232e+02 -3.0331770321178414e+01 + 34 -1.8483566994370270e+02 -8.4859568901690906e+01 -1.0334717791993535e+02 + 35 -4.3920895665271935e+01 1.3832065189158040e+00 3.2302673529697479e+01 + 36 6.0407395927653840e+02 6.3222430241983602e+02 -1.5530384927410198e+01 + 37 -1.7704334275340958e+02 -3.4711199127962510e+02 2.0757920588578631e+02 + 38 -1.5990280705026578e+02 3.4383476554695548e+01 -1.1348860416567172e+02 + 39 1.2481780186485386e+02 3.1854282379699551e+01 2.4141006149778542e+02 + 40 -3.3952439214884555e+02 -5.2081203805390805e+02 -3.2749145453037904e+01 + 41 1.5953768898032129e+01 -2.5259433402085026e+01 -6.0977489335468213e+01 + 42 -3.5152692860571921e+02 1.0103192674618649e+02 1.0057493004151380e+02 + 43 1.8325251692529525e+02 -1.7843397924740284e+01 3.5813821983655600e+01 + 44 -1.7148730839833942e+02 6.5823249480752622e+01 -3.9043544554425509e+01 + 45 6.8021934986582622e+01 -5.2957926506736321e+01 -1.1278207528809645e+02 + 46 -1.9814589514445538e+02 3.1899128186018817e+02 -1.7125192460144410e+02 + 47 2.3518092199846146e+02 1.7325250425397039e+02 -4.6491315549358909e+01 + 48 -7.0934283327750434e+00 -2.1510500994703639e+02 2.8256786369777672e+02 + 49 2.4924479910930853e+02 -2.5977407369868601e+01 -1.9539857038363738e+02 + 50 9.0194565818523955e+01 2.6674460312457484e+02 4.8188042682115714e+01 + 51 2.7001317908987642e+02 -2.5024437918679871e+02 3.3082272466414395e+02 + 52 2.6770006025654067e+02 -1.3486195976744685e+02 -1.0999251813934440e+02 + 53 -3.0038447974652507e+02 1.7427208891886863e+02 -2.8369940533043155e+02 + 54 -1.8044322949045332e+02 3.2006167622599366e+02 -2.1986764638272368e+02 + 55 -6.7026995338193800e+01 2.8420556560193825e+02 -1.8256943632991815e+02 + 56 -9.3944897793228427e+02 7.6593871052490795e+02 -4.5872941120666036e+02 + 57 -2.7671724574062154e+01 -1.7257977562305285e+02 -1.6210118849324644e+02 + 58 7.1032070297632515e+02 -8.0881938208311499e+02 4.6676948457734852e+02 + 59 1.5682857500225748e+02 5.9891527233627251e+01 1.2646558890105979e+02 + 60 9.4076874705709940e+01 -1.1749874299724539e+02 -2.9919368333582653e+01 + 61 -4.8945763699767674e+01 1.6634783727405593e+02 6.7645978441449785e+01 + 62 1.6618577867039602e+02 7.3503605317082460e+01 2.2193892218236812e+02 + 63 4.6491757293229652e+00 -3.5581179274724047e+02 -3.8944419279304846e+01 + 64 -2.0021113303887086e+02 -1.1223202348830976e+02 3.0276216112541510e+02 +run_vdwl: -8975.38042076783 +run_coul: 0.592853076313598 +run_stress: ! |- + -1.1524045146329236e+03 -4.6202672628887268e+02 3.1947257175242049e+02 -2.2198788293036200e+03 3.4537925625758328e+02 -1.2645006400276918e+03 +run_forces: ! |2 + 1 -2.0916271375742122e+02 -1.8819704628010820e+02 -2.2843189669574852e+02 + 2 -5.9713089401385787e+01 -1.3795344000202866e+02 -6.1452818077516426e+01 + 3 1.0924320976999630e+02 5.4687819694184142e+01 8.7119001425249518e+00 + 4 2.2394063345773969e+02 -1.2606895888134676e+02 5.6116327882122533e+01 + 5 2.1344393241529360e+01 2.3982487161745496e+02 -1.1311589687086055e+02 + 6 -2.3464311544028666e+02 8.7956955368837427e+01 7.1434549534144523e+01 + 7 1.7780879390887415e+02 3.8509431501988246e+01 -2.7664422105920835e+02 + 8 -2.1021838063645568e+01 -4.0712804090199722e+02 1.5141447171445833e+02 + 9 -5.9306114388327742e+01 2.6264890826456997e+02 1.7441651570743588e+01 + 10 -8.4526898873820201e+01 1.5450366474645668e+02 6.0033453272929940e+00 + 11 -1.1159943563282732e+02 1.8656190683525134e+02 3.4449923076959345e+02 + 12 3.3352091011374790e+02 -3.8250187755922349e+02 5.1084711927225143e+01 + 13 -3.9348220819701362e+02 -9.9340584671855098e+01 2.4784344215807911e+02 + 14 1.7611207455981244e+02 -2.8017472349270184e+02 -2.7998178961052838e+02 + 15 2.5245571069035290e+02 -5.4734821409382626e+01 -1.3455249096986566e+02 + 16 1.6596243938777351e+02 1.6278821061030078e+02 4.2193739172058962e+01 + 17 4.0563209609350160e+01 2.0278198687184394e+02 1.1655244113651584e+02 + 18 1.9349048420969314e+02 -3.1742251436587967e+01 -3.0059327012827964e+01 + 19 -5.9065305354749185e+01 1.7641117222083235e+01 -1.0450807266106713e+02 + 20 1.3106409577706648e+02 2.5186488486411651e+01 1.3539864929844231e+02 + 21 -3.2006405209533727e+02 -1.1510774059461794e+02 -2.5815972761838644e+01 + 22 -1.2758648770740034e+01 -1.3030598897381913e+02 -1.4401125298080763e+02 + 23 -1.0142069915754510e+02 2.3316707339244664e+02 2.3905997646640651e+02 + 24 4.1563103349612355e+01 -1.2912528416939978e+01 -3.1670350622584593e+01 + 25 2.1168614583214108e+02 -2.0420927517565983e+02 -3.1221859837734250e+01 + 26 -2.6321230702712649e+02 1.2065335797472036e+02 2.6277789068532360e+02 + 27 -7.4500805679154823e+01 1.0778230652943388e+02 1.6094824153641918e+02 + 28 -2.4910955893577807e+02 -9.8496280842320616e+01 2.2240251270644734e+02 + 29 4.5656377692784969e+02 -5.6186906107102686e+01 -2.7582984196898542e+02 + 30 -1.1442511837997856e+02 5.2288586072111144e+01 -1.7194888884507304e+02 + 31 -1.8372666861898105e+02 -1.0040300216200654e+02 -9.6974937189118549e+01 + 32 1.5285848611243131e+02 -1.2910298326427261e+02 -1.8526958855531907e+02 + 33 2.0676324457133298e+01 3.7958042970093453e+02 -3.0330268376879861e+01 + 34 -1.8482802426276322e+02 -8.4860106696650362e+01 -1.0335087798868081e+02 + 35 -4.3757312673305961e+01 1.3332543035332109e+00 3.2176626618113424e+01 + 36 6.0396434382165080e+02 6.3211513244050911e+02 -1.5608509994293938e+01 + 37 -1.7702865323607540e+02 -3.4710307878941217e+02 2.0756937792988572e+02 + 38 -1.5990155316495603e+02 3.4380405811165133e+01 -1.1348496857139023e+02 + 39 1.2481655186335834e+02 3.1838210934905270e+01 2.4138399128801109e+02 + 40 -3.3940174784427825e+02 -5.2071078889465889e+02 -3.2710078405858489e+01 + 41 1.5894692394219231e+01 -2.5287374067694170e+01 -6.0953115361932838e+01 + 42 -3.5153052244718293e+02 1.0102830549812477e+02 1.0056790310062641e+02 + 43 1.8327499597791055e+02 -1.7817142708111650e+01 3.5817319257754178e+01 + 44 -1.7148210647983669e+02 6.5813679084638309e+01 -3.9042611994879181e+01 + 45 6.8003425377666687e+01 -5.2977048819501960e+01 -1.1277968937633442e+02 + 46 -1.9814362259114762e+02 3.1898369061349177e+02 -1.7124898143652061e+02 + 47 2.3513270166768126e+02 1.7331295501003885e+02 -4.6450664399000594e+01 + 48 -7.0870567240296412e+00 -2.1510840134220808e+02 2.8256287551251631e+02 + 49 2.4924760680789768e+02 -2.5986199354026756e+01 -1.9539743684221278e+02 + 50 9.0194077117530043e+01 2.6674400385736777e+02 4.8189887304663067e+01 + 51 2.7001321252850289e+02 -2.5024728349358162e+02 3.3082537396992757e+02 + 52 2.6774804404985821e+02 -1.3486815275053038e+02 -1.0995893066873343e+02 + 53 -3.0038420314626603e+02 1.7427256870890602e+02 -2.8369883331393498e+02 + 54 -1.8044337650670002e+02 3.2006027628882646e+02 -2.1986948976707882e+02 + 55 -6.7001753892442011e+01 2.8430150309051572e+02 -1.8265115796763561e+02 + 56 -9.3985837397072532e+02 7.6632225180339810e+02 -4.5884355139046016e+02 + 57 -2.7678338148623979e+01 -1.7258885892537234e+02 -1.6210010817478292e+02 + 58 7.1048197789438450e+02 -8.0911013609888585e+02 4.6702832864248001e+02 + 59 1.5682431931196510e+02 5.9896412584257810e+01 1.2646734132724080e+02 + 60 9.4082766259421007e+01 -1.1751801568433156e+02 -2.9921033400739130e+01 + 61 -4.8935117837153584e+01 1.6627961752299834e+02 6.7603012413403007e+01 + 62 1.6622090697397982e+02 7.3539705289790803e+01 2.2199414281313432e+02 + 63 4.6500905620167821e+00 -3.5581268146467818e+02 -3.8945035187443878e+01 + 64 -2.0020316331354053e+02 -1.1222336846987974e+02 3.0276528613232387e+02 +... diff --git a/unittest/force-styles/tests/manybody-pair-edip_multi.yaml b/unittest/force-styles/tests/manybody-pair-edip_multi.yaml new file mode 100644 index 0000000000..3a0cbc7d1d --- /dev/null +++ b/unittest/force-styles/tests/manybody-pair-edip_multi.yaml @@ -0,0 +1,155 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sun Aug 23 06:09:41 202 +epsilon: 1e-14 +prerequisites: ! | + pair edip/multi +pre_commands: ! | + variable newton_pair delete + variable newton_pair index on +post_commands: ! "" +input_file: in.manybody +pair_style: edip/multi +pair_coeff: ! | + * * SiC.edip Si Si Si Si C C C C +extract: ! "" +natoms: 64 +init_vdwl: -163.900683723295 +init_coul: 0 +init_stress: ! |- + -5.8957511455858798e+02 -5.9358556599643998e+02 -6.0582715425756260e+02 -7.7461856998816359e-01 -3.5449708810943299e+01 6.0358873009680941e+01 +init_forces: ! |2 + 1 -7.9720954600883509e+00 -2.7443043019140072e+00 -3.7898153678206477e+00 + 2 7.3657265099902904e+00 -8.2699856903420184e+00 3.7604539795584007e+00 + 3 1.0266929794274970e+00 2.0787411572183236e+00 -3.3882118735798477e+00 + 4 3.1972489785773055e+00 -3.6927833125396248e+00 8.4914409163883278e+00 + 5 4.7271122271418191e+00 5.7491851927781035e+00 7.4303926907499536e+00 + 6 3.6156928779498418e+00 -6.0641160329481725e+00 -2.5348830542165768e-01 + 7 -8.9012641510650292e-01 -2.1770454872499743e+00 -8.1327808764159517e+00 + 8 -1.6318743887629599e+00 4.4959022876753352e-01 -1.1919551349472504e+00 + 9 -9.5049380363676796e+00 2.4781874821801644e+00 4.2554362346783465e+00 + 10 -5.8488977839208536e+00 1.3464971929942933e+00 6.2315565042021670e-01 + 11 -2.8266324504337037e-01 4.9379806753468145e+00 4.8256534062590113e+00 + 12 6.9599583199610269e+00 -5.3654440628346247e+00 -3.9701146377518990e+00 + 13 -1.8279129814874646e+00 -6.4200181385455792e+00 -1.0467232315715378e+00 + 14 4.2123960424202478e+00 -6.8377587814630458e-01 -5.7003283130929034e+00 + 15 1.7533586458357520e+00 -6.3702276984366524e-01 -7.3838611885426726e+00 + 16 -4.2146229883694417e+00 5.6045564548817008e+00 1.2682964360370639e+00 + 17 5.8422808333943230e+00 9.4536693589779119e-01 5.6658882680856291e+00 + 18 -5.5480996277543193e+00 -4.5745457829203415e+00 -2.7112035505062293e+00 + 19 1.8061157974697941e+00 -2.1239612489898110e+00 -3.1262496697297912e+00 + 20 6.4447770734076357e+00 6.7057257360540112e-01 1.3408179811545717e+00 + 21 -4.3563242620806104e+00 -5.6570331930166482e+00 4.2832684073238454e+00 + 22 6.7192143091442214e+00 4.3975714294803243e+00 -5.5484885448734200e+00 + 23 3.1964047521293288e+00 -9.3015827717783921e+00 3.9019556610859391e-01 + 24 1.7294581787339940e+00 4.6727325859355560e+00 1.6925017110958711e+00 + 25 -5.1705512011523673e+00 -3.4270872176338343e+00 -6.1116334670146646e+00 + 26 -4.1555710343393601e-02 1.5539305449756338e-01 -7.1801161175510408e+00 + 27 -5.6879579100703415e-01 -2.7115740492341320e+00 -2.1546097203970591e+00 + 28 -5.8996406933761270e+00 -3.1957011465886334e+00 -1.4351290292667596e+00 + 29 5.0840930908270998e+00 4.3172175535143626e+00 1.4900638977383429e+00 + 30 9.4243897386053614e+00 -4.2545547051100536e+00 4.3153296739403757e+00 + 31 8.9767308874058500e+00 -2.7032103090598563e+00 -2.3829792220077484e-01 + 32 1.1076816981834096e+01 1.1822595580047097e+00 -1.6210167605090806e+00 + 33 -8.5197758328825071e+00 -4.3251416435372372e+00 2.7495970600842861e+00 + 34 -2.2304974981417978e+00 2.2212480100524994e+00 -7.4354932355547589e+00 + 35 -4.0862301535250829e+00 -5.9531451033427727e+00 -3.8496506799546211e+00 + 36 -1.1237623478415975e+00 1.1111125503168960e+01 -2.8748404929431026e-01 + 37 1.0826894102834936e+00 -2.3319475694386647e+00 8.4628400620077731e+00 + 38 1.5220915530256165e+00 7.5733417268826528e+00 -3.3374897417296632e+00 + 39 3.8812728519211595e+00 -1.6113012615218625e+00 1.0510530548688582e+01 + 40 -4.6066265560482238e+00 -1.0688165992006031e+00 -6.0721890853952880e+00 + 41 1.8328443975893682e-01 1.1999398727355213e+00 1.1062905763894223e+01 + 42 9.2830903177426141e+00 -1.1854755437923470e+00 -2.3812579810238361e+00 + 43 8.6757157158971765e-01 7.3894893309461853e+00 1.0813320810122591e+00 + 44 -1.6117070471574793e+00 3.2957578500740827e+00 1.0513256330207277e+01 + 45 -5.2847889805099602e+00 3.2612062921402085e+00 -3.6739048921305235e+00 + 46 -6.8420666221266941e+00 4.3665689144836026e+00 4.0499715356875909e-01 + 47 -9.4783488052126286e-01 -1.5529866105355297e+00 6.1209777561333309e+00 + 48 -7.1147299789089669e+00 -7.7760373309469042e+00 5.4111012256001194e+00 + 49 -4.5982295951298022e+00 8.4369057354209218e+00 -4.4237926167316886e+00 + 50 3.1932934978530096e+00 -3.9650084384393192e+00 1.9711880074915105e+00 + 51 -9.5128988310577078e+00 -4.1169312308703025e+00 -2.8208407927314023e+00 + 52 -2.9031067143104317e-01 2.3027947072632950e+00 1.3197056358302861e+00 + 53 8.6354030433310958e-01 -9.7478812849784968e-01 8.4161947477492927e+00 + 54 -1.6839359865178911e+00 3.2335760630670598e+00 -7.0357694983289258e+00 + 55 8.9342240483548654e+00 1.5231082081942779e+00 7.9737509193761846e-01 + 56 2.1403498222013728e+00 2.7644610601371502e+00 3.7892370857856728e+00 + 57 -3.1710655297771875e+00 9.0952874515655004e+00 3.2918199860840618e+00 + 58 -1.1413333552881719e+01 8.4034686269423575e-01 2.1398760593888708e+00 + 59 2.6165804986504817e+00 4.1965373041381309e+00 -6.9628700253242997e+00 + 60 -5.3056148062838329e+00 8.9070806252638874e+00 -4.5217170782268026e+00 + 61 -1.9159239591826327e+00 -1.2586655702861405e+01 4.3642342580983762e-02 + 62 4.2423023573252649e+00 -4.2437011984036177e+00 3.6301121042163134e+00 + 63 -1.9168909212115635e+00 1.8588573169033795e-01 -5.3807119221021207e+00 + 64 3.9655634387022887e+00 4.8051691350629415e+00 -8.3823885520783463e+00 +run_vdwl: -177.241652310606 +run_coul: 0 +run_stress: ! |- + -5.5866961119628104e+02 -5.6202637175532345e+02 -5.7347040775767402e+02 1.3878175425837171e+01 -1.9305399809564843e+01 5.4211771437966604e+01 +run_forces: ! |2 + 1 -7.8387022703049851e+00 -2.9585167295836121e+00 -4.6754986144049306e+00 + 2 6.0367774056712973e+00 -9.7173514262745577e+00 3.8697017382924015e+00 + 3 1.5751655157247322e+00 1.7423739582558442e+00 -3.3243078127399981e+00 + 4 3.7022861428082381e+00 -2.9291509393999022e+00 7.5380469096162770e+00 + 5 4.1441250392040452e+00 6.0443728854185395e+00 8.2208849141316627e+00 + 6 1.6991958371049005e+00 -8.6496644531516740e+00 2.7114613872997548e+00 + 7 -1.3260420454342148e+00 -1.1021183095268512e+00 -9.0587143427625971e+00 + 8 -5.5725496916995620e-01 1.1622161953938059e+00 -1.8918937564479514e+00 + 9 -9.3547078569587363e+00 2.2842290770944356e+00 3.2286948943570244e+00 + 10 -5.4738752237470836e+00 1.1936591337323426e+00 1.1987889597517634e+00 + 11 1.3567320809931942e+00 6.7213983461535909e+00 3.5630238054663717e+00 + 12 6.7316278552165940e+00 -4.9573761860282897e+00 -3.5637171914978896e+00 + 13 -1.0486681441869692e+00 -5.8232551950590894e+00 -3.8676996612392978e-01 + 14 3.6204595613356876e+00 -9.5681481476542052e-01 -5.4616823079877523e+00 + 15 2.2092898286783234e+00 -2.2729008002360107e-01 -8.2388442502544592e+00 + 16 -3.8633983114379036e+00 5.3191731093778012e+00 5.2632812017355479e-01 + 17 4.6665446754641451e+00 1.4630613521690445e+00 6.4921685288797226e+00 + 18 -6.4815120468127141e+00 -5.4098935027308457e+00 -2.4015644500186233e+00 + 19 3.8026928430504747e+00 9.6059180100111063e-01 -5.7038392844807291e+00 + 20 6.3585113010273027e+00 4.3224814252805355e-01 1.1197151255900688e+00 + 21 -3.9151976708442797e+00 -6.1459550190965331e+00 3.6492478134862139e+00 + 22 7.1431912090569405e+00 4.9409705890816458e+00 -4.3383034124427278e+00 + 23 3.6679360759593953e+00 -8.5256610541702731e+00 1.0719818001986527e+00 + 24 2.2905627711249821e-02 5.7462741242460122e+00 8.3775343345666853e-01 + 25 -5.4142490988930012e+00 -4.3704752376928937e+00 -4.8597978205797521e+00 + 26 3.5478038320485097e+00 -3.4130949506585546e+00 -7.3160228108637071e+00 + 27 -1.5811731993594662e+00 -3.8840101840234360e+00 -2.8967259897753204e+00 + 28 -5.1068293467174239e+00 -2.8991633455536507e+00 -1.2814908941693006e+00 + 29 2.1123438878160199e+00 6.3237023155411736e+00 3.2181118606237495e+00 + 30 7.5931250132459667e+00 -5.0819920641022192e+00 5.3033711857717227e+00 + 31 1.0062489439367361e+01 -2.4402461935218056e-01 -3.1713506822712401e-01 + 32 9.9962697395325790e+00 9.4004322837018250e-01 -1.5606271556583589e+00 + 33 -8.4100285720687999e+00 -3.8502767220494118e+00 2.2240996364252714e+00 + 34 -7.8253849439331358e-01 2.3093529175382224e+00 -1.2182248602601256e+01 + 35 -3.8672669011162024e+00 -5.6452417323964603e+00 -2.6575986753614869e+00 + 36 -1.8730113273474853e+00 1.0020962156419264e+01 -1.0526908027819202e+00 + 37 -1.9651884930333763e+00 3.2467452745523495e-01 9.9077979305551569e+00 + 38 3.7059221755897704e+00 8.6241522136862834e+00 -5.4580369625019607e+00 + 39 3.6639476500828310e+00 -1.7763809324112063e+00 1.0384020265413113e+01 + 40 -7.0571253507825471e+00 -1.7580483161363969e+00 -3.9400169429595748e+00 + 41 -1.3660269831205065e+00 -1.4132042410641552e+00 1.2723832371391305e+01 + 42 9.4144613909205628e+00 -2.0570028400934648e+00 -1.6878995801232151e+00 + 43 7.0943877553064061e-01 7.7396990397174861e+00 2.6981742125402286e-01 + 44 -1.9527522122609797e+00 2.6287450794328033e+00 1.0213707649898682e+01 + 45 -3.7258142566229866e+00 3.4202950016110236e+00 -3.1669835238319974e+00 + 46 -6.1285702214107172e+00 4.6738717324685624e+00 5.3080295239515973e-01 + 47 -1.6410269000510276e+00 -2.5225526655635666e+00 7.0460456394918083e+00 + 48 -5.1895516073479540e+00 -8.7938891636343932e+00 6.9602072549934855e+00 + 49 -4.2253652841209801e+00 7.3190814799653001e+00 -3.9882908537574626e+00 + 50 3.7239296036560732e+00 -2.5030136708230355e+00 2.4794497205784318e+00 + 51 -1.0989165826505907e+01 -5.1741030090317430e+00 -1.0560556311543812e+00 + 52 -2.1226596483520344e+00 7.5068705318867590e-01 -1.1681491771381285e+00 + 53 9.0689073791619157e-01 -1.2417894761169748e+00 8.8948857886902317e+00 + 54 -2.4975897277210977e+00 1.8000986772051912e+00 -7.7316695093497980e+00 + 55 7.8385850589926926e+00 1.9344070667390327e+00 7.5869879147580632e-01 + 56 5.9131419320986796e+00 5.8984793095742516e+00 3.6507383942174538e+00 + 57 -5.4223631083583923e-01 1.0621127278677964e+01 1.0685466782549997e+00 + 58 -1.0497593842930605e+01 7.2807301019478754e-01 2.2078467061761184e+00 + 59 2.5201671085800639e+00 3.2591130927743999e+00 -5.9054362566389100e+00 + 60 -5.0276266206989062e+00 7.7967165409544910e+00 -4.3470166793821141e+00 + 61 -2.5885364100234600e+00 -1.1663466602879799e+01 -9.5624864458484793e-01 + 62 3.6054739410819345e+00 -4.3307936809387879e+00 3.5663088631979334e+00 + 63 -1.7438161212371046e+00 -6.8247353491645679e-02 -5.2170145750595598e+00 + 64 4.1036700103821602e+00 4.9699680818580685e+00 -7.6437949958428302e+00 +... -- GitLab From fb634658de30db2a678f479ce5289183abfdf721 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Aug 2020 07:01:38 -0400 Subject: [PATCH 043/165] add tests for a few more force manipulation fixes --- .../tests/fix-timestep-lineforce.yaml | 74 +++++++++++++++++++ .../tests/fix-timestep-nve_noforce.yaml | 73 ++++++++++++++++++ .../tests/fix-timestep-planeforce.yaml | 74 +++++++++++++++++++ 3 files changed, 221 insertions(+) create mode 100644 unittest/force-styles/tests/fix-timestep-lineforce.yaml create mode 100644 unittest/force-styles/tests/fix-timestep-nve_noforce.yaml create mode 100644 unittest/force-styles/tests/fix-timestep-planeforce.yaml diff --git a/unittest/force-styles/tests/fix-timestep-lineforce.yaml b/unittest/force-styles/tests/fix-timestep-lineforce.yaml new file mode 100644 index 0000000000..e9a9a4939d --- /dev/null +++ b/unittest/force-styles/tests/fix-timestep-lineforce.yaml @@ -0,0 +1,74 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sun Aug 23 07:00:22 202 +epsilon: 2e-13 +prerequisites: ! | + atom full + fix lineforce +pre_commands: ! "" +post_commands: ! | + fix move all nve + fix test solute lineforce 0.2 -0.2 0.0 +input_file: in.fourmol +natoms: 29 +run_pos: ! |2 + 1 -2.8353666918474085e-01 2.4789954021539908e+00 -1.7245219279414484e-01 + 2 3.0850772211005462e-01 2.9596702157478862e+00 -8.4973624579030649e-01 + 3 -6.9154139084899435e-01 1.2419093013965214e+00 -6.2301037840695084e-01 + 4 -1.5777219980722552e+00 1.4877297466842043e+00 -1.2569536794947382e+00 + 5 -8.9686176133721041e-01 9.3667375360152727e-01 4.0241536507077341e-01 + 6 2.4187643018172986e-01 2.8137527281719688e-01 -1.2827179207187822e+00 + 7 3.4888968696070871e-01 -1.9574766140810270e-02 -2.4648556750396611e+00 + 8 1.1700700116485798e+00 -4.9055203303004813e-01 -6.7629554485072030e-01 + 9 1.3769323892363057e+00 -2.5567637681710637e-01 2.7099996788468578e-01 + 10 2.0526081046054685e+00 -1.4605856500750340e+00 -9.6780199739855188e-01 + 11 1.7911209497442566e+00 -1.9890450206583337e+00 -1.8898979422949340e+00 + 12 3.0055690902342054e+00 -4.9090665327583782e-01 -1.6214600836782489e+00 + 13 4.0510600872445934e+00 -8.9249308161122709e-01 -1.6400112165858416e+00 + 14 2.6058091627026663e+00 -4.1879945017308817e-01 -2.6633080461170948e+00 + 15 2.9696270360512345e+00 5.5432631234811802e-01 -1.2373574916512289e+00 + 16 2.6751050508359362e+00 -2.4202544317913657e+00 3.5897467774208235e-02 + 17 2.2147336796985106e+00 -2.0839825355487163e+00 1.1508647411842645e+00 + 18 2.1369701668211705e+00 3.0158507354092841e+00 -3.5179348300192350e+00 + 19 1.5355837133162105e+00 2.6255292349750459e+00 -4.2353987775013850e+00 + 20 2.7727573004706496e+00 3.6923910448203534e+00 -3.9330842458549418e+00 + 21 4.9040128085316370e+00 -4.0752348182698377e+00 -3.6210314723588679e+00 + 22 4.3582355554781591e+00 -4.2126119427718338e+00 -4.4612844197357928e+00 + 23 5.7439382850104428e+00 -3.5821957939485429e+00 -3.8766361296721872e+00 + 24 2.0689243588423927e+00 3.1513346915841480e+00 3.1550389769341858e+00 + 25 1.3045351340377842e+00 3.2665125710540139e+00 2.5111855277442325e+00 + 26 2.5809237403652370e+00 4.0117602606236726e+00 3.2212060530288817e+00 + 27 -1.9611343133872607e+00 -4.3563411934982685e+00 2.1098293112403503e+00 + 28 -2.7473562684628376e+00 -4.0200819932583673e+00 1.5830052163452122e+00 + 29 -1.3126000190823151e+00 -3.5962518040270703e+00 2.2746342468932106e+00 +run_vel: ! |2 + 1 -4.3140527484594746e-03 5.6824341135763229e-03 -2.2179517633030531e-04 + 2 3.8387318479547123e-03 3.5028638595743628e-03 3.5805549693846352e-03 + 3 3.5549115594213148e-03 -3.2177232397003451e-03 -3.3618185901550799e-04 + 4 4.2062914030212880e-04 -2.6027036234744037e-03 -4.1204974953432108e-03 + 5 -5.9826989976337309e-04 1.7242911336143920e-04 6.9023177964912290e-05 + 6 -4.7030037731245006e-02 4.7996436258913769e-02 7.9574303350202582e-04 + 7 8.9195030470518074e-03 -9.7975304477113234e-03 -7.7217630460203659e-04 + 8 3.4583643953017412e-03 -3.8822039017500556e-03 1.5134641148324972e-04 + 9 -1.9735549817944953e-03 5.6026263271721452e-04 1.1117602907112732e-03 + 10 3.1245782059958940e-02 -3.0300390245723133e-02 -2.3336234361093645e-04 + 11 -1.2906159323544824e-03 -6.0806795363026894e-04 -2.9176389881837113e-03 + 12 1.5681117851482783e-03 -1.1326873111619808e-03 -1.2971152622619948e-03 + 13 2.2505263784070363e-03 5.3292797807106404e-03 -7.8324487687854666e-04 + 14 2.5779062957764927e-03 -6.7818833640233989e-03 -3.9333461173944500e-03 + 15 -1.7570865506312888e-03 -5.7533503541043916e-03 3.2037919043360571e-03 + 16 2.2661700215489858e-02 -2.3258581693297874e-02 1.4945658875149626e-03 + 17 -1.6313130994007091e-02 1.7336410599341715e-02 8.3495414466050911e-04 + 18 -8.0066494115686076e-04 -8.6271629743541454e-04 -1.4482968680445980e-03 + 19 1.2452384863200344e-03 -2.5061108181328616e-03 7.2998640410367197e-03 + 20 3.5930057707802038e-03 3.6938856855613894e-03 3.2322734443129349e-03 + 21 -1.4689196610081362e-03 -2.7352321971665781e-04 7.0581358845536485e-04 + 22 -7.0694198609778059e-03 -4.2577149778400721e-03 2.8079095995765845e-04 + 23 6.0446964813450615e-03 -1.4000131942163694e-03 2.5819753239915600e-03 + 24 3.1926486529862619e-04 -9.9445497704521131e-04 1.5000285732363959e-04 + 25 1.3789932399959270e-04 -4.4335885499470640e-03 -8.1807734292074145e-04 + 26 2.0485906041322823e-03 2.7813360325769916e-03 4.3245729568679604e-03 + 27 4.5604051689362323e-04 -1.0305530019109705e-03 2.1187997350255913e-04 + 28 -6.2544521154417818e-03 1.4127710799290672e-03 -1.8429821887643318e-03 + 29 6.4110640450759117e-04 3.1273431034146669e-03 3.7253671510608082e-03 +... diff --git a/unittest/force-styles/tests/fix-timestep-nve_noforce.yaml b/unittest/force-styles/tests/fix-timestep-nve_noforce.yaml new file mode 100644 index 0000000000..7a4bff0af7 --- /dev/null +++ b/unittest/force-styles/tests/fix-timestep-nve_noforce.yaml @@ -0,0 +1,73 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sun Aug 23 06:57:37 202 +epsilon: 1e-14 +prerequisites: ! | + atom full + fix nve/noforce +pre_commands: ! "" +post_commands: ! | + fix test solute nve/noforce +input_file: in.fourmol +natoms: 29 +run_pos: ! |2 + 1 -2.7837948059450057e-01 2.4738382135637509e+00 -1.7245219279414484e-01 + 2 3.0739674554684748e-01 2.9607811923110940e+00 -8.4973624579030649e-01 + 3 -6.9690113701142686e-01 1.2472690475589543e+00 -6.2301037840695084e-01 + 4 -1.5790179883709534e+00 1.4890257369829027e+00 -1.2569536794947382e+00 + 5 -8.9737778320591355e-01 9.3718977547023008e-01 4.0241536507077341e-01 + 6 2.9350779927946186e-01 2.2974390371946465e-01 -1.2827179207187822e+00 + 7 3.3997795272945847e-01 -1.0663031909560207e-02 -2.4648556750396611e+00 + 8 1.1648999228107455e+00 -4.8538194419221331e-01 -6.7629554485072030e-01 + 9 1.3802410900047160e+00 -2.5898507758551664e-01 2.7099996788468578e-01 + 10 2.0194285352292209e+00 -1.4274060806987843e+00 -9.6780199739855188e-01 + 11 1.7922384975531884e+00 -1.9901625684672659e+00 -1.8898979422949340e+00 + 12 3.0051949545921595e+00 -4.9053251763379130e-01 -1.6214600836782489e+00 + 13 4.0528782906288381e+00 -8.9431128499547308e-01 -1.6400112165858416e+00 + 14 2.6030385373167326e+00 -4.1602882478715481e-01 -2.6633080461170948e+00 + 15 2.9669711835025847e+00 5.5698216489676589e-01 -1.2373574916512289e+00 + 16 2.6515619929959935e+00 -2.3967113739514225e+00 3.5897467774208235e-02 + 17 2.2323103228818271e+00 -2.1015591787320327e+00 1.1508647411842645e+00 + 18 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00 + 19 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00 + 20 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00 + 21 4.9064454390208301e+00 -4.0751205255383196e+00 -3.6215576073601046e+00 + 22 4.3687453488627543e+00 -4.2054270536772504e+00 -4.4651491269372565e+00 + 23 5.7374928154769504e+00 -3.5763355905184966e+00 -3.8820297194230728e+00 + 24 2.0684115301174013e+00 3.1518221747664397e+00 3.1554242678474576e+00 + 25 1.2998381073113014e+00 3.2755513587518097e+00 2.5092990173114837e+00 + 26 2.5807438597688113e+00 4.0120175892854135e+00 3.2133398379059099e+00 + 27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 + 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 + 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 +run_vel: ! |2 + 1 7.7867804888392077e-04 5.8970331623292821e-04 -2.2179517633030531e-04 + 2 2.7129529964126462e-03 4.6286427111164284e-03 3.5805549693846352e-03 + 3 -1.2736791029204805e-03 1.6108674226414498e-03 -3.3618185901550799e-04 + 4 -9.2828595122009308e-04 -1.2537885319521818e-03 -4.1204974953432108e-03 + 5 -1.1800848061603740e-03 7.5424401975844038e-04 6.9023177964912290e-05 + 6 -3.0914004879905335e-04 1.2755385764678133e-03 7.9574303350202582e-04 + 7 -1.1037894966874103e-04 -7.6764845099077425e-04 -7.7217630460203659e-04 + 8 3.9060281273221989e-04 -8.1444231918053418e-04 1.5134641148324972e-04 + 9 1.2475530960659720e-03 -2.6608454451432528e-03 1.1117602907112732e-03 + 10 4.5008983776042893e-04 4.9530197647538077e-04 -2.3336234361093645e-04 + 11 -3.6977669078869707e-04 -1.5289071951960539e-03 -2.9176389881837113e-03 + 12 1.0850834530183159e-03 -6.4965897903201833e-04 -1.2971152622619948e-03 + 13 4.0754559196230639e-03 3.5043502394946119e-03 -7.8324487687854666e-04 + 14 -1.3837220448746613e-04 -4.0656048637594394e-03 -3.9333461173944500e-03 + 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 + 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 + 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 + 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 + 19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 + 20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03 + 21 -9.5568188553430398e-04 1.6594630943762931e-04 -1.8199788009966615e-04 + 22 -3.3137518957653462e-03 -2.8683968287936054e-03 3.6384389958326871e-03 + 23 2.4209481134686401e-04 -4.5457709985051130e-03 2.7663581642115042e-03 + 24 2.5447450568861086e-04 4.8412447786110117e-04 -4.8021914527341357e-04 + 25 4.3722771097312743e-03 -4.5184411669545515e-03 2.5200952006556795e-03 + 26 -1.9250110555001179e-03 -3.0342169883610837e-03 3.5062814567984532e-03 + 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 + 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 + 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 +... diff --git a/unittest/force-styles/tests/fix-timestep-planeforce.yaml b/unittest/force-styles/tests/fix-timestep-planeforce.yaml new file mode 100644 index 0000000000..828a122a15 --- /dev/null +++ b/unittest/force-styles/tests/fix-timestep-planeforce.yaml @@ -0,0 +1,74 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sun Aug 23 06:59:27 202 +epsilon: 2e-13 +prerequisites: ! | + atom full + fix planeforce +pre_commands: ! "" +post_commands: ! | + fix move all nve + fix test solute planeforce 0.2 -0.2 0.0 +input_file: in.fourmol +natoms: 29 +run_pos: ! |2 + 1 -2.6559250608948198e-01 2.4866251880687686e+00 -1.6684907821259493e-01 + 2 3.0894248567257443e-01 2.9623269324368215e+00 -8.5471578048442831e-01 + 3 -7.0892482211965979e-01 1.2352453624507214e+00 -6.2804353948775615e-01 + 4 -1.5830750558060256e+00 1.4849686695478295e+00 -1.2539070822373102e+00 + 5 -9.0763204532649755e-01 9.2693551334964608e-01 3.9953316238314557e-01 + 6 2.9718636757944272e-01 2.3342247201944555e-01 -1.2334862179386896e+00 + 7 3.3460027394575914e-01 -1.6040710693259661e-02 -2.5306890435744918e+00 + 8 1.1685636323889985e+00 -4.8171823461395979e-01 -6.3364693715073439e-01 + 9 1.3833025276963107e+00 -2.5592363989392164e-01 2.8365380001980212e-01 + 10 2.0186187410024923e+00 -1.4282158749255123e+00 -9.8393321048953186e-01 + 11 1.7890806725221933e+00 -1.9933203934982626e+00 -1.8889525823468674e+00 + 12 3.0059397089398021e+00 -4.8978776328614831e-01 -1.6231871953501040e+00 + 13 4.0533013035365251e+00 -8.9388827208778809e-01 -1.6399704985504611e+00 + 14 2.6039508000277740e+00 -4.1511656207611353e-01 -2.6634002860545309e+00 + 15 2.9668936850980145e+00 5.5690466649219494e-01 -1.2342439813304109e+00 + 16 2.6554008477025515e+00 -2.3928725192448654e+00 -2.5674439315281843e-02 + 17 2.2296263051408687e+00 -2.1042431964729911e+00 1.1979359551203994e+00 + 18 2.1369701718539162e+00 3.0158507411793063e+00 -3.5179348339783845e+00 + 19 1.5355837137705859e+00 2.6255292355167890e+00 -4.2353987780701674e+00 + 20 2.7727573005921551e+00 3.6923910449471298e+00 -3.9330842459106692e+00 + 21 4.9040128085232855e+00 -4.0752348183075613e+00 -3.6210314726839350e+00 + 22 4.3582355554693981e+00 -4.2126119427671851e+00 -4.4612844197316370e+00 + 23 5.7439382850042371e+00 -3.5821957939442086e+00 -3.8766361296745004e+00 + 24 2.0689243583179064e+00 3.1513346905938642e+00 3.1550389752899344e+00 + 25 1.3045351331735675e+00 3.2665125703980338e+00 2.5111855255651467e+00 + 26 2.5809237402685787e+00 4.0117602605304583e+00 3.2212060528956670e+00 + 27 -1.9611343130572774e+00 -4.3563411931836100e+00 2.1098293114766458e+00 + 28 -2.7473562684343000e+00 -4.0200819932242773e+00 1.5830052163335984e+00 + 29 -1.3126000190933165e+00 -3.5962518038945435e+00 2.2746342468225560e+00 +run_vel: ! |2 + 1 1.2684230994165607e-02 1.2495256261514619e-02 4.9930344501754736e-03 + 2 4.3518220414975614e-03 6.2675117562013419e-03 -1.5418810814943006e-03 + 3 -1.2234130921634355e-02 -9.3495843960724277e-03 -4.6324540534036238e-03 + 4 -5.0386193262248391e-03 -5.3641219069569283e-03 -1.1886832268516150e-03 + 5 -1.1443756309854350e-02 -9.5094274839355366e-03 -2.8606259908498174e-03 + 6 1.9687920319066405e-03 3.5534706571735291e-03 3.2968368883068665e-02 + 7 -4.4609712390029990e-03 -5.1182407403250344e-03 -5.3884713264266998e-02 + 8 3.9019842162219044e-03 2.6969390843091471e-03 4.2232422670644892e-02 + 9 4.7081329435379928e-03 7.9973440232876945e-04 1.5395337548004654e-02 + 10 -3.0261769585336135e-04 -2.5740555713842149e-04 -1.6356926331032737e-02 + 11 -3.5476678248804613e-03 -4.7067983292878183e-03 -2.1440510485219223e-03 + 12 1.8144360490014990e-03 7.9693616951164063e-05 -3.0607029773290864e-03 + 13 4.4624855231916059e-03 3.8913798430631526e-03 -7.3471490153043995e-04 + 14 8.5951634791463845e-04 -3.0677163113573365e-03 -3.9476830462698825e-03 + 15 -4.3865629825187444e-03 -3.2366584107100553e-03 6.2106171937144185e-03 + 16 3.0917841316903611e-03 2.6883341559191675e-03 -4.9093430472400619e-02 + 17 -1.5592872047137272e-03 -1.8498512101422430e-03 3.9767639007755935e-02 + 18 -8.0065510115642151e-04 -8.6270510525007294e-04 -1.4483045867941069e-03 + 19 1.2452394050314463e-03 -2.5061097539385720e-03 7.2998629486265044e-03 + 20 3.5930060787009634e-03 3.6938860117779037e-03 3.2322732684341988e-03 + 21 -1.4689196268240781e-03 -2.7352333342171262e-04 7.0581285552551100e-04 + 22 -7.0694198802010982e-03 -4.2577149698438668e-03 2.8079095849804981e-04 + 23 6.0446964726305220e-03 -1.4000131857275601e-03 2.5819753138166994e-03 + 24 3.1926383007563959e-04 -9.9445695130458991e-04 1.4999956095861883e-04 + 25 1.3789758971327935e-04 -4.4335898697816581e-03 -8.1808174043568002e-04 + 26 2.0485903968908386e-03 2.7813358254351185e-03 4.3245726870644327e-03 + 27 4.5604117355176098e-04 -1.0305523817712768e-03 2.1188043533291564e-04 + 28 -6.2544520533999292e-03 1.4127711444285823e-03 -1.8429822080647299e-03 + 29 6.4110639769257973e-04 3.1273433780430434e-03 3.7253670085370728e-03 +... -- GitLab From 01dd80f35e7709bb15fcfeadbf6c6f9ceb960de6 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 23 Aug 2020 11:21:43 -0400 Subject: [PATCH 044/165] bond/react: actually make reset_mol_ids the default --- src/USER-REACTION/fix_bond_react.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index a1154c9221..29aa476148 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -168,21 +168,20 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"reset_mol_ids") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " "'reset_mol_ids' keyword has too few arguments"); - if (strcmp(arg[iarg+1],"yes") == 0) { // default - delete reset_mol_ids; - reset_mol_ids = new ResetMolIDs(lmp); - reset_mol_ids->create_computes(id,group->names[igroup]); - iarg += 2; - } - if (strcmp(arg[iarg+1],"no") == 0) { - reset_mol_ids_flag = 0; - iarg += 2; - } + if (strcmp(arg[iarg+1],"yes") == 0) ; // default + if (strcmp(arg[iarg+1],"no") == 0) reset_mol_ids_flag = 0; + iarg += 2; } else if (strcmp(arg[iarg],"react") == 0) { break; } else error->all(FLERR,"Illegal fix bond/react command: unknown keyword"); } + if (reset_mol_ids_flag) { + delete reset_mol_ids; + reset_mol_ids = new ResetMolIDs(lmp); + reset_mol_ids->create_computes(id,group->names[igroup]); + } + // set up common variables as vectors of length 'nreacts' // nevery, cutoff, onemol, twomol, superimpose file @@ -245,7 +244,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : int n = strlen(arg[iarg]) + 1; if (n > MAXLINE) error->all(FLERR,"Reaction name (react-ID) is too long (limit: 256 characters)"); - strncpy(rxn_name[rxn],arg[iarg++],n); + strcpy(rxn_name[rxn],arg[iarg++]); int groupid = group->find(arg[iarg++]); if (groupid == -1) error->all(FLERR,"Could not find fix group ID"); -- GitLab From 63abb2dff919327995dc350b70f44800176d7eef Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 23 Aug 2020 11:32:54 -0400 Subject: [PATCH 045/165] fix broken reset_mol_ids command --- src/reset_mol_ids.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index 1461a49f32..de76ef1732 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -116,7 +116,7 @@ void ResetMolIDs::command(int narg, char **arg) // create computes - create_computes(NULL,groupid); + create_computes("COMMAND",groupid); // reset molecule IDs -- GitLab From 10080079e3da86a39cc615a236242262710b91a9 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 23 Aug 2020 11:44:48 -0400 Subject: [PATCH 046/165] ISO compliance --- src/reset_mol_ids.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index de76ef1732..7ce027a657 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -116,7 +116,7 @@ void ResetMolIDs::command(int narg, char **arg) // create computes - create_computes("COMMAND",groupid); + create_computes((char *) "COMMAND",groupid); // reset molecule IDs -- GitLab From 0842911cd84c3eec75c656648a5a4b097aac270e Mon Sep 17 00:00:00 2001 From: Vsevak Date: Sun, 23 Aug 2020 22:21:31 +0300 Subject: [PATCH 047/165] Rename local buffers 'red_acc' in lal_tersoff* Rename __local red_acc in lal_tersoff --- lib/gpu/lal_tersoff.cu | 6 +++--- lib/gpu/lal_tersoff_mod.cu | 12 ++++++------ lib/gpu/lal_tersoff_zbl.cu | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/gpu/lal_tersoff.cu b/lib/gpu/lal_tersoff.cu index 7d3ede8dfc..b08fddfd6e 100644 --- a/lib/gpu/lal_tersoff.cu +++ b/lib/gpu/lal_tersoff.cu @@ -709,7 +709,7 @@ __kernel void k_tersoff_three_end(const __global numtyp4 *restrict x_, for (int i=0; i<6; i++) virial[i]=(acctyp)0; - __local int red_acc[BLOCK_PAIR]; + __local int ijnum_shared[BLOCK_PAIR]; __syncthreads(); @@ -789,14 +789,14 @@ __kernel void k_tersoff_three_end(const __global numtyp4 *restrict x_, k &= NEIGHMASK; if (k == i) { ijnum = nbor_k; - red_acc[m] = ijnum; + ijnum_shared[m] = ijnum; break; } } numtyp r1 = ucl_sqrt(rsq1); numtyp r1inv = ucl_rsqrt(rsq1); - if (ijnum < 0) ijnum = red_acc[m]; + if (ijnum < 0) ijnum = ijnum_shared[m]; // idx to zetaij is shifted by n_stride relative to ijnum in dev_short_nbor int idx = ijnum; diff --git a/lib/gpu/lal_tersoff_mod.cu b/lib/gpu/lal_tersoff_mod.cu index bb5aabca44..0f45653264 100644 --- a/lib/gpu/lal_tersoff_mod.cu +++ b/lib/gpu/lal_tersoff_mod.cu @@ -719,7 +719,7 @@ __kernel void k_tersoff_mod_three_end(const __global numtyp4 *restrict x_, for (int i=0; i<6; i++) virial[i]=(acctyp)0; - __local int red_acc[BLOCK_PAIR]; + __local int ijnum_shared[BLOCK_PAIR]; __syncthreads(); @@ -799,14 +799,14 @@ __kernel void k_tersoff_mod_three_end(const __global numtyp4 *restrict x_, k &= NEIGHMASK; if (k == i) { ijnum = nbor_k; - red_acc[m] = ijnum; + ijnum_shared[m] = ijnum; break; } } numtyp r1 = ucl_sqrt(rsq1); numtyp r1inv = ucl_rsqrt(rsq1); - if (ijnum < 0) ijnum = red_acc[m]; + if (ijnum < 0) ijnum = ijnum_shared[m]; // idx to zetaij is shifted by n_stride relative to ijnum in dev_short_nbor int idx = ijnum; @@ -957,7 +957,7 @@ __kernel void k_tersoff_mod_three_end_vatom(const __global numtyp4 *restrict x_, for (int i=0; i<6; i++) virial[i]=(acctyp)0; - __local int red_acc[BLOCK_PAIR]; + __local int ijnum_shared[BLOCK_PAIR]; __syncthreads(); @@ -1037,14 +1037,14 @@ __kernel void k_tersoff_mod_three_end_vatom(const __global numtyp4 *restrict x_, k &= NEIGHMASK; if (k == i) { ijnum = nbor_k; - red_acc[m] = ijnum; + ijnum_shared[m] = ijnum; break; } } numtyp r1 = ucl_sqrt(rsq1); numtyp r1inv = ucl_rsqrt(rsq1); - if (ijnum < 0) ijnum = red_acc[m]; + if (ijnum < 0) ijnum = ijnum_shared[m]; // idx to zetaij is shifted by n_stride relative to ijnum in dev_short_nbor int idx = ijnum; diff --git a/lib/gpu/lal_tersoff_zbl.cu b/lib/gpu/lal_tersoff_zbl.cu index cd8d453b3c..f631cab91f 100644 --- a/lib/gpu/lal_tersoff_zbl.cu +++ b/lib/gpu/lal_tersoff_zbl.cu @@ -729,7 +729,7 @@ __kernel void k_tersoff_zbl_three_end(const __global numtyp4 *restrict x_, for (int i=0; i<6; i++) virial[i]=(acctyp)0; - __local int red_acc[BLOCK_PAIR]; + __local int ijnum_shared[BLOCK_PAIR]; __syncthreads(); @@ -809,14 +809,14 @@ __kernel void k_tersoff_zbl_three_end(const __global numtyp4 *restrict x_, k &= NEIGHMASK; if (k == i) { ijnum = nbor_k; - red_acc[m] = ijnum; + ijnum_shared[m] = ijnum; break; } } numtyp r1 = ucl_sqrt(rsq1); numtyp r1inv = ucl_rsqrt(rsq1); - if (ijnum < 0) ijnum = red_acc[m]; + if (ijnum < 0) ijnum = ijnum_shared[m]; // idx to zetaij is shifted by n_stride relative to ijnum in dev_short_nbor int idx = ijnum; -- GitLab From 8f5e8300ea4f21bbd21892d3ca27a7d9f92a3d95 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Aug 2020 15:29:49 -0400 Subject: [PATCH 048/165] fix typos in fix restrain docs --- doc/src/fix_restrain.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/src/fix_restrain.rst b/doc/src/fix_restrain.rst index fdc5be06bc..c25867197a 100644 --- a/doc/src/fix_restrain.rst +++ b/doc/src/fix_restrain.rst @@ -13,7 +13,7 @@ Syntax * ID, group-ID are documented in :doc:`fix ` command * restrain = style name of this fix command * one or more keyword/arg pairs may be appended -* keyword = *bond* or *angle* or *dihedral* +* keyword = *bond* or *lbound* or *angle* or *dihedral* .. parsed-literal:: @@ -23,7 +23,7 @@ Syntax r0start = equilibrium bond distance at start of run (distance units) r0stop = equilibrium bond distance at end of run (optional) (distance units). If not specified it is assumed to be equal to r0start - *lbond* args = atom1 atom2 Kstart Kstop r0start (r0stop) + *lbound* args = atom1 atom2 Kstart Kstop r0start (r0stop) atom1,atom2 = IDs of 2 atoms in bond Kstart,Kstop = restraint coefficients at start/end of run (energy units) r0start = equilibrium bond distance at start of run (distance units) @@ -46,7 +46,7 @@ Examples .. code-block:: LAMMPS fix holdem all restrain bond 45 48 2000.0 2000.0 2.75 - fix holdem all restrain lbond 45 48 2000.0 2000.0 2.75 + fix holdem all restrain lbound 45 48 2000.0 2000.0 2.75 fix holdem all restrain dihedral 1 2 3 4 2000.0 2000.0 120.0 fix holdem all restrain bond 45 48 2000.0 2000.0 2.75 dihedral 1 2 3 4 2000.0 2000.0 120.0 fix texas_holdem all restrain dihedral 1 2 3 4 0.0 2000.0 120.0 dihedral 1 2 3 5 0.0 2000.0 -120.0 dihedral 1 2 3 6 0.0 2000.0 0.0 @@ -150,7 +150,7 @@ is included in :math:`K`. ---------- -The *lbond* keyword applies a lower bound bond restraint to the specified atoms +The *lbound* keyword applies a lower bound bond restraint to the specified atoms using the same functional form used by the :doc:`bond_style harmonic ` command if the distance between the atoms is smaller than the equilibrium bond distance and 0 otherwise. The potential associated with the restraint is -- GitLab From 47a44732e7e9b438b70e50e9ce66fbed002d3c6c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Aug 2020 15:29:58 -0400 Subject: [PATCH 049/165] add test for fix restrain --- .../tests/fix-timestep-restrain.yaml | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 unittest/force-styles/tests/fix-timestep-restrain.yaml diff --git a/unittest/force-styles/tests/fix-timestep-restrain.yaml b/unittest/force-styles/tests/fix-timestep-restrain.yaml new file mode 100644 index 0000000000..a3c3ad8772 --- /dev/null +++ b/unittest/force-styles/tests/fix-timestep-restrain.yaml @@ -0,0 +1,77 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Sun Aug 23 15:29:32 202 +epsilon: 2e-13 +prerequisites: ! | + atom full + fix restrain +pre_commands: ! "" +post_commands: ! | + fix move all nve + fix test solute restrain bond 2 4 100 150 2.4 2.4 angle 17 16 9 50.0 50.0 90.0 dihedral 3 8 16 17 50.0 40.0 -20.0 mult 2 lbound 11 14 100 100 2.0 2.5 +input_file: in.fourmol +natoms: 29 +global_scalar: 114.558406487374 +global_vector: ! |- + 3 0.15090319643872077 29.7021302625337 0.0 +run_pos: ! |2 + 1 -2.7049081044736850e-01 2.4911173559795530e+00 -1.6698991821614786e-01 + 2 3.0937052624736794e-01 2.9607167765013171e+00 -8.5481885843536709e-01 + 3 -7.0586490472806618e-01 1.2286167123595255e+00 -6.2924142051419196e-01 + 4 -1.5811834363453343e+00 1.4842649682955054e+00 -1.2537517111646233e+00 + 5 -9.0721690551325418e-01 9.2651197745593050e-01 3.9953255605981502e-01 + 6 2.4838229431747039e-01 2.8303057043758451e-01 -1.2313744818138601e+00 + 7 3.4143695393390550e-01 -2.2648741749760060e-02 -2.5292260955837667e+00 + 8 1.1774768628386270e+00 -4.8524847806439514e-01 -6.3547468732900292e-01 + 9 1.3806073109814854e+00 -2.5191011991210954e-01 2.7996609563115732e-01 + 10 2.0509968448374525e+00 -1.4603683408356563e+00 -9.8323340296059314e-01 + 11 1.7838242144182084e+00 -1.9998672980370473e+00 -1.8852685750811398e+00 + 12 3.0063033844502596e+00 -4.9012428255264279e-01 -1.6232138466837789e+00 + 13 4.0515409395714803e+00 -8.9201881065215705e-01 -1.6399931072412970e+00 + 14 2.6106744343943200e+00 -4.1020421153976083e-01 -2.6671434041079660e+00 + 15 2.9695365973545087e+00 5.5421802857742708e-01 -1.2341793744905172e+00 + 16 2.6700628583332207e+00 -2.4136368600071605e+00 -2.4822491462303725e-02 + 17 2.2174304390746231e+00 -2.0904703233419450e+00 1.1972806208299713e+00 + 18 2.1369701704516086e+00 3.0158507413083284e+00 -3.5179348336680034e+00 + 19 1.5355837136134474e+00 2.6255292355326860e+00 -4.2353987779824376e+00 + 20 2.7727573005681516e+00 3.6923910449572799e+00 -3.9330842459106683e+00 + 21 4.9040128073322800e+00 -4.0752348173336017e+00 -3.6210314710352338e+00 + 22 4.3582355554440575e+00 -4.2126119427302049e+00 -4.4612844196333263e+00 + 23 5.7439382849324625e+00 -3.5821957939286562e+00 -3.8766361295967950e+00 + 24 2.0689243582707126e+00 3.1513346906714435e+00 3.1550389754473493e+00 + 25 1.3045351331633377e+00 3.2665125705791436e+00 2.5111855257516713e+00 + 26 2.5809237402714413e+00 4.0117602605457314e+00 3.2212060529079349e+00 + 27 -1.9611343130610950e+00 -4.3563411931811791e+00 2.1098293115790763e+00 + 28 -2.7473562684518900e+00 -4.0200819932394678e+00 1.5830052163448296e+00 + 29 -1.3126000191312155e+00 -3.5962518039512497e+00 2.2746342468749279e+00 +run_vel: ! |2 + 1 8.1022100178321614e-03 1.6328281959885026e-02 4.7314374413107135e-03 + 2 4.5940682030656153e-03 4.5179487515869879e-03 -1.6492594876204641e-03 + 3 -1.0161733102094436e-02 -1.4885269465719279e-02 -5.7039539110871965e-03 + 4 -2.9901007762410878e-03 -5.8980329887710573e-03 -9.8331520465552193e-04 + 5 -1.1061568499201441e-02 -9.9086761770475866e-03 -2.8614934490067238e-03 + 6 -3.9565523265972971e-02 4.6643044826882023e-02 3.7231494152594087e-02 + 7 9.1355628194479644e-04 -1.0132838137040103e-02 -5.1562272233471963e-02 + 8 1.1189041509141819e-02 2.5814492073717143e-04 3.7070457285878981e-02 + 9 2.2009572911783439e-03 4.7021819574224214e-03 1.1881801075700039e-02 + 10 2.9048157037522303e-02 -2.9179902077483610e-02 -1.5011547220722683e-02 + 11 -1.0220934050981722e-02 -1.4181485625590975e-02 2.8408980086852727e-03 + 12 2.2745816514919519e-03 -3.2425287073352247e-04 -3.1217236187068317e-03 + 13 2.7546696470429769e-03 5.8201711310770085e-03 -7.7669587326760676e-04 + 14 8.9625817039363492e-03 4.6540637267909590e-03 -9.0167435844691127e-03 + 15 -1.8357901021329049e-03 -5.8749842521648755e-03 6.3484355960452691e-03 + 16 1.3892112812942791e-02 -1.4698281213197547e-02 -4.7202487444587202e-02 + 17 -1.0775499116201853e-02 9.1311247375589679e-03 3.8266520862089155e-02 + 18 -8.0065786570119820e-04 -8.6270484590307529e-04 -1.4483039596991482e-03 + 19 1.2452390942963225e-03 -2.5061097232459439e-03 7.2998631133481661e-03 + 20 3.5930060234228762e-03 3.6938860225129936e-03 3.2322732747491053e-03 + 21 -1.4689220123599992e-03 -2.7352137958004327e-04 7.0581614585149164e-04 + 22 -7.0694199258456263e-03 -4.2577148958047985e-03 2.8079117150769023e-04 + 23 6.0446963153580249e-03 -1.4000131639527451e-03 2.5819754778255285e-03 + 24 3.1926373851903702e-04 -9.9445676589627100e-04 1.4999989504315482e-04 + 25 1.3789757621990772e-04 -4.4335894995587806e-03 -8.1808134678553054e-04 + 26 2.0485904040079606e-03 2.7813358574358283e-03 4.3245727129295258e-03 + 27 4.5604114832609600e-04 -1.0305523974737125e-03 2.1188063937668003e-04 + 28 -6.2544520873339133e-03 1.4127711141935970e-03 -1.8429821854305474e-03 + 29 6.4110632411710838e-04 3.1273432646939294e-03 3.7253671132179739e-03 +... -- GitLab From 3f685c346f33c841a081dd6c99cffef513c2b936 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 24 Aug 2020 17:56:17 -0400 Subject: [PATCH 050/165] add doxygen integration with conventional and cmake doc build --- cmake/Modules/Documentation.cmake | 56 +- doc/.gitignore | 5 + doc/Makefile | 104 ++-- doc/README | 154 ++---- doc/documentation_conventions.md | 93 ++++ doc/doxygen/.gitignore | 1 + doc/doxygen/Doxyfile.in | 522 ++++++++++++++++++ doc/doxygen/lammps-logo.png | Bin 0 -> 13603 bytes doc/graphviz/.gitignore | 3 + doc/graphviz/Makefile | 30 + doc/graphviz/lammps-classes.dot | 90 +++ doc/requirements.txt | 4 - doc/src/JPG/lammps-classes.png | Bin 0 -> 250470 bytes doc/utils/requirements.txt | 4 + .../sphinx-config/_static/css/lammps.css | 7 + .../_themes/lammps_theme/layout.html | 11 +- .../sphinx-config/{conf.py => conf.py.in} | 40 +- 17 files changed, 963 insertions(+), 161 deletions(-) create mode 100644 doc/documentation_conventions.md create mode 100644 doc/doxygen/.gitignore create mode 100644 doc/doxygen/Doxyfile.in create mode 100644 doc/doxygen/lammps-logo.png create mode 100644 doc/graphviz/.gitignore create mode 100644 doc/graphviz/Makefile create mode 100644 doc/graphviz/lammps-classes.dot delete mode 100644 doc/requirements.txt create mode 100644 doc/src/JPG/lammps-classes.png rename doc/utils/sphinx-config/{conf.py => conf.py.in} (90%) diff --git a/cmake/Modules/Documentation.cmake b/cmake/Modules/Documentation.cmake index 282253eede..ddd284aa90 100644 --- a/cmake/Modules/Documentation.cmake +++ b/cmake/Modules/Documentation.cmake @@ -15,6 +15,7 @@ if(BUILD_DOC) endif() set(VIRTUALENV ${Python3_EXECUTABLE} -m virtualenv -p ${Python3_EXECUTABLE}) endif() + find_package(Doxygen 1.8.10 REQUIRED) file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.rst) @@ -51,31 +52,56 @@ if(BUILD_DOC) "${CMAKE_CURRENT_BINARY_DIR}/html/_static/polyfill.js") endif() + # set up doxygen and add targets to run it + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen) + set(DOXYGEN_XML_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen/xml) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/doxygen/lammps-logo.png + DEPENDS ${LAMMPS_DOC_DIR}/doxygen/lammps-logo.png + COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/doxygen/lammps-logo.png ${CMAKE_BINARY_DIR}/doxygen/lammps-logo.png + ) + configure_file(${LAMMPS_DOC_DIR}/doxygen/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/doxygen/Doxyfile) + get_target_property(LAMMPS_SOURCES lammps SOURCES) + # need to update timestamps on pg_*.rst files after running doxygen to have sphinx re-read them + file(GLOB PG_SOURCES ${LAMMPS_DOC_DIR}/src/pg_*.rst) + add_custom_command( + OUTPUT ${DOXYGEN_XML_DIR}/index.xml + DEPENDS ${DOC_SOURCES} ${LAMMPS_SOURCES} + COMMAND Doxygen::doxygen ${CMAKE_CURRENT_BINARY_DIR}/doxygen/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen + COMMAND ${CMAKE_COMMAND} -E touch ${DOXYGEN_XML_DIR}/run.stamp + ) + # note, this may run in parallel with other tasks, so we must not use multiple processes here + file(COPY ${LAMMPS_DOC_DIR}/utils/sphinx-config DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/utils) + file(COPY ${LAMMPS_DOC_DIR}/src DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + configure_file(${CMAKE_CURRENT_BINARY_DIR}/utils/sphinx-config/conf.py.in ${CMAKE_CURRENT_BINARY_DIR}/utils/sphinx-config/conf.py) + if(EXISTS ${DOXYGEN_XML_DIR}/run.stamp) + set(SPHINX_EXTRA_OPTS "-E") + else() + set(SPHINX_EXTRA_OPTS "") + endif() add_custom_command( OUTPUT html - DEPENDS ${DOC_SOURCES} docenv requirements.txt - COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${LAMMPS_DOC_DIR}/src html + DEPENDS ${DOC_SOURCES} docenv requirements.txt ${DOXYGEN_XML_DIR}/index.xml ${CMAKE_CURRENT_BINARY_DIR}/utils/sphinx-config/conf.py + COMMAND ${DOCENV_BINARY_DIR}/sphinx-build ${SPHINX_EXTRA_OPTS} -b html -c ${CMAKE_BINARY_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${LAMMPS_DOC_DIR}/src html COMMAND ${CMAKE_COMMAND} -E create_symlink Manual.html ${CMAKE_CURRENT_BINARY_DIR}/html/index.html + COMMAND ${CMAKE_COMMAND} -E remove -f ${DOXYGEN_XML_DIR}/run.stamp ) # copy selected image files to html output tree - file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/html/JPG) - set(HTML_EXTRA_IMAGES balance_nonuniform.jpg balance_rcb.jpg - balance_uniform.jpg bow_tutorial_01.png bow_tutorial_02.png - bow_tutorial_03.png bow_tutorial_04.png bow_tutorial_05.png - dump1.jpg dump2.jpg examples_mdpd.gif gran_funnel.png gran_mixer.png - hop1.jpg hop2.jpg saed_ewald_intersect.jpg saed_mesh.jpg - screenshot_atomeye.jpg screenshot_gl.jpg screenshot_pymol.jpg - screenshot_vmd.jpg sinusoid.jpg xrd_mesh.jpg) + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/html/_images/wsl_tutorial) + file(GLOB HTML_EXTRA_IMAGES RELATIVE ${LAMMPS_DOC_DIR}/src/img/ + ${LAMMPS_DOC_DIR}/src/img/[^.]*.jpg + ${LAMMPS_DOC_DIR}/src/img/[^.]*.gif + ${LAMMPS_DOC_DIR}/src/img/[^.]*.png + ${LAMMPS_DOC_DIR}/src/img/wsl_tutorial/[^.]*.png) set(HTML_IMAGE_TARGETS "") foreach(_IMG ${HTML_EXTRA_IMAGES}) - string(PREPEND _IMG JPG/) - list(APPEND HTML_IMAGE_TARGETS "${CMAKE_CURRENT_BINARY_DIR}/html/${_IMG}") + list(APPEND HTML_IMAGE_TARGETS "${CMAKE_CURRENT_BINARY_DIR}/html/_images/${_IMG}") add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/${_IMG} - DEPENDS ${LAMMPS_DOC_DIR}/src/${_IMG} ${CMAKE_CURRENT_BINARY_DIR}/html/JPG - COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/src/${_IMG} ${CMAKE_BINARY_DIR}/html/${_IMG} + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/_images/${_IMG} + DEPENDS ${LAMMPS_DOC_DIR}/src/img/${_IMG} ${CMAKE_CURRENT_BINARY_DIR}/html/_images + COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/src/img/${_IMG} ${CMAKE_BINARY_DIR}/html/_images/${_IMG} ) endforeach() diff --git a/doc/.gitignore b/doc/.gitignore index 55b25960db..85c75c2934 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -1,6 +1,7 @@ /old /html /html-offline +/epub /latex /mathjax /spelling @@ -10,3 +11,7 @@ /Developer.pdf /doctrees /docenv +/doxygen-warn.log +/utils/sphinx-config/conf.py +/doxygen/Doxyfile +*.el diff --git a/doc/Makefile b/doc/Makefile index 293884b17f..1b5fb35b4c 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,21 +1,29 @@ # Makefile for LAMMPS documentation -SHELL = /bin/bash -BUILDDIR = ${CURDIR} -RSTDIR = $(BUILDDIR)/src -VENV = $(BUILDDIR)/docenv -MATHJAX = $(BUILDDIR)/mathjax -TXT2RST = $(VENV)/bin/txt2rst -ANCHORCHECK = $(VENV)/bin/rst_anchor_check - -PYTHON = $(shell which python3) +SHELL = /bin/bash +BUILDDIR = ${CURDIR} +RSTDIR = $(BUILDDIR)/src +VENV = $(BUILDDIR)/docenv +MATHJAX = $(BUILDDIR)/mathjax +POLYFILL = $(BUILDDIR)/mathjax/polyfill.js +TXT2RST = $(VENV)/bin/txt2rst +ANCHORCHECK = $(VENV)/bin/rst_anchor_check +SPHINXCONFIG = $(BUILDDIR)/utils/sphinx-config + +PYTHON = $(shell which python3) +DOXYGEN = $(shell which doxygen) VIRTUALENV = virtualenv HAS_PYTHON3 = NO HAS_VIRTUALENV = NO +HAS_DOXYGEN = NO HAS_PDFLATEX = NO ifeq ($(shell which python3 >/dev/null 2>&1; echo $$?), 0) -HAS_PYTHON3 = YES +HAS_PYTHON3 = YES +endif + +ifeq ($(shell which doxygen >/dev/null 2>&1; echo $$?), 0) +HAS_DOXYGEN = YES endif ifeq ($(shell which virtualenv-3 >/dev/null 2>&1; echo $$?), 0) @@ -33,9 +41,13 @@ HAS_PDFLATEX = YES endif -SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())') +SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())') $(shell test -f $(BUILDDIR)/doxygen/xml/run.stamp && printf -- "-E") + +# grab list of sources from doxygen config file. +# we only want to use explicitly listed files. +DOXYFILES = $(shell sed -n -e 's/\#.*$$//' -e '/^ *INPUT \+=/,/^[A-Z_]\+ \+=/p' doxygen/Doxyfile.in | sed -e 's/@LAMMPS_SOURCE_DIR@/..\/src/g' -e 's/\\//g' -e 's/ \+/ /' -e 's/[A-Z_]\+ \+= *\(YES\|NO\|\)//') -.PHONY: help clean-all clean clean-spelling epub mobi rst html pdf spelling anchor_check style_check +.PHONY: help clean-all clean clean-spelling epub mobi rst html pdf spelling anchor_check style_check xmlgen # ------------------------------------------ @@ -57,23 +69,32 @@ help: # ------------------------------------------ clean-all: clean - rm -rf $(BUILDDIR)/docenv $(BUILDDIR)/doctrees $(BUILDDIR)/mathjax Manual.pdf Developer.pdf + rm -rf $(BUILDDIR)/docenv $(MATHJAX) $(BUILDDIR)/LAMMPS.mobi $(BUILDDIR)/LAMMPS.epub $(BUILDDIR)/Manual.pdf $(BUILDDIR)/Developer.pdf clean: clean-spelling - rm -rf html epub latex + rm -rf $(BUILDDIR)/html $(BUILDDIR)/epub $(BUILDDIR)/latex $(BUILDDIR)/doctrees $(BUILDDIR)/doxygen/xml $(BUILDDIR)/doxygen-warn.log $(BUILDDIR)/doxygen/Doxyfile $(SPHINXCONFIG)/conf.py clean-spelling: - rm -rf spelling + rm -rf $(BUILDDIR)/spelling -html: $(ANCHORCHECK) $(MATHJAX) +$(SPHINXCONFIG)/conf.py: $(SPHINXCONFIG)/conf.py.in + sed -e 's,@DOXYGEN_XML_DIR@,$(BUILDDIR)/doxygen/xml,g' \ + -e 's,@LAMMPS_SOURCE_DIR@,$(BUILDDIR)/../src,g' \ + -e 's,@LAMMPS_PYTHON_DIR@,$(BUILDDIR)/../python,g' \ + -e 's,@LAMMPS_DOC_DIR@,$(BUILDDIR),g' $< > $@ + +html: xmlgen $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX) $(POLYFILL) + @$(MAKE) $(MFLAGS) -C graphviz all @(\ - . $(VENV)/bin/activate ;\ - sphinx-build $(SPHINXEXTRA) -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\ + . $(VENV)/bin/activate ; env PYTHONWARNINGS= \ + sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\ + ln -sf Manual.html html/index.html;\ + rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\ echo "############################################" ;\ rst_anchor_check src/*.rst ;\ - python utils/check-packages.py -s ../src -d src ;\ + python $(BUILDDIR)/utils/check-packages.py -s ../src -d src ;\ env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst ;\ - python utils/check-styles.py -s ../src -d src ;\ + python $(BUILDDIR)/utils/check-styles.py -s ../src -d src ;\ echo "############################################" ;\ deactivate ;\ ) @@ -87,25 +108,29 @@ html: $(ANCHORCHECK) $(MATHJAX) @rm -rf html/PDF/.[sg]* @mkdir -p html/_static/mathjax @cp -r $(MATHJAX)/es5 html/_static/mathjax/ + @cp $(POLYFILL) html/_static/ @echo "Build finished. The HTML pages are in doc/html." -spelling: $(VENV) utils/sphinx-config/false_positives.txt +spelling: xmlgen $(VENV) $(SPHINXCONFIG)/false_positives.txt @(\ - . $(VENV)/bin/activate ;\ - cp utils/sphinx-config/false_positives.txt $(RSTDIR)/ ; env PYTHONWARNINGS= \ - sphinx-build -b spelling -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) spelling ;\ + . $(VENV)/bin/activate ; env PYTHONWARNINGS= \ + cp $(SPHINXCONFIG)/false_positives.txt $(RSTDIR)/ ; env PYTHONWARNINGS= \ + sphinx-build -b spelling -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) spelling ;\ + rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\ deactivate ;\ ) @echo "Spell check finished." -epub: $(VENV) +epub: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) + @$(MAKE) $(MFLAGS) -C graphviz all @mkdir -p epub/JPG @rm -f LAMMPS.epub @cp src/JPG/lammps-logo.png epub/ @cp src/JPG/*.* epub/JPG @(\ . $(VENV)/bin/activate ;\ - sphinx-build $(SPHINXEXTRA) -b epub -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\ + sphinx-build $(SPHINXEXTRA) -b epub -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\ + rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\ deactivate ;\ ) @mv epub/LAMMPS.epub . @@ -117,7 +142,8 @@ mobi: epub @ebook-convert LAMMPS.epub LAMMPS.mobi @echo "Conversion finished. The MOBI manual file is created." -pdf: $(ANCHORCHECK) +pdf: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) + @$(MAKE) $(MFLAGS) -C graphviz all @if [ "$(HAS_PDFLATEX)" == "NO" ] ; then echo "PDFLaTeX was not found! Please check README.md for further instructions" 1>&2; exit 1; fi @(\ cd src/Developer; \ @@ -127,8 +153,9 @@ pdf: $(ANCHORCHECK) cd ../../; \ ) @(\ - . $(VENV)/bin/activate ;\ - sphinx-build $(SPHINXEXTRA) -b latex -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\ + . $(VENV)/bin/activate ; env PYTHONWARNINGS= \ + sphinx-build $(SPHINXEXTRA) -b latex -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\ + rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\ echo "############################################" ;\ rst_anchor_check src/*.rst ;\ python utils/check-packages.py -s ../src -d src ;\ @@ -185,21 +212,32 @@ package_check : $(VENV) deactivate ;\ ) +xmlgen : doxygen/xml/index.xml + +doxygen/Doxyfile: doxygen/Doxyfile.in + sed -e 's/@LAMMPS_SOURCE_DIR@/..\/..\/src/g' $< > $@ + +doxygen/xml/index.xml : $(VENV) doxygen/Doxyfile $(DOXYFILES) + @(cd doxygen; $(DOXYGEN) Doxyfile && touch xml/run.stamp) # ------------------------------------------ $(VENV): - @if [ "$(HAS_PYTHON3)" == "NO" ] ; then echo "Python3 was not found! Please check README.md for further instructions" 1>&2; exit 1; fi - @if [ "$(HAS_VIRTUALENV)" == "NO" ] ; then echo "virtualenv was not found! Please check README.md for further instructions" 1>&2; exit 1; fi + @if [ "$(HAS_PYTHON3)" == "NO" ] ; then echo "python3 was not found! Please see README for further instructions" 1>&2; exit 1; fi + @if [ "$(HAS_DOXYGEN)" == "NO" ] ; then echo "doxygen was not found! Please see README for further instructions" 1>&2; exit 1; fi + @if [ "$(HAS_VIRTUALENV)" == "NO" ] ; then echo "virtualenv was not found! Please see README for further instructions" 1>&2; exit 1; fi @( \ $(VIRTUALENV) -p $(PYTHON) $(VENV); \ . $(VENV)/bin/activate; \ pip install --upgrade pip; \ - pip install --use-feature=2020-resolver -r requirements.txt; \ + pip install --use-feature=2020-resolver -r $(BUILDDIR)/utils/requirements.txt; \ deactivate;\ ) $(MATHJAX): - @git clone --depth 1 https://github.com/mathjax/MathJax.git mathjax + @git clone --depth 1 https://github.com/mathjax/MathJax.git $@ + +$(POLYFILL): $(MATHJAX) + @curl -s -o $@ "https://polyfill.io/v3/polyfill.min.js?features=es6" $(TXT2RST) $(ANCHORCHECK): $(VENV) @( \ diff --git a/doc/README b/doc/README index cbc0c425dc..f0c74f7771 100644 --- a/doc/README +++ b/doc/README @@ -1,97 +1,60 @@ LAMMPS Documentation -Depending on how you obtained LAMMPS, this directory has 2 or 3 -sub-directories and optionally 2 PDF files and an ePUB file: - -src content files for LAMMPS documentation -html HTML version of the LAMMPS manual (see html/Manual.html) -utils utilities and settings for building the documentation -Manual.pdf large PDF version of entire manual -Developer.pdf small PDF with info about how LAMMPS is structured -LAMMPS.epub Manual in ePUB format - -If you downloaded LAMMPS as a tarball from the web site, all these -directories and files should be included. - -If you downloaded LAMMPS from the public SVN or Git repositories, then -the HTML and PDF files are not included. Instead you need to create -them, in one of three ways: +Depending on how you obtained LAMMPS and whether you have built +the manual yourself, this directory has a varying number of +sub-directories and files. Here is a list with descriptions: + +README this file +src content files for LAMMPS documentation +html HTML version of the LAMMPS manual (see html/Manual.html) +utils utilities and settings for building the documentation +Manual.pdf PDF version of entire manual +Developer.pdf PDF with info about how LAMMPS is structured +LAMMPS.epub Manual in ePUB format +LAMMPS.mobi Manual in MOBI (Kindle) format +lammps.1 man page for the lammps command +msi2lmp.1 man page for the msi2lmp command +mathjax code and fonts for rendering math in html +doctree temporary data +docenv python virtual environment for generating the manual +doxygen Doxygen configuration and output +.gitignore list of files and folders to be ignored by git +doxygen-warn.log logfile with warnings from running doxygen + +and: + +github-development-workflow.md notes on the LAMMPS development workflow +include-file-conventions.md notes on LAMMPS' include file conventions +documentation_conventions.md notes on writing documentation for LAMMPS + +If you downloaded a LAMMPS tarball from lammps.sandia.gov, then the html +folder and the PDF manual should be included. If you downloaded LAMMPS +from GitHub then you either need to download them or build them. (a) You can "fetch" the current HTML and PDF files from the LAMMPS web site. Just type "make fetch". This should create a html_www dir and -Manual_www.pdf/Developer_www.pdf files. Note that if new LAMMPS -features have been added more recently than the date of your version, -the fetched documentation will include those changes (but your source -code will not, unless you update your local repository). - -(b) You can build the HTML and PDF files yourself, by typing "make -html" or by "make pdf", respectively. This requires various tools -including the Python documentation processing tool Sphinx, which the -build process will attempt to download and install on your system into -a python virtual environment, if not already available. The PDF file -will require a working LaTeX installation with several add-on packages -in addition to the Python/Sphinx setup. See more details below. - ----------------- - -The generation of all documentation is managed by the Makefile in this -dir. - -Options: +Manual_www.pdf/Developer_www.pdf files. These files will always +represent the latest published patch/development version of LAMMPS. -make html # generate HTML in html dir using Sphinx -make pdf # generate 2 PDF files (Manual.pdf,Developer.pdf) - # in this dir via Sphinx and PDFLaTeX -make fetch # fetch HTML doc pages and 2 PDF files from web site - # as a tarball and unpack into html dir and 2 PDFs -make epub # generate LAMMPS.epub in ePUB format using Sphinx -make clean # remove intermediate RST files created by HTML build -make clean-all # remove entire build folder and any cached data +(b) You can build the HTML and PDF files yourself, by typing "make html" +or by "make pdf", respectively. This requires various tools and files. +Some of them have to be installed (more on that below). For the rest the +build process will attempt to download and install into a python virtual +environment and local folders. ---------------- -Installing prerequisites for HTML build - -To run the HTML documention build toolchain, Python 3 and virtualenv -have to be installed. Here are instructions for common setups: - -# Ubuntu - -sudo apt-get install python-virtualenv - -# Fedora (up to version 21) -# Red Hat Enterprise Linux or CentOS (up to version 7.x) - -sudo yum install python3-virtualenv - -# Fedora (since version 22) - -sudo dnf install python3-virtualenv +Installing prerequisites for the documentation build -# MacOS X +To run the HTML documention build toolchain, python 3.x, doxygen, git, +and virtualenv have to be installed. Also internet access is initially +required to download external files and tools. -## Python 3 - -Download the latest Python 3 MacOS X package from -https://www.python.org and install it. This will install both Python -3 and pip3. - -## virtualenv - -Once Python 3 is installed, open a Terminal and type - -pip3 install virtualenv - -This will install virtualenv from the Python Package Index. - ----------------- - -Installing prerequisites for PDF build - -Same as for HTML plus a compatible LaTeX installation with -support for PDFLaTeX. Also the following LaTeX packages need -to be installed (e.g. from texlive): +Building the PDF format manual requires in addition a compatible LaTeX +installation with support for PDFLaTeX and several add-on LaTeX packages +installed. This includes: - amsmath +- anysize - babel - capt-of - cmap @@ -105,24 +68,13 @@ to be installed (e.g. from texlive): - tabulary - upquote - wrapfig ----------------- - -Installing prerequisites for epub build - -## ePUB -Same as for HTML. This uses the same tools and configuration -files as the HTML tree. The ePUB format conversion currently -does not support processing mathematical expressions via MathJAX, -so there will be limitations on some pages. For the time being -until this is resolved, building and using the PDF format file -is recommended instead. - -For converting the generated ePUB file to a mobi format file -(for e-book readers like Kindle, that cannot read ePUB), you -also need to have the 'ebook-convert' tool from the "calibre" -software installed. http://calibre-ebook.com/ -You first create the ePUB file with 'make epub' and then do: - -ebook-convert LAMMPS.epub LAMMPS.mobi +Building the EPUB format requires LaTeX installation with the same packages +as for the PDF format plus the 'dvipng' command to convert the embedded math +into images. The MOBI format is generated from the EPUB format file by using +the tool 'ebook-convert' from the 'calibre' e-book management software +(https://calibre-ebook.com). +---------------- +More details this can be found in the manual itself. The online +version is at: https://lammps.sandia.gov/doc/Manual_build.html diff --git a/doc/documentation_conventions.md b/doc/documentation_conventions.md new file mode 100644 index 0000000000..40526d940d --- /dev/null +++ b/doc/documentation_conventions.md @@ -0,0 +1,93 @@ +# Outline of LAMMPS documentation file conventions + +This purpose of this document is to provide a point of reference +for LAMMPS developers and contributors as to what conventions +should be used to structure and format files in the LAMMPS manual. + +Last change: 2020-04-23 + +## File format and tools + +In fall 2019, the LAMMPS documentation file format has changed from +a home grown minimal markup designed to generate HTML format files +from a mostly plain text format to using the reStructuredText file +format. For a transition period all files in the old .txt format +were transparently converted to .rst and then processed. The txt2rst +tool is still included in the distribution to obtain an initial .rst +file for integration into the manual. Since the transition to +reStructured text as source format, many of the artifacts or the +translation have been removed though and parts of the documentation +refactored and expanded to take advantage of the capabilities +reStructuredText and associated tools. The conversion from the +source to the final formats (HTML, PDF, and optionally e-book +reader formats ePUB and MOBI) is mostly automated and controlled +by a Makefile in the `doc` folder. This makefile assumes that the +processing is done on a Unix-like machine and Python 3.5 or later +and a matching virtualenv module are available. Additional Python +packages (like the Sphinx tool and several extensions) are +transparently installed into a virtual environment over the +internet using the `pip` package manager. Further requirements +and details are discussed in the manual. + +## Work in progress + +The refactoring and improving of the documentation is an ongoing +process, so statements in this document may not always be fully +up-to-date. If in doubt, contact the LAMMPS developers. + +## General structure + +The layout and formatting of added files should follow the example +of the existing files. Since those are directly derived from their +former .txt format versions and the manual has been maintained in +that format for many years, there is a large degree of consistency +already, so comparision with similar files should give you a good +idea what kind of information and sections are needed. + +## Formatting conventions + +Filenames, folders, paths, (shell) commands, definitions, makefile +settings and similar should be formatted as "literals" with +double backward quotes bracketing the item: \`\`path/to/some/file\`\` + +Keywords and options are formatted in italics: \*option\* + +Mathematical expressions, equations, symbols are typeset using +either a `.. math:`` block or the `:math:` role. + +Groups of shell commands or LAMMPS input script or C/C++ source +code should be typeset into a `.. code-block::` section. A syntax +highlighting extension for LAMMPS input scripts is provided, so +`LAMMPS` can be used to indicate the language in the code block +in addition to `bash`, `c`, or `python`. When no syntax style +is indicated, no syntax highlighting is performed. + +As an alternative, e.g. to typeset the syntax of file formats +a `.. parsed-literal::` block can be used, which allows some +formatting directives, which means that related characters need +to be escaped with a preceding backslash: `\*`. + +Special remarks can be highlighted with a `.. note::` block and +strong warnings can be put into a `.. warning::` block. + +## Required steps when adding a custom style to LAMMPS + +When adding a new style (e.g. pair style or a compute or a fix) +or a new command, it is **required** to include the corresponding +documentation. Those are often new files that need to be added. +In order to be included in the documentation, those new files +need to be reference in a `.. toctree::` block. Most of those +use patterns with wildcards, so the addition will be automatic. +However, those additions also need to be added to some lists of +styles or commands. The `make style\_check` command will perform +a test and report any missing entries and list the affected files. +Any references defined with `.. \_refname:` have to be unique +across all documentation files and this can be checked for with +`make anchor\_check`. Finally, a spell-check should be done, +which is triggered via `make spelling`. Any offenses need to +be corrected and false positives should be added to the file +`utils/sphinx-config/false\_positives.txt`. + +## Required additional steps when adding a new package to LAMMPS + +TODO diff --git a/doc/doxygen/.gitignore b/doc/doxygen/.gitignore new file mode 100644 index 0000000000..2539ab748e --- /dev/null +++ b/doc/doxygen/.gitignore @@ -0,0 +1 @@ +/xml diff --git a/doc/doxygen/Doxyfile.in b/doc/doxygen/Doxyfile.in new file mode 100644 index 0000000000..78ac614ca3 --- /dev/null +++ b/doc/doxygen/Doxyfile.in @@ -0,0 +1,522 @@ +# Doxyfile 1.8.15 -*- makefile -*- + +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = "LAMMPS Programmer's Guide" +PROJECT_NUMBER = "24 August 2020" +PROJECT_BRIEF = "Documentation of the LAMMPS library interface and Python wrapper" +PROJECT_LOGO = lammps-logo.png +CREATE_SUBDIRS = NO +ALLOW_UNICODE_NAMES = NO +OUTPUT_LANGUAGE = English +OUTPUT_TEXT_DIRECTION = LTR + +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES + +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +INHERIT_DOCS = YES +TAB_SIZE = 2 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = YES +IDL_PROPERTY_SUPPORT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 2 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = YES + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = YES + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = YES + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = NO + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = NO + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# The default value is: NO. + +WARN_NO_PARAMDOC = YES + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = "../doxygen-warn.log" + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = @LAMMPS_SOURCE_DIR@/utils.cpp \ + @LAMMPS_SOURCE_DIR@/utils.h \ + @LAMMPS_SOURCE_DIR@/library.cpp \ + @LAMMPS_SOURCE_DIR@/library.h \ + @LAMMPS_SOURCE_DIR@/lammps.cpp \ + @LAMMPS_SOURCE_DIR@/lammps.h \ + @LAMMPS_SOURCE_DIR@/lmptype.h \ + @LAMMPS_SOURCE_DIR@/pointers.h \ + @LAMMPS_SOURCE_DIR@/atom.cpp \ + @LAMMPS_SOURCE_DIR@/atom.h \ + @LAMMPS_SOURCE_DIR@/input.cpp \ + @LAMMPS_SOURCE_DIR@/input.h \ + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to output +#--------------------------------------------------------------------------- + +GENERATE_HTML = NO +GENERATE_LATEX = NO +GENERATE_XML = YES +XML_OUTPUT = xml +XML_PROGRAMLISTING = YES +XML_NS_MEMB_FILE_SCOPE = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# C-preprocessor directives found in the sources and include files. +# The default value is: YES. + +#ENABLE_PREPROCESSING = YES +ENABLE_PREPROCESSING = NO + +# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# in the source code. If set to NO, only conditional compilation will be +# performed. Macro expansion can be done in a controlled way by setting +# EXPAND_ONLY_PREDEF to YES. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then +# the macro expansion is limited to the macros specified with the PREDEFINED and +# EXPAND_AS_DEFINED tags. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES, the include files in the +# INCLUDE_PATH will be searched if a #include is found. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by the +# preprocessor. +# This tag requires that the tag SEARCH_INCLUDES is set to YES. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will be +# used. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that are +# defined before the preprocessor is started (similar to the -D option of e.g. +# gcc). The argument of the tag is a list of macros of the form: name or +# name=definition (no spaces). If the definition and the "=" are omitted, "=1" +# is assumed. To prevent a macro definition from being undefined via #undef or +# recursively expanded use the := operator instead of the = operator. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this +# tag can be used to specify a list of macro names that should be expanded. The +# macro definition that is found in the sources will be used. Use the PREDEFINED +# tag if you want to use a different macro definition that overrules the +# definition found in the source code. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not +# removed. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SKIP_FUNCTION_MACROS = YES + diff --git a/doc/doxygen/lammps-logo.png b/doc/doxygen/lammps-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..787d855a1c178405b12976af7f0faaf429c8aee3 GIT binary patch literal 13603 zcmeAS@N?(olHy`uVBq!ia0y~yVA#vRz@W#$%)r3l_4~zp1_lO}bVpxD28NCO+i(^Pe+6U_R_}S;9uYT_?wry{oNBvFuv8-Ru6eyos&G)OS4608*7u() z_%~UdUHqSQrQVsJzxQl$Y&F@C+2SiHC-dJpXI%q}wg$uG!^t5${EAZ+DhaOoWt?+M zWOlZK?(-XK*gr^wUN8Lg$Lf4n_KeM6(mji(nJoUgrgiH@_q?-vY`brp*vES=sx-OM zx@W&czvJ%rUw(GDe|S}QN4>9qzCpTJB}4!1S&ZxFTBgsrQ*mP68DpRF=;_6(&wD;^ zyE$`8`Sy1|cOKL-Z|`b+eaK?TA(xN@+vXF(6=Btpb039#{K53{mFJoH345mGW%Bh0 z`kT+5ywCCO&MOv=E*6VkbW4nWr3h&z{5fm2>s4GuM`dl(_R3oo2Dwk~;ZzUR3Jq4U)QY z+>Vo$oBAKG;3>9T&1BZWp19f2*^Q=WO1h!gluNDc4`fw4Zt; zl=U|2hum!0-ADVh4cArFTzI(a$NJEBbFRsA<<0gwC&@7{t^Dhkq68Czb?*)M*oBp@ z913iWzEZojhxh6R(S2;&-*kPDSRj|lYxC|wX5yZ^!An$a_U_NBNs#RK-Mm9}aj{g% zxzDNUrnW!RMN8k$DNcSK60kUT#WnvQzB^y{v9!H>xV-A;R|Ai|U3Vf%`UJo4ZaMzp zZ{BNHi}aI!9>21>@`>~{?#k~@L2n&i>c>t9c}Yd$@iwJy8x)}HT6nEijx@jmyl_S}Km zbINNE8kgR*l#gikw~Kl{O>nnu5nlzHQMuop=W{I5FD$LT^MlV_-YQ+wTK&^WsXxI5 z=d2R83txNiTc&pDdCQV>&-is-&J5x`*SM>!{Q07T(hp|FZ;ak{#B%;^t`9%HMVw{1 zw9d6kK@6vV+B{{r-mq#RqgR*?&BErQPJ|)}s?<9I8EQH`6utm8XRCblLuBk36qK z4L9a|wJhp8v-85|j$Et4bH{GTe77`Gm)c)>{z0|$#N>DKISu{yp4aTVywx+OrT9|1 zc3ymII)ms-ng5dn`q!FU9Dm$+ZldO2_t)xbyJMtD^anzlgfYq@+H-a>;Vh^M&6nU(Df{H@iXW$8!b=n^lkOmNT4} z`7Rn&m9}i{`_^%Lh2aLW{~b$upNnDg?%d?k zMF}-l4%ss}_xhH4Z*+Vf61ca^xoeZZakUM<^vB0JT8+Ie%RhFuPdOvAP)6d+t3y)% zKIn&88Zb(q^c_~7Pvrp){YyYXsP72v{ zCP#UrBEykC-XG>X3Mn}E|NQ#3A2!pp=t5oMfD5} zy1T1FB1(c1%M}WW^3yVNQWZ)n3sMzQD>Bm<7%Jwhos&6f&d!N0{~wE3F@1Y#!J(5@ z+-&*J#$9cDUZ$IobdYaQ=+tf&|9`#o|BvJLP3Jf6j)_{oIPCm-n@=5+ z>r4LsG`%ve11cPqtv{h7N@f5!a%ho8KDdY!v&kNXDu{qKH# zx87JUFH&dsQQffa)18M%}rl^=I`6D{(qxJ?ezNRBC_>Uza*;L`D`uDi{ef+!i*ZiL^@BL>`H|PF*kNS4^6AR++LH58FQfi%Z;iM8-eokL=^Fm$hq`i@C?Ve5_vAE*&kExxDXx zn2nyQ<@@JRhpO*?yqDj4&ieg<{$mFYGwJ`FzW?t3Z)g8M*}gmcq*zl==j+4A4+a*V zHF{$C_oV;B2?hJ>w9g-~udBcN|Mhg4*&h-r)86G2RQ*_&Dzk!TWjZ(AaCuvQv=g{O|J)K=Y}enM`!Jv z8Wx?sx7V!t)z0a0)vx#V+quhd^5`t?Gy5fxeC~x>zDeb^C(qU6H)fpNB)ah*}?<8#dnHonf={eI(f&UXzW>hp_UWiFpz_)PU$-mah1qVsqE?X#}0 zdi(n7{=fhD_lWI_>pma+Yv;Gi*)>iZ)JXQQ@ zro2M5)K{?|7(#H2T|6MVA?^}_>3D?!H>Bw~5l)r6eUY+)IY0uGF zrys?-J?iyJ`FxpQJXvz%#u=x6KR9&bo!y>a>ntAkEq}M?6-Va73zygZY)-6s=znKB zTa3pmcIH7?t*<6YQ%hLsyQucmBH=&|!VX(krvsC%gB z?VU>z(TkU@ITMv;*}}#)f5*xjsY~Da)t7B?yZW*{%0Fv_?n)0FvNZ3^xikq&KrBbyq+J{R($F0?ipvRdSh(0 z=Qb>Sx8Tsmw>oF~6pxDrC8^%a656f&uUu|A&k;k5U2y@QzQ}fSM!H3bMcz^rt9@B_ zRpidTH%mfiH#%6SC!N@9P^x5kD=1*XqqWnvoIYE-+*z%+^F8PO+H3PfJ!WQF&k)%t zz`RYlsC-j)%ZEM2b2mnN&1jqJ9I5-(uW;s!-ZRIS+HTCQd#TDRJ-1YRHlLZ&IZwq+ zLQK|AUw1ygd0eKN{g7-=rz6KyKi)Mn=BPSz@@(2TYqqeo(7LbJ3X-;atr0M;7H8#N zuRk+}Es*V^=;OGZ^7+gfDf(%QPt*^cD`VvDz56@s`1QDgIr8PAWda{~+b$~eXPYOe zK4e`aEW-7s?9&&6*Kyg0+)}nST+P#s%k*kVX;N)3F3NhK*Jivyd(RBU37pT8T3C0k z33rUDvDkjN-(c(Uyt%#4XBAj+u&xRHqw*o)JafUOBl9$QsxxQH$)wMm(jj)wZgO-j z^XwZlu2@f4?bR2NHe0<%IsDK8&-J%&KDc?o{YFdC7CVr>AaX}@ZG7DM*T1S`_1<0QKA4_R`oPwVQEq~>>&ocKrd{oKHyrGl zC1xkV;-vG2FU2!DZXIMQ=F%eyzRd#mzoLv-XOZL#FVF zDO^3?jkC^aB)6`*;J#Yxc}|;1rPypq<7OjXwyPaW?HGAdLNayT3#`o6UeB5Z}P9M#)F)a0|UTC_eF8I>Pa-+4v zXC5r@(#c=2iSfssJHPB0*MB~>;l0I^{LD4Uwtg!Fkn#b$8 zv`rYVr}yw5n)&sqKhw>X;ZKTJo?d0`a_iyAFsZNN4b1B`Yn`LtOxG$mpIBFZ&?hkC z=Zw}Fr#`T}=-qR<$#kb5XXF#JYD0z-Vm;yOR~s-Zp8B^hFG?WHzgE^n>HYroN~>1p zAD!sRyX2U<*4n0ksa1Pw4P{O)4N}NhFFMKeCc|#U zvm9kXoL(iG;lf9%_OwJOsL3|)?|tz#ZGuFKwTNGVeNu#WwEwOK<=Z0O%s=PR z#A0$&$VO=1p%6mu00)U0qxf8g2(|RE-rjBt#uyyt;c= zMI`@|)thCTBM+@w5u=i={^2L@J)!6+-cO#bPhlz4zHsZodeIBF%VP6yRoebxFkpJ+ zyloBl=fiE94y;B;Hyz4p=V9ZUE5{+`t)*LF{gCeIlj-bGO@_@P8%P=$&%C?3L1mrp%QByt3JiIledc+5G~R9M-2gRhKJAfx`Jr|CjL{~p?( z?7Hu{uc$KkV1Jy)CACY7f*a)xW7kfa_(03!=9fh)HBP6gyygqmZ}QzJI_=)1&!%53 z;w=KMtkn3ylf2dSQRPvM8}jj%$>uq8?f1MeW{_NUBkk*yqkbve5_(F_>P+b(o7fC3 zF6i;|-5PD8+wGJUhwLwg!ysxabh?mFvu>3wKq ztV7V66rqFH^>AWh)3*WnzWs6|tALCf3EduYtOM2L!9@5@i;x-}U^_65+wgd|=Y33=t)0RI_ z;8Fd4Elj2&xIYlPjYp4H<6D3znR%n`D^04`*GM}lW#_n*ez;a>!gid2qqYl>qu@1p{ zs}u8&Rx3Ll5fVO?mLRYw^~<__%%VaKYZSDO$bEM>s^LC`;f1Gw?MW{4x+%B5FfdPX z37;I$^1#hyk`4#ILu%})OyT?It8(7&5Nc7m;=U>F_L2<>G0Y6ByN*d6R_|J{TcRZR z5l`0_?Rzc{mm8V6oxdixcgC$>p%IUoK4ibne}2KTi1F0sDJw&Q892O-Bsp$mD}Th< zr{%A9gyo?7>42^Vu7eRXPdwYmuHo(Hu|IJA4Y_EZE5?hMBbL2#59HN87-+0&CALD( z^psd2&-=4e)EJ~>BtJLX1n?H@)mgdG!%0+W4bS4LhpV5N>Fjr!ZuMwK#Y*mb-4`Sc zrdfFY(5w8tPg(4H3x0FrS^hwfXhRGw#-S^{lTE4 zu|&)0^|eT?_t!(E56W^K@eIj$rEj?M9nUo8<)IgiKQWmLaZZ|W$z#J>jg!gi9xq?> zj`f=I;f2{tOlI8T8ZdhA`e zRzQH`ip2xR8Jb4(swQBN{mhI8J8lu0r_sm;0-L{nBv_t*M%*Jg^N4t+V z3%yy@Wvk}-viGR4VH6?1>-fBtl|dn#?afyM=giGe@BY(Z z%V+AVnV2`B*LmeCv8W)~ZlS&9@=r3ECFZLgauRfLU8VEt-Bo|*`!~ODX?-z+<;jv= zOy(~#*NdG96Xh0HWqaAQr8dmv*4f(|4U1TI3pVL!^t`Ng7j`SKS#;e;$l}R;v6dBk zWR*9HOc8$J9FrdEvSQvsVPl^kGru`8#Ji`-73GFk9942l)ZVLjQu`6lu?qj&3sTg> z1D3L!tL^pciEym5*DMnHHX+)gqVR%ulE@>MSB@^M(GF@R4_V?q_I>%Kv+At-EN2^o z1xsAxKRyfLZq!XR_^o&1M7Go3V0jhZuj-3EJWM9d_DB+bS)#Q${NUP`YkB{!4W6+g zd1?2v0*z44ZO&S17c)10FtbxR|5@~_;Sa5&9B;#a&)AUG~aY-nmd;iCIE?=6>!gXAj;s%r^Mg+!?*+ zl!nBqekb8|b8K98OmNP3%sO6s;^H@t*<5}L?&$;Hd9Ty(#U)yo- zP?v+@sf-IuR|K8^F)TZ>C{WYtgXWyJt4w-pf_U|BtSC{qqaH9bplIXu1K}4x$Lg3o zn-sM~#E0{RtA?a0m+V!);?GI1H*vgQ^F4iKz}Ko1vphqTE^6&r5_r~K;e>RcMdv2g z!t~BX|9w|XnATjN-l8uhm3z}gh|Nr?>h$t=ZIv2gtbY>A52W_7XhjLkGPSboEXkG& zC|~7wJLG~;s{gzL{~32N8s76vQ8-X=bCRl2t?r{w$3jC6u5dZL=o8zcmsh++xEH5w zkldo->9f}(^vt@|x_m1=KSZ7~cpdnt#B|9bcK(7DN|7};RxW4z9-p&5C8bt(LUhp_ zR-Kc-cU*k2d*Te8XF{7Y_6DRc*uh({}Ew|9-T%8|fb?4N2Ezxr@j z!SK(<6xp;Di`joZ{^+gSa=rZy)4LePuTdKevtCSVFH~*+TJ+Ns_(JOq-@F99r*D0|li;pmS1;^}b zijWQyPF!^4Z{=CvHQCo5ENE*}d!_E0#N^5#Ejdxs$oH=2z5r|2zkE&ln$tTEQ9J-~JGTdgnS9YzF?Oxk@|0N4oiZk*Aly&%pn7(Ow@=?MFIOuOGO!!bjV2QIzI2rYmaRqHC;F zk3<(csQWQL>)dec8dsa!-1nS5imIC5j_{gHxXa6;p=IjvV*XmUH&r*-n@>NxeDYFiwe)5g2QR=9j`#_hs-H`W&%4VSm!%gZ& z3wPSc?&9v=xyYdNjKVUn1~sKsstt(>PMxafD$|&<=2x*-T=-_7UM<_$+pHY&WTxcv z)z=+wD%;*p3$a@FI^k=yz=d~Fcq#q6OXK*_6^I` zrWj2)oFe%9aL9)CX)+@HM-(0}mGIe;le5+R!SN?-s<}bi^4j}@BrozUQMur+!g%Y) z%8#rT-no1;u2>%6mYDH-_Vo_i+?|{$`HRG!E}ph)<$R9IZkq&h;?A;e-Fd(#K4xl= z`n%mu@)F_Cdr})`zLK5u>)hc&)gOKmf#z!KlefNgWzsn_zue+woX--@a!1PtmsF;! zWpq2(HXpKRd*qfG9Z)x^&!x{Z^t14RNCTgFR;FvOEbw&Vd?a4fmbEM7{leh0zYCf^ z-D5fXwX}6<+6B$kp&_D%eM{cmzIpD^kqlN=`NT8HD}H|P)_$TLq5DZIvmtB6#>pjWRn0j*=Yr4tIdW(N(@PTzmhSl9M_QVqHD0o9USah$-p=xa zVCln&qD#8^978h$JGzY+W(Z}!E$3dn|EKAO9gKDF4!uj+aLdN?U1f84a;d(jdf7*p z{EL$OEOSyG>Tg;ZT65}KRDiI2?1E={(JQY`e3Y|xbBfsgqf1IG=6zSHxozRyp;+T8sm%kkB@gB-KNTI5d7;M0icTGnSX?b^Oc zD<>q$rgeGhZ}ec&5bG%j*l>WwQ1hAlo^$2zv>Ga29rCd1IvQoQlx5d_hsJ1&#s*0- zlhg)tj+b@@YqRv7_@&khM^@YN_2_i%SYlRE;ki;p#;g6m1!uww%O#UkD%MFav7IWe z_3eehOV5xJ|E(`W*yjI8Z{MzV$mm56d;0k})y6s(H66+d1~6gkf{*go(noVIeh* z1y>Th)ShOnn%v!a)b=MoYoia>>R%00#kuCXN3sa2n5=)H_$c>b(jC41zCQva`Cc8I zrD;`An!p<~t@>lCfM{cynn%jBl>r=o*p9vsOL>tuCF+IUqadEnnBA9F&Eh{;yWMx| zWzVuJUDp|NR%Atd7M`21;D!7JVLo<=$B9>d9DTsN+3IVTPr6i)XM6ntB?h~>j%~#b z1_7^4m#a2Sj+lF;eANX(1NXZvvr5ulbog&!6$)8DOX1ZWm8pCh>DE>gns%(*Y9wfE z;N3CZeVGQAHrou@t1g9F!kS!;_LD_37#QBnTJTU)=k6O>_uuzi4$Pj*a=%S=!c&3s z;uWr}vL#FXcC71Z^ay&XRG2<9hUIJc6&?TUK0WMCSI-I8c)2G|Ul*w@`yl2)f7MO) zLKWRki}~htVXbvbqa1ufZ=YF^Yw>Th&gIM=zqJ~Bv#wk@a{lP6PW7Och?!B_lIB11 zu3c=w82BJt&uZVB89{%IEPSSD$d;u|4-Rn1XvA&Qh<|X*>a^yC@GRz+4$p3{d!=~r z2dC7REo=;SI|K8cG(Hep8C6_jxa$ABWO4b%4HIO--34|OaBp`oOMNJv!VstLmQWtR zc!ZU;{3LgZd-?0H%2y4PeT47)n=r%3{;NVv=cSgrJUdwTCw51CJ87!imerE|c50CI z^{W~;SgSi3zg}ud31lki^a+^r@S@1&m7$ITdvsQ=+wNz5c;N@e%NecD76f0>Xq?kH zcgBW8lZ31lYJHb`oH)HpP~YvFPesKQ$L|Y|bguWkdho`D-5!B1b5Yl8dNG^4gnb){22>qoWy+sZR_lk=*M8RBQEnO5#t`*`}#^Y`DcP~3H~ zCdK5!LaP-QCvWQXUQ`vdeY44$s2_Y+IzyU0}(P85O*vi8Ijl%e2(+^KlD2m=CM+p87d^m>6A`_rua-v#BBLij$Y z_+{UW>SXgyjJWZd!T5t?SRIFw$J2Z3&3(m$0`7Wu-Zhwz+>v#WUA&^dQo}@p*=gnu zzFQ^U3-?{j+GI9Sy23wor94@!Fm3&tQm?4T{Bs|#ymO%c-E#gF7wb>4wfJ22n(}0^vXN|bmVwS2GKtAm82FU3UKMB18}a)*DPRp@i%;)cbY zyH+LkO}$rh!sX0^D}57Myxp~yrfu^%yxL|*sPET`CdDj|zFTS^OYTVPt0#O>M?hi~pnl5t4y6JQJq39C}0js+gCun|^U#=WFd%oz+icd+o7H@sIgi{{;cFyzF z4G@0EnshtJJ#BBFn+zXs&Lf+x87U$^yOJVhV~v6*x3F2@G3O*>f!LJ1L&vUa ztZMyZQz0v~a9guqW8#zWhE$={27w7%r z4f+!%=w{eldw%^X%jpBJ8!hU5&sN)?Z3;+VZq)Ra%kGe9#IF{>dAZ!uhtsY6%8GZZ`PZYE|P1q5_j?Ale(j@ z%f!^QQ!qwpD|3Z(SJm~0CX-XkRSPpNtzOaI!PhZsg+{7-VZ~Pg#)x_R!kZT-+jJFw z`CZKO*Q%pW<6`I5Su87NtmgaQDE#P|KYQV-W{tWwrM02Ouj1ULdS|V>$XCiQb>Dkk z%~rXza|_w$_}Cs=;hnl?RlDcG$J6;LFRTlQ6X87Z@?i4%%E%k*{nj+zYMmJ$ZmhJ* zHssl(q?2=0ZgJ@{o%(Xe;m*D5UsUhy(mUc~U%@Ra=yUexVu>t)#HOw0At&mlavYF; zu{huQ#j6#E%|EIfF`3!fVEKrt&SBk!N{@@5EH#<06=x}3I?Qh?`sT92ot7(Zy${Ml zRp#w5$?dM5e&ocyS(jf;k*s{n;jeko!=7K;=uzAc|GAeLYz}sqGVc+-tbDA%<&s3` zeJRdca>A?n-zuyxNLr9AT>EGKFE&|?Y~Q25e4QFqGv<8{(%O48vR$x~ieSLEbg&Rx3w(C@S7+&H&$-E{ezVw!3GTS0Fd zA4}~egE{RX!53%gMXgx>we3Ywfr1(Xv+``Vg>LE}XJ-i12py9;e5tc0QJ-b)4^CHx zy~`dy3E6EWp<IjGjz7$2U}&MsB=uaBhF{!IUnyMF~-}j%vKQ zEORM2?f(4V)l2`d)riCg2bt?C_-|NaKK(-JbI1Dd*qngdj_kZv!L8SGrk8rA$S`Kz zc7JWl`{-ffa=VvLlJ-ioxtsJcZOxzQyimP&U2aX3Vt~ESB;RQgcHL3)U0JuxzMf#) z!Y1f`wE6cn{;XBk`6nmJO8u`a%RL+;xn5gA(k-lcLYLv;%UdhLn6kg+2b#N@{IB$J zDdYW|eC>Ljisjuc`9;ln(#tj-t>F|uTcdJyV`^ZL(ZN--R4jb7L+0-NY@iVOb9rUx z_0s0#%w0}@Bk#w%w?DbI=GK)PM*SHFoG$CMH0*jYq0B$S^KvL>Y11>6O$YyYG^K{j zwGy8<<%-zmSDD$q?Wxs*lYdwLGhO59{pESjLi5VWyE~*9_BU6(a%D7>?{tY$SaJ1; z_};x{0&PLu3Z`Q2|4Z&Jy0TN@z#Y}q4{us9w{@Br_D(!pyY5J6!}T{au5M=I`|8o* zb;X1;e}>2LRmw}5JLYj##l|*={_jipyz4x3(`wT%d`?_;jcMN+dfs&2y8LVQjn)*e zTUiI5c6kNpW_KyQX`ZnrEAH#!u-R-5zF*os<>zbm!&|OicDNo}>Y;Jxtx$lLiS#eN(+pV$O(Ry{3V9NLu^{K= ztDc~#eea_8WLtX`F$f2(NqozzdO9xn#dSYZi;}vyE>hj{bVQ zeCrD5w`!9-c-g=FQ9bs|=xsf; z;^R@1)GAY%!siM+rQ2p~l)o`)rPNM6UnRkODd$%o@3I#3zJIvaX!`wKF3XE~&$c%) zILNw6s4S72vFxVN!jLQdo}d1&a9rNGrgZup*;7idLwH+`3p71AoxLqDBvm$cf=YqX zmug8V&(O>KO$4OnEh_$KJaPzn>O(avvvkQ`ni3|i#ab9tA6j9VWT?X z&r8;`RXXmmj*q^VIbT~l`BXC>~J zQd)9Fl{NR0gofEOM+y6l4697CU(EV?`QyWe!|WUOZ@td8{Msuubt{+hzJ)f|;sx_& zS#4XkT8Qb-4K3D>CA|7PALUCFtT;oW?DQWmU2?r=(i_G@ag29s5}#=pGWLCK_FC)_ z_*gS#Lw8U^)ub5pQllko?ep8O7!NpWnyB3_lB>ljwesmuv&kb^U2(W*tqf)-~vIwzhf zpU#-S&rjMX);oyb%e!fgspOVb(H!CeA0u23@kf|Xn|am5C4bpL=gApr-OP&Op=8qvCNn$M&C@veT-sSRGklt@yo-ZO-rhu((id{mf^aHZSJAxVYq)*x7gg z_Eg`T5@{MVZCy)4cU*&r$?X{>^OpRUu=Pqdo%{FQ^@_VKETW7-%km>`@VQP;x>DM` z=e)j9Dm>yx%PF2TCcztxi)IDz z`KCHm{cbt+sFH zVzF^#Ynsl!uJK)9YUuIZcRB5|6wd1`*yK{LD0KBs_AIk@y#xV&kidwb$8^X^--GokBf<@L~&^PQ*jT@IG4TU7c?z}}AAKUm_v$3K?44`d#^ zUcx2%KJP}wr|jlMmC0WdcKI>yei@agGQ%f&#)Y?Qvd!bn)k@yZ`8z#)rl*~{(VF8S zLPC~)_qyho)E+tJ78P;%>k_5PuA__j?qp5SVY*Pou%J|6ZKwD0!{MrzpT^dHv1*W! zN)=eb@Q-8W?_aj%dPe!_B3oD;e4FFn_BtyzgdMsuQR4C2M{05X8WY(PAH-VC42_Q1 zSjEXxah6rBsCqi9ze3t$J*kkc$2p~c6})B^G(?DWymaXO#BtFs*7m}`(;@pO2=y#j zy=ze);{myOn?KB9awvD@ES6ih+TeFGQ|H2uIR!$hHY?;gdjkX*G$yWCut2$lBh<(4 z&;=2bGxLwUajGeL*Xy$`U}1Ui@%<4>`E}n;2z^k#xAE0y^G6G`l26zu45`w|-aNrR*7M-zxl$ zTwGY8cu!i`BgynaV@&nteoZRNNj#`C;Bv#R zC(kcV{1Re*IDV_ryO6?yS8KU?JSH!zTeeOd^={h`+UIkV<=8dunen_OA2 zvS4P4cclCK27}8>%}cm%Eet%m(0&7F?CNVB(iiVf=h^z_S=P`)edUuTsxeEI%h;=;v?mmcosolvqboD%sx>QD9vcZAgZh@G-Fc9 z-gHHulGG;AQs4Qn$}G38&f=RfYvt#b1)c1;} zTM9Emx90y?qsbl7XJ_bsef0-t(O01?4sNNhG@kF7e|y#oW!{p;m9OrsZ0Vlh8*py1 zbl9$_)s^cPa%(o7WJ-D&;=^9>YO$wHqE(N7&RLr~R|M01-p>emRF}pDvj0_;OF}@Sc93jV2eEl#7EuhZ$H;mAJTTR|~JkwaEwX>1|v6&A4-k-MUw- zDN7D&n$GXPclFAwEpuk+M9;5PY@X}B=D^SI#h4v`=cMPrmf2X@=c9iSMZA)(YX5LzqwD7ivXSv1u z5bcSnFGEBvZ=9Ia!!yUX*ehwf@ykQ@M?}?@I;t70Uy&ul>mGl=)4ysmcUIt{)q1QP zF4FmYFQzF;o=@(bzm!k+?jn{~cOtB&PG1lxl~wjBL&im3l<7s<*{}0?)GN07ZvTEi zM`*#e>FXq?nm6+(7yZ)V^Jsjvme-fXe$VCOx^I^3e6X}yWl_O_-esm=C+bLD2+3zX zSokLPg=z7J@}oy04^5n*y5+;-3^&b1?|bw8CX{Eh9V+R6X}bE9@VfX7-VfGBGp=`u z?en|Wmv>@=YiWpyp?6Wk9ouc?j((r5mhbluJY@1u(n-1Dmd}Ni8H%BT;eveOCxTb{ z{4QCe_Qb<@ePaQG@nXGicb9C;sb3Pw=)EF&Ns*lR;=J$jPU`PheU6QsG9#Q@Znns) z|5NY9}yFuA+`byj@ES9$p>+x`FElX`Ny)=SoQ#`PAy#0{@q99}t1T_ap z^{tL|d){^DUh`U&oU>zt-9x_n56iEtv-4(_VgB)X_ltikoK)60ByH7M%I~p*pXEVL z$_$qO>wTLzUX|xP-~a7Kkkqe}W?7!80Vaw|pZ(hqKR_m(+FP2t$8D2lm<}f+*s@a+23Tx;2B+5(8-f?oJ{^EC* z7XEMEEb?EcHH)|1!R>Cl(&duPN?~_j&Rurf^H+%YCzgY27cG)jGTgz?d(rpUz0%H2 zC+<6@Gk7=u`S9&W-h^dS_J*Y9y?=h@^Q*}decug(Q+oiFYgHc^Coe1JEP$>M&T4; zC1r-T`@6kUUSCeE;AQ1hKHKBbDmC|dESoFi5w8^f8jnSm-|bsHsxo;Wo!iF1z`)?? L>gTe~DWM4f3do$A literal 0 HcmV?d00001 diff --git a/doc/graphviz/.gitignore b/doc/graphviz/.gitignore new file mode 100644 index 0000000000..b134fdb6f1 --- /dev/null +++ b/doc/graphviz/.gitignore @@ -0,0 +1,3 @@ +/*.png +/*.svg +/*.pdf diff --git a/doc/graphviz/Makefile b/doc/graphviz/Makefile new file mode 100644 index 0000000000..fb6411379d --- /dev/null +++ b/doc/graphviz/Makefile @@ -0,0 +1,30 @@ +# Makefile for generating images with graphviz +# +SHELL = /bin/bash +BUILDDIR = ${CURDIR}/.. +IMGDIR = $(BUILDDIR)/src/JPG +IMGSRC = $(wildcard *.dot) +IMGPNG = $(IMGSRC:%.dot=$(IMGDIR)/%.png) + +HAS_DOT = NO +ifeq ($(shell which dot >/dev/null 2>&1; echo $$?), 0) +HAS_DOT = YES +endif + +all: $(IMGPNG) + +clean: + rm -f $(IMGSVG) $(IMGPDF) $(IMGPNG) *~ + +ifeq ($(HAS_DOT),YES) +$(IMGDIR)/%.png: %.dot + dot -Tpng -o $@ $< +endif + +ifeq ($(HAS_DOT),NO) +$(IMGDIR)/%.png: %.dot + @echo '###################################################' + @echo '# Need to install "graphviz" to regenerate graphs #' + @echo '###################################################' +endif + diff --git a/doc/graphviz/lammps-classes.dot b/doc/graphviz/lammps-classes.dot new file mode 100644 index 0000000000..408ab36f65 --- /dev/null +++ b/doc/graphviz/lammps-classes.dot @@ -0,0 +1,90 @@ +// LAMMPS Class topology +digraph lammps { + rankdir="LR" + La [shape=circle label="LAMMPS"] + At [shape=box label="Atom" color=blue] + Ci [shape=box label="CiteMe"] + Co [shape=box label="Comm" color=blue] + Do [shape=box label="Domain" color=blue] + Er [shape=box label="Error" color=blue] + Fo [shape=box label="Force" color=blue] + Gr [shape=box label="Group" color=blue] + In [shape=box label="Input" color=blue] + Ko [shape=box label="KokkosLMP"] + Ak [shape=box label="AtomKK" color=blue] + Mk [shape=box label="MemoryKK" color=blue] + Me [shape=box label="Memory" color=blue] + Mo [shape=box label="Modify" color=blue] + Ne [shape=box label="Neighbor" color=blue] + Ou [shape=box label="Output" color=blue] + Py [shape=box label="Python" color=blue] + Up [shape=box label="Update" color=blue] + Un [shape=box label="Universe" color=blue] + Ti [shape=box label="Timer" color=blue] + Rg [label="Region" color=red] + Rb [shape=box label="RegionBlock"] + Rs [shape=box label="RegionSphere"] + Av [label="AtomVec" color=red] + It [label="Integrate" color=red] + Mi [label="Min" color=red] + Pa [label="Pair" color=red] + Bo [label="Bond" color=red] + An [label="Angle" color=red] + Di [label="Dihedral" color=red] + Im [label="Improper" color=red] + Ks [label="Kspace" color=red] + Du [label="Dump" color=red] + Fi [label="Fix" color=red] + Cp [label="Compute" color=red] + Th [label="Thermo"] + Va [label="Variable"] + Ew [shape=box label="Ewald"] + Pp [shape=box label="PPPM"] + Ff [label="FFT3d"] + Re [label="Remap"] + Gc [label="GridComm"] + Cb [shape=box label="CommBrick"] + Ct [shape=box label="CommTiled"] + Aa [shape=box label="AtomVecAtomic"] + Am [shape=box label="AtomVecMolecular"] + Lj [shape=box label="PairLJCut"] + Lo [shape=box label="PairLJCutOMP"] + Lg [shape=box label="PairLJCutGPU"] + Te [shape=box label="PairTersoff"] + Bh [shape=box label="BondHarmonic"] + Bf [shape=box label="BondFENE"] + Fa [shape=box label="FixAveTime"] + Fn [shape=box label="FixNVE"] + Fh [shape=box label="FixNH"] + Fp [shape=box label="FixNPT"] + Ft [shape=box label="FixNVT"] + Da [shape=box label="DumpAtom"] + Dc [shape=box label="DumpCustom"] + Dg [shape=box label="DumpCFG"] + Ve [shape=box label="Verlet"] + Rr [shape=box label="Respa"] + Po [shape=box label="PPPMOmp"] + La -> {At Ci Co Do Er Fo Gr In Ko Ak Mk Me Mo Ne Ou Py Ti Up Un} [penwidth=2] + Do -> {Rg} [penwidth=2] + Co -> {Cb Ct} [style=dashed penwidth=2] + Rg -> {Rb Rs} [style=dashed penwidth=2] + In -> Va [penwidth=2] + Mo -> {Fi Cp} [penwidth=2] + Fo -> {Pa Bo An Di Im Ks} [penwidth=2] + Ks -> {Ew Pp} [style=dashed penwidth=2] + Pp -> {Ff Re Gc} [penwidth=2] + Pp -> {Po} [style=dashed penwidth=2] + Up -> {It Mi} [penwidth=2] + It -> {Ve Rr} [style=dashed penwidth=2] + Ou -> {Du Th} [penwidth=2] + Du -> {Da Dc} [style=dashed penwidth=2] + Dc -> {Dg} [style=dashed penwidth=2] + At -> Av [penwidth=2] + Av -> {Aa Am} [style=dashed penwidth=2] + Pa -> {Lj Te} [style=dashed penwidth=2] + Lj -> {Lo Lg} [style=dashed penwidth=2] + Bo -> {Bh Bf} [style=dashed penwidth=2] + Fi -> {Fa Fn Fh} [style=dashed penwidth=2] + Fh -> {Fp Ft} [style=dashed penwidth=2] +} + diff --git a/doc/requirements.txt b/doc/requirements.txt deleted file mode 100644 index 045559d8c4..0000000000 --- a/doc/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -Sphinx -sphinxcontrib-spelling -breathe -Pygments diff --git a/doc/src/JPG/lammps-classes.png b/doc/src/JPG/lammps-classes.png new file mode 100644 index 0000000000000000000000000000000000000000..e673299e9dc15c240a720820590c7e5620269e0c GIT binary patch literal 250470 zcmeAS@N?(olHy`uVBq!ia0y~yV7|@3!0OGx#=yW}WWReU0|NtFlDE4H!+#K5uy^@n z1_lKNPZ!6KiaBrYmPd$$-)8$zJ^da_j)?0~q28%1)xEJoZv=BRzJ>44cym$3O*pyt zV#Ym*iy9qLrfOYED*}^+lFbjwZPeC^n4smFaQ^%8J!{r+bL`l?S?BxvUC)@(&Y!7F zvxuHI*Z8?civW`g1T4{3^xCPcpacd+ras#`JHVi%=cJh+7)!*CpD*~FDn*}8#G|DAhz6hz^c5zF2=9BQRX6Ir9zqq&} zcL%nKGdN=QXy{&F=XtX9-KQrfKNo%b7Bne(DfP3Q~B?_YS&xG z*fwmNR`={w>~w8i-V^wFtY5y= z_P+bkuAobEcVAh>dS$(S>E#XEuivj!nfu}6N5_Drf1E5;7x4Sa9OQ zl_3Y7o<4AL@`0Vj2U@ugEcHIHxBAj!K0b%Dvx1s_owGi$A@RKMwN;^}yQ^P& zbMD;H+x}i$1;4j_VLjL@eSW{rjlI#om=tYg12mRAUJ>peC1uJq%al3m%7wEV1q1~r zz5!eG&$g0D#*%4{g`)0qKhM~GYu7H--uv|x<6LWR``6c|3I(=0y<5?J{Gg-NvR_}f z$_KAp!eaCNbSt-bL+$T|)YD6TA3r^P`lNTue3#B&8}*UPLQpV}^JvQKj*b$2+gPu4 z|9^S^`gvSF$mr!Wwk>(QHUBIhyyZ2?TXS>j?JJs7FNyx1W!f0Gci#H*rzWlY@c*m$ zhwt|fTw8l!j%84#zW#z>^~}u6Zc;mXJ32ageIeU7LgGi@pcu}_VME4>@rp?GBz5j_q)YBnb(!RV)^ot`NywM zH9~@dl7?!xU0gzHzQ1F%|Er>U!@b|Dx$ox>21m!Bpoo=|?g&ncS-0*$1LGwohU@E@ z+4&fDmoYAO_l~`EztY`n&+o6yr>0IejZsoky0m19HG`6pR$@`nk|pQQ^REcw{qcx< zWpzcth7!}V+hz$b0@QBp3R}!(kj5h*sCbw8|7raoC%am!2k-bw-s{c%{U&FpvZ|7j zlEFgW|uJWkb3f_-@f7hzwlYxUTr?l zz|X&P@!~yK*6H#tDf_+6mMBzK)I+A&DT(vo2j~xVd?$%I_=9w`kspxFI|1xIGw3i%CopqSWs|c+{eqpf`Xpm*6HV1 zc9k+mZDUy%!??_E>LgRGpKsnaR(@{qp1vgTQS>&JX?m zuJir)7M*ZbD&e%)fupYPR(QzU*f!SwUh;cq`k4uCCiTBU-mU29=j39v=Q073-P3IQ`t5MyG`rBC@WnSsAKlXc)M9 z&cz_Dr7pkE+c#cbzBKdBq)AWuPN{6%``XXbdb*1X!{l70$wD$RJPa0vk683#cc~Pc zqj|Aw-ZN?gdr2dhm-2_AKcoS9rbk1oH+_D4*hbr z8!|2`bxgWoySuXZ!T0-1Gw)cHPI~rIZEjNa^|_PE^oo}*Tec`{ZPbUaU#D7&C{1Dn z`DJ0yN&zXUuI=}#xDR~hSF7B(eY^YXYioH$rC!ePTIzJ^bzJ9}bJN)DHgB9Lq-SnE z_ej`;Nq5}Zd8OGHICyzmy_TNZeCBXF|Hs$s_bVwV9GI|h?>wv0CHhfG$&LS2BbKQJ zF4Gshaj$f_%6xA{mJqGbea|O$_(+3n25C8T=Z?(k@bzpAIX5;i-n@C!$ldkVhc`Ek zckI})p!)ke4qo1)mml3J{(UnYRMh#~Gm2`xusdNh<%!v?RiWBfR)umK8X8&@JaCwo z>g4Qvab>Xj4#@}I+;dmO#m>5y``j<#s@BfM7k6G$@9!e_#l_S0Vh=r^U*8wCHS6Kr@_UW}0RoR6KmHn}etY-3DPM{` zU6#&JP+ELp#Y6$)bg}%~KYmms=H}|=-PxhoB9L@*Qz}!#i<_I5yX{=R@0S}xoNs}jc*YvC}uJiG&s;Zjz-<@Gm z($TI*&HQ!(?tLOI`o#M$Ii3XUvdT7^2m>b?a6S5048KZ+?7y zyr|~qr$;w8r@t!Ym$wsne7s*gbaj}hn3xzyVo~|~drDebUfK8c<@%Q{UAiJ<<)jxk zHZJDi;}grw%yhMXcy!`CJ(s0kPCj$9X8ht=62HH$a+@YMH}}KWueHr`Z>aafap+Gb{96;)MS;^N|ha&mf; zCQWiFDcSPk^78%w4Uwd?vrMI)R)2e=$W&fa{ultS3(4(q_h|~kX=yiuLfE>Pl^g5M%rH!Pbfoju{`dFy>#qu1s}&OyeINj;n1dO+6>07!%ui z;-q2B+^T8uoBlpZ%Ffni?43GNl|6Pc9|MI0~*7bFtE<*WZ_jJ<-R3`k+O6Y9yW3U=pXZvKvww$$ zrDbPB1H;9I&g>W0MsH8Ldh(mzMb~Qc*5aAro7SFwZaX#MJe>|OTMv@R@u zevYXjEM{%=b}>FazE-<^F}+fp4`1F~dcspp{H*K3fDSP+v81D2qEhl&Ur$cCl~Gl- ztDvYzh~Y>pw|I+yQ_h_ofyy&a^aidB=~}WxWo_-Azu#^%HFR`#RzCeG5mU8Gpkc;? z*U<^qQTu8t8+Xq%NNftskH2yB)~zU?c{Y)AtV&m1SU%xx?B&;6%7ZPZSE}CLRddhy zrkYXIK^cYK6)n-*^JIg9f)dix*;}0!##McJ!N{Kymsx{V^zk+#(s@T%8D#~si}#Nj&yQx za2$AgdivM6<(gXqv$M0myuTk`8?)2ConL;P=wh#>O^X*VK4z#b!u99#d3%P2)#2;+ zeX8I&cT38^eEPCB<&>0^gqN3=e)#^~JtHGy;kLx;>#^15ON%3?M0A`enE~oUh{lJ7 ziJ9fzYEgFYTabEsT2#OPEECTAHJ^E#nwu|f$qfEl)#^0y`M))5);xIeqGQPtl_g7- zWYlt0e0adfaNz3I(02F03OTvl3p+M0)+v>qJZFwf&i#FRBW|00{Boq>_xFeOZ>8>N zhhHm9x#hF5mrvS^XLZ=xL&tih4a?p{$XJ*0*#G~t*{#RV&(Fix*R`t3>daa0y4AWb zDtPqlD9+_=&4XqV{5 z)YD=n`S<|fzGYo<@1e#{}HN?cNND?jtyqy!Gvo$0qPUJPVm zVd;q7UDnyq(4fRW;n=rzyT9dmJ>RsTdRytoJ?Z8}N{f$HZ|m%FEu7>TA0NN5;^QNx z(k$4iHV7dGP1I+*Vn}!J=n~CHMLLHdfC?h{&qiI z=2(?_W&dqrpwq!<>~YsYisM(>rbVor$67{eBMrYQBGv0l!2|` zS2HPTY3(y-&$hO=x1TtfK5Na79~Fj`pHjZo>=V@r5s2MYBKZ6J`|Dc2KYiS>b7$wj zzrVY+!`F#?o3el3Z1dI)TSOkU%kzXUXM8d>XZFmQondREIu|ThV8i}ZXi>&Vv)jAh z-P)}=_w@AVH`x@}c%?#Cd=3x+)ed1BoH!I6TsD3F#B{G#e1?7eJC7dW^XH2tB_%g( z+{mbKH~iMdWOp7(BNp50Z!JrgK3!ctVFJURpK2FY3U4S}Ja6$*Aw_le7k4B(x|z?- zW7W}l(&v%>=g*%Fxwp+28n$mYXJTS{@c#Y(Q`N=H%*-D@Jal$(bCXi?S(LPS>(-;E zrfP$`>l!XgG+UUL2ntR$*tz&4pM(K}ZPk|xQi9*7&Y9cz_4U$xeXDY|HomL=3qp#{ z%x0Id<&v>Z3+gmuxUw>som))jKm#Llz}BqLore{b76rAOG!qQuOioR0ooijb@1EbT zGS+2&tjGFTwZd3xYD$D#H(;#uF|4Q zSqGUC9ylxr*IzIrxHFJbT!f`ZMzi+gr-ST8?#?bQDM6ra_0%vg)eUL923aBx-t*Ud z6+Mt>)UZ8<`z4G#)%sDok9hicx(RKZm6-mu&DLU#EY+QZDyZg!nvc^ z{a4b{$^H!5+B+A6I;ojH+d50${QLVGWVl}3o{s(h|4D<|%B|eu6K2l*c`Enr-PuWp z+js-CZoX_u30lVU;r@T7|3CQ+3Y9LbnrhN;t4Gq|^0Fd#ch}Mn3rqy=9c(`E`#p2@ zcdzX{paG40hBwtNO?>hsWzWxNvv<`0uiLn7`=(W__WL^)ouBEmg#YVn@9+8T?ac9Y zoF>_9B`*|I@6NS8Eh{VPvXrUp4TG32liyq>t1^~ZFRs*(qO|Xq0*? z;mL`KM{jL&YUNrHSIeK1bLzE))}rfI_F5M_Vk!7xkdUo?_I&K}z9}c37D}_6d~whA zk7=3Cr0gpUfBr0SeAg#Cd7nulD2P)EK%tQF>&wf6@^bx4X4|%H*~6M zd2O_J_)h=%Y`3;g-=$Vv!BG3#>$S1blfDflUcRi`@>pwXCIl|!y2s1qbaaM9N!~q~ z)7GVj4!^qkv~NO3$BHXSn|zlzmz9;xFwc)$cv^d^SI(Usf@f!$UQP~ivHJ4u_N4=v z-`_K5UuXLG(c%0&hofB%|NkBEw`bJUEOO7h_2}_Z&D~YsShPYI*m#+yc)gix#;fV1 zV64v0-Y0kTNT=|_cklYHt&L9p`RQpT-w6*F7nfg$Q)YV{Z{v|{nq`_Tw(8BM)YBJs zm*?BMyDVYfw#~tT;luCumpHC}e$L!4$H>g?)w#W&e?tmq!84xa0@blMZyxyg_|o3b zZ*McNTX%_}%+m5wLRn#)TuH z&y50tf>ZTCL8)PDD?3@u_t4ht>v54~x3*-?Fi31-T%>eq^Qozg{B{%E_SAh~h}an< zb+zWAQl?+JxcGtl@w=4jp7l(z3HoPby!7{z>H5>x#ZA{%_uaoOOEh39*M`EyUydGo zclSVtphIQm8us$?a-VrNlJ5O-N9S6X3y6rY#K*_anC+ds@Y~DF?&m;>TdUMU%5q}g z9E(DxW_JEC^;=x6Oimp(r+@wYnfUNfYa37h34>EpncH|Li%sRSDEIR^#4pEU_sio| zQeL)pseAsdkf?ig(ktR*4U8vSR~Ghj3Y;nCLZsT{qXgxZozC&mU?=6y8G2tq4D2A!x;WMm`*13y2%PRtI0!|nXnXT|UKooyDezs~mgCAG`TLzv>?E*YhE zU3vTSe*MyxPe(X48RIuP?Yfkk%X?)l_m$P^x?f*2Z_Q#1UCk60RwRG&wYNWe-aVE@ ziyOVCH++7+bpFMQK}orpnqQeRuJK6N$Ndso6sG&2{_er}_SLJkkM+s^K2`MiSnuJJ zlhp&a=f!?`eVw0~jmP2bt*!C9>y(rhUFte%b}_r+%L~DK_5W-C{CqzDRVgzY&w*1@ zwI4ot(o+BLCwqMT->ttkT9v+1(9z+!cI{eGi?@otv9V_7x_EgByO^ly)7WD6aK!BR zV8i+MZ@Ge+TUE?TmOFPFv#v7u`)95Ua(y-H9ca+lv$^Hu%n8evGxN(cZQOXi{@zaJ zJG)d>Zl{dY%SQb#w{x@C9y`$tz+1~W8xPuF|+`Mmw{ z=kx2=`R)1p_wUDNv-3}h$qNbwdLBucy<*0>`S$(uY^xtVJ3E_UN#(Zvzg}tg$k|54 zKD+F1fArVa*B^g;Oy03;my(f@Q0nPvXUpeL*Y|F=oV@Lb%T8s5y&JZ&&N7)eO;ZG$~^LX?5gnTLa&TcmuSD%)4O!Fw7fi1 z<(trr;-lxz@invY9$MhoJYn9vK4x~lgxlM4Ik>r_wPsYiht&FFaCbNzkk96fg4YYw`y5iOCRr(b)IdO z%Oj~Jcrn}C+xzf5+vU?^duBCvA zpy1RrpKYC7k8f^Hm#`>MsQdX;oFQoX>94P^FV4Te&&b`)MMZzASL>;%+RA2TVac^m zPfh*!Zuk2`*RPA)+1b7Nxv#UM!;4exw#)iS6DKyx*;Xa||M!=nflE{?;ru+?59i*; z1t~2Ga#Y);wIma3F+tOEzG~a z@5bJ0bA|(F&+`8M_SU(XjW?yQr{lzr6(L$OwpAjxx8)wz-~Xqn`un?wz2^5EN=mle zStuwdC@D2LchMhE!TtC9efNk635Eq;Q?-8l{eC~*a*>6gpsoL&$&)61xL5uDY4p33 zlhrNC-bh%Lz6#NDw^3J8nk;%~qIbt9!@@@{rHkG^del_=`NTC^uZgIUMXJ#5RGCVys^>BRs-&U*A zS0`jd1t-4z`0?YxdwZ)*uidl9HBLnX-CSWJQHV z)wegCiY#l^t}T3UfN@LKRj+p&Iy!tV{rvp=LfD%Jk=^|g9=gp144L%q`G0&;SFxwp4HJTXyu z!-fqGF)=cyrs-;zXSleyxE@WJtr70##x~15zi)H;c_xOmb8|X>etv#hMpQ8HWy#Z1 zqI2wOrI^|IbT-_1c6Ro~rQYIGw8PIiOcWFp6y=(nyC`O|n(ra=`!&oAFRrW<{`T%J zx3RJD%*9Gdi~hK{x;}in{eIibnUWym>;C>ac>X+pUS3{NyPJ#4k(AjS4By`0?_U?Y z+lhlwTwHvPbvd7?cGwha9VI2L1Iy>vbya?TmboTaYih>DMXbNRzHSE@arf@th~Is^ zy{=JFQdw74EbI>G>{#)I({Q$N`Z<}MixnmXJ2^4c)YMFvGKHnpsqyS=^T%tq-&9km(9654?f#F!6EO&f-{7hvfrA3D{;`iBr8YUk;6dXBr zEa~sBuOGgCZC$!lm0>~t{e4I8egF3M_QW}JclooqPMTBD%iTK^!20t|NrVA>z7}@)fY6%Q29Bn zwr08|*yu&=k9;&rdr-Nof+(k9=fmlry>U)Y%J&Y>8vHp+C4eZAbb zZ{HwpnuI7rZ|p2q2aOtUscq+z-B9^C?Ocqbi_1@tBmCXm*j`;<-~amhdgp}!pwb33 z(0eCQP;jD;k&)4c`u}w~x3}@y|Nmor>GEant#jMk*|+80?Gn?CdSU4V%BxN{{&#xK zJ=!h)_}ACh3=IbkIH=unaalTN>sHfURvVWl^X!&#sn>VTN`2I!B?mSFVJ(xVgRBD>uo)!s5X3VadhWfuyL;la zX=>#XDJiF>YNrS7txZZ!F8uM~q0@Bxk{1CRpI^SWt5o~nuh;rMvrIVU)YGt2O^a&AvJq8`7S;7@9%F={$z0Y`|GQqs3>c3@!$IUpe%f4U2OFGuM?J}ot?F# z>g%dIi4wN_{QP(JR)@bcIB~)x`x?*je);LvJZx4ThhS>~=5}^;G^}60{!XHRTV|T)&#SUB zuiC2WJuTtX6wRV`N4KO;Pfl7?eOYlQ@r7&Rq|Pf>LQFC*v7Dc0%dGHq(#hKS8@6q0 z>+R)bIB@4q%;MEMCQlX?;bLVtaPA!6v}w~A8V)wIFRuIh%gSC%DfZ#?K$l;~Q)YX$ zZq2^_=zjfwRt6p!3xT!K+oxHAdVgx)zI}W3ol{9kDfU6elax6w>6~miqleedw6gqP37!!ltpAXIRf#FE2kW z174RPIF-$3+sP$oXBx9>YHBhxoVWYUlX`mERFLgTN=jP1Gjb-M+*SHo?Ap3mZiWwE zz8u+6_&B8xY;A`Zx7zKLP5XX4;{Gb4H^27V%qlA}@Dd26+T=~XYA;`1U43IiA~VB+ zu(eSVHWeGrK&%YRJd`rq=hB;-nZUs}z)N7y>|z zqYA)6dR2y80G);f4x#no^3y@hb|Mz=p zpNF~MT&vat2OKJ@stz4H#+G_|n(NwIFRlnw1_iyPr6pT$_Q^@AuPn5} z*X3N;<-K@y_0ShWWKPzev(nvoy=VI1+)9hQ9m7zO$6r z+1a<`-VU29!otd`sI9%){VLY*yt6#6lVSY);RZIWzIvnn^ zRog6yKbkvv*_yJqw-_3>Y%x($RTa&QcD4&&`J?Xd*YFv$XD5Gsb(NukSK4gKj5z7F zQCpqXMr{=k7H(!{=X(;VW?~{T*Q&H>_Uzel$q#?C3Qi64*|ze?=~JhI;uDLCih}BA z$4^=tw^vGQD%am%U$r;Hbc^XKv`kog`p<^M!vQOURNvg%%KiM@+{;xpN4rETzTYhm zT{(mjVmC!qRoCagH9fMjwD{!hdj9`;Zogsc*3kN!)5HH>ym;}$=g-bNi=JM2 zUH9W*yUqO7m2>sAwY5Xm#YoPzDs}Sk=-9>XA7_?#XN9RkXiQ8@;(y;Slhpm^DcIP^ zIJfh$e%KTJZCB}QlT)JKOs`Ei-yGxI#?u(I(j_87LP%KHRL;8a5sRE%O~<>tyH{Tq zefo9Bink%+@5Ng!+t)8To&4w1Y5lAJSBvK>-q>BfzN$8Hf5+)_=Z;-l8+~zSar%y3 zyFg_duawDwPft&q<}quW$v*S=ct3ZoU5CecmO#$yOFV@c9cIj&*(q(FcS5#r+KU$% zj1DfYuA)`a=H}*%4s$FD7oGU}_07#-27#9^UrN1x`{s?y>aew+?mYYV_xGZ#tE&zj zJ?iS>;?gl?ib&zZL#!9q#ae^r?EBX?fkad6QGI#lzcMSWi#SX=O;4_jJ9L zr*&d>1pN5Om#DA%PEC)m)6BZICUQxx*XmPKwYyclr-|&UDZHJM zle6Z-moFlEdU{GWHZdxys+})hWL#YCFTXHAG5?ZKkq1hoqv7ZTu|z$`1NI_Mctnr2FAw1{c^UKG(JBnHvL|+bJwn} z4<8C9&Y7e0=+UDicXk%DGHlGbX;gaCtyikkYpT}D|L4w~6Pv8=FE-b@T+Dx-jpn8Q zo*as5zOz(jnP!JQdE0aI-QC@+3=?O~ih7c}|L?cxi~DM;zuxbcvlS8(6FYS0PK-^( z2Zz-)j_WrT+48ptEb^YN$J7w9vuNqDUxvxYIy!~bSN+#J^|~O ze3tn9`+jwGb$8LzQ<-beYj6ATp@7lh%zXQJ&@u;`sxKaEA~rf{O!YD>eHF5{R^*xK zv(UKbKOJ3Kh0dhR_S$0q?}zi>gXZ6RZ{67Ax2g8ilaor>}>PwHRn&95P0|Q-JxU0+>RVQy7Kz-ZTCAmIC?*QeRWls z;fQ?wpM@LmUA`O)Y5=Z|i+!tZe)HYU&C9D|!@{QRD16*D!?t=`fQHB-|M_;H1s0Xp zUG0c zS~u&S&n@3_iciiaA|fIJH2vE9wY9RhQdI4>OO^PUyeA=xYCoSfe|6vf&j)8o<%_!I z<>d?p5#bv)Y%tK6>a{krBPKRBaDANZpTFPl@2LKsx9@hpv^n3?Q&SH=J3G7Z?JZLl zR@Q};pP#LNQ}k!o*GUgWw)?)jv5}bpG$@d{X8Wd1PRILXC(fJKSNr>0X72SJg^z7s z*H_jq^_p7n|KH!5*VnJs#iius@%j7vpP6aQ&dkntx{ zSu=5A-$sj?+S<==`0lR=R8C1vUHQLUU;9-ykD#R3F?ia#H)b+f~=SDHcaFC-3~9oSmI*VPTPB`|i;rCWgv;;W5j6BzyNy^-?`^ z=1f9%_UeuI&YW3u;N|9$t@HnE$-OPcQ1IcwK^yt)n>TBJ*%w#3@6)6S6B^?7RxK=g zdg{jJbbhnEI}tB_Y1F^IwiYyO_U6qSlep<+AdR@whywjk;D_|JSPNJc})I zFP%EY)z{Z|;>3v)#UGZj^UE>*)CI$rsU6C)jbNBAYf4|?KmYJ9bS{pFKw%W{ZzTH~W zPr2(}yvSf-Wd#k`l)k!B`P42qH`mmT2UL*Qmgmg3tDP`+Zm+U?Uq8tsH!BVH*DYTzCLcRfVA}L z$rWCUKYS>dq91Q}|6Y)?TMvW6*_MxwR@?@aJ%4R7Zf((gb!}~TJHLF=g$0f;Zf;he zGk31(DG_jG|0VTk<^BstEw5ZR+_iJ(%5>M0qT=H1*5&U+9-U~IGe<_ovWR8fx^*)Q z5}C9@RxJ4UY1slvj*b;97yj2iblJ5%=cduu0~y?6IuoqtFo~u&Y>6>WJ0l<_CiZA? zzn##pve3^B+2U)^|(Z-Kgw@$$!{9u&i2mbumHSra~d>$_m9*;p_F3 zl$BkRk`{IJ_lvI%TPw6}+qNj?BYSKfoL&9I{DE)a>snF131JnkvI@H4fw!NWR_0Jw zSI_QI*i-d2tM~8o>vg-!-fEpWb7sq<%M95=hiqQm$<&rVZcD|-q_4l9?W_I0MNa<| zQjPk#s_w;W3Hu)pm>C^FO-dzIRo9r^WxhXt{sh(WqE!uB_++g(7(hLgM;8~nE9vU` zf>zfp@|vo})No^e{eHKfhxQ!X!^Q5Qe95}c%}>?e&#!Mq;Nmt0g`C{nqmPgGKjmBL zuzqq5x8jkLlhs`v92!1+_yCHOLkAB!f>ze*#P5qqNlROG`t6O4&e>Uu#O>F_?5l~~ zl6lz;)Slw!=l^)O{C?&YVR?CdHUD`!pvchC(Q#?z5_Orb7rW)&gST(qn7n#%YioAn z$Ne(F@7O0Tx)v?rvyFTGj+5I2TJtCGl(VnXQS+OlVPk9C+S=M$P*NfiySq%3onJ0w zx@Fm$8DZ8xpG@{YvNCx2mTUSE8yx;N{yCcZ?afWA+x-H!a&5~4HAKL!&AQ^@Gv6*Y zS!%_eSM@)u--g?U$J@o{<>f7^|NrmNsj1pd9nTkg@86*ly-nx*u6Vx)uAp0!-_DpJ z(OW$I`pzAdpO;;;EGsM&blUR^-2UBj{obF!{>*)u5K6fkD8T8HUcW*KXh59kAZ8^=Qg$kM~WYP9M|+v?9yi-RX?mTg5ox zopS8ftf^-NMc;sy9>nf8TeN7=gQrhb%PrJ$@9nAN;N*O`AglGk!-tKX!s#P5hF4>t{#KKY_nX@&<1F%79@Y^Sjud#De`qc9BuDjUlF)CrLPSRSb@4B_D9WK{5#zO>w5zLFWFLrLir`{Z0LL(nMk?d|!@3`|T+37}D0@OX%eOC_j! zIX25Q`^x@)2}7r29$@o2xIh-Qu=C3)C@C>9T-cHs?6(lqw0CiF>pf{UmE+*SgC|a% zVq)l#u?%{afzZ=4Pk`z5wYAI)H*ViPeE)ttbUX%ZUeCRS&g}(XUxhL_{QvhiaG8(f zOl7ToZ{FmnsHmKfWfKH}my(lnjjHtddcuTuPk63&eSY09%{_beEC^Z&8-x0CHs&2e z2bYk%eE)_G1`H0(Y`hoNL>kXjt}>nK)p~ikzp{~$kf5O8kLUC285kx`oOokDbH$TGD9b z0$PCL;?j03Wp>Z4UteD{GF-cM4Lr1UF~h3-os5#QGH9FuG{bZA=1taV^7eIm8kIoX z1(cL_8s1b}{Pq3*|BuehG-haccX#*VoSU0A9sB&{Ww4A*g}}s#6FYi(Tzq_d7H-?T zX_Hf0nwpNT?pGN_P(TPug2vjmnC0A9@UQm50!Je^CeSSJi%Uznjf{=E_q=^_a`MK6 zgG{zAkZ3v9wRqy>Kp`j4XgUK!dU|@v>ubK(DsFAd?Uu8x5~!vVPREAhll;8 z%akG#6;yCm7moZ4xB&F9~Ks7*Q>FLVG#=*Al8m3Mawfpga*(CQ?$hKs~!^TgqFMoS` zyY$iD91{&YySgS>vnWkIo-(`V(lX!KSN5O2+iEj?^JZhvGRSXlZ!4>-KcD(Ed|eEv z5MF72z;C`??0rR{hFPZBr(~OQK$8y{7Z*8A_xJTZTU?u#rnc|juk6@XS5*(s8F3pe z+IS?Dz^j$GG+P9m-YIm%O_@5CwYuV z$!~9MW$Wtj`1ItY@Q&TP#j|r589sdaCX>C zhJ*(P8r`O5=*RDq0o8CDe7?TA3hE{@ySjXdxw$Fz;_C4ANx83IzwSQV&To8C4YXNC z@bSr{j(^XO>OEm*=bK_U>3NF)s7hD!o5L~Hi*;$x%;$gWpFMkaV@IL#sVSPu&Qn~1 z)^{zEvaK>Hdvk-ay1LpH6s;~HR-gnpY0{*o4<8B`92UFvURdDBJX3j+(A$rXk3YVh zzn@isS8i+JW4D^`cgv$v?SDQI-jZ?g&;>=Im8Gw)aE7i9(+!CY7b7!U!jTTa7q_>s z-<9+E+1ZaTm(M>Xsx>vpiQ~`5J{@UI{ zNl9r@P{&C#$*Fhro_H-4`uqF)bW5p(OG`W>w&%$*9JqK<5H!Jhdt2_+{{J5i^REb6 z%Jt^Wn+rh_^X8(1S;hk|xXm4SRcOtKCj9sr&QMJtaMzdBT3~pQom3e>^H4&%ltAn+uvb zTkB#S{`=coUP-B`Nr{PxA3lG+9P#|Y0|tA0`yL5Hr{p~ig34|gs<-Rv>Nq$#8+&_u z9Up;qNNJt5IBzD|E2bOu;K#?u8#Zln%E{50Gk0!k=i>(ln_pa8E4^v+=EStLw%ps> z7M8!ix9Nz}mqnl%?4YGy6@Pvhf(9+CzGU#oSQwlSJYsBY{P5koK6U?j3=`Pi&$cet z6X9xIco>vSwR)W@QfK!Zy1To)@X--Y28ZkGVpF}h0$43(K0gy;8kWribF||Ar>q zl(VhcV|4MHY1$cyH~06??*#3{oX7)qqyGLsObnp;T2yLv#?Wl85vmXmqEzrB5>+4JOuQ{DS}wmlMtOimmcQ@z&2@0SzR4l}8c z39(X9QAv1ss8#Cqp1peo1q2!z8W^VNMu#l}mo^^LXXH$NQ?z@+?3pt`Hn>RTnFD@{$^UIlJ{9PTs{@4t|WCn&_Y4c+j7rQ4WCMI5xII#s(NSc|M zZP>i|^!77rqqjeJ_m0oo+nd?V4V0VML=Ig%;Te{gnD{Dl8_(U=Ki}Too?(_N#gI8` z$%F|4YPUjkw5D=_)?iLhbPibRC7N?*$HoJnuC5AA2Ce*aNqICQXY!h&-4nE@dVP6y z^>o5lE=7a1GZHH5>dXvw|Nj*C-SKfP`~EIgCu$3aY1S2o=jY~bOgzlCWchMX2@Rf} zcX2U#Y_Xr+nV=WpMRZAd(<(9+c>MUW zVePLHhK8j}Rj;j$KAyR6g-1+GOu?fgoTZE2K6%0d%A}IUZ29~DZaZ@kRGm*WOlWi5 zbn>m!x&RH((!b`bzc0GWKfJiuouMJ~^0JM;EktMT-D~^j&mRF<*R?0+XUiu31@HT48HCzI-VGxnA9Gj)BMC`oCYrZ*9xvR%BTfwzjKVTwly0%VesZ z)>N+jf4@nu3SHd>T5lNPxAMsbaZub$SuPNFQ!UcP#YMr^R<_~ct_jbdJbCc{-~0a) ze*eAn{eHc^_oBJ8xLn+%_C!s7`helbk3IkD-re2Z-YadM^!3%%9fgnCj`hp;i)x2G ziM}Ty^mcRlc_k~WsCNb@JSr+HK?_?ZSo2I4kd_A3W~XJ@rW(}#{?mMMw6?CSHxCj2WSV{L!JVDO3`@*SNW?G~WlWu0F~It-_vb zU7mDzS1G6;bu1x$wps3>@c3F*ZEbB?*Q}ar>*M=VPft53%O=^W>OHMsgNN+T=kx0y zoENXsT6E<~$hU3EMutAyPCnSQY14-C_i+pkd#k<%tPa!Ndwu4N86BXRPlklt++J1h zX)pGk3-9b=+Oy|L-=dV+=KLI-n)kMC&%fWceY^Ri$B#{~SzB5r9%x{cu&deOseWtc zEYs|^$H)6m%d(w3bNI0HI{_b|$?94?9UUA$e*HQn%O?1eadNKFj>GNz%7%u53>Ox= z^EY4lc~m@p1-t8Pqg1X{p{vs-RGq8{T^l7TsvQ=he*50NdlI%)CTzS?NBEC};_Az- z899>=zP-0M`tNSVeJA%;ebw6c`<*pI!|d78X=i3E{BE@}1+<_6G+=h%fWws)fzIy= zK*{Aqi@{B`=F`60PEXZtPdhv7<=%bg?SA{%&j0@B=jX)y{Po|hJmbEOO0yI0RZ3wbX4+cPqN)-WhK zx4qbEH_6}6kB?8*s^#kH@Z{rtvM0`+b35KA%MINO|E2Y$nPf;s#g1R)&LxWfpG@|@ zqU=-u^XYUo!&u?Ws&8+EmifiD^GcgNczC#7s(-FstrRCGXF*xnG)*f|rqfzGBWJSX z(=x^F8#aLQ_}8fGCnu|4{c4(d=}1EJ#)%J?ELT@hJH{PfKX>WIeWkCjNf;)v{QCO( z_`!1>5iU^;u(bdk9UUHGKHE+vOqw*Q;LD3Z28Z2cZy&sPvEur#v~zPf6Il%`93ET;^usM zz4!aQ%h|D;)6NF{-&gR^Y40`HPn)*oaotmN0LA;Uw#BX!9YN!m_xIH@G??G75e7{V zN5@*1zdQ2r@o`3mySvNXyTx?Bgo%Sn7Qw(cP(Xo(em;Ku$gqSZB0fY*H0}I6UWNb- zkspt`_2CNZKnnNVXpNcwJv;yYKH2p1^H>>v{QiCT^l9(>Qm|oyPuowLNxHoIb1U`q zw5!?M-??^+F)~c?Qhj!2=Hl&Dp!Ctv!F4EQ_Lq0ZdZl;N{4`=XaQwJ?zOtLVMFGQd z|M_eTU*6r7-kN>=nzwC{b?GY+CT8Y`FJE#>OG{7DjTZa*`nvo5eYN1p&R<_&7qxpV zb;-==j*E*6&=6^j+xO?wX`AnxQ%(w%&O9|$`?bk2-RNyAzUSuVuDx74`QeS*x1Zl$ zw`T2HQ0uPd``z+an!3KBj?WKXyCw!|2V7d}J#q5n#rNFipI<*+a+98t*3TI^lkd5@ zxU8tZo-Y3B&gxqX2Boh;_Fh#MCvqxX_~y-oPq$yW{o?b_uSU+-TwPS< zC+A+;eaGD0*x0z_)y6Spz@y3r1?Z^pGl5MNsAm` zCr9hd5Ma`p%B3~c>s`PJ7SOcl>C@b^&GXxWR)V%pet2?HxcN%1Pwvfw2N`p3Z#%jw zbTtEmqod=AQ>P|bYAG#hDx8;lX?6Pfc@NLq|7QUWhO&SXj<@aS=jX%A*BU?B{;#d* z=ciQAI%-f6XPOl z&HZ?0rg5v@?$py_U*9jg&^oWDyS<(L&Ye32@9)`yy#Ds~_UqMi`S|$Uu1_n@7xeb_ zb`A;>IyGHizu3ja<>%w6xtCUh3Sd)HQ3lY6?cOVekB{-@+}|h50E(iLcXuN7zn;ka z`s!-H%8(b=*T*+LjoOmIsMvDvUAOw<(wCQ1&&)7nmXnivabu%$-H(UtDk>^3_Q-8> zRr>j)Ze`4@_hI=9=N;R}UW^Zuju_Z}08p zwXw08B6s=QuZ>PZ2ZEM%+zIprh z;q&L=59fWpb0=nwWii`ib^o^3R#y8tdz7?k!?1bl*3{P4)~4{rmF_8x9V(eSJE^ zjUGwkkaOB0)=wk1bZk`fHL-g$*Er*X0^5Q!v!_lKmA0)i>F(`KWo2dUF+7%bX2wC# zw5yePY*pSy0-STl9JLEt7$8`dV5nDBJ%RqxgA$kRW)QdbN~MQ`(XhA2SC2*@8>r* zHBF7)o)>E6cKx-wrRB`8@9xgFw6IvQx9&>p>0A5e|NZ;-=FZ~h5qWuf-QC^E&z?P7 z_nc|np9;1HS65ff-1^VYc#F%*(w;qgrlYLfe1F{! zhmsEu9GCvJwXu<4D0_89bLrc4>(-q)d)D{q9;dCra$egkMLoB9-+S}sO@xOB$LH_g z(`Bv8uDpmT(dC+-(=Tn_#|TqC{{H%v zC(FXZ#9m)tFF)HXS4vw;E68%2&6FJBPv>qq9X`={PsXySWq$m!e#Iv{ckcXg|NlSs zhS|G8!E*3?V5kOHoNe_tpT&C`!M=72^_PEXf={PFQ|hJTTFAHKc6^4z&| z8Q0cCK4tOwvhK;G@P2uFw}Ju#&{%e_wE3zx+DE=Ve(->yy!<=Y@#SxS?{seG^ZLI& ze7zh)$P3%_oE)C;@bEvs@BcrxB5?7B^z(9SA~(BTh!Fj~D%$tqg@w*D>}q$N`Zi^X zNJVwEvyNEu)m5PeMn+oZYEB+!9Z#BFoIR;N&@o#35kh{KP*>u zy}P@cnc?4`&*!=1C(obXKWC1Nhl)@{bo6SQcQ0OWFl0TSa`VOwjlc0aVuw$h@OWx! zW@MyQ>?yJEmg2AAfB?{ZA`3gavX<7WJAYqBiA;O6b>iu#6TFsc#czw*S;Wdv@cUct zljqN!)h0VCO+0Ywl-JU=x3*@7N8MTSX~&Ko3Pwgkpe}irsP=>zGfvp6J^7lPo*uri zqNLK^duhA#Y-?op{y$;G z4};KId3SeB{i(RwN~ZqruhO+u$!piFNk~m?WoGAF@x@|l+d9|8nKNgCns7UJ?gW+7 z+pBhO-D;X*Bw18k94fTzR8;lM5W7y7CROig3KkX;o72xfbKk>J`PZiM(-NnRGiJ_| z{PTB>glTx(LwDaK-Te5{p5ETVH#ZDDmIjr)yCW&A?$hD2g zM|JaVZppmNlK=n5$Hz6llaKd_?y0T4ly=T6xkvxPrpnK0Tl??tshoWC#*GaR9wgMw z-uC&`y?N=k*2mkYrKBt=I`{7GZewq6@2PJ=g~F`OXD_Cl+qQPCE;lD2~XmI+4%2zuKn%e*68fczn%4h7C)$|5KRu z)ym-5jTaXeOEQ=hKl54o*6HlcdmEG6Pg&mHl6iQU|NOXDJKx>ke?IH#s-tt}&W((U znssZ3w{!6}&dT(Qb8;8S|BCyR{r1+@KYulYmvP*y3pL5VXLDwrt@LDd|6^}%ZZ3R% zO;3^X=y=e>CrDQFAGXbbIcx6SP zhrj>vS65e`eru_Eb$)9rYg2Rc#`^ztDQRg*udl6@Fv$=&lJxc;%Z05PYnFOXUsU+` z7-(o4)Qy}oM`lmOM<&qbsza^Zf`WnvzengrZen@A_q*IO|M`78c33=l_UzHGudgMH z(|T?#Jox0UqEIL3s2_$qM$_NCzZV<3e*TjuDK$SHwo83=k$&_yCL{zjh4tY6|9|G& z^6&GBi;K6kwsK0XPP#8?oc7?s!R84kQ$S;$c7MMFFIm1k`B;zS(s|1h54YXenk_!h zuD0vI0f#5gpL2h^!>M?6#=^_BpYmSa+N#Zb;LMpbEdQ5%dw970%#9l}7!yF}kZgH- zYC-P#ZHJb6PX|>DtHamJ85e$=Ir~XerKX2p9%isn?T2j)X zB|(~?V%oaykH!A;KR-VYtpfFSSDQFF7Dn$X(X=jp)^qCH&(F`fulczKo;P!kJ-=<@ zM8VG=KPF0>)xL6U z@rOS@i^asmj!Btj9r5w;nbF+L{QCBG{qFAW;7Zxxpr8l`2ZqfXH$I&12dd}yR(*YR z``?Sj{U*O6gU)Z;u;t~-EnBvP>~!<$;|m1MLH*y+-_M`y^ZWJjLx-A5-`$xx*Q&JZ z=dWKz+}zxC`!B6aWsSXezQ=ItThQ*CucZtJT$BViZ`+nOZ{9o|8=E<)X=$IHYrg** zIx)ig_IAIyRyjvH1m9d+8{K1gY|)}cA?LOhJ@wjpe(RIhp<=IYsy&&z)%D1Y`|-U( zN&+)|*s80mMa0BFhv$IKdD-%JXYuo-lao{#8cv+>=#e(}yYTJn+iSW9&hmPAG2Pl? zSYmSZ_M@W?DJliOw=GmQTywCQ{j=!Fy?ge62J!`!-KN~$EFvb>R{Z?j!$YmyQw7yl z9(r|kb^FW9%OA)8|22J~bEP_Hx~{IS?!?)%txK0KU3hq(7x>2s!;BO2M;!F^Y+)m1X;BReA?F2!?PvhBGb&7GYt$4A8xm=_`p#9{@&3UhRHkV9)LI$e}9ez%0Udr#LhE#YXHkfo%p%?&D~HzY8=dHZ(aoH;$9(JeDG zvmdWkuji4KQ*7B2yuv|B@Xp1>?u?*SMj1CZEnSeS&9zukQWCUcrD>Zlhhoc~({tv` zDR^_kFeN?x^JzXlIU5Pz*=9$VdQS)Sn4H@^I27NDyt=8@w5$HV9e5S*i_6RTU6dv! zhnsQiLA+W;!s?o_TuVl@v5({QePNwC@yhZFfUhW#pC1spTD>M zOWv1uR_b4!Z{)jf0VfW{7J(q!z)ij^rH_tq{;TVkvt`LPx3-oBEx2Y_m!wsz?GIAp z#If=eC_JnxKdFHC+LgY(Cc5VCiWM49o<3!Kz_pmu(q=BiIHwl3lV*ZvzP`RbaoRLC z2GC(q3v&Pec-+sx5F8xb($d0lYum!Tb$@SNP=sn=0c&`_|NpuB;zb;lMMXwJ!orLN ztrulvWLUCq3&`2-Voy+hc2>H3TkdToTid%A6a~R9cVcn7dZIHyf z&ot z)Bhll2w*K~;^Fx%4PbT7|Ak;7|X4Ts+0^#f9j&4pr&%j|FU;Y2z--=&fG#L^OwQw4k zt&5ue=JWIOg7WhHmzVoLesgm(Xhf&0t4pgOrQT=Om#z06E4P3HN5bvusThx~OV|Ir z6}>Iz;rsBVhcZ9|Qs(z-nqOaE-)y+-;zm6^-ifnz@g^Bg^-%!pdJ^k8|68Ym$mgxS zJv|rJMw>g{^6~XO3QmJ}ca=8p-o0DlE!V>8@9#Xky)Ro_oaUkOh0-qDJ(Q>SQRdD_T))UK|w(&`R!$Iqbe%4 zTy}PW>Rr{+Hc@!4s*1{kr>Cbgw9HCv^^ziTZ`_~uG zb~=6L%#jZd5C7bH)KzKXt)xshH#bl)#>B>k%5n2wubyG*G+C{!Z$Z`W+TUhP&CR^B zY>J_Npn=y{ueyGJf1iEVEi6oI-@jSYDpgu0%<7tyyJ+&~=jT7$Dmn2g_V@NaecsS7 zW$HD-to6%r`FhZbgq15-GB8wESL?*>k(gim4V0y(ev92vp!n;{%f(yPMjAUDR(jU* z;^_AKb=~><|6aS0C=jID>7v9VYZdZ1X@=57j)xB)M(n9Dw7))Ez{%sR%heN|etz?8 zPTm(^WpV4<+uJ{XE4%lJEb(3V=il%5AHIHlD*P6d%M}$F7cN{l!?JkUrG3rp{Kr6B zemV>|6b?c%&3tCY(Ah;e5D__v43$hl{@F-rr{nis7x7+c*?ku6Rtm zve|b_SVY7L^}}RCj<>E{T@||8p!k`O!7&A)&J8s`i$IG9lqPzl z-p{+c>*1%Tr!#JETg#}V+9D7nSXo)w(b;+M#>V7_FJ5%K-~WH#mDz47&b zMWxMh8dk1cY3Bq|+#A?vvdGj`HP2y2inXq8Z~o@+^>GDdW!HB4#)3Ap7^j_KV33fO zehk_*u)S#W?%ma?Ep8l&F3juW_aFQC__&~~Z13Lc?@H$8)9XQl4NI@xcyVW^@tnDH zCr+ETY|Gxz)nOfdeQls!Gmq6;1cGVWAx22+$fuaVz(5T>J+=VTwh8tB z|9#X&dyFy!|2oJ&!KYJmzVLj@klc5jN#iDQF>s0gbrxa zbI|+mI|?6f$h&J55fSmiG|!1c@v5|_hjP@!(@#MwM9a#yCA6N|vu97i(^H}zDncnK zDGpjwxdc|0fi`+ASfFs?X_17aq@t0LQ1Y=J!w8!e0jDkD5fL2j?(Qk6sf-L!TQV9K zEKul?vE1Zjds*Foo=d-+EocudXq(Cmv)ozxoIyVO>l$?4?Bc1btHVLt@f>C-J~7X~ zcVwz|I0HjnT^*b67GYswK_Q_---`kk`En?RMyI8z-K&0YJ7dO-6}5Mc9APm|KiA@- zOCgm;?Jt|P-Fe7F6lUujiWSr(r zo7Sf2-1edM{=T2jq`kIqDlXxw`u0Y$?)O`B7k78iq6~|Q4+@}-p|AcGKRa{rS4`4I ziRb6$23wz*BjCiL$*X$XMY}5{T19A~_jEn0?c0-&^D#8^_VTjvNGvF>z6HuzfByXW z@Z)1L!+{$clS_XUfKot2zntx%dA8M{nbptF&pYc)|J?uf-rn73Qli7bdG?|R$Y9Xy z2?IYr|Bc(XUtbAxa$?H6zmJ!JgNsWjWp7?C=ui+(Pfvyhz1Up|kB{}Tbv6q)b*%E8 zZ3f;mHhq?%p`qjXdA1i9yYn-Jynl6-r?Xyq z`}pu&1MRO|5xktQ?EO7nV`JmyBTgKOE}`4=?*4GOec}YiT&vPY-E*$4i@kl|BB+(I zO5>)QlyFt;ThQuwhBt5D@?J8YICExar?7gHA=^Zc7Wuj#jdnW(ojg>lKRj@p*?RiU zojah(j*9B)TN*>sn9awxWhu&Ca4NmlJ%{L(7kT2qs={QW&v1{M~U12=XQ>3i;s z=`&0|reJI=%mB*7H6ISLPnBX;Y`GG0eO;_`Nr}m##fv9Sn$)yq%NC>kZ~na7{a(w^ z3gm9{DLKNunv>oh>y=)dcXyZ7*3cr3pBEN7mu7iOpPsINd}H!)hJx2M`cYd}TuN4G znJ~*`V#517JB7{j?}b$5+}~F_!z6Q3qmpuqfK!X>NwbS59v|-q9Z1P==-l;fTerHd zkK0?4=P%63$@$~g>-CHbVPRpQ6Dn4&%v^fRfkV;sp0l&fSLbZsy7lM+$L0&G zLbaJ)TtU@1yXtKh<>h{JAH9EV6>n{6IrIHh37d+7rE0reU0p$E<#2IxGZr`t&o;}A z%6zWgGGW$<>({6IZ+rXZ&4cI9+ZQZQ`11OC|GqaWEdrm;Elio6vE)fjZtUb-*F=*A zpV}v^kJ!i*zCMnXfrX7N>CcakQ>*HnI4ZA;h>Jg7zyF`pVz*weyXhAeID*b_y|B>v z;$ruHul1K5L2;obSY3V4%jwjGO{v~7yUTb>UtMvGikjt@yEW@7*U6J7LCt~5>i!9N zd3pg;QbDUuqPFF9hOdu1cd=uwOMe>RI2F9sba>!dXC z!M(lJ0-Y{xe7yor9EMvwetFFdi6|>G%e%9K(c!z+lkItTor;Q#7}hOcyh$jRVTM(y zR@~kyR)&a8DV(aeS_Bp~PU8I5Cu* zewvX1RB-#{y1Ki6{;plj@$=i;+l3zzA8d-v`!1cH)wD8K6MC5O(&7jnva$xb`uGraP%n4#+csY5qz?}ca&U1q z_4oVtO4`kvH*a0Y;g$)f3`$-E?5)dFY~kpilpB=Tl@hHqaY63wZBg5c|NpB6EpcQ3 zEn$p^isBNAuRL`4@XyL;#%X6RytE8)iINhKS#v#jf{{rk)17^}FEl#t8L-*ZocKE- zIC$sp%*+FikKcKF(^&7I-b|m@r*6&i-j#iwZO+`rUtf3DzrM!$>MHXr)5rhfdrzhq zfks7mrA#zR=YtMgxp4#3@W{Bkt5nr3yc9HCc<>ANypTzTvC$J%wC1*0%&(G)W6(^r$cwyI41DYylFg7;kk+BGP zenU%1N2h0g{=d8B_Yas!Q6}~<$PzY4&zUY{g8>IOB z+}y|SUkAy&Jvmu@N5MlThP-?8eNV=z+FBMoVDOt`!N~C8>(`?X4mN+S^K@pkX&J9b{l%Zo{}sy3UxWLxfO-pA`!&6%?!`un?6w>NLvq0gfi|7@SlkB96J zR8mTAugj8>l78?PPM!EgOk6zq+#E{=hK&)RRV{nxPZkL3+hg_GzRtjqe5|K&`t<4d&UIMJKn%{r%wWdYDRL+*^*?IPu*v7iQJG>sQ z4rhM(^1w{v1N;AlZWhWdjoQle?Cj&Vng73vZ%AM)c*=GC^80suI`MoqwNYuppp~ev zuC4|hhhdU&fnl~;u2%8?h6VZ_#!a=SUH$#f-@i7Bx7O3+TmOHZT#Tgi ziRpT=U1!etFvK)&`St$Ph7hM!&HsPfE0~C6+?pb-B`d)2=cju3pPWZ7c|Ua)t*Wa{ zxMh+j+59BsU1{{jrq!G5%5=hO-sbbm**p+_11cAPeRhtL&Uk++P>-uqu;Zp3TN)hfDPn zj{`@JT$mVYFDG|kQ|f{1@yyZN82$2{vHZ`U2i9plrxb-cS!#cOJGvq9Fpq$N zVvB&2*P@i!Q@jo1Z{NBlr5nBN$|~NSF?}~~L_pU3?<&nc_$WC2U=wSN{;wuhZUx<) zOZXLCDpszHS-5_F{j+IXyLz8;)pfeG^{x4}c>}{TpNDQ-Z*H;bM75l&{`SDOlSTjD zo<Lv z3=RAD?@#!+^7Dg(%r0(jObnolE0#qh9{Q*Qafk=Vvm?idx$4<+ ze`zZ%P`UA^cT#SUnrorSL=Tqy{QR}Ic9g%D+kfpVyL=63bnW1y>f4Wwb_WIoFfhz8 z&zJj}CA^6LejPUpJM-gXg`L~xWgAQ=DtUcO_4eIejJ3auoI$(41(FJ;C=;v2lqD%Y&+& zh&!v{QAyYVPRncoi1MH8zXqEt*tAnsvceTw?F#y^mJZXwUsNw);yTBBlmX027`mM zLd)-J=LvPPtc~7&?AF%ogA&4T=Db(gIODgZt4o3Xd|7KASwYRlb)V}+#Kn{U{`&gj z&Q9YcL7F~3KAZ-c9HMN88;6psjK+*Dh-tKy?lef;ed zYjt&Y@WQN;*VlNrZQIs#@GzOI+>EhmrTXNO>u+1huz(t8x` z?d8SwVnCgzWqxzJ^!NR6y6}0Lc<|P}afc7>5af7#oVou0Kh-w(>p$(CoSY0&Pl>Rw zuz;>vm~b)$w00WQoI7v-Uk0=aXV=??1_py;U-o_Cgmf^LgiP0qee}Nk&5gj-W{(~{ z`f=*PuRqD4I)b^Sy&bf1N7=n^O_;4hkKu`@ zMJJvXIkyKrPDxLHeeJ+x^#e;h52(*)xV(&0ID~b^tXZI=g+YCQ2%Te~weydTc6(Wt zZ`~jF|Fisp`ue=M+PHZO7q8ruVkFts-OVfI?7RD%u#k{|sAy}y-7nB+(2D5odMZMk zQs#L*pi`A5``fMD62YP9avu~OL0@vBqoNkMc8f)A1&skqqqp(gyLZo`-~mHf$l}CB*REaLQT<&H)TITv-DidYqnw=FkMH~c_kxDK z?m1LgB&4$HM61;lhz6{Wvjv^M>+0&dqv~tc(m9)N#jj5?+)!ux;SuYGl9eFW_sQ9I z-P)S1Y+@pketw?m3-KAIPp!g5d`gRpgMa_{@bIvz)P7J)j9Ti3FI zEi5FiUAqPvSn=@S*tBWWhX)6lL6Z~Lu3ZClyFt5YX8J4>aSsd>1a0@TtNnH06@(X zpLA)7C&)xLez~3%D>U|0ef9dwX#bz*%4&8V$)KH$(>{E7=)7e4^25iDvB}BFdG*`Y z{t}sA|Ibp&EQcdFIM~9%Lczd5p#IOtb}wu5{Ch4A4h&0zG<9@zE^JJ8KXU9CXr}9r zDQMUB^ymc7+23a#T=%w9m{C|*!7A$i^D1^w)5Lq4j^paEwV(-Fo!DI=%adYftYiqk(T3A4fIzYj+VFT#m6ajhp_*Wk# zB_&0x-iJOht^56R*^(s*KR!I%uzmaU?V9^EE<8zh(q=xuu;ImvjJ3Bw z1FQGla&p!j5G)E?8+CMk^1&w7D$Dk5K|vDC65d{y-t1ViM1`&4=kMRsclpP~$^GAR z`O+nc^5-2W!%bms`2G~@JhA)V2M=l1Ne z*?JrMVx(Dn8+tanc1vVma(R6CUZisy&%^c8FXc^}HZAAMia;GTwYI0vpZ_l|XlCm< zJ9F`OiL0^SSy@?iG&MVa{`g@K92~r@^mW+MMKrVV&RD!y*}CF`!sL@FI+m6* zOW)s{>!~7C_U?{l-Tm9!^NpjUqn|x`bf{0x_SE~^yUX*RJ$L|`SPn@FD&L#++fMk^ zt!rK$9Lce}LeA}6H8Xa1+0@_n1Ug;T6hA-rX7~Gj$&!+iJ%-1Ul9MGFrp=zc`r^+Q zR?p{H7Pnnp9o}Exn|*!VS+{<G-Me-fnVXw0%{4SMJaheexavN`-x0B2_Mx3dsskw1wWpJt2wwG4VZ~c0?eEy96`|USx z+x9G;y}G)3>Sv>4s<#;;E=AXe{QvXWpRJ*?s%lkjT>f#BtScH*XP8v>dT;v+x~AsH zO5f_I3sYuK$m*VyyD0AUwY8EA&z?M4a`j_mWF%y@!QWqBg)OYkfhH~N&jl~@xp>;L zWa0Ug-|z13=3xM>Ie;t{ToRSu(1KN`Qg?5)&<)Q6r>R#IXp@J{xfZx^foe8nn}?CJae|NCuVXy{m1XIE5Iq%hGVAvbsJ zru~Z)eBIpIP9>X}nR)#e?>=f^WYpB!+Ip!>Sy_2%WvQj5C1`Z=;;K;X8#ix$EWQS+ zY8j-~v+7Otn))w4D~pTaYWdHllidhp=EA5W*pYkj?=r>6(n3HeojDeY%+xdC6f}*0W`ulz`9X)#V1}IqTwr$&% z)xSP=w;98Olatk-9#awPo|<&&iD}*JrAwEdGK;;X+_I3vS*>aQ;#HGQKaJR3rpo|2E0F;-1mm$Z=*g2O4r-HE);OFx zbB2Y%!qSpc>huD~=7MKuBtbj&l->JW)<$gw%@1W=)jBi7@bH4uFJ{c#>KYI*;o!OW zsdKE$`Btu6DJ37iyeyZe{u7I`vhu^+1&^AAI$1!~TtR_B+WC3C$;bN`AFQj4j*fov z?3t3j{`xzj!fV#9Rh)cs!tB|rCv~j&-LS52;k|UL>W@rc8CiJccxKF8d3Wg^{jk^9 z*T+Bmy>ge_{~sTd=h)ZpJCl4BG<=_!s0hjuElZZJPki$5;X|GW&%U30T2!}t zTk)HFa{q3?R+xd#)zs#FsI8@yl(aG8ZAi1K_cQ|r9X&n2%<9U+C+^?-cT_yyz@fA+ zt}^4?HY49>Io?Zy^7egeWM1>(s`jxXNyqB`hQ2qPR(kjJ)1qtJa--QAWNoXa+_y_S z#KPvV)Icb?M>l#~52&^f6%#W$CLwKCW5FE4ZKw4t;8nHW>VWIp!ot=jz1jQyOZ~ho zkI9y|yMEqU9kv!Ub9gx`LO=F-OyQPI|H|~EwsbHiNSo({+*&tdbM41Ru1nuOJ$rMV zhtI4%$5OYh&8>dAF!4!CNVG}MoE5uDUJ5bf*{193>-YBidwD&Y{zuB9V8McojCZOI zy7$R29?)&Px-wY(;Q7F*C!QABRDNRl{rx@Y@RSWTKZ`)k>D$|KgMXFP6Ig%t^I^Rc zD0i-3uMaw1HR&jqP4zdP%F0TM!bdFE*2nALsO%$^Nu2Sb*mT?qa5+ect`8ROsI(pFtr ztCNrSMeHn6m9wpC*_?hp>DHD^E$7Lt0hiZ(2JJTg{q3!Xx3_a$ot>Ob1!%=6XbVML zT%3e;*_u;^K`TXypPe}f+Lra|syQ&Bot_(R9 zwKeOg-One&Wj{YX4eGD|_C|8HU9DAdX=$pOnwpQ+)J=7Ne{BS<;rTtszCP}$O!4z` zshpggTDPa`#h&`^G-c1(`S$Y-kAa$Akr^2puyt^KeSJB9etgXN_U7iFeQ|MdIq&c7 z)ynOWv)y$iLLyn~Hank8#KY?otF}#D`TC}rkx`PJon6l1Hr}l6A0Nze63!fI+PLZ4 z#fiIK+gVsdq}m_lVrQ5ET7%ZJ@%j1rn>TDQxV9ot8ML5IMn)#${=V8!w@`y)py@Ym z4vqvfGqW?;7pjG`#@g*UsFzGY8cEn`>JgwtR-xFR9hpySMaTn)T<*DQDZ;Eg{j-Ec@jEsx|mix&v9Qg6^G3dgi-rJyAK&M6uoQ0$rMoEHEv%`=dZ7? zAK%+sZD3?1w5C?^?k?6HI~hGa9cG)g^({+_+#}J^!?NNZkGg?@K=t=`tPB;Em7vj9 zWw)Lc5$8k7%pSbr@|nk@6T9lU2k+s#cV#OpD}TIRzn@38>%*}g#&dHY*C_`2&+59n zyFB^EhD3&jU8S#;3=9Mu9UWg>TIxOXxU5Zu0AyWUXtc^|tyS-?SI#!e1zlWdQ}^e_ zg@qxzURCTBbYftb_+|QZjh)~jj@gegA|oSfr1$OH*Q9ofK|oTnbGm*!6NBB)CzG{i zX9x#PHOapxGuNv0P=}y$!2Y`0vwYjOKHax>h9R?rwOGcz7<C=qTR!`@_sd;&iv+C{nP2mX)2&a2Q(j(vUr=djsPg(^ zCyteeR(+2bRkDbk{5JV`-^ZzEe!ouad(g%!%}{XFPTgmQLdEZvJ>6pZaXlYC6r2^# zZ9O@e(ceGeiiX4Kr@gD1)~wNKX={6Qaj|>F-(RMnp}_|a5^mhM@nH4(eMTh}hrImR zotzpP7!ochIJ*a@etmaW8gx|H^>wkUYZt8zSiBD8gh%&!_v^SAbUn%djVeWLz4YV9 zjvW^N>h{&9!2@y^S%d#?qao>EI&J};9IQZGGtz~xWVYs%QJtv1pR#dSiWEN;a^08j&HooR737?;z z*EhYnEb&Rp@)tL^ZQA6tIqj^8)wUfwB-H)qu^d?2s+sa}(~B1wDQRg;3~D|z7&={) zB5t<`=vrD9?p=Amj{DDZdxztF2UZ5R^{q;~xxIh2(Ei%r_U51^7p52f{QP`SVzKmH zt-sgy%ux;0ys5^(ursF5{@)K~hHx3*%U@UP$L?xbvqlHBfc5{wc6kPdq>U1wb1b*y zI(6{5C_UJGzF~<<-j7Y|^#vq2K$Dv%?&XHB`|~+!dp`f4`~M5~-U81R1Zmtak!j=1bQ}@Lo>p1y+F zk)`0Lk$K7fWcR!uKVDvT2oVX_oCg}559L$6&C>9xCO39cZl?>AyuAFuN4K_Q3QHt2 zG=T1W+fc@-Sao5y`E-H2n@lzp2UJ^`*_n>_GZ*b#xOnxvuC9i^zZ=)Z?u>h5UEXka zcVoABqh2hJtgK>-fYT|5lV*$yq6oYOzDtik$e#$XPOH1p}wYAZV4Bx(e z`|$m{_>x%X9c6E&Kxdjew>x(HlawyryT1M(=aC}}>*ESND<-QQIMjOQQ^=AU^L(cG z8pbQ@&-02;_u4t{P4RPv`uaQ$dysvrOtfUZ8D50RfDZG~(9vO0cq8zsnVnxrSC^Lo zH0(8F=1k6O+xDG&S`@Q;8jAv(bK9GiwQF1cJ2g#^a#VR#wUwQZWnDab-Jgl8XY5U2 zys+1Ly2G#E%wJzgT3uT8_*-tm`?!Sja_gS&a%4`pq>^yQBFcESfD^~cHjSHVUPmw9 z+M3P2F=8_#|F2o=*G9bKez0mnIOvdsV;2{@gBGS9Id%+m(mq4O787F`iwU5CeP(x$ zj>at+j4mz=-qV@(|2=lrc%HTRk3Yo+PIGf`F#P)R@LhJqoQ+Z18V@GDI^4c<;iK#8 z7`J8>e!eTN%T)D^#pF+|4~JsQgjLOxa+{`15jl}!#IWn^^>v}E#iF+7>3aA`N=jPP z{4iixQ2hMd(si-v8RzHQA3xa44%!WPxSjv=`ee_^>iQ0=!`AW$$SQ{RbaGyw{q{Zo zljqF)|DV&1-&&@-J#2d~?}fF}7Z$UBU%yOQFyJYq3d`SUe<-Su1d z<$wIE&dV$F{dEX5s(*HxZuF0ZFGJTF+?s1$ zz9Ij<-JARS<)5FQ?_O9~C|SL~zwmKdSX53+h;&-ofdER_s*bjNK*j+9p!UnqR`Ozgzz z?v@Cjy&)}AR=aY)`}T4mc$VqoX%gAjdVcTk<}NQT zSu^KR;?biHX=)!{2u_%GEHr+9X}9-=;GiA34A-OYuahT;*)TgRj-n<|vFt@|S;q$XQx+*QV!$OYeR+m0LX78Dsq_iQK z{X=;z3q!+7&4A^6(@SpO`d7Sp^W!`v!SD5~*4FRhcgmbN`S6`FTS|KI?M<6@{Jwef z|DE$E9^|>Y{@)V3oNxLM^Xy}yt;OZfs~$?5E~>o#euHiGw~*D3<}Ru7^71k&;b;-i z4cs)bzljmH79jR8C|m8V5@j%NiMgEk093RxfG#5W`ue)Kikjv&~W48H$$H!yxKOJs& z$kO`o=BEA0k8`d6tDJFlZCJF;=_HHv5A~01JC<(i>6s#28Xo@c{;jP$7e4sqYi79k>hSf)etv#FG3MaAAZcmooSU0id8IlI&Y0J%+`=Hl`TZ?d?O`XalLs1^ z555q$QEZt|bm7J}DL=y&nF}^I^({-@;(kh-aXU}dde(o0$vO(kW z_WO0+Y`ju0EWz`B0!|*GZYRrlmwOj(nRK%3`@6fWozI`ouV-WEIGWT0S+aX!kt_F^ zna0cS`~@xL)4j%`4z3PXu3582L8vn%FKMF$A0HoRFPf8+)6@=aB_*e~`*!Z!nKi$8 z{rdH%_HlA@O4!%g#KguX=H>N$zgNw#8@=twg@w)^_y7OPU;h5y)z8L{L0z6dKR#yM z*r2E)#F>+u3%cAE)J3{^^X5~#{hyzopI+S;xj9W!c5}u>C5E=&GlMt99@dSAT!!x;gEv zfV}+rPk+3`IR1bx*s?kP`T6;cb$_cE4!pRy_@Kn$J(ZssUVKlF6Z6`ZywxWf zcTe$v){-ferf6pjzhKt0)$8{;xwx=g zTN~Z}^z`(@ckjxkrKJ^=l(@{ds|C$U@kkgrJpUXK83|g*xzui7#ziHa=xsdN*Vlor zw7j?})!Rcw=*G>Ppd(yAe*6f!6oQRMqG7gq{wkULyu3a(Ua1Ec7CL(cC*0pw^wg`@ z`gO~XnbTV*y_I_N?d|P9e_oWmy_H$A#_n0RcH4y6vuA_O7HHbCa`lZH5j+wG4Epi= zSPs;37JPc*Idy4V8?SWRL}hm=B^S`lwt$kt(e&Hd*VnD&$=B=Oy4CdEy}jM{>wf#n zFATkLcD6a_@V1J|O3>B6S>Fwfj1Gmz*Dk$o0m`GS++qu2cb9SS@`mp2Z*64_TNlGQ z)2Hpc{r{M!g&QM!Zf;IzX0X@!lY8^#P0*g(cF?rzYKzjJ5T~zsvY}^N?(M9SHA*+d zI$d5|TRZ#QMiq7S$KazCSXfvbw5Gngvuqvc;Q0dw96%dh7!Dme^x?9<{lePc-@HDj z%gD-Z%)4vl+zMKAB;dpnQna=4m6dJ5<72%OPCw<~;?gSK|NVZwe2<}o^y~DAt3cOf ztyr<*js>Wplb)V_igH%#d5Q=vo|000&nVRSv=$Wn}-h>SB7*gTBP*m&Q9UlUtbz0PZmCN z_AF>LbxqvfsLUNd_SOEL(v`or^0V7p(5_t`c{`bJ-@g6XmVSO7=PwzN`B$U2=fyru z7SoM7ay+;w;>W|o?LXgc&AR$%JG8@db#*vsyUcgZnLD(zY$~g&rd8J+wM#!YC$RF& znKL|_)6Oy_^K^^rhgIpAn~UGC{T|!eB{}`s+xa^KG;XdtC}MjXl#I*E*MBHHdGch% zrze~YiER^3KP`F#I*&VGcUkV2mzUk2o0S%Re;3OmWzr#^WS@V}X5S7c&)Mer$M#fy zHYj;<;S}FQP(!wb{`NQ|`;aT6`zFoL*;g2tu{Xf3As2sDSfYHs(t;t^8HCMH|`Zt%nasE9U zgJU7DgulMOFW+N0HMI$JO~U*4j~^cvm(`BU(KR*QdZ1hUrhATf5I-S36SN2BYznhF{ z)|7i~8$*sQ-KXmRK-`1?FhtlWQg05Of{QBx@P44`zUyr)=AH06e z&CShSQC+=w#R`v=$0IyKQziDO6;9cUCzW_4Y$= z!@s2Kv3PCEUUB70h~2^~W&5^8=(t^97hBr*bb5T^tPOpM*Ek5(`Ls8FFj_}>8C%wxoHe){mELDJox_c^XK4KIYA%3d~r!kR0Q2{ za?#Sd?9GbeJ5LMC%GekVwlB|?ZchrGze(d;pv>ZP%jef|RaaNLxVk<(H`n^chD2to z(pO6^7X0k`bEehlWEt<$+(MI`G3U-N{_y3?m7mc&_Uy5Fb9*~K!-YMS#Zw<@PR+cu z#PiRt$M^2tyRox)xnnix9t8oXj)za5JbCbX{eHLAVQUl8(~p1eIycLdo8fxm;?7Ic zCW;1qe|MMBA=hx@sU;nYQ`WAyq~Uh=*RNmGcJ)u4Dhk?D`{+>;s1gwr6wF#)9VR*@ z=X!wZ8>s+4=hp9_bVYZ5%%Fw8-GthN7ol45y~9S>1KvLV$#{H0Utw)OX@?a(o*j z)@<3gHA2VD(XsK=zNNaIq1QA5TxBj^yqJ2d@Y|cnB}J|owcyK^{de_rL?b#bQZVW0~ z+18WlCQN5|#sLw5Und2yNL+-P`sxLsS+dtLByzIcC6MP+4XetEl)+kLIA ztwBZao;_>pl{VKpTKM#oXwHodj&DD%kKcdn%gf7&`T6k+nNovRiXBxYk0vv2>L4_DS7bvb#X~a$%u_ftn+NE+xG0S0bQ&5`uckFl8V$>=J|4Lvr|ZQ|m^iT!bW?rcVmHyMy!iURrkgfz2HimNHh#gW10KDTr%pZU zq9n+Cz^z9j@ZsYpMV6blZ%=24xVy*2meVB_$n_ zk(Isq`FQWY`FpMT`(IWuTl|}=qok;)GKnMWtP;nfthGy6TxI|4*;|UApNo0B@7JryCf+I{c|idw(?O#DJK+RbN$- zlONYSwl94(#U$;Fglb)Jaq-IF<$jl5U0uC&%a$!MztvS#JcQN#ro4IcMkP2ncxCkV zyh|@HFIP1;H-Gx4_}Q7jZ~a|elR#TcudWDm&bqN-;g_G!=RcPOZ5Lfy`1qLTd7IBY zA#0;dPu{r`^XkIF<}DQ;lQb0-7hag}zQ6A8r`o&-S_SDdHeV`7ADRoLbXKW;^L0x`G@b@x6f5`?c%=|_uHNNSg$$%=k1@iadUQ-6u#L+84GKhqhk%HR1sKGxfPb>6ytf4@cV`}4`0;nmgE z$G^S3ZD?qyd07JDG8RYi;AK9E-`?Cj_5b~yoz6)~i~LMyv}{tI^j1rw`eki+c=+1> z%U_sQhpb9czit2LL$i_pt~K0?LH7}Xt}>p$?UQqRTQ3{0)Rat~CIt=<3IN^Y`S{V% z?mPSI=kF|j&Qv6%H^m<0&LuBzZri^7__1SduOFM7+%|b~@IF?dElVYx@)8mbXs_QB zv}RigXiEzlzucNN?K^6IeiB-_N)K$Pf{1TQii&R3mIEg|mZ-JPw6C{g(BJcc>Ep+b z78Vv83Lm@e^*JfRr5<-N)F&!x)~1jKz0X_qV|N`{8@;{Z(fR9r{r%z71YTcU%>MQD zb^WmFT@`P)UIz_OF(|wBBpmCJOfAa;#}$j>_C{uQ(5-2p(ev4}rSWX2A=#85_Vx36dUzb_KW}YrYC3V|49lr9j-R)-X5ZYJEw1qW zT>a;><_LrH{rvo5b{4gEbZ{ssDHY{pUs%AnZr!>qnU~wP<=(!u%vTy@<-&yv=PeRt zdE1$?yX&M~eDw5`XyXur?|om-p){ z$FHw`^+v7;DtmKdVN8#hmY%is?xgzgRatZ9%mJ;W`g})BTG~4&C#Uc2vSrJ*WL@P7 z4-c2Kt2wbX`?`mR$AYrAw^BtnDP*{++z#~#>|UH%wQaUZCTKTLSIxg2J1qL-?fFg= z`>t8Drt8kMZIdQVk}%7W(A3mqsQGkK-6}RiBX@hAqvZ9D)fZ-&w|h_jBHJ2}w{+>j zoy7ujd>1bYh_X)Ccg|T;lj8t(WHK-@F>!Ek95{TqnOE8@Av-%-Dv_({+!6Cut!L}^ z|6@9E=up!#-`QEEJ~=r$psh(=_VLxv&&^$NHLJl$yXV`p+4)+Zudwq-9C*Ecf1KL$ ztDzARFARG3dHwp}d?B&YZK0NjXJdTb#QcQ|ix$nDruIF^+VbSdk0&NxSkQPUI5(TS z^z|uE6Nj_25^{9pC(q%T#KOs0@O@oPclTuBuP-tz3K+uH{#yT+Pj*3ec*R537uS5> z$%?lm-P%#8eDB`9UwqCQO8NQupj-If8)(VIPJX*QG9u!`N%i>;-oDjso6h~T%VXPW z0nbU`JrcRMwm2>g$}9yPT`={x>c%JH4GR}4HnZ_+g+<@Gu`O46wplLIg2cmZEG#S; zfA_FDYAlztX;`3eW4CypOyiZ1jJr{OHSzVbR;5j1x+U3{kGSk(yt0z{XKYW%YDFU< zzj-b9>)U0m6HW?k*uYR;E@8qER~PB`h}BVmWvz(mO;COB=H})z%cS#qT=m+P#X>EQ zgin@Fcmp*Vaa_dM?7Ua7s$*$)mhxxlOgdpD5n>`}=VE{Da;4O><*!9!X4K(9`?m`}yd* z`Snk3e0$3*FJJMPSHenU&)$XU{sQ7ZSR7Y485tRYdIk?4K6G($5fB!3uBfo6|Nqzg z;>C+Mo_?&%O-*f`I#u-hyStZP$$*w(%{J?`EPe($|88T-jDWn(@HEj+-|yFJgJv#F zKX1*=&COhxogZjc{q0R4*Zw_!KAm>WbC=G{%;b@`n{&Kho_RyTL#JJ3Z==Aj7g@6O z;I`bN_aB#fU)X89CQ_N7*WCPidC8_@y-!(w_nJRZeBtQ0p>ng$o;{`66`y@2tiwd2 zg;^F}dVPPty`rLGN^0uUowi0sM(0zcpWMs!jh+8TLP7$x&uW@}yx-$vz1`C56sA}) z*Rm^2nY&2k_Q#JOPt`mJ9bo_Z&n(3!T2s0F{m&txQ&n>zXJ%HV?s8O`#h zv@hgtQV0=oTYrCl-<))mYhBFFpa=ib($Xr`ZhiaqZO?~8+^pXm#7(BeEDbU& zc@c2v@L^6aE}_nC0f`;+-fFo_&RHFz6%!M)#p>CQkB>bjv54gF`!-qKA3TOV*Q#_; z;^8*eywwJZii&F@H?uKhXJ>IpD}LuzYOd>A7Hj?E zTlCKGx|czgobh|5!q!cx-plGJaBAja_x_?E9}*WWTGY|kr)Fg}Ys(gs)ZJ63ik_Wi zdiwhh(A7jiD+@|Wj@-N{sjjXL8VcC3LF3DvpQ^WQtG}hZytLHj`<>!l_KJ=dj3?%V zE6z&U9l1Fzs`dq=W!q;F^_%y0m+P-wxzgb!pJM%w4~mbE_q$J03DFXrZI%nVb$Dr+ zouh!)g}K&6jhkb4CtT66^wd2T)cn+KvD=5E;s&`=XXfdO2hBEce7E!Zr_B)pEDKdq zQc@Cfa^}4M7Q4F)bO8Lb-Lb~E4DBy3^G&|BCDXO*?aP$ixwp6JL~df?=kHhAs?PDW z(PP`{jww?_QeX7zecoz%a$9R_>$SZPD{pR0ZZE1oF+tHaZ@EG6az9lwGqHy2@%6Da z4%|+z8?(iI=4kNq^K&-d+xt~E@MLk>H0>4tKQ!Cy|9wG`gQq1)Z>0uD(}Y+zH#S2< zLl-wUAz4}9kdP@w^~ZW7_x%6&`={J$&x%kj(epN+eb&ik#qM){^BpxWuo!i(RUjZ{@z?f?G~2JHwI`N^zrX*si*ouBE#y4c-J?ee0> z*TwF>u_=|C!FRS<>dj55ON-!qMOIJxez2L{)60t~;l+i8u6fH9%HQ8h z{j@(mjF*Q8w0zf8`?q+RZQHhEH*d}iTN@=>v99XttEs;(t@&wa zVv_Re%E~Is?Fv)GCgy|-x_WN&pJTD`&U?`Dtmo&}a#UuXykMK1=IqQ@}No(>%}JRc?p2sNGx_ zxR}j%mdV9eGw#>_mt{~^R<pR1 zI7y}R!i4~anAq5E8>B{ogOb-@bjT%nM%` z!ul;Qe05l_ar!yXu7kDHGeubz{t=pfbXCLtf4{tU-rrT4y|(Y9UHoo~liSiNw)gh( zp11p*Gx7Gx)32_swygT1p>X`iIqUaRGJZdeJUh!YaAio;-E(s+7r!rHb(}U$E&Q&W z2}ezB_uZJf_sq=9%xl)Jm9(iaSnfYxukpa?3zwE&Sk@b3;ydY!Y;VB1sn@?d#1*cM z*r;^AR#;g0a}A&E=N%H|zrJMd*}FIM(h|;P%a&bP8Qcy^a3wDSK>d!?&fr=jBcoHB zCv980R28&p<@W8_Po6wsx?NCOD%!bCAw)>&<~pWL;_jEXrSDeh0(UNA_Ew2bsNU*b zbmH>W)!|bueND5jfX?9v&C)$~3xWXNLK`isol$XHT9vb7k=!)wOkhfBDR}o4bDBuP$ZxJ^^v@(F~sQ zYL0x}kHnR0@9J_maeDeqYwtThlbKg~+N+gWS63aKpy=%3=a=^7#YNDKQY)hu>UvHJ zSbcTH)mK4Xn;72SKK$e3hKh|g?a?9X>jSQ2nRa$|R=u6M=EM8O#TwH5q^rJeRwf6rq$bLPwo(7_qED{n3Ho&DqI^ZAUR zJ0Kz^Z)D))5lj8IXe8x`pUD;&;9VBU}?bOZD-D&-C6XM>-YEf`n?yp zzJI%2@KWf{m&tYK^hF{;159RSAjh4ZZT>uB+sZYeFTNkxzi82-h+QR`d3kx3LT}&j z@bYr6d7#VDv_N0!=DH`BE?wGD@=_>Z+w1K6dn$t^ovy8qw?A{{OxKljm*3speSA&i zW`@eRE4xZxue$P~Ft_yewcdsXhT3*Tj{i6JM8-W@#nbNZb@Q3cYOSdE8#Wt%dBHf_ z?4`BPLXM!|;G5g?x2Ay30Q#pQ8=!xaNv)yWHY#2btq37P- zrn_;Q_U_o-WluHigk@#VZb&@5B6|C}PdCi(*95m=bAlN;?L{vl7d1*-QQn{ z`T6Ig^Y^-DWMuTY?AQ|W<2%EL+xhz$Z8|pwNkL?`N=OzXBcqT4V^BcAgs|hF^QDZJb!zA z{d^XWwzjrQcXyX}UpaR9+xz?LZN%Bx*)>&Fm%7}#y8T6lCzB@^_vN=cHf%6>`h4Q` z+{edyE9IWQe5uJ8)GuedMA^O1!_(9A(#gr{s?N^Nns#<^t84S_@6$ESyyUWJ#IuI^{5=h7h0`1-$F&pp3#?9tIlSN818vsYgz^W$f_XV6NOm*3tB zML^E>#~MG>XW} z>#vR6>}F(OFyUV1^SLp(*>T(b>#t3@@_J{$a=(-Ed=n?CUSAgQN=R6k`%libJF`qO zmCnw!4!5fRx2I^$%9WY>=HLCPx&D3Qo<~|ey}i9D85uJk8(Ldib58j8<1zo*+ZRDM z<6YUBeLbds_s*T3rLV7Dt*Va&o$2@K!v~Ep=_Z8`De0rCyS?;mY+`oaUlqFA>ASzT z_hZmS5+$#$tn_dO9bPka^~=~@B?oWaih6D~Z`zb8M`q{m<7{YbWCUGi3R3Y;+yu*pEHfq`!;PkReauddOGX%Ki?$n>ukc;$ECi$w$^KD z6gM|Fs4Bj^%(wFO+U?-A0cK`a^MhBkBqbfVB$Siu{Z?dm`TMZ8ldD3sUR_z~e0^PP z<@>$gi*&4SY)<#TSNlEo>Ho{id>>y~8N4QL@2twt&t8UHS#>4;{H)S#$w>!Ju1vWt z_T}BHtE+V)H?^pGPXnC|vS-hpuB*3WHSaUu47rl{p-CYmH%X#Wb@@uWtfVBTZZTc1 zyZ_J3G+wfFDWmKB^?U38*DdXxB<1w(`SayE%4U_HQg)TUk5hUZmMUvqrt`_py8Io> zgQd&cSZB|e@!=4+{)9=B4*6G#lwEo@$4OO0o?o@#;#!59(`|!RU%j)ty#Ma*^5-5# zY&;SZl4muytzNAyDJf~G=a;qkO8oh>G@12rvRA$JpYG(_=(SYq%jOS1K0f{_r`@Oj z_wiOyLBWHETDd)aeV-oYw@-O{YwMl8)#1y{w4PQoR7&bP_*e?DEOZjGy*>5L&(F^p z3yO*^WxWf`$XHRdf5pkNZ>syfly3fe+;9Km(`kLi4VyP7pPZz6G;i~!%V{?!NttGe zWX|8R#YE1w%H`{;tA^(0=eNdQo-Hdb9=@cQYidA{(3F6QM;=vtc_FABzAokYxw%J< z9ecLw+?+Xc)&y6leyTDvZLNQPnk)41)6>&u+SOWBe}DIM^Le|&2M;bha%)}3`$jq2 zs)BECBLDsSoo{1fL&oAAS1r%s)E z^k6ePqvb*Uchg(Wobgffo3kRM;P0o?`YU61mu0_d@ds1p@tJhM{uH;nEP+rgmFZD?+ zS05j*D19~M{jDc{tvveMH*M0|(6!lOUrGP`NZOz z*VaTH{`U6vOyhLFeZSAnvz;xf9VQ?sxbROL4-b!rzyJBI`E{okbS`|=q%g%~VorF{ z^Yin={}t@Yc=k`!X>yLWwRLi4=E~2O{_|{3{{8)(amvm;M>nROl}gq4qrHAl)AHr% z8*i`ivMPCT!2123!ySUkUR&-eI=2Z32ps6Q|2Jdt+bvs6KvUN%S8D$K^;P>~F_-9! zty^uT#H?jw{(C0w)TvXCj&us&xOMB(wdnk(H>ORRv}pPauG05%evy$ZwLcWUyo+6; zHfPQp&@^@t$D<#QWY_bir>D2^N`sDf&bYlzxAylp-Kj3SZT7ME^z`f~c<9t9t}7!W zGsC{#?(?&=$%or`eP$RaUbnk=@#323?R|-d+n#2eK6lRVWyyt(?(WCGzP_$J=WA|k ze0t&>Ybz_G;%7cJH8owIzOXn79GUa>l+WZPO=Y&X&GYUA{L?4}l{U{omzhodt-tR_ z(!^U}Gn)DB7@pWSXos!Q2&;BF`SZo%{)|gYI4>{vPrtvf)~51POSibbQPvfWy!-pk zzPh@)Skzs3)dsU%1xv|IwQ5sMot>SlzP<5`iII`7|6}<5-Cbo>)mCNqz7JQ!<6r8o zW14HlswJ9XY2>-W0(6q=n#j!@+}z4aN=>ZXVpCoeeB2Xq;`@R9pwqhk{P_dA9;U9Y zE@n@~#4le;^6u?9`RnWJmseMd=ib_q`1jXW%RbN%u-o(QCcVA2RYgs$=;6W%OAz@+VtRoyv0XDx@x9CmTwla9RmUmCg-m0w^{x&x? zP5FC$ZFKmO;$6FTc{QXYCMqsnx>R%}Z|_89cdd^)(c9KUFBCvetjjBYqtJ-+5vNmq7)%o`_ zoSdAOj&usET3cJ6ymBSv)wQ*=OMZRHJbCu4ujT(amc>*4E?%@~$-BF|y-l;OOaQsB z_TSIvxBh8~B)!yk6xeig#iS)g7LM*3g0|J)p1ioY_{y5d$;bQU#jV6MpPiWr8c1dU z-3h)W?{3uc&v$o~g4SUvcnYoG^NH)=!Go@Se{XC|{_^4?v*)COf`SL{_y0e3Oe<>o+Y{ZfSMAz3o@uvYOu?oH;leKx5FI3pNWXKRCu~QRsAkVhB%Ud1 z{Moo~v0%xBDN|g|&N5{*Ff~m*(7@OuY1~%#_gCQBsI5%>rpCsPyY=@SxP5y!kCJZv znX_kC#_hHG`0?W}zNIJj?A;5xvGn)%_t(ocniO8dH_X@^+nG7-L&nurQ^Q>CO+Ifu zd-iPR%}ql&OD4{od2)9CzLi_PKAj#PcFQGNU{#N1@PcrCi()pb zk_+V~Pw(H`TkuxOXV#MU9xSqw5)uzyzC3wiqOzn(hQP9A%YN~#jG1MW$|WWyrW3zU zW?I_V)IvSyOJExqj}%2?ZS;o(b2_nwXee`8j9S&s%J4 zY+v5rkAMEyG;D3uQk_V%q$3xo!pHj@ei+L{dl2V@lsXeY2_ZL zlb{<8uCI&bk++Lcxz!39dj@5Ye}8|UnQJXRVe*GAzqMhntwB>_oEJC8dZz04E%R0V zv|)q6QmM?quEk52F8z2~e?P;6XV1c(q|Sfz=n-h!w8Hld-HS4s0y@{kaK3w2@PMJ? zYtiTJiOh4X+0)OzvKDgGF#Y`eJo|%I@i+xLJ2`fCcF@)14}!8qkDi>YzA|_@A82*l z(W9-)d}nKYmp0GqX`C09D!{VvO=rsPNtdZ zx42FCFL3+zZSkGDpaDj^+JqMYGt7MD{Ni?R+o!BmpLeIB{C?}o;HMKAngTp;LZ*gX zr%svTl9r~X?lFCTtZQpLD=I8{rA#jcmozC%Q7z0|JL!@sxZ0lb+jXY?)V%^8 zfz$t3)%@77XP(tnGfw(uKe@#p`*vyStR zeK+N%rY^lYA~Wo2og^TmJ3Xsw!G_sjEVwGv0_!J|i)UU<1n>E^l?6;CB2 zBcTiH!hgTJyBjn>pm9s!(~B1wdhz>sPVBwqI`TeJ-rfP$F?Q7QP2nh?HJaIz7(sJgOEha%hK_0%os=B(p zPo6xP!(RV)YYnrEjLa0J?ohulu^xHM>IDUq|Oa7ai{Xl!hZh>9}GxS-I+ zC+l^8U+vLXJWTc7Ciz@2j4{r&28cJq>t_g&mk_?T((+cj%+ zE?v50U~H^ibVl@QkEHRG_xqay#Gaj>uRrPSsu!=Wt_E%Eb6CA~Q~m$HXSx!Day)bFpw{L$wykYoCBr(Ldb^08hd-pcv%OBfa{yF;ZFBW$8&wsz) z7nYUfJ#e_4|K^rV&{2PnK0Q5cl6}o*zae*1K$cb6n-f#D!#g@V6>V(hKnBl1=joNd zyL0g7&7B7xpPz3JS`Goa^e}YJ+RV$#K=;0{ewv`Y>gVU@n-dN))wU~!Fy1Qb=}g%z z1j=>ao~$c=e$HzC`vZ;43=-1P*|ks2b|38)*FHVv>>SI<>GLYxo|~Q8+|$Ez==N&&^fV(dpU$?^pMdB}-&}drq?a{q61HbLag0Cvr7`uG>2P`~80Zu&}U+ee(BL zi^u={$bQwWw`qaGis0of$~wpM?lc^1e)@IG_xJ7dYzrO#-HF?f!1(atLl$;+VG$9R zloS=vG4-G!sUkNwHwbzRc}Mj~*4(mRHPrrgZo1?d>~jf0wO$D<>ys z`RWZvQ@}2lO|hJ!TZMM6T&bB`vZikKlqp9xCLd=2ZA=3VPrdvxV}``Fb+O!_(_}WM zoxSw($0s#Y)2aLa|C_yGgMsQ!yZV1NnVFfbGMOjb<#Vt8e6G*&D=k0Y|Npu`i|NH%^T*n3j%a=LV`S$&Ei<4Wk>Gn3?bryNq+{^tOFE86!cJT~r^o9gRalIJO zg>kHAlH%gWA0BR(v?x#z6BAo1x>JFpYLPGRysEFS9zK1#^o(%*uix&6+jzNc{(X6Q z`OTf3!s+ShpnO{%ljiqp4sS?2d?bBlz(Y`!ae+ok#jkCiJ9X;OoAuX=N{fpx z@6@(lN0{eP!tWJg3h7Z~K+<+A_7pc{1{eZHfco2JWJc2Ca@8595P`S*jl?ic62 zUtX(SqN8V>zr1COiIbBPXv-|GlnH27`|IoLpC24-7P6kM!0~i`V`Ne6+9bua&2#r%lBN z(1p2k=FGXVr_wlUW6Y8OMo_hQ^3tTYc?YZxTMIgA<=}kN!|jKcdK=W)oSDU{r}yc?C#U5}Q-b~H9Z;X& z(9B%($MDBb$CQ+nJX863c%EGLw_lolech>}{XIQAd~!A?j&urJ*8C{woF6REaw_%i zF3@3*t+v(QHk7;!s;Q}YacisgvuDph`|Cw3{_LszydrQh8|aMgyLV;d#tw_0MJ-;edNyN~TCd<^O){r>h=`=_{6WTLp%#a8Q3SxLW>Fwp^{@UL` zs~9iuTo7b`Cp|YiKU@9(>$kk$z8$SGOMP%kv@&vY>1zdJVKu)g!nxA3gRDVg${)XeJ$n86 z^dCPe_+%^`3JMI^`Q?t>xFNyM-ydYXU4dh2Gicr3g4_oO8ZEcQ?ys9`)he>Fr>jfJ z*m&}c84^iJNgSMXG&teN+?w9)i-(M^7fF*^=5&PxV#Z8_3#^0_neO}|gzlo>Cc3$6Mv$HFwR@Y^U~qzP|qOs?epgGVIUZx;1NK^6^dO@8k0B>^S)C?d_G32PTwmjXDdu7v}5h z>!)?x90jzdx%Enk{;*{F)OuCXx$VJ|CsWd87d$&VTfE{A=*X7s_v@k`*d6baU7US= z-HzS6K?f#@%I#2iG4Vyv>XZ`CZNb68Q%^nJ^)2ggz4HlP9v&{;9TV@KnyNijza)Rp zM>ak_KCAh=ZMypV^}q15oH)Ah+nbxp(>@5ETDxV73CO3<&d#; zCRe`QdVRyDO+j+=4HBC+?P3Hi;s6~caBEBEQSKAx`0Rdhi0L%!txo)$X8AL0Y;jrP0KR6HnEqr$1-<&dbfM{P_MO=UwNn`}zAnKQU3c zA?9ez?X2zJ-`@|fs@K)kt^EJ@J1AXjt^Z#aSN(RY({tsOAzIhg$Hy=EdWLo3me%%m zVF`&7zrMcSS^hq*4|KwB(vJ@hfBg9I;Mucj&p(1jY>xFvg0{8f<(>O}zdk-=(sE&8 z;fklCKg<5_oAcz|ZFTjBmzST;E-8Pdaz7^a;7!R{CX9=PegsdS$2VR7^yjtz{{;K3 z@t-@X`ugju&EoMa@$r@~|Ci?_yDrjP$M(tfb}P5|rh<*IvKp(1ygrTyG}| zu{fSMcjJbHySw{Z{adLiDH*n+{?2Q|gk@yT+}m5dGH`L5(bOP;Q`{4C!i{Fl%eA)N z?ezR=ihkd+?DO9`h1DxQy%+F{ZJVGUxv2%TT;##?=iwPWPh-8jxQx@!Jz2eeUr^WH zojZ0sc=hVkG~MW;xBm~a%Nt}}Sz&YAs)Xa;+FbP~%D06+IdN8gc_DavTW<2_XJ_YF z6e=AzV`gTyDt~w8#>Qkx+bWZ^v^3Ujsd;&Q)2EBu|NmoL{p}5C)5B8nio3fEs682|lrzqdZhG~=4jyyv;u+Um!?zBfww!!?Y0uBiJ*6d@ zn3&ko+WPUw$K+{xv8$eItZuu!++X}xobajj_5Xgl|M}N-;>L{`+1J-4#<%Q}S-EoM zl4Z*_rJa@1(bWZw6(4!;s39IQNzGY6%Vuj-Z)+>7r>7@qfyvIUAe-DTFD}-6zgy05 zXJ@hd@~shn|NNPvXbsAs(cAM{<%&N)^Nre);ppYXRaRCOv#(~SQ@y~w9fi#co!hlq z?}ccIPFC|xy1FWK$@1loA3SiVsoAsX{|v+A8(T7i*Eto5>z`U2&-&IRUr&6s7^s)} z`S<(%pyasyew}wwQBmL9Z{NQ4$k|HC%gfI)%UuhKaM%D%Zt^>7<6=rl3bw_>1<-o)(d>n2W_!tx?aX07LBH7nIy z4D9@JEC&u9a(exB=l%NswNJf|{Q3D=yJS)AiwlZweKO#|N=r*l4vv6l>t@fKxv}D7 zlA8ZK9*6Jm?*9Dsdj01$H{Ly9crG6#V>@>hN9hNnv3jX!wU=$L`(FBXd7xitERve13M8VN1rvCQf0s7bWLD zIZaXl4eMIJ-{YK?rp9pI{=bc*qvH*m(9DWQM>=ahpEU;!;LF$jU=$V>u5Hl?DSY|z z<)1H?{aM)9HWfejds@2s;hQ&Sb`(CIVUWml?b@}ft{{!|XU?3FFv$pL{0$nf1Wo^5 zxe@{zZG3RB`QxWgi@c}novOOuq`+}YLj$}%Zr!?dJ9g~?E%A(rjV&xJ4BQvLHRtA} zw6n81U7|I@kHjDJa+&V+WVzqmpl1@VZwY_A>~F7mJj*)1`rVzKr>6gL?H0?Nx?s9_ zW@cuOgkjUm%geRTKYhFX{<9Ac5APJpo$!1&Xam5T`}^Zn44r0n_w*b&f4;wsR~png zZE9|wdVOtcE32KIos4xE=&<5vXJ#tLEq0pt_V)JvD_24s;@Zp4&N3}|e{XL3yh^tC z`1n3~`*qJbSRGern4H`;cdjfm8&AT&KR;PmSqmQ?Vg=2f>hJ$^XjSNH&^E-kx3}w; zxw}D@7VOMpV`GbmjyA6NkdV47A@Y>=I?!F{JM)v0lIERXn0|iV&TqE0zfA7kyJwPl zi6uBV7&Ha6I&7_kRf$G?-Oto@f%!|Hp11#hteM_{$F11@2xe}i)o2j?k$hV$VjWX>uoANJ?VV%?%g_@ z_ph$5_GV;c{Ke-jP*ee$`OCblw$gvT-KlKT-)GOB^^Mw|H+Ra687tlgw0fx+8wXpJ zy_xalT6Df=Sy|c6xbk=J-u>bW6lmcB-Tm(6=cjjRBg28mdxXQvO#;n>)w-JURdaCwf*;#lfo-2KR>(Vt-p84=Z!y)hDu0FOP{=O!QlGi z$jHb`*6;TyOG-+5ZcaNpNl96G>6I%XntFPEzkWWSUtE)a;=~D!pgp%hw-2YCpQkG+ zCFK>o+;8fkLx+|;d6M$-;o+$t#KNny8^mSVxkMepK6WiNiVPUP`f-=|rlaP{n6=E1MNrg||j;CSqV&z^b zQ>`x&_V)HqUtQUhdRptwhC{cv=Rbb<@L+uXUsi`^HeS$T;>^p-dgmz%v)sJ7IsN1J z@6UI?-xvJKEaS$_n}%g?BGmlmXiUo!@@ieUQ1R}r(#6r+^VURd?Ydw8e=g`|!5{9!by<{fpiE(|&z<8FQh~Qv|UHBB&ZPr*X7P z^vCbt#+jE?o)$_=OW(PB_vPK)=FIGTPYyIPAGPv7JIgfl_O{%8%CnxGoqhb%)6+jc zoz|ael-l)a$I6wO=k0#$fbg|z*P_+9zm?Z12TCTJC0 zR_R1X0k6w%Z*RZ3r_%WK_4Us$1wXyX%gYOzeXz5$JE~Qt#<9!Dz~IEhiuSfPu_))1 z@9*wPNJ?H@?k^vB+ex6MXleNRIEI$?_Q?|_IJ~{Jb*tUAJ9qY+X-gGX(bDQ#>OK9@ zvuD$kFP=Mh;lhN<&(B1yZ|ZrZq%09~|K{>Lv#zcVv}JJlw(if>TDgy;BUC|GKg-!x zv545kTbr3pi{75cxJ%sKy5z-#qWIuSYx_wmhUM>Kp8glj?Y-8~!BO?~)zQ1V%Nao@ z_*Q>^w>0nWuBtwt6{|LF+GJ7mgyY}8f1n*jJv}`#w`FBzK{Len?%k`rCMeLdDJ3Dn z0kpmG?)&=xzvUl3d^ls~%!|9r^Y`r811bbev#w|~Yp^;Bd{R%HZ9eCEmyu}W{{8k@ zTcz~%*E4;8eP?HJ-}BY$EwZk!Tl-n4AKsT#Af8M@#ukE{c z?^xK`wL3xANyWv*f%VI-4LQh}MyE-doix*3pO`9`z(%a4H=e0mfm@i+xY+3e3Lg9Od__w5g51RQIesW#j zQ~7y|UH`tjdnzZ#?X4>O`>T`zv>f8w`}_SnckZ00EWB#clqn)j&CP}7<;QQ{oSFL3 z@{$Q`Ex_q%h0o8)rtY3STl)32wU6K3-Oa+vdU3h`{GxKxZ~?B%i(I+&Vs;$(^Ye4z z>1}FNNl8k#x8*+mdOiMna!HdyNNB&jJ*d41TE8M8E&ciB^7%|fn=C=I3*X;?c6pfR z-8pdlc>DJIb+avtpJ^QDm$Q-Zob=(#mopdNUGDdvXEPI2<4T+7fp#bJ@bY^9*_q+C z`PHSwFZZh7D|!a46LkCg`@8$3B{K7`GrZsPxo=bb^>wimRX9B-6~*X)Zgp1Be;5|@ z>9_4vb?FLQ3^ zi<<8~|J~i)?)UfAc6N3$K6$<~^|YAb^H2@rSxM>9+w-2DoUCrS?dGjpMmaYOK$F{- ztHT9O8HXA5b`Lgl#qSyt0->=*wP=8R1)A#(grAt+}ZQI8BPFhTi?ZjcvlF0W_#w{{j z`hD9nE-E?H38&289y?D}P3_YD`ueBoH`hj+m%YEI%k_<8>AQo?>^b-M%{_1bf6o5@ z|E$5CkE-wQdi(qNo7wr-O~}5&-L!3%S#H<*_4@nv?Tgt}vhsp{JLodwhYufCR8@6l z+BGSNc-NhbEdw_rE@M z?_S%&!or`&K0cpc&s4NL!O?TG*?x5gN!1Bcr-nYLi;Rq1YP86~nMZlOiiz#*)~{Ld zyUTii{HS1vuSG;fX%$aS zKRb){#8&l^K(SVZ>Mt)CC%jIoi>&_l^EsnM`Ma2zbNn~oy7c&XKldGdMMcNu7ddtb zoh(x=cz#Y+&aQ?d;DwO(&G-lY=eKKkI5{;H<@C$ha{alqe&%Z4qNz8#4xB#^T7tq{ zbpF)AX7i&Fm zcX&4wbl~6R<^G^sUBA4#+6~%_|MRv6M^k_h8=uUHMXud5OfrSU_2XRDhADdrtqxnu z#3iq_mLGHl?uio}Z*OlG-*NxV&CP}e1_9HA*eXk6tE#Hj)d~vHEVQ0MfEbj zxu=@h`M=04Rp6M~`fSm>wQF_r_kI<-cJ11!`&qHmS7~X^I)AV!!|l{u%i=a(X|pFg z{Yy$rUSC@aI_=G}h|}8II`7_|naTHe?66qc@!|5BGiQoap7-_j{rLTxxu|`?{P~~? zPA7h!&HV~)>2GV-rk$Pj@X3=SCnu}#EO{9;?>7r8YhrG$@9MC%UQgy!3Z5)e6_Ax( zd#AjlM5iF$_kGFMtg9teiJ8{%zYp`*qqb)4*tzrKnn>f?b`1_E)x?YpkMr|vJG;9dKkm1Gc5iR>k|j$DKnHyNdZk_4 z9=-r{-iW=u{W71KP4nl=i|fa!*xJsWZJxiW?r&Aq*H^By&2m9EFZMkK_2AY-rAmj{%E)O&cerR3l}ata^whTI6w6_D6yGli-FcbuHXAj zD*gOCRZGj6Q>KW3u0EQi>J7T_@4|%*E>>^C)<(59HiC|he{*AFGdsWBgsD@Hu8rRQ z<59Q%469PD`8A(7+1QrO5b}0v{r>HCKBzw+t{AxmHzG1mPEu|CclU~0UA;J~ zqlWc4Xcxe0nOm>a&VOOnR#wk;*VokSF{%8NvNG{-8)#i&N^-JtWp%Z8U0vO&k9m1{ zm(I<#F5de4)#~+L3l}cjDR*95_O$l8KY5^`x5BTlu1@ah?fu;Q|H{hXOEV0Ur~Ej3 z_Uux>xmKR5!`GktTi-oh zG*(uBe;3p%WxAw|SK4cS{lCh2g>!7H!)6&IHeFd0X$)Gsu_|ostd#6*?XU0dMn~$lyes!Tn6 zlC{Y%uIi=gxA*t`w`N`S@bWrUK6A>A8xc}wIUFZGtC<|O;wt|7Ds+}vF4ut@8GE0|_W88_ z{tcC%)3)W`pOCUIa$5CL*l})MMpe0jHtlVE@yY9`HJv(@BRq0ZRO#xL~YWA{r zBtDtikS0<2`Po_SnEov*K5wo6`BeOAUESxc&Q4BKT&fQ=Fg~@qc<$7xq!$+!dM&!U zzrG%HSg5VLYKRMT@EcSJynE-Dkg#A<#_Sn0G>)EI7rXn|rKR4ki*z}jb}ZW=b>eio zUd)bw$j`t3e!u_x)Ku-Lt;NsJ$$|!sz4iCD%%30MdDa|M)0~*189c+bdfTV}*5&Ue z%$VUZ+bs8s#MBQa8_$)oPMLUcPEARvsiT7fbY{-gIqzky%QQH@ZAv|DQT^mNh>N6u#GhF3Nbl?Q~Q?fPi-RI+g`~bFJRo-rj#}YxZkPt%XV){QT+$ z1{1!%zFz$P-d>s8S=ZNrmQByFsoZq#^>yy11@cJaP_t&8TIk%)!N-?&ex7X#XgpWt zPrH2GiI4v$Ob`H#{cg*>{o>Zv?93KDjwVnuma*btt9VC$|M7zd8+)bAA3c4#^!bUF zH!hoE52osWkB`{2R?_X=qer0KCtI`rUs~$zb@Kl_+v;aK&%4XlF1a(`IK40I?JLlH z*@8~-k#6wD(`e}b@=+2+lv=1y0N#~ zoZ;=Qt&dy9<1XxayXni1kI8L3l8bnRW42@n>hJrpXx?I>Q_5ST&c5IO-!CCS;eOq3 z-IFIzT5h|2`!=W{RZ~-QWu8f&s(SKMz=++WqVS(_4MPb z)mx*^t_WN_C6J++jrY;r^7~hdL;idEwEX@3Ro3-rVjkbpzz^S_ot<6t`|b80zkdr0 z3r|j--Py_6%*G2k=5)`GN8J)qQqyV}oL+kQwf+A7@Sd%QSJRb{pC4OTCa4&guyAw# zGz<=25h=W8&4Rqx3q>ju0!mZ#*M-fnt^RglU92@|#{ci%NjUC+vm=W?K5p> zbzJcW6!V#r-d25m6}a4QZq0Y?timmzPTPd`71!6t+aKR{<3_}`oSTbs+1H-um3mmzyXJ{cXwvK zKD~a~jhii;!Y&&Zf6`NBJvYC-Tm0cE(T>iE|MwO;`)!ynwQ#}YS*8bXNlBSDrJY@n z8T>Qe-Myf&G3%<=yGjnxLywMjzr40qx|xml(yCuSwq{?i`1kWUXfki#zI{D%wpQ1L z8l9d#fA~;wQm*5QB#4J{bDw8ROG#zzRdEOj5!s%1m+6z76KE+v=zh)_w$)~AY)|u5 zch>&?1{xuDh^sERzApC4s!;FqflqaHcy4XGS}yYRcDuZjgTu$$ojpA%mzVkG+}NOa zJ!;Ck>_-D>I|-TM!HeLZ0!Ko0i^L7LX|^At4|xzWlOL{K}OpL0e>gR_`f%?6zm`UT;mOg?m1J z`}PcUO9`K|K#P&uq_Sx;owJEwv3{4ut-rs&NA9n) z{cvCA+NWp7dZjC>s~3l@4qO=mI@&rtJ-xPF^~K4@$NPW&`~4m?o}=zJ=fu{#XV3D= z%ge{re!a@Xt;|^^B+Oj>?STIN0~?b+eR#jCbfGi5gbBy9^V28aRr6h-A^wktSMm3p zC~Iqtge<<9Gd~G*Z`kl(=-=DhPh0lJ*}k~QT=jiga&=b7gaFGoH#RQzIL^w(rgd_c z0!LH8&d!wGOsDPQcQ2Utc6a%EA!%vu7iKLno1aYgT6)SfzWVGeQx!EeCeV$gtEO&F zoFXYH$s=z!2ef<5Ap4q5T;)?yTX)qLhe6Fq$mpE1rl#icZNI+0HcmSuq2@Qot{=Jw#xk4Hv%vf4|L^2iz1<$4PjE@S|0 z+0}{K;&EP(Gxg=Sx3_cd?U|Xs?`PZT>H5!agsqJ-1vNrJGh{|79Byupk~hS7dN$Vn zK5$>&$?1vWgTKEIFLM2~|Jbo#eFpVyZAJdo?R+23S$`_{^7we-`?w!Zgg<<4){9Me z6Cq(Mb)=|J^xD0>)t=to+F{a~nwk}rmEi5K{B}PU#P}T*VsRAca<4hP=0Mk^ob211 zWd#Kf&b2OYxbu0ddET89&FuUPGt6?OOtY_Dv3j;?L;e3c(D`Q#OP8vGW@UE1t`zr* z3kwr-?~^%r|GxeCq;$|-*wxj>b$=>eU0uC=xkhWv-5reDVF%iHKMA~5bbjz5v68RE z)z@iNc)MNgliR1Je%i!*zef3c+4;HL`Fj}i_o|*(7S|FH7Z-18YBDe|I1$KxfM%YAMhAH6ngbJf=@hd92Mpg|qeH$kG((x-P6KAxb$Io0dvv0mxSJ3BV+ zJ1pcC7!o4F$jF#;XNO_hepj_vz_*^7D2x+evSMn$Ns7-)7!<{Pr>P=5*(6f-X)!udR!cmmF(L%gnpnb8Epzv#ht-mwsMuUCd4+T>{r^|HE`C3sNbbI})nRLkcy`8a&6-+N|LV%hU2USr1&f4_>D|r`qL)AKX1>@&tL1V4mvl*$uRUnXThPR-qWXiwe{X* zaqH*j=Tq-JeDith`MK7|^Y{N{bJ$<^cT3#*-8wS1RZ~Q@!x%oxt2-C1(282SbXD)tZQoWeac$YAqLH+E>55xY)o*u433;k)noxTVbgaY2>m#XkW^qKG|mTdjWax zZ!Hz!o%|(q9Z&Xkt)ma`)yGE$*L;39=lbtyDxQ;6PNtkp**)V_MCYEmzrSwEE!XZ_ zb}^$UR>s#n{`Q$OJ$WzmvdeLp$`m0#T5y?vtc zB(BM=uA=AW+vmSAShDBF2FI6Y>)x71?EUpqyDlw*na$z%w^O_B=%#(3VsvNjdZ zNmI6detuq9L?q>n!4h$Yn3$M#eUnd?8BR64c`ozDnsw>BK|}DTC#SftzFGvjU3ivR zuGi1{=}UgT+x_0d(~~jb&W^$ilUX&#^E?`=S1e60E)1;N*3Q?OclW{c_$hMvo|9BGqhDWNpZ@pP*JFInlR}Jc>Mbid zd_p^HjmOTMs?MaOq$^5UJLj&ieRf6?G-mb3yyefy$?BkSkbs3wtoQ1Ezh!dCvoO!U zm-6Pu#)eI8FK3x%r##K{G*Y$yzeeR&d>!Zfnxr=wUGmb>5!?M{UjKJ3dPA;s$;+fS zD^xru`CMw{7VnX5Qb|>s{5I*;sj1oy=RR-spJ%gDuXD=$pSN~B%2*w?Hc0q`pt4&+ za`NQ$Gk85$Uj+@qmU0{ykFRmOy)Cy_W~z$ks=d`yzizVs<)LT&g*M;^~OTOgD z+i>ihBLs?F&q;+Rvz{CcsHm{$m$PLmnzw%Le6J_Fe%^Za>{-d18-j`~-QxOe2X5V( zHBs69nQ_+PU!P9vUwwKKw5{hzr*N-K;6<&_RU%ToYT@?w|9&jqcz9}@Nnqe9nOuJU z8Me0-e4l-pwSDW>rIDM{&dj%uk6n5&;@Y~{)yF~)1-wq3J=4*FVM`8YGn-@5qQqNM zyL#Wm{ZC6v3t17+xUcrNkd#!^5<}Dcdp6hSJ4^Mp>F@uu$>Xth$Jf`_L8IGNo|ex6M`C95wr{EpqKn-!^;RymjZU z=iS?5nRic_pUrqSR$jmmw<>~Va7Xs4G&Eag=yVo}R+M0uZSZA}(nlRx2=up@f zmzVQ9b?DSvmA*=O;;~eGQa^u0)S*jDz0R*;O!+>mzq>p6`MJ3aHD4~egNEzaEaU5V zWh?{~Sz>u?@7%s5#KipYU+oN=n;UYy)%15?ulMoc`SFx3{-9gAPaD8oS(2 z_RgIb$TtE-RoxfwBj z`}PfVIr`7f&nM5Cb!tc9<4V|}vTD}$D<2wg1(T1|cO zWM}Q~Zx^@c$Imj!Y??b)c60i9H3NeSHx#`mr5t)P=WUXPx$W(Z8#l)6uaiCTzvgZI zzn|@Eqqj4GR%U`GrteSSO}n)v^VKH*+FxG`XC~z?^D@_Um{j!o*4FGTxwogq?X7zF z^r>sVob84!Th7!n8>b)o|2KZ3_@_&I#qBCTwcNN7QL5Vd{M-b^Qy2cM-yf!z;UV<@ zYJ_F|Kbw9z+f!Fr%Ve#st-tvwg0^J_V)bqmzH{8{n@|Rtye4I3TyeB8-~x$&SrP` z`RQroww#$0m5pK-yZ4_9=WkbOoV0Xm>&A(%R3@ryk0f zUl(Q4n6{ugeoer_L!W17G;b=o_2lG+G~PeaJAx(|{mVV|WPQS>)xQ_q)~nw?N#$v) z&$e#GyVFnI+M1o5IPvR)7UT4DE4CLK$Adc8ptDK>CKX3VM~D5nogK8VrqagNmRqW< zQAJ(-^Sj;eSIL)oPt!Sg@#4i5hN9;D@^&eIetf*LDwJDWTl>^BUGMYrY`?mhCdCyuaU`kB{%wwiPQ@_`Hpbj(+^;QPb+x+Kh~hDrp)IL?k6o&M-_~5x3VW zEG#T!MF1l|f4|MwE{|ivf`SLj@7KEj{`PidbS69!; z$pLN6>lV|!B(3-F%j-DvRu%pEtd$dIpKrc1&)U**=E~sZLHp}!b8>Sv!`I2Yd-o1B zR1|z@&h+mMXJ?x;CnP5?7C-K-znA4ekEHRH+@dctR6NhCEJ;$;)byM&dp5Vjm)F|p1Yv)O!iv3vij)N}0ASUc8utlT&cx#*Lso42KRMcFr)7 z`goY%{>9e2%l+jUJN)Kaf$~`A@qYR4#qRx}D-1xhfZLuwd7|Rv-*;zSUB&6{?!Gbiwwa*3y#Bel*6N_$ZeCL~6#3-s<}82y=jn8( zE9>TNzdw13IVi^Z)@$GOe|)U>=$gpQM|!2r|5bljy`Jmg+t`eaPruAsAHIIxjSY#; z%Z@+!zV-fcfBC{69}*`{n4kcfb<4@gIRaV%QvT-Z>TuVYMyW1OPfb0#E_Sy|P0b#Q z>Thd6rys9~+q-MSwrzS_?zg_Ue>4UCP2h1GmcT-o-n zbpDJPGoF5XW5+%3+3VNZ3>%Y=_xb$(^sDm2nqq!=yOL&4YG zhxXO}zEbw-x7>soGc>kDt@ZHt7thSheD!?^XijO#vSnRYu7oVSnl=Bg{P*<>o!h%W zgJi!dJSWZL)=u3NdnV&?!K)}A5pE0pE8h%`}a?<}iT56niMPqNu?c2Ab86HiKue)fir>W@)ssnG_ zxB+rs>F#%@kAW%}o9*lNmcG80dh7aPcYf2G*J8i?e7Su7mp)EzZsBX!t}O~(9k#Rn zkdxYNSHnlGW%{I$DbmolCfJ@wXvPPW5?6VsN13c zp1fV|Ia#gp*MA1kF?OKoL{+0n@3g}N1Oz~f;^*By$o={@XfCQaLG*0!pVo+g@K^KmVyAXzt6>Qu0LX zCf$|?A08fl^-()~UC4LI-3GU|WL^gOYQdV%f1l0HmolCA=+W-?`;s3XYHcVwsAOg~ zO-R)%Aw7Ni%ZR&ozJK`e!RNQvG@Y55w>RIa{$;T?tb6a?+GR`pw)6c7-Pv-nSXuT) z=`)^v`}Y0#@k1c&$Vt#0N?Zr-?X7NX+WYP8+qYleMMp+5uJ{}~dGh4W{{H1IokCNz zLbWbG=Ki~A!CcuRM@8RRE=kfhGn=+Dc=@Fzp2DZ5>8{@Q{?)bCx=&9$=iNH}YO{hq z*Qd$}cX$5(zW=|Vgv5znX>-u_rKR4}m$~=LWfjf+xaVgj{{$6JBbJ?C!VM=I-aNPN zxk_^3mOCo9K^wEItfT_gDXfp%D;2=CVdt)0Vk&o-EQ_D<+^_k}yP&4dT!$e9RPMkIC)W5&KXPW2B$;ruqmWcMq+wTjw&#dA(smNLF_R%w- zjUTE%b;8%hOgj#mDBC-Cc8YcK(>q6wxX9Vp@qqRu85$d(d%(Un>@;Xc8t8s?ZZVyT zebYZ{ru_Z&RarryA@}w+!-5A6rPW16M%CZn9X)nT?Q+14J6pEb{w`zVkyx;Oy=%8v z$-6rd7vxe-q-(se5_Zx^4Fu(Kw?_au9HFkH|Qs;KQDLRppK%S}lQ?Z}`97ywA`IPn3Km#u+_VLpHUf z?d;}hhp#ipxS(+8(4mMe8G-Yr1zq0y{b9TOrrg_Rj~+h;?W$IG?^Dsy>EXBk6JWb8 zY;Dw@&*!W`lfpM{L@ZjoIC5K#WPHs>*3Zw*8b|bR4=H(def{|!N#h+wPr06-pP&Bg z%gd1Uak6n$oP07Gmm)4*x&%54`tovr(4`&Aik_Z&H9g1RPqzJH(0NWpPfr=<-LWWp zf6v#+iAh{9CgH<_gOPl?<|}G{FUY-p$hJL1XXfnLmv;K12&^_~=0n`;YN~<)}%s+JK z&=syFhuitjf3t9RcV~RE>r(O6RiUg3F)=Y$zU|$!hexz*-raq*(Kl}1sHt6 z>+7X;r!AT=KkJFA_p~!1Q?FgTXn6d%i>qsA;p1bSQl?oP-rnAc`T6?0%HQjKdv|xW zT=A0=6LnVmK3`^=o}La$kD%kZ_db@htI;^tFR!0#fOA%{Bc{oII^=9A3f%k3lCdg`ETv9ob+^c(EPfZ-<%mw zvsi!DzV)AJ7eb>gm6BoSv@Vy|4Cn*QKT2t4}xQ-rW@nn%A}ccenh$=^OpW zze=C_KK_26_x8GwluuE;Hmk4K@2&c}$=1%uDCozpUtLhbMaSH1rHdcA(;t=ivjw}1W;sn7zNEj;t-$B*UrxQjklPPkn>->x5vW`mD$?tweCF)g*7o+}#{cgdO}ctQ z^=0dpAY~Up|2q>uy?t=7Ig4?@&f@1riHBNzj=Q+HtO(DzU-?{intuGew#>E-iA~!22Fr@fy zJv6ycqVndZ)WYK8!6%L-3`hSex z-pTIDPn*}S)%BjHWB7{0Xk|uabv39L@$K#HUfC`cPgiw^zWX|EMqw}4#O^Mec6^Rq zZPebmvwz-VH{$vE=lT44hNT~(j`zuamQHJAVP##}S$27uucUR^n!raBmWWT?y45s) z|6eoE(wMuuN)H?9pPbXoyyv^znR#pfWaq|KH11m=XV>z6e|zTTltsFplToCe*J_gmFg`CUtU~XvV1wSLH)l!hvLoLCoMU&_~LQ>@GY#8Q z>(;Gf?J;>DwkBfXx|MggW{2Oa`Fs}QT$Hrw{rgRj?Xx9(lC=l64Ym+R{S7O~{q z=lkTe1nh2UqnmnaMZujmk89rEQMt{|FL!0Pea(*#>H2Sz6ATRv!RK;BL`HsmyZye{ z%b!ahsT&r`J32a^2<7f>oMoDLUT#OVcwD8cB$w{fd!52InYX8Dg|9bSlIYy@{q5tE zlhu#)d4VEeNz9~^WrhgH2afhp#`8Y``lhWA{fIv`uCIpHJNzn++qKIFyv`r5|Wu1T{tM<0Qmp{K69?RhF*8A$p#yX@%6Q}JhE0I>FMeFemvqK2@YY z&&s*CM>0D4wo>1g9~-vn_PZsw3TVFCw%EP@(yr3%nAliO9-bqhiw*?6ZfZpeP19#L zH~;XlQP%pw>h%Xsduy)vw&-%!)I~+|^*pLx8{YJqd+_tMeJM#wPTsg-18A+{l4Z+4 zhc7dOT7ow>rS{6~0Hrw3n-fo#87}nRrX9L!N@`Hm`+K&F7A?#? zB|Aa8wKmpYfAIF&T4~VnNtZrLM`dMcJwHGH`IVKySwXeW&djvo`K)txk*lIxWZ7Da zjoa6EEluSO3erozwLSg3Tue;Ni)(A8y{GFfjoO;!))7#(tnTlWpSS1NFdc5weC>9A zHhb=EDQlz0H}^`b`80HkKWyetcop(&nwD#^xp~^TIVZPfU-$6#e*EO*fP;D9$ z6LVvC`FrF0)|W3|?%pHT4)zU~WzU`&71uV!S8DbxyPEa2Yca2kg~9F8-Q3PjPE5he zd>H4=Uz7pbzvtR525QaJ{C>M##;Qc)dgr#CJ6SjMS(VNb$(wM#v7_Vjl4bYKmF*8( zo%;OT+>rHgbIo#Z3CPI!czJnkJMQiF=mm#%*n#+Z&F{CjHm{3)`2BvbbaoOoxwDe1)6dVl>dn&5 zC!5uvQGEXV`F_xBGw93@&_!8Fw)KfGZf;i3%gg&&^(KA3E>o3+*@EX&7AGgK3fh04pnr_X!! z?CfkA`?@*K?R=mn9jH-t#9BvZjlsOR;7F1@k+NIj#Ev)NYooSqvT>X4kzpb=%jD$F z_LBSiYG385tE+=n%rm>pv@U;lC-GntE5j7+@IHV0zgte6i@ove{QUl@Q$y#;8Ry-x zVB?jF^boY2ucH&g0hwRi^XZf}!z-hN$g5fvUtS3Q`}fZz|K6NyYoj-3TwIj%{H(Xz zqgSiGWXW4HZOuBkA~0a(B%|%W4=}0<>Yob=nqv8?na%O(sSh{PPX+wioSt}jSq$&O z?OV2_oS2{(v!ejCMk%eb@nxo=p&@9;)2sWgRaLuYRfMk$YTZ}+TkOY5aI{UaotY!f z3@Q|+=Y+41i(Oxo8`jj+bmjKFd-rz!x|F6NU;k(0F26TxA~$P&HCXYNPyndz^Y+`~=O(^2u5qnWh_kWl>|)TCo$mmPS}CF%~M%+C%L}3 z%AI$wC4YbG27}afRgaHV=3TpV>C?=w9FrzZV#v6;NtK;XMnOplbRpEkXV2P}E>&Hi zaxeANl#{Di_dBih*Z0? zE7#N0lZBoA^49EdP+#K9%gaBX&#&(?$bds?BYxQr={UPMmn^XalG4l!qThwGKq*J62fKd}O_|Yw4Fe{PKKDy+pG#K-6DTH@cf z+}kfMENs5DdWvj%db(NuJ)f0M{|^0C+PH07+M^?#F}q4Q_4V~1>|gj)a&n#`i

L z$l9pTyJb&LiKd;I;n*u>3OZxq;K74SmMs%|D?DLS_;x*?SxdeY-QUl@I?Qpgn}Em? z5i#xPFv+Ta&t`vkI(}cm#G!ePBws~dnRBndQRT_J*@2x(Zzh6_F zxv5!E$w^YqKCLH+VJ!z}MaSFQ+c%fK4g+nm{PObh*L#ysP1iqP{eJK9b91dL|9-t* zoRfW|LoiDkw8Hnz1#qD3{9Kc2eO~jfK~Z{o`kOazjNYF2RxP?)llfp~{1%?fudlAQ zw6!sL`KN5pyW92VPOGk(TAN|=u?=ZwrAlY__VRXicFye6johRXy*+QK*Ho>U-`?Ki z4PPgcwc_Z#oyC^#%ZrMX3=AePGP4nK*DoX1ApU?bztG_QxI@+}+cK5WF z7M3khy4By_B%YsVYhh`5aesY%8^8R&Gg2Huf<;9^Ro(Ziym!|Bx0_?bx!hly^IMl_ z!S8LG(o8jMpM{w7J5trL8R~J3IT0!4jpS*VlA^ z{@3-?SLmG}Ean@xv*>9@XXnD?<9(nb{$_py-4qsU_xjh@*OA}qUQf}Dp633)F4Cs@ zTh2rkq0Y|EE33o%t;^pfq^2IdU;qDaOo#$|>fTS=?^Sj0E`QIIke7Gv$H&JnudkPv zwJHgCF3=pbC;M<4@60Zt*qxJ71(P(Tw`M!H9hAH2<>8U=>dH!;xIGcFKR<4n9$zKxj9kDi0M~p#n=9U#JG#EJ?KvjFB+~-%T*K;|5I`M16X6HtO+FQ3b zZQQ82W`Z$j^YzuweX`cuPMnLLu_bD4#Eyc6pbIDGNB2sZ9{Kn8_toS*d-q>d(|O%Dr#z7y3yM>^!4=vca>y*eGghj-72yb zR5jX~hn-5feMHu_D&%jGarU(}KEJm{t<{L$wuZsw_qVsjIoV%cT+E6Fous;E!dDk} z_thV7-oD*^;=~Ch%lyQyzCN*c@7`5)-T<9j=;YLNuP`w&@zwOp-|yGo_qgcg#4&N& zG&RssSUEX4n|yZU=H?z<=-mFL@BZHE?V!8gb}v};du9CoeIGu57Jm5fp<7MZq$$?y zd@=%GUtJa6w{IV7mb#%~V9vcgkrkDdot2-TJ*~*`^6J{70V)>uzDU`W`wFyCr|w|< z_Pp3-f4Aq|4f@_MV`+4|Y)jPI6%iYgCVt=4Cu<#M`}}%*eXPoJ9iN2@7cQ#$`s!7& zR^+B796UT{zWuN)e%A5s?(Xg@SFR}a1f4qf_4Rev-{0PD_SvDUt9$g?+Gu0jXaD~G zK6L)P|CM#I)|Zn(V+gBPujb(5n)LtpB+u$UKQ?xBcWZC@3_3b^$BrEw^78T(0zDOy>GKr#18OvEGtbS2{tX-~sF7Z2M#^7lrLVck0H*WKJ%ws&`uJ#luar zuciF|_xH!opNXldOSkKrnu?Z}moqUlf8AznZ4Fut4?5oFJWPfq><;$0E zZcgX_`}_OytgEYh=GjEP&kvjA)4FzT?le|2?$d3&(x7|M{{8#+<=tKB^z`)7pN5fd z<0q+jRt26&xqT!xCV6+*+Nhb|o^KQSslWfvqI=*W!Kyo~Utcbtzv^_)**TV*Bf=lf zu`bt}H*a3n!Uc}aY=wV*d`uUcv3b*`MWCS}!9`QN#l*yXW|?%_|NEhQ`BJ$P$DX}= zjaBbht&Q56baPYco&ELmLsy4AeD!M8J8o|7Q;?tWZn z^0v+C=b5~gzCP9~oqp3TD@#k-EGOXo_T1ZI-rlF3I=++D4@9Ya7vFzKoFJx5+XMB7-=<*z=YPm@%9Ngl1 zO9B_WRf(r@-?}%~y4<4fkHzI>zKhG=-g>of#}12E*VpGy`0N4li{@nS`k6aEJw5&T z!$ap=+waXWywTGbdNer2H?Ao=d{Cyn5 zw*32k=jYjSf30bK`0?>^&{~GOyUUpa7P)XTF)>LPBs5G^p3IYba*}GzkB99`mMmFu zdsFl(U29EE%|G96=dX#|J1f5a@6;_@O!ofel`=_qabY2-+^g!`sUmrMXYuolo12ze z?fL!p`~CETO{@{o(b8{ZoH#%;VP-iu9BOK8Kx-rWj;pDvCMG8*Z}<$39YK~8^Kym1 zy|}0hT56PH8*goC897&eR_uDS2`iUBdOAJcEMdybx3{)>`);u=eHD@;oLgRAZVKMb zcYR%~(ZxEyUKz_t%iVrmUHp;wQaf4%x)|FISxLbU(crzzwX(YnZX&)wR8##3rpVLn_K()8{?_> zb|xlUJi1PK9=p6Q*81EWOXqez*(MD? z$G~i{B}-&5Eudl9xykwqt$KXZr#3g$!WSG?adb#|~&CTw6AC$bgVR&mx z=HZu@mv`IDFk{AvYipw=tx7aRwZlS$-|yJ5LkV>Mjpw9K-eAvwhL&cZ+gbel z%I#h$(^H#z&(1cVJYm9ud+P%iv-$b?vGo{z{t1d!hF@P^I?p!C<$4>_s%U05?cLqo z#V;->GQ7IB_VmBMzl}vNO`7K~suhy({@z~D4CviybLRNGy|wjg+l=SaX3mrZwGX;i z=|*qs30oVr^7s3@yO)cFzP_-K`QN{PS%P++T3K_g%by+T6n^#l+g$7N7dJL0PZT#^ z9l3c~oZ$H-OH@ohmX(yG{QUIPRjMCUojslIv(5L$=4pRHXRudU@1FOz^!2ruclFOG zK8ad8?d9d=%wCfg?v9N)a`foMt=ZwFHwv2BcyH{lx7X9tbL;cb@(K$J1Euo9$H!LQ ze)Rb9%BZbcteS<1`T70*{rt!K<)7c#Sqv(*K0Q6neCqx=P-WJ&YOYP?rUU0)Cw)3~ z^X5$Ze?Oe}J_uPKw>N#=u7r$z`}WPTtDOZZ+(D-iZO`v_Tg*7+$ZpV0Nl0#vIF`D< z=+(__Ted98ySr=Vx8p~Te!QK(|7C9W^>uR_7ymhbYist^r6<^UBmz`UcT0j!Hr-qO zUCqQqBtS3j&F$^}`F!iYBt>pWV3e=_v$5*`!DjX?IX5>saBlZo?AH6?^JnPR?uXBw zEju^8x3~A`{rmI7)<%H_#?#Kv^9>0JX*{p#xid94*EbHGESR?t&f|# zG5PqX=kx1}9v|a?%ltQmpi4(oCQ_Fp2t*HPn^9WJgyRSaC5*yr&gWkJ=azQ zHb-yI0~x+o@u?N)oV|Mm5dmE1x8&Wu^3;&sAy5<-11J996qu6)m1+aj|bo0-gfxreB%20`1R%Yj~#1U<~v);!pqgc zfnmB{EcjlbqiPq$oF2S>y;|*-o}S*D8ylU~ZcTc1T)zH_^wN#BzsqcFZF%E7?;Jha z>N#1h@a-+rviJ9Tr%#{0>q}r!kFa9|k&%)%*QQJnNjp1>Rm1s~{qHx%&GQ#; z04?KN6SGq&pey<9y}h%uuC9`_)H-bg$Z)anb2+{r7jVpk%W)YAdMI*x1;pqNXNg!{@2hCnF;R5)u;=YY5_hc%)PK z%nZY3tI}7XQ?O#TZ%sVRCTCaEF?+T&=wd5d+r1kOffnM<3kLb=eAGAX#~VJbsoLi3 z@^gdY`nKK&_5AztcTU)1|nsV^?@%G8;{zZR&6oT$)Zf<5?pdtwBz`eMzFe}hB zS?99K-WhWCb!R52diTh>sjXYL4s_H-M+XOJPwMR1($}tCYcQI$(y^IsXV&vGGmT%p zFj^aS`pit@mlqei&zsITMa6ScTn@1o#15@~5^&~~Eh)f%4u)i0M$pJ9?Y>E1Te>}w)7v-gFr4g+m~&|UTH z)vHx%|NG@^58b~%UraaZ!miS6&`@1TNy)?`s(UNs>}ou==iQYs%@Q$AKW9>A5vdiu zO~<*7M^Qzk<->;pCT3<(p7{Ig>*nrb`2L-CodHer= zl>hwsC5;{Qae{(;#Dp$ zC^+%OQBGLcIU+)0!q=L&J)tK`ojtje_kBAxRr_k!iT8WI&pWApYkS_^Md9n?vKHB< zo)Vdv;awTFGDx-V$3ynLpti%oX7=JA9}*WIS)#p4Ohn{JGdq98ww#%9tY24$uLlhi zWL;b1d3{|hCm-LrDHFVd;&$xZxv}7(lf%vrxAxcnPl`8I(ADid*vuZh$fYwzcKz%+ z5hW)>MOm{<_&AQ7yteH{r;=B%b#c4SAJ@lYhAvo|0-{c!Izr1SFVKo z`SXV%mG{B&=bL8DnlVEHblQJKg#|-gT%4Nq^#G&VxVX5I7Z)7!qmz=9sokm zvHRzb$K{z%aY=!UnDhM6ioCnK*2L|#I{nmabMfzQxpB2$L&bEXLOKwR4+sjH^s9Am z+Syq%zooBn`B$=OZ|(0g(25U-sal~|-nPBF8MifSs+G>)yXE(f9zA+=!CUD`>#njc$D_64u4- zUG-gZwzQ|GXOFZwUw(f6Je$fO4~Xk0wr*seV6?mP^RipYbFUgjNor5Dx9zF<{Os(j z+`E_JRlTMxsQmnlty|yJbn5#3|D*!0U7cr9xai<5Js!~6O6TXmfs_Xs94q>$ zlp?V}LDXS;UcfS+i}SZfZO!tTYh`+Q*C)`?AjawELRR0M-6W*y_2A{p&gIM1r|ZY3 zJv}v*g@xtAgM-Wrese4u*RR(H-Jf(8yhCnR$;(NPSyxWg4hL;q01c~e%e$L(>-4kC ztsg!py0|+#F&#Okb-RTj)_;xL=lk3z4>7%Yv!EnXBb@JFY@Y8apT!q9KyIc49oYz4 zl(5lRYr>jU6P{mN6}tKc=&q*Y{l{F$kNfR6Y~HMFW)}9>Y0j)!U5ghh8yXs#i^Z){d%Fy02-(SCAJWTy< zZ!gOF`s!-(jSYzv)zyz*yjZc_pTlvkRq2kpzg7%SPfble+{Rn-?#|8?hpvlDb3Z?S z`0ML}*VpRp%ilYNOqrA--r}}c<<8U7&R16j?A`S#c&*fxmCU@-PA4a^)=3?Wtg8A| z{Bi02(%08!cJ+BpTIuECvET{!zkAA_YI+Xea%L~+2|c`7%B}9-|u3fVxVt?IUPnBC%TeA=E zx12SFKYX3T-l}802M--;64eg7urb-4q12@-Z1vI8r@M{Q&pmkZB;}02X3z~ zKAh6_I{$l?`^&_(`rDF_l|c=k=6I+7um@du zea2_z-0)2)o_qH0{kp8!bJD_;H&Z66oZNCU~yCWCg|sr$_VCGYw5|7Nzduv~%+=Tv`t zbMWTPnTpPBE8a6oE?u(Z!#V5s1y4_j?)&vh`|wqlj-Hme)`|b?R8Q_J@$}4leKlAp zT3$Zmj>IgJz^YlFtK)i~?N^a0GB2^QmCd`?Vx0cqj-~2Hex8=h%Tpwz&D;27r!3hY zZN6dq`S_fmi3LSPLE%i5v-Eay^6^cx?VP0I8MF=*1TVEF&YnFxeV5j}*g_MaOJ z_wi$0T^;CV+pDX?le4pD?^ifCw^=tj;dPir8IO+c!rbT&9~!>Bof?;%>~p1l*3O+q zE=$XDPyDEt5nLD}VNoH#C)<>IddidC$?h+%a{u}kT6G9iC3{w_JDK%F&Exv!*sWQi zI=Z@Fzoq(YGZu5VE_}pN{_YOr0{{7TGPYGAxrYN@$G^X~H#&EF{QkO`Ro8qSqoSmk z*?0olckKK5Y_?kH3a=_VOA8Bw(pMp0>uPHDSj{Q<^5WvFs_#cVUtU`J@#DvbFD@>Q z*;6smbFy0C#-yV$wq=ix^=`?(KW}&W`)B`JzP~@b$kofgV6xhVf`yZgtczW(vYwq! z<0xNT{aq8Gw{t?)tWddfzlPbpU+d%lFOxsjJUi1EwRJ&h_S2tkE)v#JplW*(SEtW5 z-wAp*&v~nU>Ty01U;Wl}YrOryl#xHd9qlaM1gxD%xq7 zeC&nlV!r=;&V2m*>4#c4k8zz=04*DwKVQE5-JO%0`dq^N=G*!1E_-WH`6=Zb`@5UW zd3mQ|UP~G;2vlC`{^KBXs>inF=^y9+j#)S7lg%{U=IZYW$N5&o%P;e3)Cx^_;INea zzvY&~$8M!vt)O1~-i(w@xk;eAf4jSxH|g~)^WG*aBlCqzKlj!a&H%105s{HATW9f@ zw%C}MOaWbQ3c8e5qULU%^N*Ly=YtOBS`gxXZ%5(cInnB(Glf*WK>MP<)}^E@nN`Ei z!t&v`e7%IWN%PK{pPQ`Cs+xn209)=imxGh@;{A!UxU|EySdZ>1Ydzw^!PT_EKvnVW z1;zix>wV|$wEXgdG5eZBg~gBG+M!o&Zw+ocu|9siNJcdukAy)3=pZwGyB`i~O_e}l ztuHh)XZDOaU5hytzi3T-4Vu4{jr;fO^?G3`sa5ZcL(Xr@i_L8~IaytLiLW#0fR$Y? zvv%&Z%)Y+PbmghXm%0;gY)GtHZ+*Awof8MB_UZcV)ouUpNAf)R$rC1kc6$E!b~}Hn zO3~Y>)Rk)lm8Y2A_M6+Zw|eT&8~^|9i<4ODb@0MM0V%HfKa75U1_=yXvX*|S6EF6i zZN{o#W)}9|*ag&*juSDuX=W%{-8;{3TmJohYrj>c`)mVs2ELXZ`+4iywQDBk2bhkC z>&Jz(uiTz@S1LUGI@9({4?{!4imIwfGiGocm}6P|;?~yH6Bkd4b9wgcSrzM%cXxI= z-`e~)NXW6rHDo$dVcVk>&zD=8P&KNWqn|8H0% zcl4<>fyy_wc&<#EH)qY4BLCTJnwrP@bk2KC(Kt9oGnm1{%j;3M{yu{uaEOL%d2%UU zO>KGNlgLn|{=PoYsjdv5rN0|C7$hYpGaf#3y|1Gqp!zZBsMP!WYPs($Qv_Waxc5fD z_Pp3>da+qgI+lpfbz2NthVbe|mv;EN3+v;c#6oSTiaCkCAn^i(!IRQ z7c`tcGc0<7QN>eH)rbGSMK7IjtBqGchKE;5!g`ZU<@dYgKcCIc-%<8fijk4gXNEyz z)z?>&);gesttA9XGrJPO>r%Iz@jK@AWY@g6bFIrKO`FE%us&|@muK1gzg+TW?Mwgo z=%|XSDx*Q&pNdjT9wM9{q%GY{U_cwx8sp1<2R zU8_h~uxU+%VPa(%+<>#TY4U-KUwB?x-N88NN3U0 zQ;ZvOZ=03=zkKu}*Q^{+=Oy*@G)Aw|e9+mHThl!*Uc3l8?)b`;5QcsK|5eX2%?58F zwBN<;$WZ_9r~2VGUgjy+-+_9$qG1n(ncVu@zTa>6w`)8*J9SZPfN9o&e}6w*i}q67 z$y3VM)!fL;4%%OJ=FFLjKR*gL>WgTALUX6;jl_=wkAx^{`sJp-zQB{cWv0|1&+--YJZzC z9B$`Ne{o@XsSHc`oSdAR3=eC|I2~9K_~9`BDWR~- z%eD7z4mubaskxX{Og~I7No4V>dueHDKYsr%et3wrsj2CL&HB^3KrX!${A9a=aMAN~ zvRjvbdpYlI_VsluuWlTmNI2BO`RXrds^|4jD;o7s z(q69aPhh0+?Zby}T(p_**59V;J*Dyvx0rjv3bCYJM%u>^AQWrP3 zqVMlw>wdjdUlp?Qkox=@r_1FNtD(2!M zVJ)S}&B@6*$EuX8!LIg~LW={3V@!;Ub@@A%DO*o~D!1gelLs1^1)VM|^`7nn^17t^ z8wSuVnt%UY+E-iMB2e@5>GW3l9i5=Qjo)0W9XoeQT8ns2@@eqd=Ih~iy6)wq++H{5 z!)?4fYkzOswbs2~E+QgALg%Jk*_#===0vQI+v}sW@M_jp9yyyC8#Wj?yfl=tsn{@a zu~yam`hS+i&(1vD{eIu$+xh#KR(^hVyP- zZA?s0KfZeXzEygmJ9BOtm2%At`NOGrA!}>K)~MumCC^Em6Had9JZaIhr|Rpgs^2Bv z9HDEYM6Io@x8>Yi^zQZ5)#43NGHbo2YFSuYKez5X+AY3%`|*DH`R~hkGGAR;`R3+k z_6E>2itT&-N!{Z5kDfnw2OUo_$JxH}(-R+OM%BkF!`9BS3J>Ktcy6wBVR<<_Xl0j- zWzmrt4@K|HuRrwd?WqmVoMOzYudj=Zh=^EGd^dc3+*-ZrABQ$=ZzE9t?BUIreSBMr}-Dy?5{4mb|;Omif;9^xz=#&s4F569Ow@qi5>J zpW#rPw|*CE<&xiL)&(qNdU|@gd65aIGm{98ioD*p(&l*+rc7bcIQea|y1&JT{J=S7 zZ*M((@W3G>V}(`9N(JW=`~Ux|{(AcSj>5-1`&_(pa&+S2;$GRjeR_I&`mFQ+7J&vI z7(Us=mt0=vTh*Ga7r$?fp7+w*%c38>eR#MXbfbLK)~v+TRM(rEQeWQOtp5Ak+u+;3 zLFW)0FMV;r@$SCj=YFNt$MpOB#iw%d@-FqBu6N_+&BW~N)7k6y9$V<#&h=@vVdeWh zpZP#T?w`Kj*^ub`^?%{tUtjO+t-e0v;nR30rZ+d4@7-&yn)TvEhLe-i71e(w+0)iX zY;=0RV|n~*(2bY}8W^W&2D7oVv){RMXGh)Ns%78wV|TgS-&ebF`}X74u1zz`y#<9f5z1lE6_r0RWXW3v0dKcCM# zRj$j-%v=+_y>DIY?nh6awDk7!`pz;*ytv4<>hPN4&z4^w_uIdcE&ly2myJiFVeVX6 zK0dyR%1S|D;lpdAw-=O`A3t}FFFidSbTjCq$B(<8l>hniao792$hntq-I4;G-y0jt z$-xm2K4+rJOG{;y$rC0_0Iil`II_U8`OCN5dwU`om<0a)`RWPg>P8aI- z0bLUeI(wK;-cCnINXR84V@1ZTEh{%{+9dS*`}^~kKkuxG^^=iNK4`0q- zZZGWQcfZ{rLD;Nm0>} zg^i8N;mezw!CzipcAsNa>UHG!@$RMG)43c#>myvhS)Z$@NlHpuR%~Ty**Rf?fS|az z`k}*zkDi%n%&H)!6ER`s+&53Yf7S2|ni#D)Iam1O_xts)YX#4rIDg*%Zuy4?j-Uhc zzyAC9_;{;;Q$FpH!bO^21W}%CTPQs})&SRwyPVC-=%u zI`~BWW?50uDZ`t2*VfFuH+`O6?XMSauh;&_zrWA+^zrKIYHo)=pHAyn-JU#YlFL%B zsV%*|y&U}f;oG09-()+oa`~pmo72y8IhbT$(|N5vulLck9ClXLmH*8_b2KNrqbtpl z+XQ%}M1EyPZOhRFuO<5W`no?u(!D*E;6&i;x-qnY_Hj;#lRx8|u1CLBS(fFmP3af~%m5h-;wTk`58gHa!j7FMbn}8U#F;T2xdN zpVrm$Sie(~_PBZXX3KB8^ENZ*?lk`XCM~V(yzTRUeW||Ce@zZok|g%(JuV zYu2)Jp#4+ETR>ag3Q9`OeAxSM%X`hkX0y%n&2Ggl^%7<5u&w?kk*goPtY<~U#zhy+ zyz7p&z2%*oTRVSs*xFMc=0$DK)18~!sZzhmW!c2r9R8~|t`&D@UJf`^Az z8Lf}&+!M6atD?I4`H8kxZgHju4;~ztpy*sw!dEOPCwJ~ZBQxwqa1o6Fhv3;;mbr8a zF=U-8ukxE?(I{}pW9mJTnP*?dZ_ktcF#o|kx%Bk(s4W?ePEJhG+w;z@yXm%L_wL}$ zX}*hdudWJRT=DVI9Gl9Z(AnqvOI}~&RaaMc*m*xVDCo+SC%envZ%R7KrF-_Y_)wkUliGF>lrQTFw9ZnwX#eBvLZ>TkdF*!}zR0rT{$zMQ{&;DE#8ZLVD+3xk$= zMQ$tp`|InCn>SN6zJo5|o2nIRQT1g->T+%oeLnO2sCR$T+~S$|16<$F6P1yX(Fk6~ zGg;jqv@3Z{?CxtGyA_w8e{?72{n2jm1A_W1#ya(LnYh5O*`I>A#9#-*mYB+;M*_()U=N`X%H!m?dC`icA&~V3&9S>fjDr?ugsqxBT%@@pzUg*)%Z z`Rm^QDqqfjooijrw6j|5`M0X;_U&gqeSCO?)%})4ZO!`eY9|a$Ww79=uA_uDSrKP=g#$1efazP`}AA>B_&%tZ-2Gl zqWdxV{4~%Wt6lrDu4;9O>#uXmIX}lT*@!9S@{eDK9%mmG0v+%IIzTx8zFmueq*$$r z#&Xl`bLYV&CDlHo>a>fb-J)7a&zvcz0(f!z>2_pDcGncQ?29 zbiGjbzWJq~^`SR5CRIrEk*Q7L! zSe0t8zkX`IRv^>75C6~UN}K0_3MiAD8yBAZV`OGy*pPIzOGf+Wt6(c$b|c4~)0~~1 zH`mP5i`_M0(xjxI$ogkzW=_$Gyi`(wD4Q>-@R>jeb|gHG=UooFgy*repzwc@<}+Ns-he@fb~^$%9% z&c3?p=RCDC}884J?`}z5S zs{Y%x|34h&S5a4IHYj;VvN>`lksy|vq3=bWEm2--Ri+9zO^dkd5&7cN`~ z>d-`Q&oj)wXJfjTPeDPU;lqalF`Wp9m>3z*gz1wL6a9Pqsw*o$empK;{NMoNqsNae zi=J@ot@?WC>cHWTkB_emUe2e#_lwX1i|IEDKbS0cWKNy8 z;b8HpIXaP>TK@h0oxW>-*40&4R)_aPE~A~j*lwBse7}QDte}&!Z*R|6*VF4WPCxhI z+3fr@?MpDixTv(uXXc?fmc>2u-ljc0Z?9-7Y9u*j zL#U07&6Q7nj*gDAtP`$*26eKpuQROtlrl{}-VapVvfbVETjw0#vUT5!pP#$9I$VG9 z%BMRI-n%z%neS{NLBWG>Zf@@E>QYivY_$LX=W@zU%GjH68 z0Nv(zVWIQR($~{Uwy93~(`EYfhRV#x4<9NrT-=oEz4-0t=jX#kqwW9y`OK5`Ff%iA zQNThcCeX6*(`EZtu3WjOacM%)Zkm@2>y9uj2LE?Je`?&j&SWd!xRw*%ByQ*4RYnAEx} z_sNNgQqePbgMwQ>d=*XlRkC^Bw_jghyIs%v`|GRmmW!+9?Q<`NmwW8r8@s#g)lR** zJsP0HiMT{G6z<%)<8ru-_vk#^YM0B)d|PMFo_z~+hQ!Qy@f?ba7B4M?5o`!X+NKbM^dR}>D6<(E-5KXJbZkv-0E3AN%(7ed3pKd>r4EW z3(uQ3Z;@NCRMMFlhH9s;r#_9$d3AH%-Pf`4yRt4X^IhcHEtXYXyV5uKed4z_H{G^P z(+E@wwgxq$9~^9M-M@c-K}m_o(JoQpzrVf;gZkpPLHo(P?+4G^dw;@&2|Tyc&&*K# z_wV<6p4;lavr;aeueiIbRC3$*H#dzh+x`9X$L0IGyRI1-8PnElD=v}R=`yK(!qWXY zjU62vUl-bBTu@kC>)gf@_?=hYE++Q+b(MW3FDLDKJGcDa$+G*i&GXNFI2_OY?frfI zH*epvD(u<2*EJ$yM%uQB<~vrmD+Pm}PAYPaE8P~pE@tJu;-y|wg`6~&HvIYf_p0Oi z-{0S7XQz}&SO#&_*DLaP-FYIe6}CphYnsl=t&;xFzU3;~*tQx3GWjOiEh$#ssQToq z#>6L*DKGV-A9y~>_+?VW&(F^%W5Lj{e7QQWlnFzTKKK%r(%AU66Sq`UR6w)arRzQ} za_u$=b)N2_)45R1DI!9m{M{Wxt?lB{(zCZ8S!DM|;N88}<4c)8O9=`Jis(cH%=KFQ z{MOd&n0+-fpPikZof0Yb^GooD4-CDhO}$ivI$e}bc9d+(ZCG>VhF<)>JyCYcDnCD4 zl@XD5$^35^W}Ra7=xEL9Xya2_vqf+9=5tIhf3?asVjzu&Ks ziFJlSV$-!}seT?DHNSOzX0g0HCF==x(?z+LIky>RUcIre{{OzHrbP~oOj)w-d$}zC zh~ND7<;#+!qg^*&m4AG6bd}Y+2M3#r(`xiA>;728*Zovoa7FO?dhbvC#m~+-F27v( z>4|6Fy*-_N%ai~7_!u>Nsb<@u`YO{Td3pJ&Z*Mp?&bRo^Hp@(k?wesDcxp=H^|!Q;oy0RaL}PfvgT;o)Jo^C`0*{j06`Tbgl&!{n6L zBoC0AKcy_$oXeat&8_a;9m`T%L&Lz>>(;k5H8tnhR0;(Iop}3Z)4%sVzP_Q^m#eC) zvxR*9JUtT+G%&6@yuaX~6PLJNPN}uZwA3#zE=s=Q^`C9#o4wiO>C@@)Vb{yw-C4P= zU&7Eyx7RrL)|NfNTqlpRhOKS75FlY8Aji-1Of+gs#=%=#vv*c~)$;W8ba8RnkaN@M z)Ku-|TQiq=`h>8V$=Nnd)joJHF1s7#RHcbC9IS4eHQ4puxqSKZiJK-R+y4Lk9`E4k zxHe>^(1I)Kef|CHo8~+1tNfg{Rjz2hU2VZ-1=hk}UtY@C*U2>S$y$LHq^!QJFfjwP z-|x!T&FSY?J$<(-WTn&bK3PVKq9+|EtJau#|NOL}YU?H*i3!hT-q|=ODV4nAaqm0O z#`|H%l$bgt8=ER4QHNbH!D42KBoDk?eo^n+I?vn zJ!SX9^NSo-ag`Td&YQfU>TwFYxOO`J6=OQpmj^OB0`F5ApYOZEug zW#iyzD1AL8Bm4Zk4;2EANotE0FO0ReDB;+a-!2}1<(AUsNwa31+K_lyBYfSQwBXs` zU@=s`bo1JbD_27D?(AT6czJ1Q@3)t8bJ^M1OQXBRbgz7!)3vy@wRL0Z>oA8vH?ukR zS-h7nT>=&9SFZff-}eKwyeZ-;Tc?Y+R>+EkFIAwkGpo+dGUeprVtVl6;^Io}UAz}| zndaPDV$rO>pQoQ)Sas)~sZdhMj1y?%YV_`L1(r*@#DD??vKbiX+G z=jZ28)@NyFXMKD&J3s0!$W43p?9oV?@UQyC1;xdG+b+H}Og^?^7h7eUn6Aju9K{8G zvOk`Ruhl)Zd&$y+e|}!rpg2WuZOuB$=NP4SwM_#j^hwoAHm^1OwetpO z;v?v~yj{(Tb1VI-*1U_}S(JKprJsjK!1I!H^;R2IRaa3r?T{4$vAfI8-jzO~_W$4S z^-*5O&z|jlzyE(+sg}y5bk4&epN!MbNxWShx_a8G#DaHsEbIP!bYFcdP3+W^#@gQ^ zitF#~U07RPG3TiANu}rKogW`FsM@kA=k_%H=NZzMHY7TmHfMi-cQ@z82FGMb;y!5! zip6X;&1r4tz8&orzZw+(t0eod$R}ZSzZDnPy|K70ZI+{8Vv^_1Z7bPt`hjW8(zz``xCUePMRX#p7FkR9I99*!^VTStjx{J?;FwwPDvQ-tYZ> zg)zMol+-^-f!udS>2}+rj4GbFZx_4wuX??8vtjx90EyfK4UCa?=Vbo;c-)_JdmC>9 z=(P2k9|fzw<$H4|R(yHEEG}7!(XrTo+k^ccS;po0>3f_un6C;{T|Dpq^$h& z%VqzyS@R<+f2LZL@f_=KckO=g^LgUCn4=S?{5ih2x+^$#8IMlvsv0-<{%6*TTb2i| z4%7YhCb!Zb)c6CI&8qCmDm{IkI%y+qZ8sZ*5um>(+&vb%x#cM?l+0`edyc zQrDF{JvFsBsi?1`qXTp#3Fub!jTIl0-ppTkYXfKt{N-i7ph@2Y2ORAFZc#`~oci+i zc74#uLBz(SsM#7DjoQwcrTD0_|9G*u|HId>tRicfgPRK~*}}tBqpE)zeR;p$;-0Fv z*6n#;zkIq7Q1M*$!}oUm{ULUf>;E-wzh9S@o#8*2;kbKgUuB?8x z?V|PVyu3WOCeN4kA=lT%O6TY2f8BcTre5HpmS4$#GHd?-{hpPzYisMpd-eZo-`(BK zeqcx8<2CCV@_dDage=P5NVN0IgJ#`jY$`5f>}pVazxTV`-(O!huc{Tgt)P8w+w$e= zpc}I4|Nm1_RRwL~{r2we?CtEUxWrm!8b562pQ7>odi-JWc!%SCr|!JFw)Wsj&uneo z^M~6v)Y<-dUw`wpq`Sat=^!X2;JaPH|@9$PKcTk}?Nk(yQ zZtq3w+iiilCtl>3XJ7M)_4o04a;TNt;ac#C;NW2JQM0byVoQskpR?R%xf`@q40L37 z*NNLVHYTsVwtcCmxA)^mN4sV0YGydM^A*0hpy)T>ZmrfCdrtH14rym+rLtiilf} zM56#x11q;!#M*psZ$H&K+x3}r)@A=SVdS;7_pWlVm(>KNJUpIyG_fv7zM{l39GBRFR zC%YwwQ`IXYH}~7lBG=BC{CjJz9QX4Gc$HfJOS9zty!Tg+s)GDbIc?(M7g9yPzvT)E z2{9z6J~};JUwY+wD+`McpHAzqUf(Zky=+~&>88J*&)ctlUHkjn*_9`6roFqfbBmi~CN z`8>l?kp~AFnLo$9eY@tt`}JqS?P{ZD-nK1WwJ64}!ocRc%oJVj+Fu9C?;l(lJfW3G zX!WES9PWJw!s9hB{uEMO5M#MCXL>X9nc2(F_}iCowDC{x+XgCsRDQ}x-n=$pP1oYR zKOS|1#sO>R#;Sf|=a*Zt)eCg#Sg(|6QBHB$j?&j+mzVi6PuaP=_}Q6_Ui+^ts{H&6 z)JFx)N&S?luC5MS6LD~3@>HFSnJW4Z-o5Kvy?V9PgK4v7omv~cT_bYSl9S(@+jtWH z{`v~KC-Cp@@1T<}($3Av^qsuc`{t%DXRDeY^-tG-dlx$G`~CJE7OF@06s4|+5?vJ@ z9&*lmdRx%aDJG@ff`W|y|8ZYmr}-#txxe=5rQQ=}aoO2j*sw6Eda;|A%I%vsi@t#? zCZ&y@OE#}nj4a*88+_uSefsU|*TwDa_b>mpIqRwxXj5Q9=)#$Si``akZC3Z4<2e|!z+mY&hSv(!7AyU2f`Q|pez z1xIAX#HOv>y!P_TAMbX*UlF_8to;4GRM4i<_3`udVs}NHj(J;9-Y%v)g;fD`MN7EM zo#5qD_H&DCWxnWNzUINhg%9Hy>|6Wi+Z`BPKU!Nx?$mVj{Oacu z;#KJCs#&`J{k_%`9!C$>**G-q-TUZ9_vvKvuy8y4&+`bU(2<#xtTeC&queuw`cjR z%ile@etg~&Zv8z6Is}#1Tw1^Nyg^K1X+gR9L=O(ok*RkY7-0}US5ybWINxAL>q z=1ETf&fEV7-J8J>wLNd{Q=`P44=*lu=aILIsok4!kV)qAOa4o;)@2(C9y*m+&DCN` z@4B@$dvnG`rLSLi6rNJ5+~%o2NlZ-a+m+;~Z8;}@e0==#$z=bI?(W6K&(F2Aw5%}g zoS!*o?$i~Vrpg+0e!a1;)>_u8#DT*xAV7efU+&21)2AQ(-Ijg*UFZ1FaB{yH==k?ZrKn#Y{|0;KNhz?k+zcw9*yqs4Wgwx1|>K=luTtJNbJ> z-Thu^^N!x$(Az0y@zV3;Zi+d5IIX{*p^K?(ciG!BN#7@f7Ls3H?$0g~xaE(=gOZ1b zSV4;yKoef23X99%-&12Z23=jcyDYbD)+r&*l%5=SH@CEx7S`6*({!Vkg&F?%`~809 z@3-4ipZHFCzj6Ea^rxq$hOCJYY|xF~=FuJvs@u%EOSYN1%s0xK;glzFwe8H@w@F94 zY(ooj&d;+2-3!=Yey`%N*2JrUi`@jjN2Fw&nxgsh+{u_-C7PwLt^}T*DXJaT1G)`* zsrPiF^mB7~&Ru?Vw0mXv`gvl@ygo6!yd3}j?(XSNlexuoPHfA)tr4|FV?j)|u$qs- z>RO>r-A8ZVo(0W@Wd>$nU$-><{Jfu=W#)lO$4@4gZeHuC{{C*I*WI>rWf>VOcCEYo zGULjMiNAhbT$8Vj@(_Q%W!pdc>0YEiDK_BM;$qSeD%fGpu0vv z8v$-^P6xI8r%Xwx)lF$IOg?sDbGpCpo2gHDFP-0fu5UAMz`mMFv)o%P?d|Lgp!2+o zpPw_G4T?t4G2>`KU%u_}@qK@)cybaou@eO_xJbyhue5Ld3ZuDzf_%c=ET~~yr89opcR9mEd^g* zT)esJuinHbp>Y)tS--ux*}Q(e{!*{0Mncb~fC}FuVkhM91;`x<=!~&{FVvH*{w!_Z zw^^pyS9ab9Z5|8Rb2^U!U1cfI=MY(a+ve29O!^i0sgsOXz8!rz#8d8w%sDgA0xZyi+!uFugD$)O^73-~ks~g@zQ51sGgcLvy)MrKh{EkK0?6`ucK5Z*S_UDVhyR z9N%6ppC7fwKHD(;oDAp^8LL~m(c7M!n5gVOw>frYkm~9wizYs){qpjDRZ>!thqw3X zi#w~nyZ~*&?(?q^GwFG(9}rZd~@} z#+_N36G8FeqI8ncs5eIW3#h!bJ#YJ62DJAy$oo5J0&iW6<<`H8-TN)7zv(cPzPeKR zXlMPupXpaUw`?)Eb#-<4O#6B}2G?$}v!9tvKYsiOS~Z_@XNO>b(pOOQ*j9bHaKp&6 zPG#?A-ct*r^CWC43|P5D7UbXG2in~B^gGYd-zt;RJFi>`v0Mvo#?DeuzAd$|d|S7; z{yHw{xfX>^cjH$EsV@Gu+<$&peT#kWzHk5keYbb;419ZOY4^<>v!gQ%lS6icE@$Kt z(MY)XPscMPMC9x&(_q=$+Dz4#8Qwarn(5K{O*5oHJ9j{PEH`g9W-v}a2RiO*lgXqf zGnF+pJD;7M{rRN&{1wd?gg~WW1oz9F?3TFRI|fgyj`zvFs%mEA?YWg6D)aWm#l@=@ zRbF2gTUcIh-o8`Kvfx3(s*1S1Ri*c8KKpimP0c)X_;BW>C7g-! z?vBdO%dV+`dRR{+ovdz4fo2oWoi!`j#yj=I?d|#bC1*A!AHVWd-SYP8u(d(gbtNZ? zI)SDMOyAaidvmkW%=i7NsoExacOup%#;p$1<&&{+INBv@y3J?O{f$dD^9o2vfOh3; z#_TX)xV=3ebc1iqzM7jkwH_+ld;$U{XhrNyKQEVcWyQiYeUKwuk}{WUUduRBbK>j8 zcdh33f%YoPCTsLfoB3d-K-1OL;j7=yGSAO*TiyHf>GXJunjZ!XvQ{Mu3JM33Y9l9o zet!P)5>H{!xxNm2tG?dYn9T0lEq3*W(aFsXOXub`xb;dEet6)h6~2x~<9f~CUte!- z%bgwhd!k3q#Jsz^3O_yZ1YPy%P*P&z=;#Q_*)1(By=y0Xs0ex1xm(?qT2Q{~p?$iw zscGoi?zb;rt~|Gu#lz1pEIYzpb5-q!2aaFw#O^LTdhnppuX0XK&K_xVKG5-4X=i36 zPOQ^8dvUQlDAvsL?l6cv1#SEf+K}Mbt2^07+rr99>h9}=x^(FUF*}Pum%5j|y~Wsd z_~Ne8>|=ehvmXZ~3wg#Z3|R>}7k@Ut-4BMje(V~z)Ye9Czjnh2l$xHDgMzJX;@eA0 zy_rEb51Xn+@Ao}F(>UG3$A@KJO#E$w)<0jb$D2>yDml|Qoi8ylk%33js6{JuRm2*7 z?~m8x>o4x9ELKuhW>mfUq2K=BiGc4BN*hgHuDA5=w5Y7A0$rVZul9Sa!^xJJmc?ps zZ*Mo(vecOP#9c;KcBW~z*ujGbMYO|sHoOVZ2D!(>!Rq#`1g+kh%gcOUZHwBPCAsx{ z7x;Yl{eQnnGwj>94|Kp>+UDyMIyyK&+qoOIZ#NfK_uJxOKTXBLV#c+#(Vsy(@qT@M zef-we?83sri=bHa_!Uy*ox0@3`M*cS<2Tg(t=hA9FXPj?6;WHYqPOK#KH8`qw&uaB ztEt`1qJ%#s!77XF)}gryV3Bx0PDS{`>cj;m!U1@ptd9i8NmP zEwXUi_jh+!uUfP3*Q?cH!rHT~O0^0L3mJOk?c+q_PHE@d-8EG&cGrsHuWfv?r}*vv zOh`X^SEX|Pmvh@p*B$MXwJv&bL2*^+YBr7LjNIGXQlFfdsP?+%{_gUAL1j14ZH@2l z?oKcKts><8==JN7tfkxpLfS%-@jkkZ{9q~Rk+yq zCG*KOsUIr?7BaE($s{~D(AY33%&z`ljg(o=3a!ttL8od21_sWtub-E9ch|%@b8sQ$ig&1v0<9x9V!l=t%RUa-Dhb^PbEv$M0jHqV_an|gX$=A&sWZliVx6ME+58U1!>ybRXCG)b$ zHZP@%YMa&`zk7G?`+dLr9y~~>sjX#PdM4rQEK|@1uzoq)M|XA>>%{B`uuZ$ZE|y2m z=0=v8mr4|9r@*SPwO$1UAA)bUwYGjd$S%KPmo~T*eKGOewyB^^Zi0e>2kOs#ySKOc z>fcsw@na`Xde+u{eB=u1Xr;_Kz4rNe`~OeAy}iu<+M6fl*=v10+3O2zEkNxr6Ya1y z3=5Kuc71ts^YWY8h_2k*+az7L*#CIIoOW)`%8j8yolX1LHpuBNGXX8SOg`QxC?Ub2 zAu5n|ZjLADDqo8N1x-y&x3|-EA`dN}Uzb&CttyngA^WBx!t=!@nx3}r8joNx@ z!rR0Xe|~-j<-yutUrrXR2UU+xZn|0B4pY<7@zLFyeCp=9kd>1Ht82L|9nQ`&^__QF zO7jWm{EMvb>GNyT0tMBJH`V?w1MTUyy0zH7KaBOBicqw|-gk{*zZmQ4>R8y>K^+P% z5e){7D#5lYp*GN^|!BUrf)!*|J+Z53_d>R8B@WF3yNm>_jnxc?kWYP%bUM9uz(8v*^|oVSGoSsb ztgwl8_$0!_^kCzJvV99YCMvnDkByBr-Q*&eD`S!&AZt~U@ZrHh(6xM*w>fdJ@koGH z8Mt3w=DRjMrEEvNd{XjMRYk@}j}LC>tBjG6IA>p8)^^-Viebl&hSl0Tb~i6yzR5;Hmg+D~sxKJMY=1zPf@6Srr^`hCB;%jkOt!5@p1NlzxKYlf_ta4|dB{=(Yc`Sa!V_y74MJU2IB*-_9&pufMr z&#tkXIk%nv;VID{-{U)aS~@s()Jng*(-^&d%Kj?$-y8YbTt9pZlgZD||M0an>F9!t zzz?5;|A}d{E%kDId8zBL-pR?JGPk9r1+?!-&41n*P`|6cKYai4%a<H%)h!yR5xmiLACrd(7+|=%+|hdzu)iAzudQN z-t+nG-qW{iJ5`zx zz2Ke99NX1*1j5%HxVrjO(u_l|pDnZ4x^G`sbM!){J)gKLDmD8yOut_Ldfq&*>e?ky z{i|1RH2(8JQDPaxYvqT9h5uboBqu+-XZtkYho_}o+wb2}?^9JNDmL@BHTf;Kc#wM9 zX{OPs`(2_7i&9fhIx9^+uT@r7#v@_SFweGnQ^rLlzj-#E&1}33H#Q_P|Nry3|KwxP zJ>iSpdT(sYl|I@nettu|RrGna+2;AnYJY!=nyom|V@*fNwzX%zzP^67w7$N6Th7g- zE&CTWnhQd<(k587+GuKaetms?_3^7K0uQg*#-%9n-{Q`y%P(hGm9C0BpU(+8H0k!X z+|J%!)`Tl70?*7ec28cdGU<%roXxrU`TdI*FK)Z00XkFq$dMx{JO6?%bh@@y`u4Wm z({WRqHW*k`1bBv9l=GdN)0ll-LD#p?<@EIMIahvtU07Y7y4OciHEE9D(Yrc3c1kXv z`1{9`H#XnjX})*1_gE0`II#c!Kkt$flke~Df{y9Av%9>% z`un?yGiIFFTmAjYHhwvqfYUO&cJ5qx{~_qqs$IJtJ$>5R-`{`n(evl+^XJc>!!^-$ z$>!YDFXy)H-feAXX9pVp_zhmgVVz(Te|w6>Ezp6k@<;COE;rx3c6Hd=M>jSmGnBl% zr0V=PKl(A~oM0A~6`5aae|>rQ`Mmx08(N)DPD;2n=N`OhSM^21{_mIIZT-Jruip=v zGmF?&vhw9hwa(72EtBfv_S^0GGU?OyINPI!({G3z@0U+MKhM@bxBTm?P$~1g zGuv`+uZY^ZN>pdEhst@T?Rj@WwH@f>R?wx1Vq$I)5fbKkcLM6!Ul*2@ElW7q^y9~m z2d`dvH8Qb=xZgZ{*!k~UK~d4ATsC%9UpjvLs7Ojm3UQCspThIt!GnhN>-AN=ryaR} zf4))bseqkDsi1zbR_Lmh_V)IvcAU4}>zbn__ilds{yqPJiOTL*YNu+28vUA>wZbJ& zYt!DUuUVyc11zt~fQ~CVsXm{u;fsNiJ}aU`b2Hn8 zO-ncJ`LSryJiUukb{0QR+xd2F^mfp7U-f@JwzKL^@=*CX)qA=g=t?RlCnt-dCmiYL z=Y_UPa*OGBJUum4Gk6(K?(J<$T{?wUF~=?K^v`r-SCf{{2Yi zj#QoK@rl`qo>>Z;K#?uEejv9sQ1Y}zGVM@ z!Y_-xJ{$)RG_z}(mT36itBdY@;8o<-%5};prDKw2!5fL3+ib6|9ptyyU@CZf+xhys z3)|L~>{)x{P%C$3N`#YM_mLw<3<@8)a7U<2^!Q}NFK?If`Ptc=8ygyBt;+-i1sxYU zwPxJgV>wyfe_7t$U02pb3X4mx&r8hDKmYl>JqY^;1WedvYh*NO!UO@(T9kFMyCb&c zNNQ?of(}b>XkaK^wQB8OHY4#%H@7LhJbIBQ_{2erO||du*@o`C6T;!)|J1y za&k@CzaNkLvyRkWSl~FbFCo)6C`icB(ec#+*SEK}f(|s`T0hCAJ290hdTGYRMJy~V z0s)I!gm&KBH@9MLU+~q{#fy?${Vc4D|2%T7S`&SI-NVBt+nGMyN=RofeWh{wxcuR- zuf5J5@SXkOYWUO>KUS|lbYWpa+D4y~^(rbVAKq@i|LjLaZP(LTrrDr{tUJ$4@=&Sl z`SGIy)c(!i|JSXcz`)bf6Lhr!s5i7KR6DNbT*VotYDtqg-J@0PDjSY$WiuNqsoa=hY`t~oA0^7E8-#$J* ze)ZP1mq#yNx^yWd{rAr2^Ne5iJfHI9NlMzeIh-0zT%fgVH_zqzUAlA$92x+p}kn$u=LQlX9AxnyX%TBqb?jW@c{t%{qGui~avKOIqezE$x_D`^WIz-s;N> zJOrgAOnf~(1D{Xv)M?nie^Q=Z(UM0M|Gx<9L^9p4W#^SXv?1}-oDX}njM5idSXvhT z`jQFS>)+R>rlr+oUH(pDZ(m=Znvv0@6DK?tEneK&-+#Vf-oL-UC(oF1Vu53`Nrkvj zr;GNv`S$0}+y6iF{eHc_j}H%MwIt}GpRL#94xc~opZ$4FQ+qr6+uPfh*Z%%?X100% z=JfNMs=j80t&cl9J-*KK=clKV1_=y*e}6ak_YCZvcy60$Wl&1=^2;Cpd_KQ=J@3>L zm#r_i^T`Ia9@tg#GU?jI`KsR2Rus>_U-epdUiCZ6&2w+h+4KM3??1m@uWy+2>eq4k zdWo~OQ$0R$wee*}MM((?3aY*Sl;xG9qZ7qa{M@O;yf5>znwrmy z17~I$bMo^)KQ&c*if;6^CNXanp|zlS;_dhAlHc9gDPvPHp-WWTDDRHNuP-l^_pAT( zug?1P`jzgNLrUteGL_SVs#pPyI0-}`;Z;@qZLrrDbc9y%R5eE8?D*XuzSU6^KHTN1q7 z&+X}?&qAQmpzU0#i%ZMJeP14B{5r91|Ni>6*@5$&;x;5WN}1>7nEkH%_cML*ify`9 z8&-#{O#Jv{5g&(29UJ#jAr{4+9ExJ_G-GCD zt%=-RV=8|$Xvgl|#t8>NhbSHV_4PIAL^9CsthX?%$s!D9HHsmg922uHv$XOf{c4MRZoIjh!?n zaF0dJ&!tAk_hkfTTypW$KA*;0+UcS+(Pr+23jw#bWI8YRo4X=>z1+fu3w0tlsW?~0 zdtSTnvV?_|6|_2`skwP)$xBeZmw2d!)28M}K=$WNEhXF5cHFyZ7W!><&CgG-e!aZB z+|$pG&FI|qxb1m!cjcWE`Lxt~`YL5tW;UJ;J6C+0X`KGz&d$xNo>--yld1atZtccU zAbE_37zp&DdRAt}S~i9ko60?8(XMKi_OV|Kru_^`N5`e}8{}{nnc0 zN^^6y6bSb zneR-?;$=}+kBWiDZ+6uF-X=9wH)6wrRch;w8*G|8Q|RZ}+2*0@wgv_la=tDB%?9Yj z?qbmh%#D_6?e6ba*U;#YHqT@Da4UQL$DhyVXXi}Keem#Mqu+AlsAp$pF5VhBDMv_D zH1*4``St%m8+xnQI2aeZ9o&++p+He5o{yDl##Zj&>#OF@m9?|8yRss%d7*QA+KF$K zLa(o{H@6B;N?H{8*7PXoSh{~PF)=#VKzlu})aiurE{ZTzJ!P9G!z0P`X=mc)8N2Gg zbkCkGZJKrELAU-s1yj?|VC(rM{WdRcm&A+d$IW@0{AGXdqD6~(wq0Kpdiu#{#aipR ze(rOvN{jBSe{%Ebp;qoIYon)set!P*_4seKYsrF_%z+<8FsZ+!s>oc zzFv+3TM4F_Esd~a{{YWqW=Q~V~Wdgp9s+c>qeyE}OO)IM2jr54aaDXD1HlX@?e zZ)av^&atVyRK><4yUOCGcG!Uj2gP0E<9)KAMYG#-Z%3I&OmtmxJxP^k?%N$ZEEd-;^_qI}`qSN(l9JO5TlNcEc=8(+zMy|mPObLM5WJ9qAwZ1b8F zY-3{snuWcVc0;Br{dT~c4>vX@UwirIcK*~^XZHVHrV$n`SY2J+C93UqyifM#)@(k^QzRnAI0{9tx|!k>y8TRgL~Rc;=*e0g$sTxDzi z{=Z@kuH9lQtMr8m%F31nEOY|RS&C|hW#sm$%rAU&gfnVejwfUmL)y;HE^79dGnaN0 zf=)p>{PXkk%*)GqLpR;s)LgP{ZOg*Vf0u}Sx^N-js-(G(;{N*ocJ+V1iZiU=^QkK` z>+{m3OAWKH={R&|z4p$!$>cpv2ecHv;Zt+c;Wl0o?J%F@)ha@t7ng72eV@77;`Z}% z2Y6VZ*D;?^s*G3TbyV#iNsHasa=^XlsA&Dq!W&dsw0ohovs>fIes*_iku=l|#P z_HMs7DfMkDeC$?w&wgJDW}${f&vP3wcG-i{h+NPTeGf$hO#&E zRHg6ExVY$*%w1-7zKDH~8JR_%e&iI^xgRce;bjSrv>8uBE4O%7&ROFVe|~yZZl9>U zb(_m1-!Gy(T_T!E(;6#uK?iD{EP1aEI#3vNj*$8`P97f6h22Mv9sBfZ_4-+=kETwo zQ~f!8%NCPeWpBGyuh!oG@0WI8UtgN-e%0kM5^|fXzGf}1ZI<^}=H}xwy9GLjiTPCV zvcSb|Ep2U|Zs+d@?HxbZ%&r-^33T|}xl1Nu-u}l|g{%|;H3*J&iJqBleqO2e3Cqiz zXwJQ$bwnL~eP*|&ix!%IMxQ6lToh2nT4Zf)Jv;FGzM7v#vAfHjUR>;xkN!bxnuU#MCQ(qo1m$p(julC1v+AJ_H601vrLok@2k!F zoq2iL%D23i4{gu6xhT*4&%x#P^))p%-~$3?tahu3bAO*Bt{K#FtY7qiv$Hej_LP>w z=YAF?9M8@&OaHQev3_|oJO89PbLONfZt3XgP>*|DrKGG3TC1|ud-}1HCp(o~yDlvC z7GL~)-8^n_y$dUY)%Wb#Q&3*Myzud{H+OfNJMaEt7PqHj;`O-dUZ+;BmA4lyTIAvB znRsaasVQKmB@ng`*;Xgi~x4&w3^Y6I}ldo30WP?s7ad2Q*?l(8- z$A^bevz1Ri25otoFhStjn#j**miAd&SbTWBet*#3s?wO47>(#{I`)6R2)A;HCLL^I zHB$@_6A(D?K1pW5&a)`hMPV-h%b?%bn` zi`|_#6orI^Tie^)8C=#zZ9S88ep~MCEB|(vz0I0d{A}9p^7mbzo}OM^)+=G?ls$RP zu`QWSHvenB^;_5d*}>p)yieBn4d^tQUHSk2{Z-P_^UJxvFLuYSU0u6MU#DfnFLvX7 z`0kyalu5>dZTy^^f>&3Ei~ITcC4GN)*X`}yyLXSC*55zpq0QFp>td~3qNg_4ZvGbe z^pUHgL&xLe#Wh^BAA?-D{4%FQ$@_b;Ix#x}_WlcB8sHa0O+v_ic=rnHZ#UU;(zOnv)-PX5Dy{ETq-@YAm{O^rzxwAWZdqtP~%@tx~WCZQCI&|}=&L?N1@#gJY&~4*4b`&mVIP&G?<)e3ZmxBam*w^pduz9oaV)y=Y z1^c8-vpR%Sy;6RDHsxNq(&@)wl;c^&rG955gU_0x1B4gskz1MsR#sZ*M3oA_3`ib`_fy_pDTCsdpA*iFS|nz z=+cklI+2@>Jb5lEB&4)w&z>vSCr+Gr=>Gk92GD&Huf8#}^Ue6P?^Nb~f92)>>pOD= zgoTy6#B{ShMVYEc{@iDB+^`LFL_LF&g@wiKX*8N4U+>_696o35i z&^d5dN#@1v`SIOfC-P1^abnxl3+~%|&%QS3$$1^xu{vz+s%6VSlgF=Y-toy=%{VGo z8zQ}dllAqMEhbf8UoGw0x;5`^)U+Q)!l2tXd8JGa+`T(@nr`%^b+Oh?PEJNs<}fY2 za_dkl_tkHpOEYh7O0}u_(lOC!@0B+$Zf>hS&jA&PQyzW&e!o6?-Q&Bv7sgtjo@?LU zp>yV^QR_p~dwVL2L03XNl=}Z-asQ9+_v?Q?>edI%r^(65fripU(m^DQhcUR?M0*ODbmR?L+1oo)7X zalhT6?5X@*@!^4E-@VgH2Mp2Pb__~;d z)!*NN=495z?v~O#1frcJKlRMy-$)2R=PL{qghXesoqww&B*tEi~>=FU#x1~J_z zP#N;{*PNZ8rIsPA6STtCoH#XAJ9XB^nV@q`E@s!)*E3AcJoWC~JGbj{4qLOXYQ*ia zQ1_p=W$u(YHBAruuODjV4&GUm+9jgNwBX+2G<8eKe}Bc}Dh?VwKhOH>_34Wj4WojStN8dRWJSQk z&TUs#ho67)?c3Yi(o5gHS{b;Q?c~Xmb8M@>bw1xJ6}sxcV@Lna+{X_dILtIkoncdH zWLxzm;q9%hXXe|--(A1{*+sp(2WD*sUoEAesMrWPcHSaCY@cyaaeu~9Z~eVT=2#YY z^!Go%8Xm8zsOXqIS*5b)>FMd0HzprX*Q>oF0yBU$a zo}S=$;rdm!oJH%t&Z_F_**5MM7r8QC zIjGPH>T$g;v5MN7#d_f9=jX;9nzLG4SOl1IHuTK<=e@(RneC>~T+jO6*X+h$uU7L)ZVSdwEH9(xgcpy}d_|9%bd{@8_v~`M&i`L3z3PPFpp#woYO7 zptVt^H8nL?_I+Js^zwCgcH3@in}72rJ&}#8d@A~2zoXS()Ax@aH7#GB-uCU+E4g0| z4T}E1&z*Q{o7Bb1E%xE*^!T*bGxk=0zqCGne~zqi(h-ih`oE>;=2$M~GD@31=Zp5q z-=OK9+TY(kt`a?+^6%g8_mcb8gBB=kmY*EE%y)L%^y%WgQl^LQ-J4hX`Wk4%@?ta4 zwPd_fCJ#{f1ZqtaI)lcfZn9Xooowe0P!jfIchy1#!lS+Y5o)#vJs zYs;%!HP1K-d+t>JxUmn{NZ>|R|Xny@GD15eAZqW9b z%B?lm)%sHq%k#c}{tUX#!Yx->Nr{7-+qg2%+}vFG`JSYsT{YkDmZxp8d!J}A-DAGpy=A`A zrCdj!ot=I5{z^agtE&z^Jp9bQTo1Gt2eiy*|bFIrCy?QlEk=JJRjNfu6c|n!b(^FF;^WHyvcyN|!c0qah z`OujM-+a?Pc^kACdamDczu>BCg+)b+f|h#Kd_HT=!pdq`_{gQ~&5eccwzsZS1G!5_ z$LI6GoR>M#jLzxSwrvx0_im2el;T-x*I~CQH9vp;V|`a!^Za`$H#en%?&b9Rt8}gD z$&-{_rLT`&T^-K&;?~yeX<1)9b-Jfd7niU9V+guW(#~$4vU}f!)#3Vc=FBm=qQk?% zp%>EsIi?X}0L^`=PXO;X=@?7Bf2^=)B~uSFUdEN|f4p@8-9U z9~UMbZew_JZ}07t5UuN5a#v5OsCpBV1v=Wd{M{YUl@rTdyT#7TGVKOk@q1c-e?*Ev z!Lc4m(CwlB{{9x0k@4~I;Q{S5xVXsGXQolBW%08W%`%|vM+pa;dZbLd-rn9WEG~Y0 zXYq5;dh(N7ZZ1#E&-cH)%(t_nBjMYdn=Y=d6DLeK06Lp|Q_SSFBS#KQ(>2qar+(7I z%Zuy!y4d7TPfqH@@0%l}>LoGt;~c|ew$xKo60fWX%(=Ct^Tv$`CuirE7Zq(r3Q#f62<0!|axl@}KaH-Kgw*1fIxez*K; z-R0?jHkiHN^SLj}du`NKmztVA%f4m!`gzsw+`T(}$Go)j^FXT~CnWyfaeQgbrTqNs z>*iM3)vjDv{QO+!fddYp`ypatV_he!`5w8qx7zqi{r`WpAFoB{bK2Y6KYaB{OUg7$ z#mULZ-7w&-i~w&7gGcs}d{FhW}NetJT_gB$fK)Y-c^( z0h%qdSeJf&p5?w{i*fF(uWs9?9|zx`zhIi(tu2|8GcGP_t$N4E%r;}o(JSHEDJe@N zY$`T<`2JnIudff(s9hAlzYa9e{K{}^_I0yg_m|h_i#?z0-}2#`m{RxCXqB7l>PzSQ z+_nEzed6-v;43QvoqHsW-9Rm*!y5ww1Cy?-2n4l{L8p*`uEslXz+q$YbHA;=e(#sB zxu-mHZ+p_wuBR_*XGevtiBN0_c(?h>@2uH%&D1m-hQb`fEj{ zq_Vc|`{ea?6`5`2G854z`?__#pn6^J<2W%ot$F!=gs`={Yh-OALqkIN=JGmqoOCRpLp)t=H5U5pU1wt zyBl;=*pXeOuXXNC*R{I+e*gb{FK%vLezJCN)mNbgP?u!a+pX8*gc~CER&5Qued2`2 z!)MRZMALUye}A{A^z}8d_s=y?Slzy+P%E`FZtb;u_vV4th#vdAb#?f9K8bGSt+}_& z!p%U%*s2L9tKaW!@9y?qcW!#H-+a5X2O60fm*$*&b#=97^tLr>+dNdF7SG@O_VMFn zmAZ&UE}W)E>yG!ys);ripIs9f@a6xTx#bZe;o|N0mv)u(Hi+(aVfA^V8fap6<;L!f zN5m%oh-@{OLfJ|>jhz0vgzZ*qU&o7kR+fH$%m1D9wpRqwYyHn(9xP+8;w(8*Uk z!S8H0@7`?vd|q+=an4<(&Eir*leSMuKfl18e?^?^lM=a37bVZu=4NL3x*v+!*VY(r z({xKd+9e9wuX<-kA?P?p(2*P`CMtujy$@X-wlsc!-K&kq=4AR7)u)pro!@B6oZ#=iQHt#M^Jj!(<=_oho*n`z2FE6$F&NdSi6inP;my?ro zCA}_Ia=m#d?};;(R-oRgiB#{Z#0z^Wi%q0_S9vincJEL7_vfdKU5$jkzW$pxZ$LM| zD=0L8W|f%P`4Uo7m&(O2^O5Y6v2^gvl23z_}={6O~z9&BcR{O+A!O^uCIuUc#K zI{$0yC(Oo zwiDf%PyGD+m;~f&J~*zb6%-Uyir-hmBp@dz*Jhk_UQRJ5r{%>J&yMHkd9U}YJQtMK zc6ofv$-;`O@Xd^kYb&)UWFE;k|Md6#T^CnZ&h+$j(C}dLY^6%x!otEsSFeVCd3X2r zjb$8)mrwAXpKDznq$&RDl)P%Vl700zodr|=7@3-;-rkn`YTue^e=e=`m_2LOr=QQ~ zr>|Ul1~lhe8R$sWyY8#0A+?sDlyAL{t$t=Xrl>wlTNxyx;uC2?B`6sZ?MBbkMd zT%MhqJ6lOPbkgP@KcCO9_l(arrMh3yXk=2#Z5IpR7jcs*q*3Pw7;DfA{qF`~B<(PMrb`DzD(ZR8GU2)VovjgJsH4E3hUe+YRqOX7S;jSXqRUwTjTa8pJCxotku=o3vOZn{l zhq~{}g66^Y%)7U@I(T)Mu2sp41$;BSi}>pQ{{^kZPC3-V`Oy+**-b)(4j*w zuC1N@D&)*uYjf|<=T#@|Y07KhjeDDOePwX_s?gO;58l6@|LV8P`jFLZ%l$Mjo?GVo zuv_23&f|&hyE~0~u_A$c?(KbeLeOJcqAF-n^7Z7Tq(i$(Uw8EPFArYsr=p@Faa-ji zw_eN+hv|B;FYfKNZf55<+h(Z+a<9Jow#n`#rRTn#ew1Nd{!YctPVPh$*UzQi)30z; z-rZHYGIVv=vfHP4Iy*Z-+a;>MzhgAWxS&w=_0`n1W*(p93=IR1nK|meIC7EUUgh(- z;d15~7ZeSzdzM~{C58N$soN?#Q*eLn`$=uzbtuq0un2HBxe{h z>*)68&U8_l_{3_?+_^WmWC|bemtXEX+icZ`^+zgLSXnP_NOT6BdL>`~Co!iuNMUX+ zbMg0gcSZicex^Bl=FEq$UU4ny$=SVo_vYl|d|&^sneu0rUG1(_HFh~SHh{wSSg-W* zbH-}}7rS+7>~@)C+4S?p;zOXLz1jKYByP{pnHZP8JNx=N5uFHufS{Ag%F4WX((`MW z#Pts?pMPjWqSvgCmzH|n+NkpV!@KQSP*9L?bycY4yTke? zdwW#v{%O|#`N%G+74l&D{JNm`EAO~{x}@0G*SFqAum0bkS0WQmobago{notsHk(G^ zyOWb2-mzQ}6;t z&LCef0YE>1w{SE^NsR-j;W_Ywg;#8_#;RmTcoabNbvi zJ*nm1iv9ilps|+*Bd@ZruR_F z@s-QD#q~_O3}&n7KXN_T)b+qMB}L_a{eRo1r>7r3e_ns;t9n26%9dZgyLkTpzW+a@ zz2?`Kmp6s)UJG0&^W&%HqfGgFp7?s+R_?F__ox0I_P@CTy zbMW#m&Ahy}G2NsmCnmmn ztzJ3v{LM{IwI-|i2FYHza3P@T>nqoCZ7-q~T8es0dfl#`Q=nc1J8Fk!-h9!cXB5gV1l*Tp2hzqj|tj~`Fo6dgLY=F{Bk zmH+r^o&Ft7@w&Dmr%T*pc(re);4nQ&jZg_vu_)AFqF`S6bbwH7LU zK0a5!|2=R2-(=fN%Sqkhtqh8ObA$fX|M{^IG%aLcZXRx5EY<4%RqC~ ztIF>0EPmd5+}+KMi=CaFk%OI`{o{v+hjTW3GR@fP^ya3rOTU~`L?mZomR8I3=>o>- zT!p{473Q9P9kWlTW&L^q(`>GV7daBs)sGx#bds^p%Q>x*pKyAbE|Y+vq2Vzz*CduF zzvo+nhROf_{w}T?y-ftv-qZ+M;?ec|=NCOu?J$w>^>L=(o<5P>mUC0-&Ye3gQ>RXq zu&vtC(c5df>jA#*%HkC(h0`5580K_4W1e>)Ug0tF;Iu-Pn-$YTJVc34se77_S%|JmT9^5Jw6e0W04r8eRh2w`qvXQw^8Bm! zUc7iwGIw%~!Ryod`%N~qN-9`Ib(m(iytw4b5gmP$aZOxo$NPQ4N#FAn=h+%>Yu!0} zhJ@m_T;Zf21&Vj>PL*Dm;HdcPi(t~{G{t##rrTO4l_uT1)cxJH@$4y%OE=9_ z+WF=E3Lk?8k6--)O;QLrndICEU^sN@lo#mcoxAp+uIbmxCnp5A_I`VN`}OCdxYLK* z`CTtAa=p3_bS_|S?Q@nbQENeWjN94SEh>C`40P&*MokZLIxW z7PznGX9#nQW$6V_?el8EjIh~76~Jlo6{#GyWQ`(goTAKE_7xW6cCv3?*5>;=E%!{CXHN}C;dTJ`_Wb=!* zwFWH9^OgnG$XOpSNo6k|in|)6Pn5-COkZROiXb z>fOJ;zn6Zvs>rOdu`%hvfyP7Eu7y20J>9?N(@FJ5Z*FcrW~Qy}k$!uE&wM-EqrMRv zlUx})CaHRJDYk%iZS7hgzrQYP%I!mklG3CdWITQ?os{t05o3w>7oTINHS zXzPm`ft@ebMXMj#S=?njOT6NfOUD9*r?=dDg%;&TtA1Kvye2nys^$CpHOfcYc%AO- z&CcmoWrHQ3*dM=tr=Peu&$9TL^zA(b51S+`i@)N-X?#wYiGhGw$2zbLaX%`@rlMe*#^<^A_45Rk-53%wGf#ecdV1rgO-2>_ zEhjE=?SAz5@!=hXk1y5wot&h4b5klew|Ls0zti^2DtdYfG(wSfe%{#=6O}u=yOk9b z82I`5pPiZMe0^PPZ?2Mm{FPPb=G)h|ox7Z2;xpTE%3moUzR+|Oimvmd0 z;+gvLPUKH}MMftl1q+FD^IAVYpBj{WeSLG-YMIAx)?DeirmO0u@$~qdIaBtZJ2ydp z{>F72j~+d^XS<_bUd|>!cZmoMN049t;;bsHN9sF z+GOUUs;AdC+dMxhD{IxXO|_!SmMuFo-`+mzON z3EA1++w<-k<(5}<_V+K3-kx{l=uyT8uU~gBU%vd{@3SX+WGp9v*1#}puV3uY$dq$` zpRBm}(!3HMo;8ul8QjJCl55+RUCj9L>9qdGZ{L=Mua5(*7Cmvo12m5M?d|QE=K1pi z+1pCK`?}4|ZLlhR1v<4*Oef+%ue3S%n%T577q)laY~H!^QO>U2&eQe&=k|9uuMYoT z9JW3-_+Q?wB^I0f=Pk)Oe$G#`I5mB_4j*4a_G%q7vr}dP+g`INojo(fTb;H-URzt+ zs_c!&@jltgUtctDZ_7=-yv+B^T0XbCO6yCu znM(1R=idwIKiji;Z{cINt;@bIpI_HC_uauu4LvfJLA~e9b8m&LW&UF(EGOsp@zK%y zFLIurp5EUpZT{%lvt@bQ+`sj2s9%&{>ODQ}{5)HqITjN?K0Xdw>3nIaw`Ki5o9yfB zmWHeha@(k_ea`H_6wP4JqKcix&-pf|on4fCyzk2DaR2#gQq%wZ{9kDn(pMtK`(!~AAsHr8p!+u4 z(QpU|5a8qEd*wS-P|7Ul#5~*T3mGP$okU!sS}*=qO#*coXPM{s2{bvi zauq&1BWddN+YGcLYmQ~{kAJ`4cXoDGzTK#%rUtqco=?^)Wpb&I?C)=H7iV8zcc)rV zt-PcJG%Zn4U7fyLx0Op2w4$VREz1IzDb?He=iV{?^uP8SAp1 z$H)7HB_uow3Je4V1sN&lA8=H}+OHz!j6XwJ=LR%|(N>C&W@78ZtGWp7WNnySsH+PflXsn?AgH$MFNSq$2- z;^4p#wRYOJ+}n@dzn{NwA83?esn=8irwdCwg+UWN-(P#4JKWCy@xuoN9UY!tx5LYP zXJ_2pwAAtUnUkObQh(o%CT?-P6}L}K)t;V|Vq$rDnJ?&$)SIdEo~VK@y8iy|?#-RW z>I;@M_|7)dy=`oqlatfY+k5o(?b)Ci>s@ot&9&bA?C2k6d3pJ|pHIbWXKH{qu+LM~ z(djWvKDHs@Ak!9o6DJ=ZAJCH9ef#!hJ&O(r5mEJ;^5A6mO4qQkuphsFUj}V$zghSH zU#)4AjF8ZwUTO1?=ifnV!uqyu*l^(D#lX@%xj8uo^%IY#=H~Vu?ao;{-pAB^;prG%lS&Q* zX@{(sAmG&T^z`)Azh7TpzkXf(o(e}gfBhU$S5&fg0kY{ISFTeHb z;X}oFcC}d-{uL>CdU__EoTR!a;b4>IDZ4E>H;r5~S5BB9keHXZ?%n$f3!VE`fBmy< zbH&G`#Kgpf``mS-wg_z8xbfzt?e8{UT;@AlXFF*4f8oW9EAMA)-`Uau4x#l)=jYij zDtdZKbKZT>nakVq?*6*<`Ou+5E(e=fkG{LRd-KU4Pr1a6GLsAhPEI`$8xsS%i|oUE zi(5O3pI`aAtK_kes#n0inx8yhH>aEwDhJa|QbBEz=4yIz-<`3CotNOQ%Sb=$qW`RwfM)tMi5nfx@Lss+j{olkNVZEWWF z+x=wG*Vq3ldFR-%HqXgwf-*9H+}?_%r>8eHH(%~i@m5*yZ1+=|V{S3;gR~#=oUpY3 zuU@S>H~)g=?ez2WSf_{t&FzRv%X@IY{=aNMi_EXDucxcdj&BcJz0`lc-72ZaKR!PG z_~C;=M7?G2ks~fOwY4h)7q@9GNK8!yogc%&#Z{GRb@9f=WYBUJ(811IUTrzD0krzN znVmmqS4pOWpjYOlC7cr{PGoy){_~GP?St2^Pyc?upZ~zUz11JTe!c3wTL?5>`y_2! z{{6o8cJ|ZLbc45V&ABOCS>0xHdhXM_$V)Ho%*(5` z7hZo;-(UFp`uh0`?fB$uKm{&?tW}A@ik5xr*X#fO{+?ardCHFu57}O8F9+2aSyxsZ zG{0Z7_*^z<+url@^V8ql*tmY})K@QFoLK1Ge&xhUm2}X#P~YC(UcTywymeVm8?W@I z7Z;VAzo@qa>=*v>G$%SL3bZw8>zn)h_J2T&yuV!922Nf(dpkNfs=mHz-M)SMtiq^m zIg#Jq+&uj3?CiqQQqxVXleROy%#rT!p02m@^~t#pj8abt$jY8w8@-(&$RbO!bldau z^VhHAmoQM+ylmgZ1q&2FHwkDkC4e>wZ0q!poc!eCo8aYsj9nhb_Edhpu_={X)q9#x zxOJrHfk`R+N4rFm|Nr}&b?n&6;N_s|H}K?Zqt~3VA<|!-=QMv3Sa`bZV%ApBse%(G z2<+Xe4@yLyc@N(2|9|Z8VP<=Kdj=CJUS>9)2Uk`Gn`B%#u;ZBLJ*_31a~1OL?_0Z0 zy?n*#DVm3GZce|tVwzs))`*QsSy!xWUEJI@<=wS%m}wldKF+pw#@wzSKPo^g=iExt z&&+VVxha+RQn;Uzg~g0pTeCl(HNU^2s~5C3?aj^2Y_c~dNQkSet1~e%flh5@P+h$+ z`FP)}=kf6wCQ_xgJ0Gv*2UTGwCMq*7jq&Uj)8!FcI33j7S5g1?R-HTh>+nG};rsSTSqzY<> z8x%Y^Aj1Ft*OPYnx(8=w8aEj2Uz&e^AKOdyI#Go8xB%fiCz0c`N{rr^r>dMN=O0({+i8MYp*ZOz^ zBQuZL0>zV+dp@7D&bhyD?x9w0<_%d_wLt5V_I_JIypjPDCdnAXH61 zc9)4%uUqN1vuDpd#M4tFq(6&CUy) zGt-#=uvgkVXn_MGL)zI{M}K^L%zJ4%I7E*r7#dF8n0)-wLTC2SRF5~a-e{EgtYAz-|34?|O z3l#QlS=*f>t<)Riesfdm$M4_6WkGk27^k0;Y5uAX&QWC_9~@+!Wtt7zPYt>%&_v3u zPv+#h*xjE>8ayWLo^Wm(BWN^e*SklLoSdAP7FgU~xNxCO-5-en7a4`*z_)J%+_<^8 zl1@$0Y!I3`-?Dhwz27G|LHhw$g{}r&^y47;N5VLb$GZI8l;X{*TD{Wd&z{e(XH(GA z>od!}^}@B_%!P@$vR_|cPrte<^wooV4-PhiDj3J#Q$Shg$OIO4cF=ZiCMG6^r{B-&j6;V4oJJ9_m4YSSjFD><+ zuEX8;a!&5u1+x`1@9r|~7S}&^D_U~h9mzVj1TJo~iWef?~*{3I|dPi(d>wWdZ zLuLJ;Teqa@>+4OUQ!g#?d~<)l{pGi!py{qt|5g9bGf-(};{~mspD}BeQcJ>%3k&~z zILyEPjlGJB%iL|COfA%D2s*k7G-+*oh>c(F%&yYc8#Zk++LS7Eay2MtU+CS|DCEg% zU}_3FMPTKn6QBz8UC0N}h{Wq(Vs74EUW>xl$E}LEye0GUryj2Dek(WS-rn{q=62TA zRfV6PcvgLTlbP~bWoPH6)YGfJT2G!d2{cXl@ZrOmS>DTq=1rKepzCugJLt4U(6x1| z6+tKUoSSRC+$;Th*48iY@6W%tw|e;uDP>5e0d1yY z>YTp%1O)|kN!{MHDIU~q0v)vYcmRm!$)9%LuX4@#<;AK96r{hd> zZcG4OueP-|x$yhD*gbppge>(E78VATg?#dMa}-%CI$hjvZ_B;<`|-KC);uy62ElJ% zDBYe=)Szem;?7QEX|tSw?EZDJyQeMloxMz;Znkx~9y`CBikaCoP>=F;1EjHS1=@qU zwPfkcnV@T6pTAze-)vK;kms)n=eEt;S^0U{tVx;q`RmW!*9%_86TUt!^yt|V&?R&) zv&!%8Dz&Nn#NzN?b){bHt|L1NA2Xb7o9Bl@gXs^^8bNG<~`rL}DUJ8v@B7Uc@TJQv|DMnNeYL%yO~7?aHm^c#DmU=S7--n+~$du!CMudkOco8ULkX6B`(-mllz zCM&cYxPE>5v0iCmF)=oc%*R11gBIzpS-bY*=g+~XGi!f7o!-*cmbQX7+4?rayLazo ztV%fe`S~3>ub5|C0Ikzr(v`A4cK5WGmzPT)_5n2k_q2jm$La6?BNVVKSub|il(e(6 zByVbUsw8`)N1q3swDbC;>-I}U+g@K;Ie8t&r?0QChbk^R)+_ybE8CYdGmR|^9xyCe zvV~vD#3Mgfy4k&7?%~_FXU*@|I0pp@EjW{JU-Du?$f_wXrp_|W{&bk%oX zJ-2jU;bS(?oGHW4&(G5jHnHxss{M1MQ@G^Kjfu0(^O;V)wy*zJv(>JsYDdAtL)x;u zCvW>sR`U&7c?~qi3%cj|*O$y|Yom`pJ3Bk`>Z;IPx3mKnwd|^Ue2lkt)~v)eYu85Z ztFa7S9d`8i@#j-tK7uX-n5^y}v?b$W&NicFn_4bILjhUdi4zrA_Qa&UJtxG1cdvo2^EiZU@sOtK$iA&~R zUhaQ+Yj!y3h;G+#k7a${McS8cUNa6~7ZZ40S4ZaxXk+2>qDPm4uSc%F`sn#{c8!Uj z`tAQk=$CORN*E+C7#bQjEb@rimJ_*m%iOyhil9xQ%I?l*Ul*HkUdZ8K-i1l`;8>dMOIu+>jb>+e5u`n0#GT(zvK_q34frOYnJ)C>$h z^nTv-{{DV{&<@4j<@sIjEt)^S5WKU8bK$}d9~4_!HS6W=TG;s?{Hr}$+1KUu*5$SI z+~9XFR#-gL(+gNJVUvY*^W@2!;?_v)*wv(?t8r4T>dT9Xt2Q;LJT}R{7h`qX4Rnd< zmdwj;S1o>hJT5P3SF>Z{+DRTp{UzJJo>?2c{mR$$^Yd1|Zsit#_Uh{DSO1?qdls@j z?r-ngx3{)>=Wee4{;q1Z>W|~{^&5(x`#E^F{{<~`o?fgj2|hTr2pl@-6dq^cFN;=`%GpiT4j|NnswO8{MFRrV%gna|8m z$I7@xG#d8qwG9jmbnDMy1|9G`RXcpy>l@1MeW24UKAuq<43AetC8E^oePn_snW)Yj5tUG+wxH;h7nR z&HHM9e|oq3{l1Sj;o;%u=2#||r2jrSSsk?ZQ_?E^*O!-9R)uO87r)56+jPLeqE<>T zreT7>(ZJsR@NeSU%Pf{G^*UJnerZWaw}jcs_f^j2Q{}`TbL;it_RC zSy)-Es^=EbaJab0HQ0CUe22x2ag*GVAoz<}T5NsotuWe!tt@b$O=Gd!_41 zxqt7QE_HQjF*>oJ`^kKJ{%)~@TeDC7OFAmDJbL?;b!%OosS0(f@NcU8oCZ2)G42J}Qap$2~dLE8Wu8R`mLs?x916f?k^4xOwy8g9i=G z&CFtAVw!VOqNAg?Zt`+*X?e9>gR8;y1rlO(kUdO8Pt+=v@391 zPNY`I3ed=~M*O}#_cj$4TVJ|)P5I>W?AbGB6uiG@>rlC%?&i&P!OPD{-;Umx)N1wp z)n$MCtKGez%^$17*Rw5fYUTRz-(Q)yiy}kYUjg86w&j#0jV(F7_kKH}x=@rcjSqlpiS44@j@do|7 zww9ZfOX9<-B8$GhF6O_R0-jA)FL=f?$7ZFDcGv-adyQt{&{Z1iqxV*QxajUB4LTL$ zG$%iQ`hf;U4#f)@COT1DG_JqmcsY5=6407%i^@+bjg5_<3tT|M^dCMHFy!RqfHo_G z&YG(F`f5w|^*+#Msy!8jp#7f_8x;8X_-4#_vHZuC&FSYmdU~FGe0==Q&f@k97XtF` z?>l>UcR8p_@7^c#@YmPZDr#y;Nl8wfLaJ9161QeuT@kfatCd^)TDR^_&X+l_Cq60O z^!DxBt1Ggj&XrY7IZ^s~!r8NDUtV17KJ9IHe}DM%v}_ZpXXoa2r|Jb=?d|JZ=0D#q z>qx-jiv|@R5|;VRUDbEWQ{|Y`;)@2Ur$qMb*~9SRt&toowy`}_O!|Ns8VSeL!o+T{KG{QTwdyUW(B3S{1v6DZ>)>9J{*Od3D&SNAL1%W`j~Q zH|VO--W7bZR#Ud+-j=$l^!US@o5p=|wx{0R-F5sUFFvQHImE179=VzE*=vTvm#_=(5&M&_5bE*hp$^P@w;*QxeYZxi|YP-bZ-#= zCFZEDS)k>4d-m*E5wS68TU@i@1i3Cb&v!Z2R#wXjwoP6>W!J7cQK$XSe0v2HoxQ@87>I`S<@#JziZ=vEp_5xjBKdamh)!xxS0tdO?F!3;q<$vnXr= z?d5oIfRRtm<^-srGG}wubHA+lHYX?K-A(vY@iOMMbb9)W8-bAyo`>)6moIx0AoD(O z@syu$*G4(cHVfFl?@^DpijXH?`s-_Jbz*mk1k9U$yk9;)rF+x#2@?cB=QP>>|8sbv zvU|m^FPf>RrYv-9X8ZEy=H#ras{&UBsh&A|wl_Cx*Mw6dNCHQUX@kPvh`zk zh3Fmx9fzHAbDQ^cy^r7n|G75h#rfnVJU-S7TJ}_XKtFt)%)fvCLe|CHJTc8vW#z}O zUsI3w$*QQT8YUiMxwSR>`>7Y(+S}Qsdf60N($CE~ndW`Dy|tCK^!2r+d3Sf!TwW#W zSywkFZbJj}!-sFSZ+`5Mq{RRDk%XYE?^eCoOJD!0omBGkyRfi%69WtT;agk1(hi=P z8L)(7OFnh%t_21sw8Z4WepP%0+Ypo`m>)E#ybOo!4wT6aAXqYdz zwYBwE_pe`GUcQ+W-&XmFWtngAlug><$4VZ%-IF)#Q8drnV5imf+t84Oo!z+jnU7iC zof%#Zu9J8}R*LqZZ@Zg2b>Nz(SXzaYcg7Ncn?bNd>LY*q?hE-oO-rd>BeBk-~ zdcVKFzV_x!e8|Di|GeM+-+{}QCxgx|DthWQ%OvyAxw+OmtH0~j)zy7@ch}nA>Q-iA zR+d+tT>Um=TTJ7G7rgH7?u;A` zA?soy8Jreh?5OHhadEM0P|zgD-*XKTn>3=gt#SN4;fWsT21iV+ zLP`n_9rJ8kH*66(bkeiKFu7$%{rwx$Jb5~%PMr!`HMsHYiK|~;UG+A}zjx|c#^q(b2Il6Vy)=(LpSKrpY-~JcrtSXu%}wKt zWpATE=W{1!Wog~3d@lR(YIuBS^!7Z-+gr|Th;ZBX^~mMr{+&HNA^-b(dsz=0J=%JD zy8i0hpP!%a|1I5;16tU$E+d&91D;%z3Ty^5_v3DYF(;?ndp z#@yT63LhWiZR3+Y1=@@fyo?7lXLM(0@i8+)XOHu){&#j1I?qk!{qW;svct-abN@I8 zZcaOUT`S$b{@*}hbox}9{YbB+w(MonauJ+vgY*5^Xs#Fcnof$u?8 zyVB0%{qpG#54AE((FkmMzyH78<=j;E)nRKF<=x$NXJ4&!K-}sB2OL&~u1-ritum=6 zczv90=={Xn+j3X#Q!cr(D%3mn{{H&Lhu7;1-pQ1_X4~oVH)N9E znl)3bo=?|1cw(YKD%TYK^=ICL*5&3nO)um$$i212X5v-}5fK+q4R(1M@4R{QT3T9G zT+H>nwsFIT1>x)C=GazGbUj|sWZLG_Cau4}Pb~^;W^?@iui)pVO?t1d zJ^>gf*-pF5KD=DsB>@`9keDEAT~_etMg2?fe7tXI z)YdGU%1YPWxztF*=D&$+cMX? zSlzBt+PQgdOy`|5XLMYvDto0&<8HdSxUk&bmdhOQ`c*1ukY}~v*Rr>_F0Kk)?Xx`< zbXMTcACLPb>fOIDCA4K^y;1PuD+w>eQ(l&pcHk7X>f(TlMLG6Dzlehlj^!i@8j% z-`?K7v+%LoHwke8hIj7@{@J{_&AxA6LiTLiTJIt@Kfetb6DNi3E7h*3Ib@R^$&HO#N*P38QCn{>uT-zv zQKQsTBBlFh&yMb@m7LjbpL$B<>z<^eT`%88IDcGrUCGkW&~Rm+ZPAkx(!V7@NvK%O zXU2z9`%I;H)zs8Pv_d+}a&N7OVz}A5bg8Os^*0s;9i5(DY4c^3F`tUme}8*xyeDyW zc=L91lPnfT$ApGkHza@Rc=Vh(E`Rvu=2Ia}Y`h8Q<&vXSPO8Oy-8=J|kc7mHx8G8~ zl;?t`4L%mt<(vbZX|pOJ?nBHwDIhzl9%g)m-}%#Y{|Q8b#>o` z3ju*ky+kkWF3+DhVZsE>-8Qziphd%9>((e%+|B;D>v5y`wCKt&FD7o-xKXg-#l5}N zyMFcc^oacX_wUfjlb$nX&+eXUU7q%$$|(4kw&ira*r3x5TXSw2olRaBzkl66Hqfc{ zA@(oR&dDhH_)OUp$EL?Tf%f5tHy$i0ct}c9Z zq*EtqdZp2?-PcwGDko-U&Rn@K<)!}Ni%UF(zitPe=XK0X{j$$&Gv66AW_0N9{}TjS z?{Hh@BzNBZeY!R_HZBvDT<=AsSxQe_y8nyor$CXrC#LP(X?gJA!B^j&TwFb!lb84D zgM-ZspnWP9mX@if`qoBoU-en+&fU9`HWdZSZW*e)zP|qW>C@dCHW)Cxy0-T8Lg)5^ z;$q`XslU`!R9Zj_12?65i|NPxiBkQwT~b?HJ0>>vre>MeZ`fLZeYL-{7lZFutoZmy zGVAued-Fg?mge3v5fT!Tuqw$2J9}2(>8Yu~t%BumZY<)6^4lXza{yl#Acetz-$dwWIx zH!otCx93<{(bb33BX<@p)k?dz)O)(m?S zd#k^veSdfN)t+m6jx2O;UlG6G4zyiGBZzVYG!Gi}m;p^Vq*=f9hW95rebNBdwPDckV1evZEduhL5`8$oTo2^TOj%-w! zw8g-%F>>>im8@@XJBLi!s5|Ki=w{I3(o^e?{5Uhq)I0Y7tJUj!GCZGw?vDiRYy9@+ zCTJ93>)Y$TFHcO@mzR^1J2TJLx|MH=ifLI{8ED7Ht*zOYH>G-m)+y&qUb1;DKWGNt z>QsZ3<^GC~kFq!o9&B}e6TUuuG@b~@w^Z-`yuQ1 z8maqKCS6a=;;O3?5N6hAJE)Sc{`J+>$KWj>l9OWmN=i&lPuFKZaP_Kaety1k^pwIr zIa{y&b$>xiprbNf=7VFLL($Jfn#*>L!F%g&va z+1J+{J$bTonr`%}s)%DwR=2Ajq<&3^O}TyVUfkVhPoA_iH#^UI9>2TH*LUvMZ{Pe1 zZKlTHKs_ zdz%Q~mD4tLe`Y*9+#bBlM^Z;er=X-{N#*BfZ#>&AE^bOa9n@R%>e46UqMWMSj{g4i zFE1|c*tv6}eSIC5h=#-Ju(da~WD0wFdP-K5#`P{;s;cbPb9&zsAYMg~dGY&Vta@VK;8w3ffVS`0M+7|B{j| zx6YkDlZ0hlPcKj!jKI)+2JT+gwmc$Z57& z?uPB#kKejAi{I{t!`w;gCoOfNws`#g_wP}+eo^eJ(xfCM(EX5cad9{Q)#N57I!@IJ zjo4YFs-~vqGv99RhYufewkn!~(#JC2*`O=*Cae3Ktuu6+Yc$V2Vn@M3tsfI=K7RWa zc3s*m=f|nf>OM0T$ZfCs`pW0#gqV)A*RPvzp1!DjUCd6T~AKZSCyrw5b2Lr|QfS&&e*!{pPj^ILTNPC^$1^f(G$LJuVwo zf6Mu5_u=zr@6R*DbfY*NK()z*3m0_0PH$plZdnoJTK{(GYh*j|Ah+|g0?7I zSX+0mjo#k%;zdT`yE~SF`|D~a>c`s^{`l~a=Vn&HJbUp&HzPYfKIXkY-9Yv(^)4kPTP%v7^<-RH(h0f{Rm9`8V#d~} zz=ck%j2zn9+8;t+1ba;UT;mgdUIXC!Y0r$ zYYji1PLGeP-1Dw6<>{%Zn%nHFzxjx02DwB;Ms{x4U{G59i5;|*?BbTpV8fIX6HG!4 zE?4KcMb@5a4BOTCx`et&!Gy>V~I%AiG{69sR5{PM-;^Iyy2XFUup%a^Cm`kQxqo38I{ zG@e$S#@nnJ}>Rj3JK3P_UYipyYC;h&=yS#Pj(xoNaiaD&y-UQTN2i<6wJbQBDq)C%p zK0Z2nv_nvt=ic?%^X7MnXeu>?FmIj|{`t?(;=pA-GfmiEZ{}R-_D@YnNT}k+2gU2_ zVjthynhokGOjh?VdU{F}bPgnFK{jaE=ee3c=(MrSS;s-c-Nnz(F`km)&CY(!b94FC zEYRs~SGKH{G)_y%%$&K$hGV3v}w~oN69bupT8;jcwfl#*gX{!XPIUvB_$nNzyIH_ zTOn)AWoHXYgO(UQJlqaC6WzUEE;RVKe%ziFT-7hT&)ff>)5OZXspzQ}=>G6Mm7iCH zt`?J%lY5z`{If=VZP@9>?)^7*6e?d`9e#cFT1n8(QP2uuhChG5-_Kljzy8n1p)|C|#)1qhYG{1cNe|-Jl*3M4PRWDWb^z=ejg>-@f^!d5DCAVkk?%3U| z$nsld=Pb}N;?b^TJeu0nb?cL?z!NBwRH#eou z3SMSoYwPLZ;SqT9X(-6e4zHfCR&wnM*jMw@Cw{ie{xkDzqhsYwGA0P>o|FNdDDds= z?V4XNm%D9!d~I#?o!#a9*4EZqp{u4O#iuP(Pc7pTpYSeIVdmVtrT%Bmo_%?9v$}TJ z8U;hciwkP^c5T0Rv+mOq&UQZ8qYf=&Q>cXu~vK;hIB&E~y(ZN!5DVo7-;o;$7Ya$wF&XhDWGZWE?nBdgP_3*`u73WT0$uOy?s#kMRO%{b_-J2T|m;29WTJd@M=IVKCHi9lezP&yF z__1Scpv#@&>;IY_{rBTX#iB)vPE6OA-?nYr%5&vqWo#a%?AA(3O=h{b0@g$rZp*)a zZd2;%xXi<|`_8W5-JE{@*!lDQ+1J;B&Srh{<_#zdzMAnuSXx@TjZfAqCeLiX z(Bxj#`{NQO`S)Z3l!qkA84-Xty)n@YMqRNP2RL&e;+H`{u7j~tU)U*8!B8gt)U{oSuP{`@>!PcN^a`N`AtV!h7KvweAM ztM;;G%T_5|J2h21^X4X1vy)$x7A;yNVOwSL?%g}k6zKPZ9fHaXSGrW!E7{r2d+{RU z)6>(_7sblX)Sa(&Q6F?H)$40(8Lq4hRu9*@m49PH1f;YwDx&&-eCLgErTjW?wT%KPOXKplxF_=hoKj;wL8r9WF)*I9=FPn$6J0FMsZO ze7$c(gaoLK2D&7s`ujT`S*s}@A0ID%f6w+2MqG z&Vq+b+wJ zgU0ag?61H7pzrVMiq&)8f_g|#P6#gZo9nf^?5#%ZE)zaJzALN4`yU=|-(2}QZPDVz zE2Fk*{r&Yd`PG$`pyB=6-`@l!Bs>xl6b>Fd2pWZ(tnM!)A#vj4+8-=P;`#iTeVec?*&a^YYU4DOFSp@#QK+% zm@JN)@?qnK4GGWA%=}e*(8wbwNT`{e|Jd>4>aCA{yt%o#c&>z7*vjbbdbhXb9=>&J z7N`|ck*}kxyK(#W=QlT}uXN*f6x_|MdTXkTv9U4e)_`NZ(uL*a%j^IDn`2R^boSr< zk{q|(3mGP$-J_s$06;S}zh3LN2yDr|{%-2U-)jsiJ|w((`!;f866?Hq^LBn>x6&;+ zXLev+?Cwi8ZsLC{|NQ}NfjU#QeA_m!zfVkL&h0t$_;~+io%Th=n=b!;F!yG)vF+dJ zsHjH|9yH9HDapynnf2`G>F#wdv3-grD2dw6>vzPQ-^;menix$%7M&84reB|bYdv*PC`)e0Lq4n)F@W*I!&*-0pFkhlArme8Z&4lbz?= z)h<}Ows*%4i;9YhklWXeA7}6E?7XqB*4nLKj#pGvbjIx2ptJ84S`rR6v2NXFn0$-} zH1l)n)Ts|2J~ZsyX}K5IzW-wOx~Jh&!ub3#T&$LjF)*KX9Gn4tLKtn0Z;nOdrAtAezJbC1 z9aa+3($4Pg%cK1Fdvw-3+0}9M*s)2ux3^6cRCW_!Wo2b*c=6)Jgu=(iCVqW=eR4ws z!>4Cwr5A3UKYzYIXipO8`qpRX=lic&v!wjP9yK*JTiLQWi#1`QK#Ze}fBVG^uE=X<>AOG8Ieh>A{#$?F-`}t9<>gg!Zrcn|adBZ?UEP0`<({6MJDjtG zii?Xs9p<<1ShDt(UALyDX3C=@oh%HI86Fu=tt;oW>s?s1Ve5;_ z%lSWk{3w_uU79hscw2H(5@-#)gtYYGJ9lKH&2k)WZ_C}7f8TCT)mN^UFJFSzi0u3Q z&f3D#5_FQCQ@3kmq~zb<-;bY}X$-pcL&?ZUXy?wIJ1Re`+1S`DShcF_&>^Qew$)-X zeC(jvKGw%+Kcs?WJgFYhzm%zn`zXynN$P70owq z-W+&Zv~b0Wj-Q{OC%?b9m!Y9o+WgRk3j*EZ`fSrrA3feL|MAmP?;X2$E9>g=T9?0j z!XLTT_xZWGpbpiZ`u}o|kN2-H=RLSq1R7X=2)|f zh@1b95c2T#pE?kIc=3c+S}{-jS&PEMHg>wQUZRFsr+8;@gEmDRSKn@wxh=!l4lK74j|_K&yQ z?@QhJ*2XKnVCBlrqut`lDk>~LfBx*~?mj$4GdN2&%CGa<&CTgQFKecso5N{oX=&(w z#pva$SC39iR5ma(J2p)>`iD0wbH=qVOP={W%sOQ)66WOCvWPi#sZ|q@{%gbZusx&RpyAb=y*cy)RFhmz$dUR7!M%{aP0}DJd@zQPH3M z>!Y{#rKF}#JlZWT?Ck8Uq^<1@O6!XkD|2#lKYm~S>&r{2y* zJ-Mmt3!IY_S|%Ltm!BNDIc?&*ySs%|RaF3+qg{^vPvH#z%?76wu!}jjl$Z~VDug6zG&3<|Nb)~achp+#%J#s^W<7esG?|lNQ zs!p#~PSDRNt<}q_wy*nsw_L@@Xw$L3(&l+j`cqa^t-f_S;O1jdadCGUS=r82tF!_` zLR8Ai%AVZYTm9#4R`&LF>kqWm=}BF#Tl(fr&Zd%=K}jhoE-9(0oztd?6&4h%xHkFv zjEL5(hfYpbB??P61boR2_Pumt-rHk;&aPXVK3f2^v$LbI(Q)g0CZ~VWszTDz(aH0_ zzrPRitYB?zEhv;qN=iDWPZy8enkBk_FKCfo^(ni*)qyXMc8jOn*-^N}cea^JVBo|r zudnwP?2Iw0`BCuin{nEij1TXd1#WHD)wp);+MnXd+w<>tS}Drvl_&6I0WZi(I=^s$`#^KY8+` zVmrV5v;7mT%isCb{rmYm>$OnWI{(O@sUhJ`dO7@ZHVSWVZCx$q9ThbzB1v${GCt+y zQTmSRx5f2h9@M9Odvi1RwV9}>=#c{l8WqDsm)jXYjlVy?Sxs$ME<9Nlyu6Wtcm6xojP-GQl^o8hy1Fh&X6M7h?aIc+!tMO>ZdqAcWp8dM-b)Rd7Kes@RQu(h|J|K|Sw`7>tC z`m|n+Q6YG_pQyKud%v9OrcImvte$3^elF+32T@P=>TN6iId_2)b4f`F2SZY7YUp#b z{Cj&8gMxxs7$j{fHY7;-`KvEUc6VaqQ&F*wHaIR~T=-q5dv|T4w~xw_XmckW9gdUd z#mh}XlrPSE`)sl8?X#07PCTgZk&~6Bwe8~crl7z;$1h*Mf==vcz2%o1Y^CNmCn9;b zV>8=F`R!Y`sqJzZ@bWvOP9b|ahhJN)|IkX7meB`ey*@7`t~Lg zR8%P`D?6v1nW1=v>(QiDd-lu$?JD|T4LVzK<;s;xy@|*BWdE=*FhuSwTIz9I+-z1( z@O&Y+O>ZAOa9~)LRiBxeIrnz2jOC>Nk=-2~0zQxH|NC}qG*rC1TX@nGl^Mxh2cJJH z+V<^RtCC)yKy9tlnX{apo`U5jA;K3@cK^)Sbk_#7=>2~_=#2iOvV9J3ZftBmar*S+ z>H6_q)>Fhh=ZG&g&%fs*A}V_F_4V~fFWF^s9zL;n@nX<Hxj)bwZ@uXKRU6RpE70&8M-i*<|ZKU=?WZ|-fg zoLgHwSG)}h$-c5WT%W;5^`f|b+?AboKRrGD)Bg9bUtG%ym6acS%XRSL+OU!FRmA(~ zOShA7x(2BB+kw^h$dp99qLwk%cyt>a^8 zm@`MlZ?0AAQt#YZEp`RD62E85A6RFlpn5zu)h3@4dTelhKY{yOgZ0 zr9p=k#XpWMc>0n>L0z4FbNczV{rm0r?AZfyQbtBbhqX@U^^M8ybL?uRCae1&yR)-6 zF)y!=nVm1;&W^&fR(XDYd~@c^0j&&X0JS?0J}vrbn=9gK>U(`%>`(i8y_;oaWo`c^arcgH|Rz;i0xU${8jSc!2?~Q4mmm> z&YB-MZ_hky)}y{ICeQ(z<>loYB6L=SOD0}e<_qc_GAHP5(bmvlU`R<#UASlwQ^U%z zn6R+6#qRw|Ha0T5cI^V)!Z~H?RM-D5EA-DDY-XQ0YZe#74BP6m)iHCA-MuTDe}CW6 zJ(Zt7e0=P_@%s#~T~AL>51-Aa&Q)1iSx{PfbbkFm&Qo$L$d) z*fObI%ww^gY7bLpi@>6_Yke66va?^G&-?xR{r=DP-A-#){QRJ(7+>qk(e297?tJ3x z>_gezLTkIYob=+=j-2ZgXqd1unX|KBygcNJIu|#0XIGb3@1yG8y^#?S6DofFGUL>p zaINC#(W5T@{{0LJTwGjA`uDW6K!;`q1qG$NyR&o2o;@*l9tQmP^6^m-6BBa@4-bFv zJm;*!Kc-9@IsWWxYZ~|Nwf*(=b-TL%yo4hif{*xC9}Nl(J^FtC|Gwhq=N{hKS-fG> zCa0K~n8ke`ugBLPymd>;f4&_n1E`z)?(XiZRgX2gvgVySAME6GD1H0a4<8!d?Pp!h zCu7mj)5G(Sg6Dk3b8OVvC9FhV+!nVe<pw2_cG#ZxsITu=%c4a}$9g0$uSw>Su@Ddx6nx~d&p!9%Ax*5!QeeKH5b<7=-jcwgwXw0o1u}fW4!TxS2IlO0_B4EZ+ZefdhS$|8PrCcq#B`Z>cxEtFFtah7pT`)!&LEgo zqx0#jSGSh@6%i3p(AMsrX`Fs(;o~VMQqs~MEuUY<#IRz;iiD$GqDg%#Uf#KLCm}PF zQ(9WON5YWl@$vrl-Mg(pyE;=(PfPsz>gtEDUyrWe|F3J!8l5%K+xceBocZG7Vs_Ai zgf};h_tgEBx_R@ahK7c~_sc((o;-Py@af6P877%RYJPJ%K71%Rc{=jQ)#Y;H;_f}Y zy`A&s&3kaIe`%J6rlw-?^K+^?V%=+^wsw7}*kiSwmzP&{)v8s05;Oe#{FZFk5YTe5 zOJ3H^uhuK#@QK=*njiDGw()$|(bQBtcI+4n!^COR)XvYh7tgTy>gA>MWchp!L&L;2 zh3E)@O_j!*)67*Z=h>@2X_x0PG)jtF9=Dg{=DxWT&iE9%yO}yUIx+@^h2>q@P{_>8 zEF>uCc>SgrgH_L-!e##R&(+K4-PsX%=b_2ze*1qn-e}4&c(n7$dU$wr?3nMjIxH&6 z3pB#GW$V_?zCOO4H9t4)a9-72(Khk^o=V|u+qQvDU|FNhSsZm`*U8`KJCrzGgzkBbT zIWpJQMzc3W_W3V4-T&e>^Z(!SA3muT{I@g65ZF+toRD)SWb?O=jE4@-I6fY(KH_4M@S-wk(jW3&JBftiVk>BTACDJMch zLK5EH+4|Nl?=*|TQ_Wo2#^ z6+0Rh|1p|6ZQ7#`4-aqHu%Th~YVE48uUdcnsQB^gmy@rr@12KNy_cN)wy*ZLLFuay zowz*`%l+p+(~ouRJa%EBbK(DgwM&*QOFA(@5i}@yYist#jEhPiDr`1H=;YkpB|6(I zm#O=xQ27p#tE)nF6(-M{cW*&$gpQb5?yV#L|AX3I>Q+kX+T1+SY;SHb{`qS@nME&> zDJ7NBdpgsyWew}}CfEG`CM_WB+`Yy$EKzZ?!}~iYRjx-x`3U_z%RV^jT& z=ik479{&Ev4>U4^TBLJqDurBKU7b31m3sU69sBk5bz)9V&&|#0$p;!3EB^hlJU7pl z+u7NHEhBB>4gQcsH=O4@kh*4Av-t16-GOO~jBTI82@7N=iY9j?#RaN^|2iI)kNr9KBFI?x+~?=#PcHMF-LZCUZtu^ze}8{pUpjx){LiblFLZ97^ySN! zsP7Alx6ST9ck|z#7cVlD)YaV?1WZj$LBp$s?N@Z3K79(hP#rXn?GhiqKk)PByLaw* z`1$$GJ-)B@w^?CXncAjJn_OaJ=bo8oJNw$IUp`y12bvn>HD(iQ6lce7vuo!`>DkXma#=dG4=Hwcy+a5s;II2?5vGWPEHRVJP3GPCn_r1 zBWEj>mzTHo-SbC}ni?7y{{4^C5d&2%m;LP>qoSfRJ_d!7;atv3`)aE}_fXDmsiQMwek#& zi|gx`w|8=NecJthv4`pWO`D8FL`4HbLR#LudE@prJ1Yycaw_rrySpA*S62K zF6Yt=Vw^B3>00Hxd$Kc(T6eBr#N^?@kd!>r#l}o*N9E+1{Bb)|y7t%v&siJ1{D0oB zUuO!kbamAvuU}$PSvVotkA6C?{nF}{hT@`U z&NK)r|NH${LUQXmZXOXfemNdfQ`09;pE`PaavpBuZJs?_`dGhw{Cig;zIJ9yOUo(K zra1)%3m@;3&Hg5JN91bE>1n#oIXOBEX)|}7SDigcMNyG)x_&%p6!z}!^1!&bxMXQv zU0n?=t!vTVpi^NiYJZvd`1nZO+1A#^wrB6&hi~8ZzIc%lv!_CEx?b#|MrQU4>td}f ztgMn=Tv#Y!Rie?;(=+SKpQuTnJ{7sRx`Ku@Ik>qG&$TW;khIYt<%GbGU%!&>>?j0X zO0eUw2#1(r3&-mR$NOXtZ^^v8q3&gH+O`!X5p6@fg(#|iRkeAmt zWr~Q0r{}|WcXvxz6fAIfEX?gRL&ena<9?T|uXI&gXP%Ck+QqeCG4qPm#^$N1&+J4+ zpZ(X;YM3LVpv=5t)xYiY=g4f%UD_`{bLWMrb~OolTq5GeCrjewisS3-KL6*JpJDmx z{r&4bo}pWxwK6d?KZ{pZe&)n@_0h))8y6Rs1@-^`eXY|6^*&{-%RuY;7I%4UyqU9P z>C%Ju@9%e1e*o&+ndM5odGki<4qNEmdwZ)FE?LsDI(&VXwMZvue%5EU881U{`4iBA z{%)C`QgZ$6?)`F#1_lB#dg2!^Ufi0Oo|3|1Hk+5Py;;$@?ZJP;y&`89N>hF4Xb$>egWUZ5KY)Awh#|dh%OMRZ8?Bu=e@S#HnSywc4Vs~wca+LS_ zw5RsB*tTuk49v}sPt^{Oid~Su|-mPA;pyPGRtyju*@>_q< z#tS|^J`G*n)-`K%*2VAdTj<>0WxYmFcn!AJ3feDS2^W;jPNW+qRkY$ykCeMCR1}cIi@(P0bGh^SnC;-rn9WC@b5` zFK-8$nb=$PwQ1>6RUI9jgsiNtb+Nk-9XR0dh)ZhvlqnCct`4vG_=q)bPetQ$|M^N< zT3n#jHVg+29AGdrGXv#>Ha=Od;NW0Gcb$?$p4%QjdIY*30n}MYKR0LM4s)i^%ZuIn zK@-V7GYlBp`DBI4EtsCac+v6T!2`9otCuVRE!8m1&=l*+;;F8#ZfR|GjE&uUt7hXd zQ1AHX=jV(Jpb7MU-}nFLG;--$bU>$AL{5&czP|p)@88P0x@&Je2F>8?tNndMMAnt_ z`fT%jgM&-nf0c`E1(Z zlP5V}y?XUkuK2-$#y_dM-@JWW_~wRTiNMDW6}kTQ>H6^?PX`7Dc64?+#>B|fznVE| zl8}$D@5PnD>Mvfub`B30-?eL(fq{X;?{9AxE?mgS%gfu?drU`1$0aXM542QUMOF3T z-QDFLo}P|HMMgov!5?2;)mBkcTeN5qQ&3RQiz_RIL1CYodUStnqqiNm-OY37&OOtA zCMP81H2r&)>&!3sQk2-mJdQNtmx@7tC!)MO$SXx?6m_FUz$A{<4nKLZ{x~{c5K_{-% z{Qvvi^xgHVS6er4HokNBZent>a@z?FuN|L0eM(4923?H9aG;5mdqehhJwtcaBgc+? z>Yjb{$dLuxN{(H)AfW8l!!Y}7+v3H^i{0vS@9YrFzP9EdsOmD!zUFa7sQTv3o1nz= z@7HVnJry6BJUu-@Vc_M(b#HI=as9Y(PghsgSFc_Lgon59*<%wD8v2uS$EHn2|G!U~ zKfixd{p&7J8L?yuXu9ge$&-$Gd3n8$SFKv*6dx~NRaJH2>ebeb8x8kgzkB7%mZR%; z>nSw(ZqwG%GN}5J@#pLH_>QiwrfJirE#UL*JTXl-8gz^+3p=~_lMf4)Y3b^=u3MM4 zc$HmrL`1{sr=Wt!si)`Hq_eZl`K!ObV?Cg9*2>Dt*XkT-Y+|NyIupa1wQE5w^iC_o z1uLe#`}z4fsGrNQ>{=5j@0HCDb4Qc z>MHpEuaUSiv!I;zS9Xih{YfBO)R|+j1q$awI?}$}K-0xHc{> zPEJNv_UBRSvuDp1etQ!+QSH|I`}>b?&Axu%X;I{dv+4<#;^hg@B6nc31eER(P z;{N*jjLgi3$9ko8%WThY*_U-21-rRK7?hAI>UijDz)SP7y zkd@{2_CBp9|N83c@E2ECi+6Q(Dd_9>cXV*WH?919mN{P6wz@ul9=10o_i z%HQ9s?flHCxvI@yI5#*r_|BfnV3p!&$;rtFpB4#9NOZ9C%U!Xu*%Q3nub`xaW%k*; zlGgezA;W`Ta?(>%51u~F{rGtQ^3F2t1&bCj+1uNHd3~LK-@bi+QWk*X@bFaaaL_fci?c2>$Qc^%y_c+S*O=1ue z6T7h?kvVK#OsAl-n@3IK266qk2Ol0DwkUeSVPs^q%68d`6&z->L7N>ws{)FjpIf_e z|Eg75=jPdJUs09Scop2_vyCy~+#E~LB-gn)md!0KEIKhe1lsxK^S%{ot}>lrl**+S zwiI{p8nPS69~uMLR(|W)2-Xl*MEE>h^YhP|Nh)J3diSQHC?3xBFzR7j4)uVgKC5 zM#dd6di#Iyx^|xW`T04>mWH3vR+*QUq{$nbn~T@}`f~90_IyT$<9)Kt?d|TH`@I8o z?`}*!4(jnU{Qo+s_V3s0@rSI|i+qg~6cj8dD|@!yTlalKSypCt=FAy`x<3`W_N8b~oiT%ho144l_uK8D z)6RArW;}2v*S6pRgWr6+*u~}>YJY#5VUWm_c4kK7JlpDPyY??%uHGka&&L3o0AgZd z%24F=(rIdLe)!@A2ZKeygN6fb8~*)#K3~ElL*Ue@QwtU?YFe>EV^%=G+9)?SwtIUj zgY%z0xN|4w&&T8P1%-tRSNjBnh}PBBefae0k^kn+TeluP+ATgi^v#Z<+$z24-3<*4 zpptlNUV2&@8(%xK*=*kE=x8gOIa#@V4JOU)?d%t?URB+>bLUx09@U52^6q*)dHU3| zre@ELq!Z`Psr~-`Ufs6(n+n6KyP&@9-o3UTKYvzUx^(G$+iPcMn{zTedi2PNi;K%e zz}EHZyMxW_f4+a*mV29}>J8{}v-%uwZ||U(7@Z4`gQx7+TmOF^X#ebnn>nDVJ04zM z&i>=Vb|`7%kNe`6m;0-$s;c^0#g&zrfvl60lXHoU-Fxh(6vLtg z3mo3OeS5M`*4iT|Xi~#`L08W?hkf7Oto!hQk&RcX<@59Nhi~58xiivU^`MrP)`j)) z_Ml?v*Vord+0&0d29-~sWTqFpt7X%sOa<^JuBjgHOz-W&(l#qQov z@X)D>b*j+nRoUOy#qJif|MQ{wK;PNNA0NDU(Q)BI0KKk-rk-)XEme4?y|R_Ms$INjD?leBH!6&OqF~hSD8$5B`o`oH~04PhJ=I& zh>5B79MIqlt}J}|>FMc&%{QHLK}9F%&=OE1^T?4SS^b(C8V!dZ9=Ls5`fxk{@{>ka z7pbbLEh>I~j-dfGVEp>pS|;1Ns3@tb@9%ogobh2eFweF+OIN@nP?u4WWv*4}s=&1o zVPRsRp6BY-+A*=Q3)ijFTgIWeDz)On1I9ad@BVxqv1-*Si_%vi&F9{0X=#1<@iDos zNmf=i_H~(?n_I%>o1mt!Q3^+_-_&10rnxWI3#N6*>V*gSankkQxIw{e?q;G>|eQa_iU7T|Ph=aVgX zc198uI&0SObc^XWO`Is`)+eL+VVj26jR+mFIdkW3%)YJ%9=W?UEB;B(x_;ll`Qd?q zjPddDpo4(^Fr_YAw(P_A@9VdF9fF`dx#7_wl?%7G=O<=mb;a&3OT4xwlF2fyq{O68*1Ant-S5Ht z`hP3G&1h?5yL0CbXmRbAcXy)|-Ud!l(bU#{9R9Psy!`md$?C0_&OJQbZdm)Pgu$n& z{{6kZR@@vxQ+6CVcC1N&iJQCIYJ26kHM{Ob#Ko$&wudrX{&Yl zyASU_fA|2}7oENK*W4L1I$mF24=S=06%{o!HCJxzUA9aOG+}Bsn^#?3-D*|KqO7bx z2A^twe@p!M=qRWiSpP%$>(d$5<$6p^OcN$dU~qLkswS&!ZZ2L|R|gt?k+ZLhd26Vt zsmUX4#v>;uS5RD>T_i1XHAq84W5JRoEHZrT)Ai%UqO9%g>_9ui7##fl`M2lYZQ8hT zB=(YPy|^JwkD#nsfmfTe;@ zVv~+Pet2=Q`=5so4Gj%V-6WZ=wzuEDd6TndiL&cfqh9ZA-QC@ZNl8tGkB?n+vW{PI zgrn* z)jwT7KIz_`%0Ess8H{y5fEHpI8af6B3ckC)zyH7i2hcRs`+Iv=7xH9gW`22hS31W` zT3F4eVdl)48uOW4x0dvJZ{wG<>0sp+djMLNdSl~a1LnmlHx{{e7reZrs-mJ&^Q|k* z%Ztlzo=qosd*c0lYroCdv&Ux6oH-dAjbC-AWn^@0&%eJY|Ng#?t}dah=%q`S78DjT zPCw0hAm+)g%Fk-PJ2WR&et#$X9aQ61YjjLB{yY))BR-e{bCCSCj4Vv@H zxwAuX>C&YPGXg`hudi!ezFghO$qCZ(+Zy${RYO}l`Nf5WpiFCBrc+W<;__ESW7XD- zicP*8jXQT*vhm4u+^_#1d!sQ>NXO7nFm_kT!HLT529=+lNcDp{sGpvmE)}yjHa2cv zzFd9Z&u7x0W6DAjgQvK>y17|>o^3T-aPVcRy)}mdVq$pG)6-d4Ss594cz8gw62ij5 z3%C0QGJtxlclOuIOG!y3Y`$4gT->~PvGV>pM%O^!@|TxXb)vR#czSyN`MqY%nuPT9 z_Kpq?n~Dz$u04D>*Sfr|xtaM!j@e(EpeYYbY;Ha)+F4LkbZB$>`GmYYy*CFmIKO|r z9le| z^|_gup6(JsQy!Sw+*}uYTDxVX4LO+)ZHo7;2d z$V5a&Dk>-}xaW28%Jk)n7BM}1`0&H`@9p#F%U`;D8FXX&ny9T_cNPX-5r6pjct5Cx zYnFd6X0hD4+gs)XYm)aQ9%fq;vvX4v|M53BH*c)}Une0Y_2|6)f0x~5Z(YQcRV!Di-AF$- z$1yD}ZR_#1Yt{%zN@^~9q4DZ8XpyyU^tJ=nuW!G{z4g|uTc8d=`{9ExE-ude=-4H+ zR+-mowROP*hAmsR7^Iz%NMv`}s&K#NGq0F_9M6OON$GNOauT*xCQFtsJt`yXx|L^Y zr?w)?&6_usbX}B{m7Dige?N5Piir1gJ=Xr?&HerSN=izgvr02EG9H|_|9|9QGdrWf z>n*!>?|%I1>gtjo@5OaAG&pk1b|3rO*49=~TH3mL^=gSli&k7)zi1KD_xJZf2VM%w z$n})P z&22?h)u(pFvX_@w)6dO02wD>S;^N}0+o1DM_y76SZE+}PPZN`ZKL3fctX*9*=4)#w zPM^Zi+WJ3t^&+N_u!GYkGKPdQrlvZ?$_4~8i-@|)?`P4{)ph;-?d`WGVbF!=zFSuR_!j-(q;R3T zW9ZYz$~#Y%UG4faUrbCyH9S0g#*7&U&YtC6AGg=Z$%!c^CnxKz<;{)B?6$mf6JTor zs=mHr)z{a*$R71_etkpu`i3Je3c9==o{9f_{n(6*W*jdrZnUbZo8=NW&vTEdX(OL3 zLu~A`YYUkdEN3ry#WG_CL+&k(b-seXe|%J47qgQ|TztCK^!t-0PdFCa!p%Rdnr|0D4 zwCd{|R(AH}BOQXJ?;byTq;!a5z%G2e=Q<$!KzK0j6frspq1d#n|^#$F8Hn|Aa_pXhM}R4 z61TzLW6PHLT>AC(`hV3;zkc}~(&ae&a-yDga@Eb%aRL=Tg&q{Gwr{tqo$)*&oBPI% zj@*nYKR-SuX6A?Q-}gUwkT7N1w6N+we|~=cs&*SRH|OZcn0IFfBcyAUl9F;|w{7>) zLo*DMK{Fko!=qdRgC?z6uz=y_&6_9AopXbf`4eW(?ml$LNkmi>wA7rHl@&Ch;pxfA zwc2m?uk!!?|G%wXvEquv)g|lJ@riY_ii(PAXlXfxhKjCQwJIPaq@}Bi>(-V`=G4^G zExEVFa&K>2TO4v_`l@>=)<#A`l9G}IWo2TaHX+=LSFGp=TjnUg1tjlLS*|q4={v}l>g`UNGdpkHU z{&-wmH8OI6xA-%&s*CU@a=6h3p=~Afx(7r-7yTCbF|iPTE{Zu=M7O0ic*-e@}dE%^DU01GzsHmzc+S?0dB~|cVPC$w)X3vQ;)`1}` zZM@7DGS99pY`)+$%OH{I+L}maO-;=&FE6v_m`TgY$r+fLiABv8`MUJs$BK$CF9hrV zm6nv0ti8Q8^D>*OtE+~#_G5LcPoF-4>d}4w|5cZ~y%jnoG1w_2EUayN{(U7y#f7(Y z4GjfPo;-PVT48WVNXxu=a#kfT7;->c7Pdh`@?*07v^Qs=p zp8Eg$Zv7V)5_<6bd3#R}PsktZ*lx(U--XMUn=2k?EiPfg@!<BWu7?sfbHSD98#@(2qPlai9Uka6V1=1-rBQc_YB zG&MQj-`nf#<;68=^5mbcjKV@fKUOc&(AHk;JzdYh*x32}Jlmh!r-kM2KL=hR8yFZE zu{CR|#^Z%i3;1NM7P$AzflhQgY36D=si}#{#KdI61od^aCYv$nPM#>CXk#X9Znw;YLaV`7z+soNhFlcIO-neKk1pJ@MP$>aO)svkm9F~oqVeVB<>9Y)h6V=< zm%mU_S5{_@jg5Wr>eaPh7K$t@SFXHT^>@B)b=%(R?@E@Ik_-!0t~}|#=lA#b{Mp&r zopMt{(>KY=$?-XHg-SRv*aA1`ldY57NAsPN+D%g#kb zMsjvF5pSnWpZ@)3t+tldgLm)xI;71Lq$D|W?w`{+o0`o0=a=?_cX4|^nTMK-iatBk z(#;*rYOBy7Df-~Wi8Gw@&G~0o3g;Ue3knDv@ZaE>YFc8j9yIv;;O$%8W9m+UYr}JL zboPJ$b@_a}svuHNNW%l+})U2D)t zub`kHXfJ+JQWB^SDE<@I%bK0ZFs%2iMxy}P^H+0W1Kj^cI+9Widu%*y4eU*lRnj}A04m)tXRHFaF>H}}Jrm%&SxENM9Y*wM?&D`(@D?CX5V z$9fLVFiigOeQ(`gsqgRZI+v7~ELyx+P*gND`@C;np5B}_Yd!=73ck9$-1zV!)gM{K z-3yi-<5B(og=L-{YuOuyuyrhEIR_qX%M}!mkIyY;Wn~4;>m7c0;n6Y?RfnTTkM1ac zFIV5WXUdc*Qny2{Ie_l_;Nju<@O*y#qc1Nn|M>ASdF$Jfk`mA$hh_1z1;NYx7FBVD z2#bn|Jv!LT&cVy;nvnrI{6j%il{Gjx7_>h#c)4He+O@j7%HQiM9-x_p5fRT|AXm;Vv+qaZ%@B{?3mk>jRCqd z)~?k(b?TIWq-5kjO8GC)(f zg5Tdiet34a$ItEGf2;PhmrF~t{QJbcgmtTm_|X?Pg?~KeUpC{`Jlles+jtonL{d@{ z-#=j3&M9n=cV~x`Xu4)s)~xUE?}N@|cu=&HgNtj`L=$G8r_U1)w>2Jqc;L<*8AnG) zi>fagLc+qUbJbN5Rrk#w}a73JME5PtNViT5@i#_2>G!zrVH~QN2As zC@APqczkW^`c0c>Dy2Vt>Jhz5B#@a+!Ag(s;>C-g)u^wou0AT8_4>*_+YNcLbC&rw z|8HWIkd@+Ey8l0$Re9dMsD~o1j0s$>Y^s^t!*2REmmFL-!}b&h?#-1&L7&b!Or9!T2^I!}g2 z-cH8K%IXo{#4H9|TU(#GR-(bn{a6)Q&d;}Z&&bedYHBjby=Af?Lg&Wq+sS`^e3Y;* z%h~F*^-w_ernz(G^t^eKvumFGRSi%`ZcaacM3&8UtA(1H+MoIH`)WEJo7p-IXR)0) zm!_3A--@-Ol2O`xk@N3w4;UW&+3orClH8OJDqe0NvrR<#?iUcGuyVDaJ07f^h>jLG4g zHg#$%XiV$-{d)JB8XK#!Hyr8dpliKAX}qK*jQe=f#tVzx`MQ+#IM|dn3mzCFND@iq)Q3wvQ&O`~Nr?7~=f(#YN`w_xD80B}A@10&NMZ z|F^|y?U9|O+%rr#CrnLU)pLC#6Qix8prW$!gHNdsj&MFxIb^=>l*?<53fo4@Yx3xU_Si!-=(=v6c=$p51Cr+5q5WBlf zQB{?-`un@q-d;W=~XUff$<4qEmZ7#R5B+qX8Z*lC}- zm#<#kJykngNl}pzG^FC?#r5m^dwz9wb(@+W8zPUdGrd{&`&;hTCfh}z=~A)o(6`%4 zUteQ;|Nqrh?F|t+5z*1te^u1g)%8AZZ*Q;vw&Q-?@7%4m*Vf1DUr4_C^-iRY*pekn z7A#%bTKM>wqLI<2V;@1&1-J9}Cq6jP7!VxXyk?D#RoR=4i;LZpzrVX%@%!7`^kktW zr&1oCoo%j^yWRBHo!^l`weO1Wtc~8D)gOA!H}6&5TF<9j=C-u7L}}max_WJ`59=HI ze+<{wGP79xpRn(nlY%z4j19-1FTw`(b_Kt->`-2$5)pjP(Pd-*g7aIYKtnScIyz7O z$45tlTH7B!e|D~_vN|`fcTTPRalR-yFMMOk&Setk; zojh>@G|T{M^Ar>qY}&LbAvc$ouRZwfqUgmFqDtQ1n+r-)+uB=RU0m$W!XRl~mb3W# z*N-0+88{e(q@{n~G-H?$xY+G#^_ewmbQUdINjCZNSEuvUZ<+no-}^v!F;-MoPTaJ~sPWBr%ccrjm&Cun zzW%xX=iS}ikNBS3tNRHYN)p^uy!^r}fos|Rf=<)))m{AhCR_+8ba(1xn0{K7!K1FO zZt=J5QU2=qj`$Hzl%Ne_@h*&#ln#LV2eaG_#gaIi9H$I8>EPkV3vEm&)Nd(w_`*|ilma-g{syV_q2 z41Dr-G4H>1b#;N(<*bX{9rnKBPkh}^)?dGVDOq1ze&x!Q2XEf=yuH1BF=!@8T>qK9 zn51Oq<>mg#$9g0qHYTxt`SJzSYfMf~2Hh7r!#Le<@hu@1NlD2UFJ36<>iRy(<#x`? zTNiOF_ss7|SJ$OSzkC5r3QJfNDBQ>~Yo9ADy5~OQdDPa*&(C<1 zl9M-PURL9gGU*5t&QEM=YD!2;YpeeL?%}1S-W(hp0zW%qSA9*`d=qq=?4O^XHzpnB zx^eTSsn+$C6LY3dpAMRtiHeG1;tiS6)ZDD7tlZ4Z&d0#eCvV^P>C-2x?b9bs0^dEn z;M_ykojZ4eCs@|SMCRXavI&a?tqNo4=Ri@+&6ZMuUNtGV%KxsV_l-!pkDDmt#&c%_U_=~b;u z;kwXJZ!7j?|D3@mpx?+bJJuuFeB(xhg{5WZlDEhE~Uc#Fj8$r_!d-m>a-52k@bn#+lTU%R(j0<~Q7VfT{9qIS#f#ZUC z`gw^zF2z+ZynKaaTRwZ;Z{CWpUUx1A@QR3wx69Z65sckk25S12y}#Gn)5A0Ic;Icz z4vTMs-*$?r+MPUk^2X+L|IO#*wY9V!ynNaDe*b?t(BU*2laDW0vqtBDM)vW?A2$>| z^@@m$1P!O8pPzU1_xJapC9{*&{XxsR?Ck6|Y}w*cQc|+GZ|?m0{KCS*8*aWipJ$zU zNkzcPpytO1tH*!7-Oe{Gc;JwcoegTko;Z8fwWh`fboFt~j}MH+&(FC|*Ncs+VedDX zIddjxPr`;RTaHXnbpCh#UTwQ;VQnqL|4m=+P0{LVm@4HxWgXL^L$?HS7`_W~uI%JtB6LFKN9<;6XMmC9M@Ef=kMGyqEv|?%$E6yLUV9od0~LdSUvzGdEAo z*;#(hH6S2hZ|;vtZ_m%SXJ)u^47pbaHYsD179Sk(HHnsD+b*kIyYKa;8K7TJ)LX=`(Tety1v;X*}F-MDI1*FxuZ(1Ch;a?j1Pjb1y$ zr>MvXbWf_QtLuu@s}EnkEIi-7-YqCd=thp2h^XkowQG6v^WRr-SLWW|C%ZZAtW!ot zM)SXjn(W=v&Rx4E#xP;RgoZ0uLeiQo3m9J9pKpA2I)~|(z52SkM?XD14Qd2{mht)e z^5&RHgZ9Ctrm8mluk}B2Ub|w&fsc=m zKYa3pMORn%#HmxDiIC`RIV(S!e>?qt#+EH6paCY(BoqtFf*m_%Y>!P#Q+sx9E_ZEh zt%s*4X!RIqW<}1vPG>>*I=RQk3YW2P^N5`NsL`m{qF`hsRQ&8r zN!N>Q4YSTU&d5-HQ>@!%Ip41K(3_i^7p`2%sjjZh!p0V+9dKRX-o1MkrLRPsoSi?O z*5A*e8B}+An(krHo}Jp?WjVLE@rsFwO_(~hwX2Kk*SELbe}8{BuiV0_$PyYF%4E4e zep`;@we|7+bFIsh-rm~!;@)2CB}vK=US98L)+}mbG1rHqV?Kd_y?p(4&W#WVh3X+nNrgF}4 zaq|S6JOTp+FJ8H#q9fJ~I>mN-@A~!nA3uChXb}(+6AMcZGeT=D*S%!jDfPQ@+Vtt_*REYNeW$If+gtMP&diLgtVs_ZButt;+dFPw zji+0`obQn%M^4<^TfI8hKIsStQ$vrO?JO5}_sLC7OrWE)w7razj&OW>aZ!2F{Q3T6 zZ*RFWOsM?)?4#`T-;vM6R{s2YJzo0Do!Ph6+37BIkWy>`oiOqJrd8b^i{eHR5dkHA z{}bzCl`La|@BPlayi71PH5GL3U{FYi3#e_-#LCUVQ1toP*{s{MX3qv43Y3(Y>8Yfw z?CI#pSoz@rqoJ{}a!^pvlWS|E_vAJ=H*+$4I&c4f!kafalV;BJ+?IFOD?&#sazldS z*1tvjlcS=dR4goJJbC(b;+HQao3gHIF*W4e+R`a-Nb}RRmBH$ZR<85}%^-aG{Mj=m zMrPyo?dnEGMk+=|pKiw=Y5Vb*-|5R2mtvh)vn#5rumAq;?&j78Is$jHy8om{kCL1^ z61bOKE$34@W!7YMeU*Q3y#1@&F7EE1YxjkQgmi4*Zoaelx!+#aSKIRM`yDxY^kgfy zxQmG4@z2lCgBn14tG}-+-hF<)y|ARD`ueLSI zx}w3&!7O>Kd0C-;m{!`ke}z-R622FR&3JksIC3$e0Z&f zUCobzqW}N?O3knL^yCDcN+)TU#1a@1@?>jhc)0rUKH1fuw+gf6=jT6q@E}f~y>zT@-fORI>i+Y57(UeUd3kwt^!4#goH|wY<;$0Q zj_*AA?Rx#1p59(g2GE6BS^eej?#u*@Jip&@=X}xjyt|MCr>?Dy4*xFvzpdaG2jEC}`4?XU{&#J+3>RwadUL<%B@oCfm$QDohPBmPJc$ znPp~Xx<+bhk+1c0MJj&7S>hA7rZDj?WB9klpFXi{Qx3^gwwoWbx%*@&J_sL1&MJraE zxZYj;?@uLDgM_s7^@<+-`YoS7f9~A1%L;UyF6aakY4f}_Wq*#T+`hkS{js==A5oQ+ zmOJbIT7hmFU~~W_y2I`Kv-j*@Hp8~s?Bca+c~?B0vSY4X*)>U2J8Z&_A3xakm-+s* zxjr>VTU%S0K}BD`KY#A>_vDES!-u1($;r;3gMPmKeVT4* zWHhNr-ApPB z;2cr?J#TJsVL|n_>_v+gJ2OnUa^;Fua?JKTS;m01;=9(pzcGEv)TyA8#HOt%{`%@_ zH-p0a`}@}y%QH=!=(z0K=i6KB|NpZpH!OV>ax0GIt@P}i`n{m5?Oa@3Oe#*TS~jP- zV^i;fb6Z~>_66NB?k}br9v+>PlmxmQ_UE+k@9$53^CoBC(j`llTs*(gva6#b<3sxH`2BS$x3}f07#mL( zI3)S>%2IFfpr|OVPdj$*zb~#ImlLwvIQ?8mwcp2&ACKIQ)$8n=a_oCeTt# zZ|`oO*=B2R-S>BV>waa2?A7a8^O7#l&zBQ@w>M8Gtao#hsWv;Gj6+>r-C9^`-J$TwEVMemuA-_4J0Mqg;1(m2y8nH#a-Trs+<2u!o07!i5EnpoOPa zrLS1*?d|8-R8BH)ow6b+gYSEvv97f>Bj|3FbMtJwOJ83*c=F`RduB~PY>KB&o2F!L zE^cIG6c7^fB>KGWhUxR>o!jo`>ACXO{zx6MBS()as;h^;Ei5ejSami<7pzQ}b!**HVPWCs$&-cqp1<_2LexU-#bM z*vLF>+BDFB(t3rSwQF@jwR7NNw~x8&7cB~U{1G&VGHX^BXqR7fv^1zkv>}lhw91)Z z-tI$ajq4IW*jfPBXZPGA?w9v;@0M+_dLLW+^_A#)hj|xHoZ>3~AF_F4_4mA%wzfy# z@7Et+6S;W?pZfxr!gX5>eQd-9!Khgt^Ize{_l5Lh9^&-Dypg;{l25C ziz}Ydy0EZtUoktwgozUyb9nb#b8&G^m@?(b-`{U zme<$UC%?V5)%2KF&YhR@rJ|o_JvlK^p#`)9a!+;r|39DoSy)&U%*@2DUArb>S){Ve zclNQ{&%8T3J2!0E(z0idjo&;QPH%5-(5@?PF`X3~XIX4#^GWWGU%q_#;Zvu$TwPs3 zJ)}2p-b|P`ukUEL_~C;G8LPj&d3f~4)6X;Q>+L|>!kq5F5RZC zJ~<)i;^K1P)Tyrgzk4b_Z>ap7_T%^O>$B&anQ6=py4d03Vt2!m7Xe>hUS58(kh3Vh zw6mk*z>ABEv)B4q6+CeG@$=_Lu6vzck&%*9rcO;%f3(Q!P{G$%SJlpzYN@6+?5kBz zI6v>>i<_I%n{SzX{TvfLH9RvjQ$t%D)K&iZ^JmRThVR9TmoB|}VfodRYuB!E@bVtL zu+Z5s|DH`pcX#r+IhIb@*DvkdvE#vui;Ec=y2bU4KFAm{9T=Ues1RD*YA1CqwINkc^MdHpLL6fkl2=U zv+3jG^YZ1(J)XO&fAx8qnwZ$A?mzFtKii}u9H4u9@^`y-izOat zU}R{h`}^x^G;htxNvbDKo;4_k0&R%TzrXM3#^mD_tlm?n zOey&CA`rA4_uZYH37c>3;geYh>VfX9{?5iwQB`&5{CR$H{kS7bGCLdIefVxO};K+WBp5bLUD( z%}8fvXlibr{iSl+FLkg*njfouf30y?J4wv!bFRX!rtjg!aso z-R}J7_MF+c@qqZ}`tG3G_j|j#xIk{+TU`#?SA6m$r?U1V#iUneRp&24FE3F>if z*)k=+HZD#sUqvH4G&Ho=GcPhSvNyO*Oib)r#k#q(XP-9DTC-`BP-SIh&FyK^rd^BJ zx_iNb1;_k0&zU2$k7eVcMT?GcJE*Fvn*Mutbz8ogsEEjer>CcbW;1g-Y;E^mTUoYqv#*Q0`{Mlj`?kJYuBa@wzvSg5RfY%F?UyfJbiBSUcH)Ey2fkNC zMMW)M&SF>mjEBKb{lN4kOP7MKL3M8Dd-&<;=?|Yit=jhQb$7g#l~u*JHHGKPgO~fQE#2GM$q8Cm0a}d; z+Ol$_Q~33r`=6ek-dOXqsPTx}iQ22j4xHqdz?PftyKad)@* zeQ}2yUf$l7;yF>)pdIv5rd+~mJ_imoGAruo-Fs4N`t|dj)#3Vg_Ew97Het2%%YS%w zR{GwT!0c;l4!*s;{o&)s%#bNmWnEp~ZgG9Ls3@tj_xH}0n+DBz^Y*QvkPwr&xcHfQ zw$e#SNxV|`Zd@tTow{n3)|xeIK!ewJc9pI^7Z<$nG>Vr!P@nKNfTJUYt#=f~sz36mxrnx-4g zP|)VYCt<(<+OxW=^tD0iDUlPWPb+I_aqTX9`{=g%cWbl!do~&x8VAmuB;&2eqdnW z4BP6m#eK(KKrlOh}8|XB$4T*t$$Wvy+|QHTg2?0>l!I{{+e3x@2{_~ z=VTC)mDOGI`$V>izW)6sN(z5}eSLiU`t9xcKet`Ja^;D2+vd&1a}BSS?8&{o?W)9j zh3~8jj%l5bU$th9%EN~bQw}zU7L2|^l4#RTU*ds z`dPX5wZB|yYHB>5pPSpcWQj^(SeV+mbLXD?`uciL?v7U3eKDYcPEfCN-|_2fA`ffZ zeSUgqEmPFx^q;R+UAn$5R(aE=O?$qs4qKa5w7V_Cll9V$9Y=RCdw@`n!}vTmoPrA?AFP7|=TwN=v8^aPzN`Q+r}lkfNcKWF`K`qjhx z|Mg{NXHN#5bllR?lJ)!SsZ&aypPzp&Iy3YBK3hqf3WNJ5?oOY78Y^zv)bi%G`mD!+ z_m?bV%G43-j);z)e0H|^eA+UD(~;_S2xeQqrh;YonKy}bGG%@=^Hl|&OOSp^LcQ*INKAkWq)`5h^)O` z(B1Lu`SZ`Y|L>OH|0wEF{qvJ5Xk@4M*O!%_e}Zlr>gep8D6StT;4~{Pge4F7LhC^7HoAJx|t|W_P|n-p()Iv13O?v!7n8n&nIZNl7Ob zgTGRjcbqJn{q3}V%a&|+59YeV8qaEH=6rv1bMlX0za~wYGNtPF#gvb?FI?}JJb3V6 zsoG7@F@=%)>uf!LW!*ZoXps`=#FK6L_s<19Y0-(?)WT5ezgkpORP{p2?Zbzg85BV0 z!frcz=8Q^FQBloFGsPCr0ZVg^!P2 z-O{yRYUiX$LQ9q`k+NMke-Xoj%ggL1Wb@b&xu9ctkeo-uP`!y=a#uYccXTu}ZVWO~Ey-PLPbK?@{59_F`C`26fFXxX{) zcEfd1Te+S-eHyW+0(97bLH0GBFE1`KCnY6$`1rUK6c}vFyUSHrSlB4~>G$*b^#yNl zng00k!yz(Ka@w?M72n^sx!8NA#nK3;z2%$Yk% zUJ6aqjb<}8HU=HFd41W=yL~reT;1H1baZ&Gua93}**q(#Kv!3HQ|0HhhjB~`qL!Au zy=7R{y3sPD({|D5~8hx-H{&rtKKQ+*3#LZ2qPCXmy3=IuaUR_yvQhw0Zk{q zyuDqYlao`CkB@K9+xkBr-S=6%zrWw##@4oSyO*Yx)}()be^1tp-gdq&5KKw_ezh=@qRzdw~5 zZssgIoY>RKYLFxG;k><%yAz}C_rE7jo^0H<&CJWoDtCm_lB=l_?qkk_RT53%mpwQJFW z1r1_9vY3ATGE}y-lw7)WDd=v>$+zC$*(nTK$98jb`t2`2)m5Wf1bk+ha2`B(u%oZ9 zE%B@}19R3KaZvPndU`tXPROd=F@I+MT=gl7H2k*yzPQ+(nE`a4hjsZo1L2NF#)5}T z=^C5b+0*~M6$4#jsn8M+cVc5dTYS^QgSa;~zn@}8=%UHOlyyH=fE9ln0S%9WbG zEE_dfP2IFlQEH z(ZMih4uhHW3=_^De`emCq0x6Gl1mWq!_GIljPj;%Tu z@_AdrL8g|rHYF1i5zx|}o14>T@^xmhc6D`qI4)nmAbfq?g$oxPN=i)j{r~ryZR=XY zn`Xww%`;|5%(JW2y5O+#ny#6d*s^8IeA*oY*Piqn%Vh}eSUsEF+acm;$rvavuTgd&NlaHcikG0etsV4h=sB@ zHyU}R%^qA^8{IprZ|kv?=)ge1U%!5t+*~HLX3-)h{kT01ot>PQ7Y2l^R#I1ImzS4k znDe`3Ti)GM1up;l&$7+4WxjK#A#yW=vGIdDmdh4rS+82v(9GVLcela*KTFzqHaUB? zoSYebJ&U4j-sMi2I(2GCM@K_{KfhJU3kG#{bs4LYj)yN+v|YGz#U&v@A@Baa-X%*^ zO5WcCotO-|InK&tRV(OD!C&9s_XjR^J9y*>OJQLlXhibJ(WBB^=Sxk_Z7}{D9ujiJ zoZV|Hum3z7$H2hA=Jt>Pk*fv8&(F24TBXI1aCw>UneTbUD_1ey-p05-u8?bauiV+0 z*}3QC{Q9+3E0!*uGm%wI?ZB0l4SQ{uyH{V;a`5YW`9fn=C}?-1S^hnq?Ck6f5p#l{ zc6D)qw((zI7n^KhwaPFjH}~U*ht8l28NR>2-`?5Dspd1o!CGXcRA@-ZgC8FsgHEe? zaIhIPcvh4hFEvr{+gAOfu_Uu?mMToMe zmsirIC7$4e*dUwsXUv|x*nhs=jm_!&Tu~RMOq)^wI#s`}uFk;3zaF%(#Tu4X=1H3w~CpfS7;9|~@rywUdL`SZsoCMp+{lz?uH15M3>3^X(pJb3Wno|_5#Lf6im zxN|3{R|+~ps!^sRYcGc)=p=)j+}xR<$k0tqO+7Q;UY=oj`S11n|0P*0vU>57G5dOv zR*Jk8ivW|)9FB}^=D0YA00H%hOMaxL7FMmkdzVpHH{qF&U+Blp>6V{o>&NqL$vQIwLBnqgCE^yKMN(6%fUb@k+{ zt3qGg*}2)FKQeohuA(9%=**H`C7uh|mqg8P=a*MfR$hE>^x0AWev4+z;pve-@2N0%ZsXeM#vK-ZPWQw@!@ zVXo|gm7EpT%$1dMRz1qhoYO6wW2T^avSf>h>(z%xyTz|QE35nbjCWh!U9RZpXiyAw zi|a4rj4@ukZXKVzygX{D#xh8zqe` zTwiE(WeNKD_3bl$vq0YO2J)>eOgB??+$qo{Z=p(P}?r?(fhJKd)4k3?r@ zC+Pl$2~(!DfEs-6?(Au4X`rDgCuir0{_g3f(I-!y1f5WFq*E9)InT|_4LWNwG*pz4 zkr6ap)zsWCjI8J>mKfcE7i{9J6)F6Jz7a!AIU)RDST#`J9ma`I(bryt^+?&P_kQ zQX?;ir=!zQ*6`|~*c}Co>(;H)(9meuv&ZK0!z~s~b$`9Qy#>X@+8#Ve`1AdK{S3=u zwSRv;pU>x?BD8YRA|)3$w@<4s+SmLL&=KPXjVZjpxA)@i^86b&Zamoie&6D)-7ahP z?2+-GZwI<6J}D_lKu)f2d;Wc=urSa-c0ox=%i_h#li&L~%spwwaIZb%{5;!5TwPg? zb~Qg5{N`Fcd~_mmWsoSYm7j>dia?2?j`7cN+Epd_Lx zF!ZRW$Ig>47rW06B=E8SjWA3ICQ zil38=MX#?8pVQ68uwdQ4{oQPLj-K!+DGbVG^WC<;*C2lXr%y#wrc7}N4BU7v7nHeg zZ_ht`_ADglPe9{&Ez?bZIDKg48U@ZioWFT?lS z?_0EPj1Jz!%W&`BJe!#SHf(c5woEtC|MSSo%`n|we`%xIbdr*jCr+Ej#*lG+ zo$Q%2XF%)D_SODAbm@}NuV25;u*L2EHTmt5B`OjU5(*|JTT=N$m$ZN+L5bACf#LE( z6KOHA1C!N#+#PE(KR&uPJ?HteXNQg)VUf41Vdy@32sD_ToP4+>Vv#$?bGZ*!LKIY6 zH!oRQDD-H~oL8Mij*J0Or*`H`J>W_FZ*!=^K!B%ArX-}Kup}oZgO+-`@nmFY8~@Rf zTKX?Vnjt4A2eje`l(!dgbY&?%di?m}=5+rVGiM$=ew_W?yLVqsX}fj?czAHU|JIv# zch|#@kB^^Cy&>WnC~}nrwD3M4K%h_FJ}!4%US?)yN=k}DWaP|)FIMD-1_m}hd6E*B zbn@+9UoS5wFE6g5eG-YPy1KlOoj;3Wcb8oiD=qz+)xBqr4dh@golVt~y}i5wVq$vc z%#jfh6I0UG=8lYvJaOjCk>&pLEB>E5b;`-jjV&lBXu`aCe0i@QEasE7I&k1X zL;1tT+rRI7>6w}6+~ninIM5?${Ndl<-`74J(PWI+kihuu{r&U569Ym*j+~gN{P5{h z(8)s`7nAHoR7*f7_jd}bGZgHb{QBD3WDBLPMH*fLJ37lfJUBpGAY^3Dlz2>;ASx;f z+LPwC1FU%q1R{`q#bk96;_Z0oT0daZrw(xp8|qQk<(ii(ODES|rN4?8@4%9J%> z?^^|ebZx?5qv!i9}|vQ`e^;o??SRxfUBRNk^> z%PptUe{HI_j~+dG;o`-EmzH{ee7$~umy*G%ncCXg&GY8Tfi})OILI6l78VwrpOe$G zGI;r+%a?`U-rk6$26lsRE^YePWr|Ug@dV2a7*Cn70@jf$+So81iYu&NK zf{B@VWBz?R6*aZ6+kP=IGR*9JN4~tgY?yUr#kK<0?nN%|9v$rl9crP-^7i)jF%a7l!SYv7a)&~p0h>+4t#NY2a7%;YRDFYl2wX4|!E7mvGpU~bsq$#28g$1SY> z{?4NC5zC!BcUoj6uAce&>MFNw)t3VkmEBj_$_WcM+g5*jaAKmehK|mfZGP_V?DOW$ z0}TxIyx3wcq8ealXSb*82{RkdfvwrsU$h2xEm~m)3QqTaIoHt8(5=UJc7A_#b#-EX z{`r6sk*jH@HaFQC0vEf1_5plDbuX-hQ^lRYcXHv$GR4LGkI+rvphFL1#8t z@d~&GhDcADJGXbj1OXOSRz)*2vHW{`1S6+rbuFrpnx4aaV1Z*Z=wyWt9|{s#T}_h{ z6B9RV-hBA%Y;(he0}XClb+xq*KRrFY@WlniIhMt2pi|SXeSdRPI4&*@G{B+z#xc;h z{r%s<%)YOc8{p-*nryDnKCf?YP2%5A5?c-d$ zctzOSk0;AgQdB_a{(XHFYGGx?rERck=BDl2+owzsSr@nWm+x;+PtSu754UejKQFhZ z^7FD=R+*WZpjP(0dGkO=;O%`sWs%g&@AvCLM_ho9%mi(4+gVLq3Zcpl>D$x1tQ`ZTDiVQg#+n)}o^e&Xy|(6z{*)eCVG)%EgBef9PA zK_?%To-_3f6j|=EaOqOjdG_^u4aT*Px8>f3d0b0dyYTzFSQb{+hd(|(K5^p2gSEGJ zm1;jbGxKmliOAI?Q{9_v4WMh$K%Ge^C#ES=rm%oATh5IQjNa4rj&_UdFIc}`|I1_B z>Tlp9|Ni~`{qg1H(dg#%^Jx}ZU5hkUsVcNwsXqU0 zfn)Q6<;&U4&CPk_Y$S|~jFh_i7R}nbO#LKWy1ShF=(^b558l2#3ofEVxXYfOldY((R#sGO%%8hvjn1)t`ToDZzZ(lkx|(t` z-Y>blYQ_wSvUhhnr|ZWbx_&)8z%lTwOIn&5=+-^Y$!eyvU8Em~co&zHfQFQUf`d0! ze}9)%>{R#T10!T4qh<1BVJ2qgO3t6Br|Sy}3Ld<@ZN&->(2mtzrLSH7*=Tr80o`M< zHhR00j}K31Xeek2f?3|36Ho`HrKf|>kJZ!T+qZAuhHcxPt<~1ka|;a>ZN3;N@_FCN z^x4^;pPdC=p78F@PUQ`n3pJkg%2)~+8XAIH>{qT_nZdU_&d|`1gNFxnEkY&h!W|)@ zp%34^>)W)+h=qma%8j~PTQYC#ELN9Y=(siO_xJb5dnAo3zVc7gkMG<6?^idtU|(?! zw8v_>-`qnhgO`IAUTwJfCTe@`3EPJvSDR{Y8x-j|akTNtb{#q5VpH{{Tz`JQ z-#^1RoiFd+9?t0K=w*j9rz~2e1lmde`}=$MhzJR(&w}Lz1r7lL0wJNHtrCi^hOh7J zEC!YMUf$k}49Um)TKDg_Pf1PvxlLDB_b6y#bk0qqz;@3-5!bCn_wL;TjhNlJd)F}S zjKqsquZ(1cTsbEtOv+^dbv${P`{zet)znq2-JP9{y}i6*dNCbSwZn~M&zV<# zeI*Jyajv0(K}B8Nd`0iXiGof}P8Zfjn=87z2cF^NUay!<$52y1Kh zb+z}qckGaO^ytxqNt1+JR)|~;Y4YC2_~6;u*`Tw;Yiesj?IW(N?Nc~X)6+o%VlVFO zG+r08lc}(3}_)1kG|+XDgv z4{qOA{{G&M!pCf&oy~jSFLv)wdVH)GbY|1@b8}e*^;}JlZWs0Ved|CYGk7%o-|zRJ z13(qZeLEdoU0Ff7<ah5mWNP&reT5Tdnq* zHf3$?>gqD6{FK7N%KA}m^Oh|~?(Q!Cxozu)4WP!$lP6DHB$Ytj2DT^9o++uQuz>bR z?yvj1A>-nrsO@W4tY~OyVY&Ypw5R9(KHK+ZnudmkpoK`<;p=ijWj#Z>6>cOxiBVNm z1q};&d4bl_faWM(I0rCotNU98Y9=~5I)XMBTz<$QqR4W0clr84z7uVmw#oI+H0E~* z3UX_h7^r*j!NGnw+4MSu`~rJv~=Ot><@)@#C>)U0BL9mADFj>VGiqsIELSgqPpDs8}yeI=6_8} zN&>Cic=Gh=)tz@i8N1-2lc4KY`}y|u$6jAw58BLg(N3&T2`&nGBGh(uy7%xtgLKCMutOlv~*Nd6sR}C!^899jEsnD zpwp8F4+7q9yUHhPm2hK2Vn=`f@wwLJSviZ>uI)`e-gj}9&6E`!`Zw7cuCI?jeC`|{ z8ynk>nx96pWjA={T9<>)7ijG7=fAc#`gnXV1EZhKkzN z|LXyDR-ZrrTy?Uzs0ehG*plVTK`V6R?dx2;ytqDn{#^Oi)WjqqA%Vf!*;ztD0(8KK zfuW(}_jh*{H8nLqT<=|^v1+YC3+Og+(9RXR+Fw^zYnYpPx$@Brxdc=oGxWvs3DM;nEp}KR=~{nx%`~dJkP(>^}SNgn+=Py;2+; z3~_sttc1EWa}7Z!C^^ixtNrlg*`@QD*EP98sV^5nt0yURg`&fmBZ zapc&sM^{&euUNCD1$0bG+1pdzVf+8ApEpk~C1uwAT-l>Xk9v4{9eRCzeWf_Zj{pCE zea)USeY$f{(4^@VvuDj(6u-X?RECI%h|J)dzer=1>&i82K-nJDbD6B}uViYv^>cUqpCZ}0D~F{=@D zgzMqM%%EP`+uPegZKRyr+j`?3{;oH5t-qxn&wqoR%+Kd!8&*H@nS@Z@Cm zA0HkvtEi|XBqcFvYimbDMIAbKj!)LQEX69NYtag^#j93v>FMe1D0vyweEY@Am!S4B zC~ceN-2rXMS9J3*Rj;h9+)?zD>(Qe}2{}1BYYum)-DI<{z2oQScj4+)&|$ow15~>X z2bunOzyJS(r%ze+_4Qj?S`?I(nHfNBIOlf0i%bp+PMTf)HtDT-{=EZ7j<6g(dbBss zI_-?a9E-w5$1WPOva)t`bvYFj7=T*1OO~jBBInE*o@>{xZP>UGbg7$(i3!U`lc*(I zwwSoMyDKXxfzI{=?Su66O>A=6MRXwzAA@JPt)g zn^y4o)+U~wrVHxWf+lhHR)2qVXJ_#qZh267Y?R`$w{@aMS5~c;m)D2e`TGyvyt(tD z=iQT&)j^fvz5T(#!5d3ohuye!%gNQ16|@@s@9*yqpFVB<@Sy;7PL`FGRP?r-#@)NC zXZvko^gAeLHk&s-KE9>B{qg7L=XX?n)w*-%4(Let9$9P9**pbhWyki_{+=*(>d}%D zpsvKZUTJfwxf#rJqF1bo-F+;)ym=9eV~XwVn3XG678Djby1B7|LesAHSI4IhxnZfP zs?W~OZhw1wd-BguPk($qZ(sR(o_&2EXr|)t@9zv2hn@6ecd^LI%C;>^m3w=0*{!Ja z-=>3xDF6H{1}*2CIB{Y}SJ$D_)Aa+d&*v8FZUvqBdvkL-Xd-pdBBeHd`948qw}cA| z90Ni_MIRbx#2OhH6?}aa3hFtF>&LlNR$7AE^$#C58YUmRaMNzq&bij*pv{3k?T)6w z_W%DFv++nAD3Mru=*!E?8_VC{%fIEmJ@2l7hzLt?a4@5*t7-V!b?LLc-QC$CXR;cC zw(w0>_wTZ5F?;^``T2y+H$j8Mese4WbuY46Eap3O=n$yQ#^8{Xqmz@9^PwwkmdI7L zjS)Ja^Ym`tmj3teA1E`~)&6RkFhKyc0H&FZ_t9?m-K$n{?Jj@c*3!cA=kH%og>&G5 z1L*iam*3KvSy_+T>L>>nRjnbCukY;j@adXa|I+NInBV`chJhgva&J`Uf!eS_iNQ3tCrz3Jx*KOhgig($AA*vSlAx6f>6OG{HTGBN^fSTN1L_Tb^+cAxfJYM?6!&&{#y z=o?0Nl?!xGQ9}bmNJxl*tdeWs6c5m8q(_dlTn}EmdiCko2bYPPYN#37ou52? zy10^((u7Hqn2L*w=h)TGdO0C#&zmFIV#Jj->ZAor50S+q!e7<-5DP+gFFLPdYoxv{!DPzN%{L;dcJygH5aq4VNwj z`OGk2++Fro$nAuPt7-DZix)w&ap&#-_k4VO{PEk{+d(N~%hs(k`FdA1E?lVi?fw1! zmKK&9w{9J}dso)Ejc1{$1;`y;jAxZVRl}<4Z*LxkM!&teS$*&Rm4cv)bvT994jeto zx^3GwP`8tfSL(`>zo16;-Cd(+sG|5&X_TfJxz6KKY^U(QxQP_S{r1Od=_L0MT@OgI07;;o^9A@2Q- z`SayLmzRWuhH|F-7jZSUe}8{}``*2_-`?JC2kj-fwl>b+N_ls7G?u@=cks#;5pFRZhrB$!%L`4l zudk0k4!X~z^7FIAQ&TiS+a0>QyASj~e)_Z(RJ4SJi7}*~yI`1nY{8NxE)R|`(&&mz zOiTow_w?!WXV85ipoLvYNl8BKuC>gZoSc7tyTl^F`L~hZJy^48!O9@o_8YgaNE|O-1({!Uj z^^t_MboY}Ve}8{J{`U6vO7&jz{Ch_hI5vYCy%S~jTLuRNFetM0%h^7%-IjHAmDTN( z)YOk%=X~c_2(}35#O?}NQD_#<%F4Rudft%^L4}qNTwfUHoS)U&%Bto+ujkXJqL%jd z`e5s>co!Fzn3x!Yk{1Co_H{7}KBs`Lf)Qwvum2;+09u=+U}!io-&#~u6nySL!H=Im zIsg27)YQaO^70bvx^?S(v-T$(WD;;%6`COavLa|q zF=X}CHz`}K>HkN1J5hd_7XlvFqchlaKqr=L4;>z35D zYu7xyy+P;G7#SIXZjCy1%4_1WLgoT;4wY8&Oe&Yrmc6Vi^uwLAr zju$UpL~XylB~$pzmoF|7k*7h27inv2@7T5L(Ea=S4_^H``_?+pSz}G@?d&qLvV~t> z1TNeg7QD=dk%5Jc?ON1#(6P&))})QCEo)tk6UVAmt8Uet<*cl%jM-7Z$i~L@;lqao z+gU)~nlfR_jFj1{V|SN;Qs&rx?Q`)I*qo7sVgZlef#z;VoyckUS(F6i|f|TGR+o?&=KR4 zu~4|uEp+YLwHKF`a^Kru-=BSb-PIkw2?+`^va+p4TW2g%gH``gh|Q?(~fo_zU8_@>hA!jopx7cEi(EvQmaQ+sq{V=`zv){er* z3)Zjiul)QBbPb$tUKeQd=bQWc<(t|0+vd%aGt0fjQeIvT>K#~ENc8pfF*NW>n>o0- zu`#4uq=kh|JCPg;saFkhZWzS9Id|@yMd_<4Cz3P!mif$Nij9p0Ehqt8uZTN{tdbtBN2i?UnKfq#F0gO2`RxIKHdlarHxh)BzU0}d-zt>XGyF9XjX9Ev~w{4@sLjtq*jTeo)I zI+_}|Mey3%UeIQd|Ns6jT(zoe!UTaQPo6w@dwV-*kmlSR%jR{lyOorb7Om7zUwt)c za;~1Hre;M&#e-8*wLN@%j%>-iT=4OcE9g{^_;~r^=jT8jm%x~qGbJlby?lI*fSMd7 zF9I?$GZW9vu?z?aaR~?zxVOKa-`?K7Fp) zW?$1`a40M^ymR;N$LI6wjfDJ*m2`D`Te-!X1e&g{4iAqG4+v-g?VY$id&UHavi+#J~$D5m*udZ`aQ&&%Zb7NybNJz`BT~;=>wjY0fPFGP?Z9JRi z92h8g>(;Fg-@duk)!E%Q+`MU%LH)lP2`MSi4D_m1t0b&SH1h84iF|DszpsXqpPzrl z>ebgPo_;;OdNF9$N>1K5&8PQ#?eA}IXP9P-IXOE^m)7S7-`<*9S67#?`KE+L!2*xI z=TD!qigmYcPCx%CmUVymdpWzhKOAPWc^f`gTGsusm@{Y2f~8AYBO@b0cSoF_rhB!m z$^41&&iwoPvToN{mh4)1{AW~6jZI8U4Cpo~OG`^08H){p>QcNv`?zN>U#@=U?AeWZ zcdaJMPF|$3$}~7E?AVIH#TyDAyG@xs{qXVQ?HkRSc5VIme*gcr_3QOPYeIczn}JqZ zg0|j#M8ULIMH~d-m?_oH$XC(c#I{r=5HE+FBMp;W&BvboPZhE^cnm<$iNH z7?kw%{N~wIDm^*zdRyh^{~ODnKQxTXXFk6FX3AtA4xuKMG9{%Ld++9?rTDn};8PI$7X-sgFyn^c~>*y7Sp zXDZL_RG&L>=X1;Fcf4CRZrsSgqM+tCN8{4v%e+#-i8Y@(1x&M^{NJ-V{XAE8cD7=R zfTpJAp@Rntd}F6B8Bt-=@2w}~h!Dn{0oH)zD} z+QM+;$;ru||5)pvsMHq{RAk{O{I zkdu>hS{l^JCu`MlxShZI$PpLNj)IE|9GL@Gg=iK&IMAr`cJ7=xTl$`Uw_WGII&7^_ zSXh{nrRB~O$8{@f&u~xudc0~{r(;G5KAqMtwh8A@l(Vf;IW2K37X@{@l2o4VZ zcq@DT(_gzSDn2Y=I3k_DXJYp5M~@yI?Pd}X*N?mM+~DB)oK15hLqewfcs4u#NCPAD z6qc)3u7vE^y}SG0-{0K_4mf;#+;892Ew2CS$zeCpQ69z5`z&gHZ20l(_4=brJST$| zmb(1>^psUWM@Oe+`SRsIJ{;z6ojZ3f14!nRtzSmQicim8-PoAC@Uh++-RNzg%bir! z@wX?ao`O{Mmzmwl4C_1xDP*v>h>l1tS?AfBi z$H$_Mn{pmGH`jV=-|n3|IUPW&;iHbn#>Tq7y|r~~AFr%c2m@%sAnJH^y0d=GS>kfBzpP2GHr8Yah4s%ZvH>`8|4hd3n@v(|V7r>+5uLa&uV~o}HgR zKllDFi}$WxPMc(fgp|CdYAu~wA=cU}ZO-Ljl6xz}a@wRxN+DWPE$aX6DblgAiP@5W z-|qBJW_CW2w6ruOJG;2oKf2>4&%A9jKj(S63_m|VV@LAwzD!yB`hR;ETH4#)r+quG ze*0%_|Le=W(&j7*d~!AsDaq4RSUo}OqNna(s=v$jzv~LUzkk2qXA(F&+x+@%iJKSq z9RE}`+qyh&;<4r0MmP2BzD&%yzppmBviI20qmoZ#va_=%&YGn)XU?3Ki4z02i9dgK zW~MS5pUjNM>6cDUR_AtLVPo6(;d|i9AXUbW6DLlHZ!_Jp$ZK2tugoWvfg6)t+jymq zwed=Wre3z^-347JnRj;=XlLm3_`1&R+s(hezJC1HEh%<(b}6$QkL7-IU)`Fy_e?bhoIrJaj*m%o4Zy7KG$`}51* z-eUaldi{Q>n!P3O@9n+0JzxImsj19Yf~~!)GB<2YKAx1HfBsmn^vfnpPiq7 zzJ*iRz}Wcow>?&+uQpVF&&$cl0VV&)Eg6B^-jT#^$D*(aRD7rZeRg!3ZuFLUuU}kT%y?sK_VjBX>;C>?{8jmHQiudQpA5s5 zsWl;5QxBfgd~@j-=d&%3)KY^@Zi8Taby z>Nj_HPv2Yp9kgw0->+BN-`?Cjd~a{HW#uQ8^mB6_URfC&v!`O>jvW^BY$}-=rcM=o z`SPWTsw!vddn>QOT_{aSA<;%z<@8+p`u~PQ-_LnYS=H%c24QT1FSqeHZ=F#KF zCr_MkSQ?ZX`M>7b8Oes6`sLfUZHuy(mX=OVN@|)qb?UW3VPWC5TUX37)YZ}1uyNzb zOY57PnHdZX4I|}Fua(<8f4;n?rskTMok9)!|NomEU;p=OtMv4(IX5T8?k)@5Rg$UZ zKkv*WRqvwQ_#2al47LD4v4+q&f6hD0UprEJ67at#Q z_w$KxQc@D=lo5V;yCuoT`%X<~I@)Kqe)e>cy zHeM+ehL3Nz-``ho=1fpE@sW2em$iu_mg#BdwaV^?5>h+f3ufeaCLRf+*)5J zRatlc@vkpmUIr(orKy?a-b#595a-DnyLs;IEf*Jo7Rfw(^G3&Su9Ygo!v_x%E?i&z zZ1cHwvAcQ1n%AAod~(!1arwmbeUg%roYmFUAHUts@1CsgFZD$xRws8&#KuJon`9qX zGPCoYF?t#!?k(H;Bfs+G&F6MAo^EM*?fS&z)AWvKTJJs^UGKcRx4L{=?x`u7ho$rP zFdn$L*nMZ=W4C?B|G(LMeoFqNXJ==JFR&{)d-38#W_G?5P2O*Bx8Ikt*tBSQ(8>?r zzq>CD+WTSEHn;QhY(2fbPnSjc1Oy0#t`1Yx)%9Io`0d3-<_6HDr)>SFC!D{(y*+&C zQqane^TMA!d)6asJ+1otJJ7j;PEJlAzJ5LX`DgB}Es4+1&5ekRG%S4N61FB{;q}j6 zQsw34dH46teXpvs>%y8y<5yQ#AKzR39W>2%@7}$rrN=K_z6@${_x1Jp%(0mG>FH_h z@JXeSv5OWwR#8<2?G{;^EUp)$prysd&)+Y8jnn){wT=4ob8{cx+?*a2{A1~(+&@1) zR^D2>!vJ&(R~w(K*JL%{j0+1G%irIdYWhl5lYQp&YS4Y6|Nqt2{rTuV%PcqRL$L|h zt}TI^RSfl)wwdOdJWmOmv9wR>+O=yYIX41cN7PL#kZkhVR(jy*QPtazXKg*bV4mMx z;j<-PiY|@ICQa9ko))<|jqw$Kd+>6cT?jk6*v)7GBf`TcHrXJ231%S%g7m3;aGTI@1y+O(Q47u`!< zUFnoE&3f|sPubgBARRiox{~&FdyG_L9p=L$I?e{e{P*P>r&agdGn%~(R*lou@Z)!Q6@TKzZo+TD#Zz8r`KC!#(?W#N5H*Grg z@lQ(&OJZiGW`lU%>iLtmY%zKG?%lec@H@+L*2nFQnlWpZ*2k}}uC9)F9}+hq^U3-5 za<_LDKaaVc{(V;DzM7q%el)Z5x9s1)e?{2ZSq8?&!cR|67mtgJiwcg~T>bX!9LwOD z-=_Z*laN^9BY3KYn}Z|Z*Y5iN`#yaBEWB>rx z?@ZaM0Kfg#Cw49Vac^(+)bE`C-`Pc9`21;+ijT6mQ^&)@?cGsZvm{fhGD=Fe7?_%h zhOP=Zxh*6iCufa>ZPk_)K})+pZsFtOOL}o(VbZNFnWz4PT20Sino5d^O?z5+He~0X zKI8g-HBZyk)zu3>J@LG_(3u@ne}RJH*4AuwK6$$}Ju`RKKKs7hE$-gqU(+T`PyiLh zY3Jv~rX)`@X`Smf@ABE}*Ue8`-qfA^<8i-z%hs)1KYaKQaBAMNWy`vrot>S&(rzK> z{N58(OF5b8`0{ALa9znw@&5l3y*3 znLo!ZuI5Fu`KLz(eR|W(++19qto$gj-eh=Dw=0t3cP<$=CncxX^hb59nN} zMKL>zKsPJ2@jacowBPjh<72(2i#O@E2+TIm51Vwhr-#Qd<%ED?^06M7<8^PhUO)2d z>+7w3Ute5wW=J~N#2R({`@6f^3cro|Lsy4g{iPE$V^aApk8RwW(?aB*{z};tTQg-! zN;F65O8u!`s(mt+i%M;lr$looK07y8n_*+t)m1siz5M*ddZo?9zJ2=^d8+QE(M`4^ zoxB&i%-xqvT*>CKrEN*=C;>Jd0+v;yD z4=yeBUK6)>m&4x|-P5OwxAVzfy0vnT=VY~_U!j~EvaV|V`TLhwwrxu9tE;PpMMRDq zm#?4mx=8%x)z6Rn?Kh>JmD=~`llQ4JtbQ8_0`hS7~`pbe#V}Rum4*rWtuf5cc#0&z5Uv!0&RMg;WJDZxAnzN zDpB3xJ?%|M};36h8j&{rmGvOTBF>Keg=GVF4PkS-xD|(9rPDr_=f&tHXTr zH?9uRN;@;-;Kt|9zxB}h_fqJgbt)6--tE#%*xN(DH zfy4bZnK8S|d}kW14qExibnc=RF0QVf%Y0{R?H8ZwrCRp>UhazxTTW=-Zrz-AR_fv7 z$I3#&!bhja*J);5TNC*vEozU4=T1;`OG-+DE`|lQ3m%=Cs@=xtuEnJ8KTo8rtnAU= z@Ar&LG}iA~bf?#5yX;S6BO{m3&(5-DgiouOw|;&8y35y3K09@(jaQmw!I=r29UTIx zr>0z7l{azLtY3%f7(uJ@(xj*Bt;-Sraw;k@`F!V|O|dm1PfnGUdEeZ0+jY0aoZuTv zd!?59%@uNP;}JY}?%bk~l|hG&9dk3uyyQ~z>7+WSg|vF@y6IL~TGfAkKA#VA>7irC z)NZTBRECCxZ|hF`K2_+z(W9;_J7>+C$JZdxbZcw&=KTA14197nGamn(Hf`FEA3r{T z&hNM$Utjp_jAUH(+pRUnAHI5Zsz=iJ$NvAn?H@gUJkzGqXyL+ztQBs*f;T3)^2ynp z*pPS_wAu6H$B&?6EB)>NZn=^3PEGXQx3{-7gO~AqeRVbY@-ko7Z8s-Rsdsa8tNH); zd&#>yGx=n#Hq`(BSCgNjzSrj5JloT=^Y?jni|Iz}tJ%5m@WieYjm+$zwNrQR&fS=N z{L#aQjqUC2VW348fAWt^B99=gda$Uz4Xy`EqKGa?6R}-Dy% zul9TF(|>Ke(p)m9r)UOGiA^=nyAz?~T^bP)As{4lXo_Yq!&h+;&@tJ2zu$ZO^73-F zK0mEB-|toPE3%xQXZ!fh&SKVIk36)Zw5E35-CYg}(OX-yk3T%z&MP}<2|MUgLRssw zC6%9_<=o#Fo6R}p%d1^=f31|=dJuu6CAbwp&e2&9q64pcBZJ27SEfF8}cHgeq~dns(QTvT!Py*-uF z4A;f)|95BxC@dH|il3i*Dv@31eUFu$J^lAjEknbPt>@#fXS;wMVb5jph~V_Sv>{(wv-Z8OtJLqK{qutG&JOx z$4=^6zhj35=x&U}q$H)N?RmO-vAa@UOz>LLls7?bFSw#Qk+S>A#HIV=jAkyM$m}IK z_4W1jmp3FjKdmUst~JWOvO@6d>+9?aIyyZ^jvQe+o|2z`K7D>I+lu8I`X!B*Mfh`; z78N~uaIl$2#zLUs$&-|-@9)lT$-I2x#0i6fl1U+-wq#xH0-a!gQhol0jEhRIuB|)fv9IZ4G+waaH)>5-EsJ+s&L z&7CXDaD83u;j?FbE&pAQuNRb;pPwDi%*MlTC42wjLx;FTuUEg{>;C%MT1L=bWe!eG z&5-(EX^Dvke|>%Z^T*?ULn9+64#$81fxo}MUytI}_YArSI%4C~larvk;VUXD4fF0; zWL;f#6f}A?S>2yUcHR`vq$H)!&(0pcdUY!3T;7xu0($ZL&RkgNJk{1l1>{04E2Ep& z1cil#Wn^Tg%r}*;Q&m&Tiv4=-#EAz-I)!(BGtIc5;N#=daOkZU->XS>tHahFI&+36 zVEWsN4-Xs{{<>nWtgQU+{r`WUML;>Zxs0HN4r`;fKDxCvo2}1pl9!sgx_a39xU*MR zhkyL`E$!2jlNQ$2#<{mll$4cuW#c-_ett?_<~zHsyPJD{-7n3*zrQ~}HC4Oj-_Pe$ zG=q;_cnET1P^aqTT-l=1($II=lTsTlE%nacYF+guW8Gg1OUsMfa-$i(y}b>Z<>nR* z|NHCfOp{C@hVSq1r$0M0v-Q>b6`=ATbg0~;M@$EH7C+CpwMFy)@B9CGq-Us1O$c2T zlKAq{(wMzfQ@`J@pU*387O*-@_g>9s-?|?U+1D01O!}vyq5?WP(#F}ou&uZ!j6;?lbI`n>AP(D0Q( zs%huvojp6-{N}b?>0`%^f$kb(XJ-c$?uQN?N_n(4nUj;VrKRP;3dwNF)hux0{%$2IqlTbqUVQc^&Ze)zzuLXI@Xezo&9?)YdFbdwKi1IbXhf ziTVBN>gwr}7Sw;gTi)7t_SC5^QSC5>S1kYje!qWx)!N88Q}yHL*;aouD18;u)6)Yw zAmG-P%!=yj{RMw_t9brOO-gFozTMpZ{~zP>cXt#G3<6f(fBoQr!~1)Cf4*A19<)$? zp>wTf?7o_rsi&ubR`kfo$Vk}LSoqJkOMQB3>X9QyK=Y$<^?yruszKbV2y*W;?c0Tg zg{S_$zP>&?cha;OGfuQ}ix<5;eeIf9ettf~x%u|zZ*ETKmW`jT7yIGkN5%(-TDf(i zx2?HQD<&!|Ed1>3Z1;=|jceDgfkwYC@2M>Q_v^Jjv%9*dP{ZQI%8!rrf{t3ev#)k` z<>zOhi!1lB*_7pgiX3AGSJtwKGoH6<2HojE9ZIdTY-neNK)24SGe3i4k>{3n$ zJgqAz*x;8Gvn^-lrnZ`EYa;dUUR_pxud;oyd%xCZ4kaa}jC*@37nbKvSMl7g6}INY zjg85mt8e+`Y!dG8tNrrgVzaV)--Ye@@pIdj55pz+oxPg0!QW0yR7 z{MfSOg}~?M=a;9SpBJ(wLNGi$yp2!x)cpE?CqFzqY+3b1W8=n+IX5@8E_7}`#R3lQ zI3=T-*A|{RX|}@Liuvo*T;I1jy?az{$Hm2ktPEmpm@q+L?v$G=gO+j?KRd&CW$95h zzc~>v?7E|x*?29ApY;?ywKp`J7`M0TWYwKXAwDx_&%V4d+5Oqs*~e!Zr-N?3tp4^U z@koc@k>kgW)6dC7ZOLd{yH?jU``VK5^>JtB+0I@Yz5Ubk`Sp`#&B}VQJV3+K({qk} z{k-@4|Id>&P6Mr)iHVKfxOwy9+}qngdju3&{{8zWV^cBV$B&9W8B5U4D&6R9S8f#q zgVOqv>FqDOXM0qprl+@0ojNs$e^<@VPcb`-T4$T*2W`)bUAxV_Po^@l{@Af&JW?hd z=k0#?wDZe9|r{k7|k6iZserNsf$7B9OhYxddat3Bq@7Kx6&E@3ge*F2o zefqH;$&{270TGcSFE20Wr{6ZKi^UDQ3*8C zV`4Jp#0ih5+$QSk>Z?LmFS|2m?%b6D3z_`<{6ba)G;)b*CFI0>xi7zb=~B?JT~bm~ zM_=EwcXxN+*-_Y>eSMwg_TA<0nG&+Hyx!j0T3BA5eq}}Aj@`R2FK}dD6}C3&Nuf8` z@AXDEuWj_2s#W;)RVYJC)jbZeuwYK8pw^xROnxvyzzoYlpPZG8)#7#JBXs`~mWWPRM+dA8MB$Ag1{ zb`(AB3VS3aDR~k!lvnzC+BMPq;NW1@mtiYIZrr++l$_kWcCD_~R4!|4YtV|OjT;YM z3HiJH{E;Ip(b3UM`*-ZHSbFN<<>mgKetv4UwsTurSmbQ0T%4SkIy*a6R8$1y<MpTpu`rkGU(U8QZGB&CA~5BkhD^HnzuJ$v@-&tI?CgC^=;zI@puY23Cg_jb^}nx9VJ zb2-Gs#MVS^ZZpfhWsr78A}A>6$H(LHnb+1x&Nk0qmUy_WjV}-sohqJMZF%?it)2XI z)}_;mii!(8j!itdtuOUnDQFO1LQ+x@bT`SQvbVP~x7t>J)6vw_^y=I&Cn7rf^6v8d zrsn3IMNhfh`{kCFzP@JFxxMo9GtgjV!9%B{q(HeVlb`IM^Xq$QKo_4N8GKR-*%&R+e7CqFe6v>=rsEiKK<)7N3O zP4vr4ODjJ-VEp*;W6Z7+PH%7TH*el(L~qNvXvgU}sp#pmXKv5W&E=JC3u(#8&3$=y z_x4T4r|pyAJp0JhQ#~m;8B|^@_}3i0Dn#?$y}jO_pPl{r@wj|pNy(M0{rUIptjgZ} zI8?_kYvpo#TQ1|*WtrL6*IkV~(=Ts-?C{}c?eKLB8)|=-EnRc%w2qzKyoZO|L4&AI zZ#+2I9J#Y-X-v4L=OmS^t)eF@8kK9|ebrbW4UteEm-q~T8etw>5 zLCGW)&r7G3^nb5@a_q#3j(+=pGv->CpK^(wq_UD_;^h-x4_v!8t({+f(zI!9n>QP~ z_sc!~_xJaacAvR%k5qn|mrezIN&6f4rW-=eNc0ue-CWw7a8&BWhcYXFz~}u)5!slfTM6C#k%= zdUbWUep6EuSIN58R@ShvFi=HRx9Ldhl#`d2`}4{+sd!eYt zscmv0D}z8+95GLrHf@>A{<62TuCZk;@cZRA$6{jY=PhqQ&E&Pw=AhYvK6(3d^7Vff zUX}&T{6}t1cnyI#l^*-d+W^1%&epjPYBTxoo$x8DEs<4(7ec#Cn?|F+;l$N z#tX{)vAaqPOFAa0cm^3hef;?FBG>Lucj~UJ2-Jz+7ZZ65R0d470lDeQs!;Ep^DCo& zo;YzrCw!Y?eeg;5KADww{{MQto?9aEoK@MI6+Zs^D?h6lr=7X*Q=-kR;zNSpTq{rs z$?*N%-Nn({^M3sLbxJc9WY@M&yYg-yJJxn~wt4njaV5`5DpP%oZeD9X6Tbfa{r&6j z^!M~Esr&oulv~OyA*F9w&)&e+0{rycw!7qI)8@^_4EJll%bq-Wau-MB=|ipDphgXY zcKEs{4-Ph4$sfJ|>eqdIe0-|uZ6}Uty3ua0udSULdlQ_ul}$~jw)4wB`%%#?rmGRZ zuV!7XNzRQ4#_8uyMD3lV;whvsId^ZywKX$~?5(V#X12*nN_KADx^h10M>6!B=J+uQT*K6-h1`6-jnJv}^6=lty_}M|9?E@k8NF-`ts6J3kwT| z4Jjvu_+%^=OfT$WR##UCbq3St*DgC_abs__`MY=TYJR`n9+k_?!~|Mu(%ISh<<-^h z9Xl+XTXaCh-sP>?*Eek69xn9e$Pt&P8-IO$ZCv!^M2vRJmb|;OxkwlZCs$H`l-cPS66`+(>#4%_4SpYfWQGzyS|lMoP&eo z#Mf6_Hf}Vut@^@nW%DAxITnu1Y`kCOwu6GU$Vh1C+3AzG&fL8_w_9AF$sqHRikN;J z59l<`6;WHY^78T+LRN)$0v!>$9i@&~7^;i+Crzbxc`zxVsR zNf-EKt)@J9kg&HWcnt=pAn-epQ(?5Ludi2DJ6$THzCaHL?-&XqR z)V6sUW{%8TmaTMka|>D>rklEIQ)?^hf;je?XJ=;Ge9zCxIkO@0FvH*6Da$~U-KmGC zm%hFRI;7)8?wUu3u3VY2GI)8>pC5%!SGmT-#BA#{JJ7_+{l)CC1E@T`+04!lTJV2& zcR6T%OU~V0rq{nEAMZ;&HAR!vYYXG8ZMog^=g;@q0&>0hq?6m`U0E9)zEfUUcrmDy zIdbL7lv`V~nQxWu_-sA3=17O&DU&bj_x)OB@bKBGTeoJFzP_fp^whB)$;Dsi#HIF1 znLhgR@^a-Zg}gsMKF+ZyT*R?xl8UF+&Aj{j&W6X=x_*Cmx3HuHbaTv`8ylO`&(GUy zaC4f9=cFZzlqToeo{RyVHhO!;%$balb*@VuOP)2XT2*|}57zP-75sBP}z zYipw)zkkoaBKh2&v_GNgX=!dHC11F2FI~3m(c{OH-|{^JHI(vNT3Z9RW`(--%bo3$ zwf6A#X1-!P3AELqzrVjxc?ziDHl3OC+H&=agr~Zm+hlyC++cU$ue4S8vMMXvDOtacoS615CU!O5UV$a^ao}Qi; zi$f-*~CAtsI1fszU1ueT>0UFqoVTpnLBq{N}K0}T$}m( z*RN0C@7KT1-SbF6SGPBCv0LWU%<74t0lR;{-@i80@|?6J{Q6Yw@S@s1F*}Pu3&%=d zUlWv;KK<};`^T?eL%l*l=`N^HadNJ0VNubgUpswf8Z}fYZ<#SeVy*V=S!XXXe0z6y z_WHt}o}MX3-hF(0yz0K@owH|qZ*ER!o-k+5nFEc?mEYdXj5}_!1QaSO`hJ$*uRRV* zaRL)nJTI*VO&x){x@x|&Kx0dKvAd>Z|K3^r9CWYM)BM$-fERT)x_J$BMb_F&$}@#u zojBpKDr9BT+_|y~?sOc>&8KDOS=wyXc~uzkx#lx$~rQ5!)NIN^rYvl^N+FzjaY#n0lvQJD<+>&{@?QlE);-HloH#e#7 zE`NXQ$dQ)c-`{I@R>bZ7|L^yjxV=&hvespwy@z-0WQt!df&d%jgwR{Q^clfHNF-cPCQLoJ*&U$2I9C`N2dYP~l( zS6yBG+L}n`^Yd&^o;Z>4;laT<*5!QF)zy3ZvOUz))OPIL`S97ZV-F5CGnV##7FPEw z`1HinZ;r*me}C0I{q`-N^Z7?1lYGquZVSE>KIbQ#o7dXL%PZTe;>jRuT^2Ga*V@{8 zSNVIt@9*xuytQ@pwKWEyA;PMeCo`W^ExFk!bH#d+w4@~Cf7RQdZj#*kfQ3y(`xSyu z-o0}tWogjEr%#W%%h$S8R9IYIe*frA z%Sjh51k}{lX5QSSDkf(B^3v1TOP4MQGF56nigsyP7_T}hWYd!6%Y{ESnaBP9_Eyq7 zPX=_|!@a%LYvT9Mv#b4e0@R@PtXg^^CA!}ze^S}sU!|%G&*|Ol>+U{$@uFaZZS^;i zj6H>qk1;B=fR5*3eWkpAnogwCT&q%s(zl?BQ|#o9qcdklnt~2MoTTavy6v8mlk?0> zhbY+CC+bMo8t^YcLU+=Klox9{GSO-}y$zlmF14|LESgOZZcj?&j*`;Nc9xVSy2 zNC$Lf;FBj#N9T)&g@v`Wv;?dQ(Pa4Z=g*FspPTL-ubnw#=FE#*GJ~J~-w(=(3dK#a zJBw0pZOJ^mDfM(mU!R(x;YNqeTR>UxWhkh?Jr$EJeI>Y$@!kFX{xvl=*REX)Ssy3c z@cH@q%PWJ`m*zU!Edi~=2;TYl(IXCCUfqlrKR?~dUjOl=`h130MG3XPz9_1yF7-GD zD#CdVpFZvFxgj|zY0Bes=g#@eG65}akub0Vr3NFLnK`d7e%`vx*Z2SJ{&%;wW*?{z zKB=s%oOyTG)=w3V>p6O)OucrV`g2q~USvgo6KLr-=zdG^(V_S6?>_;yqHEst>C=nu z-@G}qQ&=4|T(K^G|G7o3-BVQEz#$rR^6rVRFMev@p1J;8+}^6GZoN{Vwc((CzMC6c zzntx&vbVQfTwFGkzmIDXIJGRR^685g9`En%<>cjk`se3o&?<$MoooF;6QqB?UN_0Q z(qUcxZbQ}AEKnFWFfxC!+os|fv`)^ZVgLWO84^2crQh9a{ZUczOC%`h!Aao_8yLL3 z4a~!@cNCYjoSM2Y$#q32_rJL_LxNP))rCbxUC+)kEzY^TJwIMZNC>pWwpYqj>(C3Y zZBwXkO{`}X!WXl44OI3c5(*A{O|J)M-8xG+a(a%HoQucrY&KmXGi zX-U zzOzggmc6~@YP3(qQ;1*w&_d^e4+?Ya`Nj2DP0rzEXaBm^N7BHUSzEib>F*0c7x&e| z`Dg#K^Z&D6?P zv9Yl~zg+h3HgMv6@Z{uV(0NS${{GJGL62HmTVL+ovP#8sz1Ym0*ApjB6!i1+JJpt9 zo_{YyZgQ!u$P)x8-gqR*%`Sz%FdRok=cN z?5>90yMMhZIokE%z0qtNPv6!R8arwt@4jE^{i@LJH;<3+)z0s?^PSJn3vl^=>{V1u zj0|Y%*ShS@gXi<>uic6Ob!|Z1Wv$Rv5(ZA1*1b}uNvEgjw(%`KvT@TUqY{ouDtl9& z%*wSry(iCFSJ(HZitpr{-8*(9q^Gm5Sf5k==0;%T?bsP}W7K_Tv8*`Vpc}ny&4Irn zN8IIWLAwSRSIoaWMKidoq{efSS3~{3#{a+V3kn<6d=*q!Zf$MeV6dZJ{@mQ=t=R|f z%ipVDo-_CJ^o-`Jtjeuf7q)8q%;kE0{cwE!%Joy)+ng4=eK;x}uzsG^O+K!s>hE7Z zm3#%Ayd1JRtXI*w4OHi;UNkc@T9kQt84DZRsV7dL+{5LlcDw4^AGOSH-@YBFzkH&% zr)Nd{e!B&JKDjwLpy5&mc7C}hCnu}3N?pHwJNo9!KezMugT^6PUoBVY>Ftf&UuVn5 z$H$-(zi&?N?QNnre@s%@dx%diB;I#jnD1Pl{h#^f*zua@9k{gg)$vnPF6Q&_@m*NX zzb1;c{M~_vhaWs$>bGrmNaMf158p)oJ+^>3EiLVo_+o~yudXU9C^U3*aQMx$IeBGe z@YMaFae_%IPv`q=`}*dm@1-+m&oXv&b}AYg3jWByTju1%WS(~?psd2z&kru~*tWDJhBRz=eg*sef}lCvm;oet&^8``4?lTUc&v z@vJSazGsth=SD%Hr1a|R`TDV|{Pu*e4az@uZHM8H9}*@n_Z2_q+n#^_+}5)*43i_a z+8N3L8YwcDeIXzuWx=1-!|W_cGaEhF?Y}H(fj@9=jW1_mt22V zUSAi>Dp&pE!^2Y|U!R_yt}VS)bSj^$6=<}QK}cBm<@NRR*X-Bz4EpEddho%)3;S$s zs@bZ)A8KU2uzPz|^X5lKE(x{q2CrBAfB*lL*=tPm*7Vt%ZS!yfUHc3=;_mY0$*V$F zfBN}+{_|V=YJY$8nPH%K`o0#ZJf6hm5034rZ_ixbS$s=nZRX`=Au9qH8|K&l+j$`Q z_Kh1K?p42Md^PvN{{R1eGkp&YD1LTkVe#{G4ZpfuCMvs&Rq{+y+1t|6ka~JSS*}GH zPubfb|Lb~-UU9WvTPZxpVqu*3zVh`|vE?2eac#RQKQEhZ={~iaW##3^Z$$jv|LD)p&l1wo+MHP~E-gi@ zdlYJFYYl&Ye|7#)E4QGN$d2_*24-ezCMF`{;^GWW&d!lrvqC2xQ}Ddxt!5^+tGxZ> zpT_{Y zK<)4E@8UbwH)%z0)45;&fA6Na+DAt^Wo)aqoOrC!H)+x&10$nLyJW4)-n2fi{qe9p z>N#k!kgLF27174x=T~;u#P3-Vx7;?puPXe*^qFgQb>jIRK792l#jR%}(?CHNl#UVKY*sA2jpZ1-#Rb+p{B}Ry1UD8u%c&1$yS6&so10 zdCB+kXz0sJO9h<@%r2{W6+b_B_UjyWemRZJ%xpXo4FXO5cE3E<7kULv{P8vXD_h3a z?8EZ)4y(i3`aHJpDh;;RFE0LC{QGgg_`FZY9m~mloZg0&Qnt~oj*T2%Xnjdef>f+vFuAr zIM@FBdtq1cbHC=dTy}YPEZTS^nO2y8tb9JV{K=PNK03O(g=J-F*Vo0)v8%N@Ue+zH zf3Eaci^|?9-`)ma-~8@Y=w7?u_s`14Tl)FE(*Bm0_v-G||8vhynVA;;!K(Dtg%yFy zhYlSodi&{a`F+qd$`rlWsQ5teJW~jR(M>(3Sw}oJ>qT#lJiE90`xMhVvp&U7DAlUW z%F0@}yxxD72`7Uh3up)+B))ZH(owFZ>wfI3{XN6BdfUMy&Agu8-kD~(QVxBW4?TYL z2(*=Krd4THV4IrfuhL&8UtTP{msoR{ts>9tg7)!iVr6dv-iO><${n+NnaYi=Syva; z{rv@MUv_kGFl@`aoAsapH1q1I#W6ESym3|NYNr3HH)k$qadUHHiacG)cQ-h{?b%Dtg9l&jx~kf^)3T-2ajDmu{M%uk8;s9a zY}&pZ)K%$`x4+lW2Dmu7-|Bfkwpc?k+!m>{wfusJ2nj6AvL_;mtii9~@-< z^Y`z{xV=_Oy{0bmnP~(npR?VLeNJ|BaRJRjzj^z1bB@sWKgaSjGc%)(SATyOJ0pH` zNDK$#`@PH8`R~mP{VbA}%UoX`cEm{Ox4f*lYC!>M| zpo&&Sv}3}TyrW&BOeemXmA{KwI(PZ<8?f?(W>-;o%P-JWx1v_^@kD&7O{q4zK}kZf;3uXPMsYySXmbdSm_n zx`}h<==90k>-qTjxa8!l0o@~EU}h#3zCP~kr|PVmo0f8La-O{Y-b~4fL*UVyn>BOQ zL|aX>TMSG^AKfr?c2A19y{&Vpn_E(SzyuF(Z{re^AVc$%69N~PdW$=^2P#EIMRh%R zkl@^|=y~b1azxxsJ*G;{|E&LgRsB6Y9vs`BnrJkgLHo_s+~VTm)VF0tMMm1;>vTfu zTTQdC>HPZglKBAWSexf_%eSoiH9Z8hB=h(0$rC3Y1g)ZS@bcp77S~UEc4p?zdDgYR zO7iaQIl0KS`^BxT+DpBsA3J-t*LSv=VoSoI7S5aV%#)6ANSWvLY~5LX6R&L3^FQ=`oJ8Yu~^L{UK?cQ=r-m<8r{@+jc%CjE& zJC~@;Fy%hh-!7(GatSnSTs%khZ*u+X6z@rTl8^Ql z{{L6IwockK%Oxx8758mPNy)^ltXWTIEISgLR#;dVdF$!(ozJ#Ou2k`yq<11^H%E%! zHeVkfhABk}Gp|2Sy{F=9JoQhn`MrQ!Vr6&D4$Lr2-mrZ;`<2)AlP68$x|{AODJl8! ztoi+n+!<=-|AM5g%XGed`<8QO$Hdj)>o-+>&5GKRv2g1)d+XcV^N-)SF=P9^D(}}j z7B5!L%gY0e-rU(&Ykj)Xcb3V;Uy+-e|9w6_cg~!SuC7Z~%Wi7!jNYCXb^Pqvvz33p zUa$P~!*KtfPu|lEXPahEds_@T_ww%DxuD_F2M3v-{`m9r^Gt)prZtj(Rz>WQkh54#%jdS)0!ABs@DaGfG_DC*pRBS{0~&bq{~x#A{VD##{k|vLwr$&zcUP*RnVny2_jK_oTeq4fAM0Vf z@;Yb#&u6opzJ^CE^`5R~V>74d=_y9gioE9IAu>}4ZnXQ!_W#UGqxS>9jq1^vKD>qoe3*{huEnPnkbdz1hMk9I!H^rLFDJ z!-o@}YJL6;a?IwP(;vBY?R>H&VvBd~wA7l~b>+&H9CN?RKJw)yC1=9- zGqdp=IC!v8f8UQLb^m!A3LZMO@klz&G)gTI+Mbe7{q4Y9>kseQUoI+paDee%^?O^; z%>G11Y( zgX7q-V?A=Vvp}PS{?E7O-JLbdG`r~aHC@mEZ0_u@udjnfVYI^5%ve9;(W6IkKgvTV zsjS?PvMJU@D|{V~LseDPwBshhi@m1ntzF}JYEN;=Gob|Q@^?BVpzL*O`_b)rcattJ z^KE^%dBdJPdpNkbm>zt5e7vH%y7=`qU1s;x2(77H_4V~3T35N(XJvnRa}%@+r%%Rm z($kF#7AUL=Tf6FW=||8k%cgy1^KB{*?W_I0Vat{!#m~?Ee0BNGojDtmj~BhaXDg-` zwRt7EXdhqS@yTAtc_2W%b}p4U|T;s zJG=J$%uk0dU!Gk0`r6Z-dsRGx5>KS;?#Rf>O)vkd|JiDZTdx#j!QWq{a<)}04YOxU z>*?t+yt%Q_Sv`2yGM|}?*3`~5&!6{jc>vR7b^owsjjrzQpTFJCmoD+GECiif{^-%8 zjH|0c=iOpwV*}0dxADt^HvM(<_dkDlxP49B-dUijc~)+*gsiMpmnE2)nF~uxkDfo@ zFKb;kVaALT_v`f_uDNBUha1@uTOdJl0KQn zZMnR%uG5N2X7T?=+j^CqruwpH;>2C|eq3C<>uq?ICTJVR+uPeOuaCEvk&ywNAiTTm zt46{&(F_`?`-&73A&N(#*G=Edlg=OKhi0DXLou3ySux^AKmnt zr1Em&J#(AsEdowF(q=xI#i=y_z ze-1XYAG&`(9<)zn#>|@y8R4-Ml@^?Dl-rk=6dWQZl^^7McCNc@^|NAZaU){=? zCoaVw^~qW#pr+=Ob8pS`cjxEX&Q4zG>hR;&uQW^d;6Bi_#i@<<|9&_}L`QS;^Yc%f zGUZGDi^;UJpawr~I3*KC_drMH1gs1>b$;WC+jGoSLe= zwXa{!HtNUEpHF}96x&iWUFWZ=XOJE1>u*BSrz}1*dx@pBb@AU{rB9!qkq*mTm%|J? zoa3hCmE*_TmwHcUdX+!NboMgQV^>xN-`tSM?8E^&MEv*L?c8_M6KBqx30kofwI$== z)z#skEr`L(d=eiXYHj25&Hq&WHEz!WlYpC>QX?O4&{1MwP+;(MaSYi}khpIDW-;BU zCpY}-`kSjV4?Q~C9l58Xu<_U#&(qU%EsLM=(+9d+Rr~m}v$HdAZ_{1u-Vd7pzp^q|{d#d5uk^A1|GwKdH8)T7jgz;pJG0DpwnfQ{ zfWGIc-(zfTZ9jj|QT3cu;;eStRi${-+eeQUP0dL+@0HndJ$HNN<+e{xPYX*+dq+e_ zfcj-6K6!b0CGYReonQB>^YQWi&FSam?o~YQb^0D1@$K8UmiG3`t3tKqY^y*Q7_10f z-1dn*Ov^HCZB*<2{reXlo>1Z$eD3Xip_ZeO^X+P9SQe{+)^5+6H*bn=blCr^LZ_xa zE^=e5E%uDEv9&GsHPDOS=W~Bw?bDz7FMsa*`Fwu;l;3%Id0*b&pa1Xg@8G>vUzxs! z2ej7aZ^^jW#L6x9;Pq?o`F6Dym7h}9y{)aO*|2%@W6(DJT_v36=H}aSZ@cwMnHH3n z>%Rf5IlCmiGi`TAir===w&AbTK2LqiC90)ios|Y|kWGo2K5^p2m@60awlXp@N=Qm- ze(&zKDt#p&CbsN~#C(fFrRr~Q3=2Xg?OPlB`~RD}p~n6y|( zQny64w@ySra(AWgk%$d@qOg_xGMYI@+zGqO#)cp<$khl{PKO9HyfWjckXBT zp%ofg64H;iW?o(`ExdBczQoy4y;7zhK7Bg%q4ej!Lx2CBSu)3M-tCKpwHJ?{Kej4# zwMF?mnbqOz!|Y$DJOTCGe|~xjI<*Qkr36|JoqK!R)2Bizo|8V!XB6+*ADWb$eD#pb z-(O#a)zs9ij#~N6wOablI`x!D>F=4w=~v!<{P;1;P*+@BeD6^)2?-4osa}R7zu)g) zzy0y6(>FFIUwz-++}ymQ^7FEV&Zh$MxR!YS^cM5bPT9hGX4&qql}le=)4l!P zb3Mlt0jHR~RiPoPLOfeqS~{|?uj>q2>eb05s@3uP`}^0{Z^G+-IC50~{$sr_Btv4A zLzLtHoF#e_rbQJLZ1{CkZ81}3l%Jm;lR&SOsZj0jZ)XekzlmAh-R<4iEqjV7bCSx_ z3sRQ7dm2P^qe65uioU))H+_KhX zED8z=4bJU+FQ4xCWmNtyW^2Xmwb9#OTw2P#apOj|KCekjVhqjOtx6v}@pN{dv~tG| zi#vDjfbLQNtxsMPF){b{w!-JG_fRze~R;Ouv`q+AWs);6NiNee5oO zzbWOU(AKxp7QXzQzBp`c)S8HmO3}ZwmeD%En|yH(Y55|69eZB`HKsehiGoxSJ# zy=trVsmnd2G=fh$My`JP`0?WHH$aO?{t5oS|Nr0e?T=qIZ`^1Yy)7qDd&7L|az1l& zb0J}2UYVIHo;xqCk$iGkBqBRI`|J1R{r&t>y=>Lhzj?l2|0Z#ow*ZUqGffq{Wra&Ar%*N^+~e13gWTH3KUH#dK+W^~f9Ju%zt>ifc_ z*PC|kw9L!P%elL2D(EzTy1!LcrLUGuUux3!<0k0r=EWB;Y)EvLv#;xMTkQGyru*vp z|Nm}kHCYuraPaZ*DJUs9Q*bi6>iVpEpuJd;^ZX~NXs&;fbb{&0ix=R=(AnAMnHLr? zW?x?y8t-kn2{ap-lao{N=f}o#C(InKuZuM_HGO)tTO70)Byh3YOI0&*aq(N*^UurI z|8aD1U})!;Usn41T9xHCJJ24x$B&y=uhw3;aG{K4QOm(*_RWQlkNwe)Q1P5pSNe{} zdzwRrM#{xc>gq+e+|Hjpt9!Vt#QyJ>;90qnZ&#bU_kkMi7u|nW%dNZsTDhHhc^PO~ z`TBVKH*em2dTP`5>*k4*=XX~i@AtZM z*@=mXuZnx!obT=`WwfaOXLIu8$yeFiwr$Hg|1kM@pP;Dd((ON%`OjZxr=PR<_JS=e zw>PKvSDDwHo~G+F&*tWVK+j22lHcBHT&%og$3qRq{ePHxr4R4l|9`3Z?J1hUJ4#=R z{rmT?N6yyjzEG~`B$bl|DVt&&g2Gg`Z{2$I%9W76zdk)ZZS^~Axx>+;M+F517k-{K zd$u%#r>Ezeo15M9KbmG}`F^3OKl#_4Os}?p&DY!3x^2khR($v;^U-%H+39Q;crzD}OJy zHS227{<=Ru48Om-8@&JA3J)oV@9*wj{d(29?9GMj9!>Y{%l+oAx}N;nd#+XKhfkk^ z^22(h&HLWo-Y#vSGjLdFOE_Wu;@?Benb&2n#r=vsjmJN3z0FWa8{I{5dux1eR3 zQoU_Yo}~Qx`uh02z16(3(^U3Ooo7?&-Epiw>K{V zEd-vV^0aY{TU>*Ttn9@M6Ar~4m7mr2R)4=%Y5R0nF6i2%IdeF;xIiOtnSD>6Jv(+i zzMfYj_~cgIgI^X#Zcf{hdwW_lJAcue8-}1$A=W+B%Te>2T4~j`xRrIktlgRF{NUTGZ$!MfHTCYaX?tpZ2sFHS zkpa3NwT)L=BXX0<-Cd=iYfDfgIe8$^^V03ZSFeVqKlAh3T2QEX z;mVZnV)|_&cg62zbap;?#x`*x&!^AI78WxyFE3lU|GJ~+9?-brBvo%7(4K@zQ>IRs zAn@N&f79mn5a2X~cDc;xm(`uWG?7x!eFnjYLRToKY4rC}bp z+<(5GhX=>Kd-p)woHlGQsQUIM^F;?}DW8sog~fxnZ*yN5+>=sNRJ^h-_V$Iu6i<*J z-@Z6M*Sfso=clFTcD?QB;Fv4;>WtPT<}WWVyVve3eI2&VUl%(|l5vvC)BZVXEuhT{aeHTpYKLjeWsTb2R{Q%w zzx{$__aEg^U!|Wv^ZoIFdFj>b7Z<<$cIBGd-GvJmvaqtQG_^9?lzCZgTi#u-n3xzl zR?tdQ&!D^$DZ3joCxb4-1SJuzN$RSqg>P?}e$7r#Pw(lO^51o(_N3-XJ=fPn3OC%Z z``z2p!m{^R)M7VY(3#R2uTNfI8@>Gc)YGzxpQS>caF1Wts16H_(kUTee(zZTaQop+ijZ@$ptAFB+<z<5KU$4+#-_B-X6?QuN}&g#aZbB?iz5 z+t=5{zPYuPySTXc*4AwI^Yd(9-rv99s2a4qbkY(g)yZ#}zMZpvzv6uUogI$z?P@i` z)<|sJxUpeUPWj7Au6LK${r%O_-YzUB=a-X{GfS`!G=?(MIGyQKNKvi&ZBea|gclbU z>cs7taeI6I=A4^G$9kogUoUx)@@%Z@Y=;yzGCQh7? z)V5z`uV7Pi^UXb##+9J)5j6tp4f(a~;Wn`1XNCjb2R`~B6Ynvzi&jCPG0A3nso(qzs;K)8=3R-^O=~K1e`$Q zI_qM0b8vAbU0C2)WeXasRPns2ynLeg1};&p73cr|d@gSy)q5`F(}W2EbN_CAy{%Os zW=DbI*^i+8v105WK7M@o^78Vk{>oQZR*L9Gi3DiXXXo>Xq^WvMdGO)k;a9VMY)(Ia zX;*3XqQ#3pf87(jOk@7~r;9(>22F98u<7Nqv$J)gws3@phrhbA^04{+n#Gedrt8Pc z`TP6-`SXW^m-p#$`T8Y^hubpyk`ogT&N9uOVP9W&t#jKnH)dsbt?b$N>*ei!am2(< zU3p`Db2IzG!ej{(j$2!sy{CVfmysR1BB1f&V)w`I-=DYt|L5?bR_@GeYa~Hy>)+fA zj_m^_XV0L6lj<9}BVMIQF9=;7_G;S|+pVv!uU~KHzurS?kJglLUtR`(dv|yB_K2-- z-n@~ptukQ<3=BLo-#-5R^Ar3>yTzX$Xk^YhRQv9ZC8$UBo^!j(-g9zxH77t@V6Lx| z1*L#9GYmn;Y1iJpc5PZCGyA6E=YH$r_peiXd@HOGbPCM5kDyJWoxB2@5&iMe(VM%=^-Et}VVv?lad+9< zl#3>wUW#^ha{2lByGmX*?cHlTzvdGsJHMO@2cw4a<+;}7$4;N_hPJhLmAstvPNQ_b zU9Ewc8QX%~+uK;!*k1jSJ8c>sZc*T%IV)@t%a`}-RW=K&9atHB>IC|5mlg$0dh_=7<+WyU0jH+x_cu2?FZ-<%yGz91-(N;X=8D#f@O3eo3piB4Z8){b zZ<&@|%(%jDe=B8o;9|E|D*|F-WcuZ7gTCuWZv%}NI~-HK9l9zc(EUL9+gnrhFYn3C z$(dnMxJc^p9LwS_b$x%5($hi5M_y^M*3jtKmV5hDOLWz0RW-FouV0^D;MfdWuDiGT zJ7^X@>$hWaa`LThxuJty8 zolQ8-x1&yW-w&p`-@Y@~#coupsM5;b`?>ntsk^&Ro!HgRK1G{dH%f!^`<0aiuf=li z%vkI7xb54cquih~4VnI zZJRbN%DK7e)$4@|7h3(!c5iiZa;lhjaEs^LkfL1ETYn6So_L&^uFrp9Q|jp}KjPVM zwM6gUXRD#n@$KzxVNuc42PafkK3I}-_348Lpq|Uk4T;TBuMeI$(UEp`7U&$ccXxIk zZe(VcFv*w@wOMiZo;`cwzMem)&&Ov_yX%tLn>Ud^o(QL|s_d6bNM9aeDsLn4>|AJ7 zdHim+&Q43~cuawu1;mCKESY}fbm#Q{*ujkI$wZm@4 ztXV~0Uxi*<8{NKpw{_V6Fb{F3f?r=U_x*aM{pj&yUYVsJfA8IwVp_y}VcqS%?rvo( zt67s&y&t`Kb7rn}IfF&n8wuZ8CV}7cFDzjE{q61JpP!$zu(MxY;Mi<({Lhca{Xbu= zUN7LZq4agwR{L#skx@~f_W%FO&(F^!vtInO_fhRn7N{rl@w@-v@~ z&cJ1}e*Zl9^Yf`IpX=+lGkGcH<@1}Fd088Jdq3U(@uQcKoc#JNuXYu?TTTl*+7+-` z?8`gev$M5bZ?9R){mtrg%sn~dnE#t?BhgR9=xUH?NtwEb;m;22H z-Ho+y;liv#f8XtXFJ)!pd1-dHxc;N3PmeD1oqZ{`IeMWJE2x3@;9xUopAw_e8TF&x z&eQcyIcux2>BWcr`gC^}>-Tq#IctoH{=Sh^QPFsNOh;$Rzw1Z4G+S?;ni?z@x?1b@ zy#m)Rk%ivV^-5k|YF+L>f0cQIanajbreSNNT-V3#E$OQC`nfuAvD?o}l`f~EKpnH2 zos(2NZz@jCW%ihxW1exLVV-UED$cT3-{MzJetX{jzs=pp-(FsBpRDfx>CeyNnwpxT z_`l}D$BrEXts4QIQOBVuVP9v%$jJC=*5~VvokFUhjwGlUyMKQ^=-`n(mBrw0#_MTI zu3tPm+x+L-?e{-?`*v-m!n)9PF_u+dUxDsaJUh#@dTm|a=Oq<|sj=Iq)Lo0ChDrAxX)VpXJ_)?By2MOWBdO zB4%gNp8x-TGl1G;?EG>sOy5m;c7Fc)ZGS=Mb8vEU{w!PfCuoU>AoTPd(7~plu9|Z@ zpQMG6=czlJ)6ajo269LC|9^jf{QUXw<;#_2XBj{%R=CA<6l`qnG+gwYq#~Mk?b@{r zlUX^oVQZt7PA_(Ib$uzbz3%U?mvwFad*{0?ez^Dhz0)Rn%F4=b-n=O&E`I#w<>gl! zLC0RaeSIav-JjmZ{5*N)Opk8#why3{;9eJZLApK34^F6f zhMx+HEh{Ul%D$@Vxid8h>AI7L4>LFHt^WQh=lV0le4&{+(hZ%R zoKH_pWiD~w796JFZ)wYaY2EE}9_!=wUU~WAXRIb@qt%TYHyA#Ec8F)XJ&qSYcI+5v zKX%|^H%0+@dH;Sn+aC|x<#}Xge%YqIA}n^&l<<|p?=LU+Pfkpn`0$^8{JxYYCnkc{ zkMB(cC6-h_4#%P*qmw63R@zP5xzkeBds@oTF43HOdo0f%-@I|-!s_qu&dj%;FRmZA zWcHE$y(yb=6>hD3qB;3(*xIO-=Y!R+Xik0$I`6e2rntHZwv;6=<@yTl0b9k}psi?Gg zPF8#P;DG~lD|KnrA!|!Z!`xdY>tc2;QhU7Ad%9V|kx5^=CQcN*x;p%P$$Vw^KF~%( ztI}64FE1^XG|3RSckkY&Q=s+lTA&Tco6p-ZFUYvK2(+9&{ro%|`Rj)cHG!7YrlhpA zx3f>zk3aX>@L{N(u#nK9#qRwUe^TF~Lb4cl^WzsfnE@gU>Ymdq{r_vdko>#gwC`uym{#l;Mu zEzPlczsx3|+}5~cdXBWD!7pVabG3spQX%|3AaxVmrX zJ5}##FWx+U_N+~yDevyCmpR|Re+TWxiinJS_~y--E>UfU8+)tGd!^0OK0iClp?IZn z$CaL*9?&I1eSLjvqPA*X-<*`3oD6CvfHny&TeeImW`{xe@yg35Qf@mKW&MBp=FJ+r z@1H+kuJkYKUUG2t$|nr3udO{@I_KuXiy1S_^XJXt>5;deH(fve*=tK~r=?y~f4pA5 z|Hq5P{R~g1d)(hw3(79%=h+5-|NU%sJ_jeKqMBOUJlkp^dHMVm6P7x8ZF@Co$(c;y z_XiF*=*90_vw4k{ZSZox)VsS%j~qE763{Y9#q+27-mE9eZapWy{hm7)v^Sae`T6d+WmX{QElh<5z`f?%A`)z|{2U;ls@rE?mf&YyQ-iDLOjZ?*E_SStgl> zK0ZF4>fTj<667(jZP`~>Ew%Hv?bTC1xo!38)w`xuy}q{g=R5|p%u6nR6Ztqf6F)vW z`m<_ZQ_z--z?zzx8D_b&qMp_sZsXmtYnPCm+_|IO;xmoY`*!{R`T6%d+^HLB)rJH*elt(R%Uy-Cb>PFN90Jyu5sw&&)&l`~SAB zUafuc;>9zwOto*n&%d;U^YgQ_priSA?B4yFM<-R~sc+MhCn<{-Edq@IBpz<7+&RU( z%V!(!ley*h0^OT})oyEQ?{IT>7nYM-R~Nf7NY!hK24l+HoNN;*Ha-~+4dqSN{x@#h#x~`veEGXOC%+equ_PxagATfEWMlg=a0Y+AdyS$co9v9*19c{%^Vg9m$LEREdXPral*IhT3k zh7Aiq`!ItlW3)?mPf0%BxAMHH6ffu`w<&^G)embe1hJGB$L@$~hh5lNoL;)~=;`VDmK7fq?Ck8=`T{1YoHXc@vpx0r zc>l`a<$QObDS9wqRa^~Q{#)Z!9pwm@SQdC}F zTf4aU`MDXhX02j%QuUm4Pwo1;*yIxv6hX(l%(X60%FOiKo_Dw6!vn`Y@Y%@U-rnB0 zX;ae6OG|%>yuIzLcAIU9@3!}McQ2pze*4Cafy=cHum1Ei$})00?|QDKs_N>SD?dNm z(>6!d*w}cQe*C(=75!4CTBiknT<>*T?0I>bF6h{C&<6YG=jV$%gakQy++20~4LIKm8?$Oo*9bHZJ_0TeKMAxqC^vVy1NgbJ=@#LE&k}q6PKf1qBpnYN|(R8voL&p zoaH~AxYc30TUYIzVlFjtzVD2sKD9rePCql(TD)Py27^_htJxf8o8^|cwXBcZ>$TKt zDnmy{$Ai1&_gSZ;eUB7X>hA7doO5&2k)uZ+K6&Ee;o(si<0V!5`&;Pkl(TcKr+<8W zT>L~OchmIg;-FPo-~KIj?@xPps8z;-Vg1GTZ?6ZPofWXWudZKGSh#updVOiLoCg;c zI%od6cKgqOvme)+}?=?Ck7$cD1WE zul1Q}waaZ{i$O`h!9DWuAx zFv~1=*4ocs-rtY64NFK^aBsb`ZTb6qqGo1hOaj-gT?4g&S&Q!d`S#(Vb7Fq}`p^H> zt@}aOo}{NMI@o>s{PAk|ub=;AdH=QgVujidy!&dRN)oTS>pZyi~HYyLTbcYf=gWJD<#nYw1?T#>NkyJW*le zlhF{d;^|E>xCb|-FsU2Wdsvx3#t)mtM#yW{@>dJGkvZzwi>}x%u+F=Fn@7b2#S90xo^7hCi710@|rfLhz z%AP$p*ILq|V1b`{!-EG2VQZsWTU%Qhm8Ynj49L2&V&dAr^X%(EwGL=SRPwQ&g|WNK z&djx*{^3KxojZ4CnB___GBW;@S^H(zgp=DCQ?F!Omu{N7>qJB|8!tmgfB*SwQ+myE zZ#{VNg5$ukUTN+e-j6d3lUGD<*IV%A*S+oe@r`rL_j4$|xVBbWSk33b-|zR&2iiYb z?mxfiZ8fvUR$h~tsPghH=x8UKt&eIxK4LxICwutNAtzah$tpW{Txi%dJLmqM z%E_;*;3%bWN9`8j^6-Zs71T^E*mi!;o#tvd|pZ5OVUeNjao72yKdfab+X?J-(Xkpni z+lLQ#&#<)>oh*H>3T-73)8mgV;*s&)%Eq~R|GD;v8z;jd;WdUvhA(e*FW7%pP!hwZVl@!!(_JV@9#_tw&b_Z*#bI7 zco(Qe5!5zm^5oLIg8RElyQgZ0U)q`-E+Z=oI=Id}|DH)g%OsV(6(5^GtJtrG$6s9R z&JViQX6jT?&{=Qp{c;smRg>n-ne*^>@h3^}C^9SS!>3P|*6B@Oa^;Ch5%cPRg-ni) zj-c}&#r5M7va+}|%CCX;(w6R@@_O4=*GqkJwq5}N0-m0pnNb2u(oalKoMTf7S~vpQ z`mE+ZZ_R&hulBurZH?2;B%GOHXjA)ZO5)+Rz29DM-wYa(30WD`>Tmb6YS@z)hfU7$k_zQZQS_b3Fncc zn*B2*p1z*0AOAO8TaPd3o1Ce6`xMsqKE4NUNu4>fAR}S+hQ*vFqwa&kNGv#>p zE*rN~cFM}ihYla+S()@faMVDo#&3k%!B+POoI5|0A?vs<32hIGJPAghAWv)`@ z+1cix^CLjRIybqas#c%$pUJlDZ=%1K*Q0ZDtzTVVxqKsNYgJ2o`)b>5u`w~A;{ZN> z{Mgdk`tZqf>X)sk6;??yC;>oE23f=d#k^LPKaGx{rw&5xAMQf zVv>@b`}f;tUtc%1UY|$B&~W1E>H5M_QeF`e65{%CDmpqn8#WlMi`_kKS@@P|8#fw; zt`2(&s;iG2Y4Mt>6}Z@q_iNzhw6i|-^NhT=WnW)+cKiK0@8{>{ey*v#bQ{!KoA&A4 zt*@`I8~bcyiT;Bq@+c+v>fNl`z+Z$yVKKiU5uqi(52O3vA(lR5-%)p{POm8c$k3xnWSVz z6A>q;2bWZLR0t|5O?eV!ZIzhC#mDEx6uocHqyx8ZI^Nv0UMR-eTJ`1DZP$Dkebu## z^V}zIUpMv3{oTuLwwymdmswtZM=|@PNmIUyYBEjLa@?8~u$b-2Dpu2Mt@EkeJFoXm zoG7TLr?+Fr4ujlVCW{s=GP-MTV>1VI3h3r^f6z4V(xs_wzu8z>1qB5iU0hi7^z?G> z?h*|Tzpj&fYeOP)SXh|lJ~7Yh@9yqSbxL)}y}j+}i;Ig@GV9Bi2}w!KO5DWz;q!U> zXHk%_?VNee4TEXA(QF60M76neZn8a{rRF>9NROm(#g`X?ppMV!)2k1h z)8Biur?)$JXAygs=+6T>SC+`osD44{n)qa5Klp|9Hq=@lU3w zXG->(V0J09ny((A8o^q7Or(65$^T;n4fcP%9{=;}_4tijwk+|TZ3bG>wYU1a$y?Cj zip%Ww7eD6%9f5alj%AOuxnG#W^f+rzPfyTZs|_0r^kR3poS$cVb(ZVPja#<(m|xV3 z-)Cc*b>&3Sx3+C=fq64#&J5gHlnScfRt7DdVN+>zxSfBxvCNW~$tSlprcTKTUljs6 z+;E<4b=%ghriF!tuYLt9D=V)GTkEwk>1ao9ud0E8!R_a(qqpnzN}E4>a&q#UTU)zt zZ_f|jS5vt+E;tQzY1Ove+Z>#n2XEh=4O-72XImw5GrUa1+goTh4>QrW{knVmcJt%?^6XQZd~a{he{TQ(CqIL@UW|f{j?P`sovzI3 z>FIm+?8&&YBCzqOo~LH&*O|q)x8>@@?lL)i-PzgM*!JI!!p9Qkc`@rApI+T7ZGP$& z`=on&5}i5L&!42~os^r)yCnDj(z#x8(--|XztFk;%JW@*Bso>}!!wNyYIhlZidrq^GjC1Ezj+3Z zo)YixHp^NkoD#{nAE$OJQZty%syuAp^6GB~4!58BUiio*)uiT7OZeiai`|>|+jAto zSg|x`Ma)hk(0;`G_vdF{Uk94d1fBE$@zGJx+WZM+A=X<#QzK%!Q5!NYE^6Y4tnvo6 zNj7XSsQdr7{MnhAhnLT<16|#u5x2+U^Ru(3zwEvBZL3r-XrC?U%>{QvL${|{fk_I7b$SslK9ng4vdE!o%C zIV4X|(VX7GU~eC>U#{$3NLN$ndcM584OONlSs@kI!uNCb^d3CwTG=DFb`A6Q&%s<9 ze*QSnZ?Bbo>+YR|3ks>v8bV%#u8Ejb`1y0?>$o7b+spmupSx(e|HmWl(yCuwqS{5`6>=h)K`ry^|4H_`H48K?bZ&pu z^T2yj2uJL0Hsdsn?9S*d4V%*w?^vYnEzHn3Gn3hO_9++Z{WE7dy}q^~V`5On+c%LC zMl5`CA$cWN*71IRrkQ(j$#thrAyozrZtl|;eYWySn_bwD=$x04t>_WNwk0+L6sFJ4 z&NjY#{oXyhyDqoSo$KSb`=M}}&*Iy+Z=l-=)NV~`@!7`Bnyd8p(NS*D>A-pZGjp<6 zYaKs+y!g=(P6ioSSxwMLT2Ib%m$S1>K?_J2s=vSUHC`1b5VbYy=<@k>TpGbImix{Q zdtfM%R#;e=VInoR{oDWAG&P?Y3qH@gxjFr{>O9@(Z7Ys%IguE>bZzwZp!IRKI=Z@7 zlUdl=U#se^WRS69k+s&kJZ-veuv>tBOu(c)o|C7%dN}FfmG$d=Eccgi`ps#0cJ|@_ zfBZ7C3(NCU|8D;h)cX7Thpmg5`SSPcD=VF+>&1eOJ6;{O_R)`zk6ql|i~s+t?US`WcBE67`-PXv z%dhH_-#R(W&S3_vey@#N8)fR_GiByK&FI=CG27S5-sR)u1g-h8v|7KdH=?M>2(%~l z9P{<&%FoYMn)8V1MjbghS)EtNJuxLWw^yKP!2*TS+iM~>8`b)kl$e~JuFt-p{{KG? z#UH<3um39Ke}7-CpwoqAzOzl%A3b_BaBJ4plHZf$?Ca)$R#JU?d;9Z)gUp8xA1*8? zxZv#*WLNc5$Sgl>ncnu?)mv8F+Q^)DHz+FX>dNF79815LWG=cRu(LXR=Ck^*tBh{l z-K6^Fp6>NB@uHoc+Z=Za@_%?bJsva@T-&B1>J(Xfue+}=?bVf)Ik&cSf~LlA{=c-; zd*;6VMNdz?xwCUJ=-hHe=e7_3e!pM6SzpETl;q4Dai*!kAyf92y`A;z&Y3elzDJam zm9IKw{r>(w{QE_<+n^KAZL7`PpO==GhyQL`7qwOE@K(#8D=R)edS&u$$r2UNjUaUy z6XHPixl=3Go4dQsFNfuGi|HJ=cyS|xaxjOYho7ICrKRQB?0fg_aVUb;8-dQPS{VdB z_I!8QTc-ZtQ_Gs!r(V3o$h;uNGIh(B4~Z{sg|1wnD_SQec47Vepop{Q`Mbng^q-z(#lFxR!~rIj&-@7|8dZPq@YVLmu)NG`{kCGmlx=^W6+|1(AL(4&h4P(bP4I{ z?ss>U8rSA;&AMvvYkP0f&reS?FE8Ug+|Hl=@zGHkivoq?-u$Ybr)+<&Tq)pTxoNJ^ zO}5ls-=}Ja?cs8Yap1AWnVz1W877%R@iiY=LDPlD z`(!h}RepIPczT*{^1nYndE{(%I6T&l+M*#SDEM;UvcDI?H>I3x;_*DyyFlT``}&73 z0t?E+-8Nl*&9A#RE+%&B@t>c)R6kGCU6}5l+WQx@mci;}JUhSKm7PE5ZBkvfb?eq! zS)jFu-rn90D`&;5i7?E&v*X~t+TRk!X*|!KJp;8-{r&y7zL@o;s*aQrzgM%goCz9_*q$E`+IPG4L`2@Z5I$L}DXiRL3M~mo zyF}SMw=sfFZwB4xes;EbcKy#4$0 z_nw~KnsFnbL&>!zVw+FLlN4un710)P{gxS)!5qTEidH28kIu#R+roT&daSZ`=HItFvcENN%j<3H0bS#EXLou3Qt#G!ovT)%-4#gK27BaiJxq(ImKA)kFpvYH_D z-+uh?;lh7%CpNylJ+&$F?rv??3!iq@UVnLcxui{n!Bnl#Lzga10`1(`U6xz*?aj$e zsi%!%KI=c-e5`ls)?eq&dA-lGw+AIlf$Z$pCT~@ZtCsAMoGl(07-)5TZTx;aPEO9q zcgrtkRJ`B&-KeMf-kwUU_vHlz9-IC1tcq=_zHrpn*MkbGC7zQ(yVF8fg&e$gO{~8D zzt8>X$M^5AJlZXO{OHlvMrL-S^m8(x{rh};)4ZRmyv$8JkXWkOdUCS*>fr9C=H}8k z?f89r7+m&NeQoLQ@85O5{C=%^ivXzU@@m`5%gdj?`V+j&C$N8G*40%u@&0jhEQ{Sh zTdW--qNBUD!`Dfe$kkpvZc?N;Mf0($_cW1X$Buz+)=L82z8k$g@6~HbU*+u^Hwrd% z^!EA|_cb!Jb2+Su-tNbt=yGw9E33jho61RP_pM4_z3@@K{_5J=+2>3?t=X2{AG*Xt zaIPxz-Cd=^#m~;1d~ti?!tJS2KTl3pzwF~)Qd%mSeSMv%|9rc%_Z;`^X)!PpJ9OFj z{_|* zQC_a7qucu7Gw2)`zNclkiUR^BFqHgjTXJoYEBD9G=k2)_r|h=}O(cOP=s$_Pe|dTN z)%n%@{QW%NtqUKuXhd#GS@&pP+1ptRE}PTN7Rk*2_Iu{d%KAD+ueS0&c=CirBe*YWTTbWBot6yse?GD=5IJ}uO!I86b^F7^?W>PR>?l}h z<$6~@$|U2!m6gGaOY1*BIM|#zajnRjwQD7f(|9~RJ$+`I^;Uj~@<&F!_%=o72i^J!7Z=scH?u2!6#}}{=F(Dc(ERzz zz{PCOo;{nQ8Qcb%?KWI>;k(vF+=kxZU3Hr~^&L%%P(#h7ne1oKEmI#P@ zd6{p?t1F&!M%w%I2Uc7FL+ zZ>>P5zCJlQ`RB{!^FhaW{e0Li|KrJI|B|SCPmUaHPQJO*INh^pTd!Z)zvw*`A9LQ% z{$=ahB@&oF<*94hX&X8Fx-*+nPe*Lakpvw~d}4y)m-qMOqobo!+mE=sxGSA?twp}> zM6pgJCoga6xjB|QcI^1@^ZEScyZbk8Gz6^<0bMdB*FS|dIXPmlR7_051BV;i{ntI5 zZc+7R#V?!9pwLcCJb0{E8gypX#}6M496j2ab#>Ltr#F6mx~VgRFA=sDAboz|_Pp4v zD=QqozPbuJLybokbQC$L@h%kk_13jr6(5yktx6uexVYG+{@ z+oqLURhcB)T+;|SBld?LRz|eb@=*cFK2yGd|GO0Y1#SX zM}>3ylRDT9pVa^`3t1_N-jRmWmG#8bR0aO7*H;{#qVc zSSGe8e!ugf>(|38Dl0p;W?u*0p4K5>_rvkbOk;P@iPK4sj&y=9K7O?Myq)m7ckd3J zJ?pzA_jZ^`{=JwTJ9coWtE+*|&mM89xxT1%NA>r- zb^Fg-K78~@iD6^<`FS$?&8>4^1#O?cyYBC<7k77W2c2=I>NQ1xnTNlIYOAdvP`2Zl+sp<$iWJ&w@@O0bNWFx^8~ivSo`xRt7Dq{{Bu$ zLqp^E{rxtt??!jH^>Y2&6SVHh@mX&LmEAfnE_PoXpMK@pM$jVE+gt0aZ*9q3yxCSw z&CT}O%gf7KdwY8YoL0WRu&=h75p)fgk2;(4`kT|%UQzKpwb<0?rXJ`#A039k<$khr z--345{*UIdK&J`%_supHo=viB%h~wAqWN7QdGGUJJSx zQz83Q4Ya@E($5W-7CN{4eD{CP{P)q(?yJ`qFIseDhGDYHQm?5kpa%QKjo>J5=acm+ zUbA6?!NX_I)Vf5q)pT@qT@SbM9$go^yTs0cSJFu3Zr!cFzrUZ~aQ<7Tu==GruRou+ z7jLjAdlPYPpQGlJ^2RMcepG-ie-acFRBUQ)c1=iF0BY^C^T`NUm%kHfz z77wpJ`~3OgD_24)s;Zv-KCAuq{mRMe{?A_2uFU7Lt@{)4{MdwT5tFBVD|hLavvo;G zSkTekE&TfWdhv!AS5{7bac%8v4lXVs|9Lior>E85QhEi4yz6ee%1{QS)1xW~*K?uBT{o|=76BkklQRaVfl60H`2q!SYqU&&8;@F3yir>EYghS?Vvxvoq0@bMA( z_U#*!z_xAMS|9PB{rmg7>rA86E3fbFDqX$M`P9_yOQXv2*2L|N+OcEDla~_tm%f{; zskynhyMyliDg5~LEnAlK>dHzb1A_pS=f$E$igBv9 zm;22?-lRtLDB<)w8M>)QspXyZi0(a{rz4R|%~tyZdda_jCqO!|%%VviJ9TH*N%- zYsB#2%uM5*>+a>Ir5yv^tg&?elQv%IqEeaKO`A6-e|~mWLRy;HAmxOBle06g%+w|R zr>Ev#<%#whOJwdx^xPGwsEcsT@5;S?D8_-%-h>?r->E>8=09cbL|!bEkWpT zY__<+MbkL_+>xV4S$!Er_GyK$lUcCl>-o<6_5Wor{Iz92CH3Dd_tu9uH;uPSJA19n zw#qm^zpDD@r>8rMpZo244%)C3x3|jb_Nyx^op%;JwW$BM=iaX~%eN&T=j-X|0Ueuo zuB^Jc8njw=rg1v>p!hk~vCp0btdkLWV!8DCtlhh(DRi2CA1M%vj~Q{R3! z&%D%9`T5z$FE4}d+`Vh8%cki$3ABKwOmWg&rObXg+ehEt-rkabKW=T#p6c&;3{qw} z92##oZSkzk1DzdZ`wev2!=*>c>p_uynQu+``+G-@AD6b!(%cT(iSqs3-Oldr8uDGbk z$jrS~ z*L;Lc+}9O}x~=;&ZTFkk+s-@*kD9gf)Wm6zGGbBJ#eo&1&aGSJ@R77CdhI z_TH_7=hm)L?ZCi5&`jTf0}g$1w!h9ipJARa7Z(?IX1=|>`-rB%Yp|E%aVS+Sls``f64w6ZFPGj6H`-<^4tG$ z_*h@}^Y^>m??HRAS{DnQUtItHpT<(qS#2*aF8(FNG12aF51+rkKO4W?8PH(h*6iy) z{{4QRd4Hd6Sy`E;e8hgcmR84%jBQ7w7CNyW>yUymZI;E)K&z^> z!q#wPmwuI%mzRT9HKg31ZJuBB z^wd<5^SSx?^HnUrfBKa4?#@nzk~cR%oxIK2*Vm;S2VGV&N!9z)kB^U^?^~a~ExCPK z!S(g?Yp;v!ymho&{N?ra^85dM;?BOl?&!I5eD?PCdH47I^?6=cQu1VaeBHr=2ODp0 zPEQZq;>0o0R^{e7N1^_l=udw#C=~oobYNDqux`qQd8s+on$!U%&5{ z7K3%!n}qlG_Rh4Lzf(jjq+_afcv5mQvqM6H!g9a4n+iglQs(!`S{FS!!l@Ut!yzC* z0JIn9zx|Sxj?5Z?O#6Q8y>9kNd2?eU=%5)!W;TPOCmv4D&Xr$YO#H{_czKyGXwvI` z{r|mnXQpTdfB5nx<;8`CYvT9Md+{Q}$=Mk+8f2b#M?piwW4>Qr-nnzL>&FYn(pQ&nSXq?;!x>5Pp*VmvHv_!8P==R$Qiq4aI>eRzFr};WLJ9Bb# zC!e2Z3p#n*tyk*h_n2)tk)Yjm@Av=r3keY^e}50uf$EXBpZD_e^7Qv_`gay@jl11x z$0DX=>b6+0zP=u`@BZnjsh~qxL3>B8ua93Iyxi}|@#FTFf36Byd1#Jh@g|KZ#g-Fp z)3nd21x>QAuVY;S8mp{c8?excD`4NgeZRJOP1VwL5Y>qYIC}i}YO~y1FV@x?-M*H7 zd6{pO=wrRuT`8|(o|&bd60tSY*I%z2pFMacN>aGIC+xmO! z|JQ*o+k5)(;liApoGFthPhJ(heH|AUS5RSL;mL33J!bE+t^TI6dWT)w8Hv&d2O3ju zFZY?b==%cyKN9A7bL#B!^YcUZR1}uJx}te?S84XsCr_5VdGjXZ@v+{?Uv8Rp_Vk4O z{rx@s-Me?E&Ykl!&AAaEYf<3vUY~D;pt9SG-|a0eE8KdeG}+nNK~4bG5l?E$-`xp3 z+{Sykx?5Z;#A9pLRjD^}pZ$ziv|Q@qYR6?fLipw!LrR6b`yGFKp@G@AsyA>*bpd z9{BL^@XtS=&ohFK*N`^POZoHTBLir9W>@L!G_84{12lhpNL;gat!44EGsdA#=e)c$ ztx8@Tm}Q#H@Z#E9Y47QJTMI%mR|hi3Rr9L(Z!1yJSNr)d%^_xvSyW~+vvs-Cy*<1B=FW*_tUsJQdiS@_da?J_Tyg_GgfyNpaU+idZZeDu$3ex{vO1{qG}CVWP6-}1F`bA7>x<*J*=o8S_?=L=|%=E1?{%&V(JmwHV-bn;|p)Yhzvi{1N0Zu4^~9=WV?^IW3O z$;Xe6_j7V{dw+_0)b(VUQYNpI$%W{vYvT9I#mC3j&Ofv6HXG>tVpXpx3=e+4-~asH z-s+il%Xf-s1T;K7J$>@``4@LKGP4)`_>jo$uIj=UzRyM{V!_(Gauxzb4%zk-nU5TG zoUXT_Q2Ean;XlFuojE@0FTQwUp>sQED((6C`ToWCUteEe{QTV9oGu@ZiNT(m<{nPj zqO^0RN7Ou<$}di7>i+Xow6wZ{mU=O6$iKhO=Xi2*@?p?+!?(U^*VaVNv|Da@b!BjS z=H+FKQKAp^Vs|}R!OzliVxm>q6}KJF&o*zr*CcW)e6P@ZaoWPcb84k3}$OSxS-tM zxer}w8PDM>k?ecSz<)A6jW77Eyw`|K_U-P|p zq{YL(o$tfz^&84`udHTY?jLQX)D0T5nf!IjJd46bOAnuttNwmSd;Nip$s1C;!?wn8 zFgA2|bMs1@Jpo;V{p!lfHPPGqK0iM%EGg*;%A_`CDk>}u)!*M0zPO+Wy2#zFPX@Fw z8Fb$r=*Y~nJ52(I4uKNGC8?Ww0Sg-LCEqgXmDy5y8@ey8t?KJ5#wbC<;+{NfOG`ls z362AEt;>VnPS4h4Yi?}i7JsGuA5Fn&o_v^D+FW1y0e9M_IYo>nt zkBT2(f-|moL`M}o=?F^=;F!4X&(F`Vy>A44z80N-ad&xsO>OO0#_l7Rq$U5qSlkb~ z;Rh50pnW0N)<)0lisVR?ym@0wa7xSacT4tly~~BX(q=si7APboCH?sG`8+2FhsXC`HET;N zt4(EZqq45AJ3H69{KuQkpyj!2cXyR;F3E6ulJoRb=G2q>e>iE+GOM>cGlTK}&;F&# z!jY+u-F`e^wkYRQ^K0q1W77WlCYGaE%BG@V()#>+dptcnI208XTiV*xW}cie$+cTd zb@tpBj~;<`NKDlZf42F&-Qlxm&%P<_e!jWrsaM#Vh{Tr$abEFtKbOYEYpG8vzbn4TfH6=jZ35jMU;}+WDQk z#V)K84Ozva?w?iveo_Ya#HXPBx0BU;L0cS+)6QI|5BEIz_xJam_5bTOy`4A_w28If zwOefI?MH7vJUpy9&pD-cvbw)l>#v-$|Nm-1M*uBav`9zRYgS5%HT$P8U!EN6mDcRb zv5%d2=k#gr20mFU(0YK$6DAz^_4Re-)2ZR0&3M1Ry}j&yz&QKIhlil$`|ka6hNZ7U zK)b_3`F^XeO+7sgbYIj&Wp^QIY47EJb8qagw{PVZ-v)}KntS&?T#vtX;`xTe2Tzxp z>dV_kMPJt~T0Yl0@s>$$@4kNioZHKM<;9(zc>MhQTwP7A4YcS~Na)bZ%gZf`pY{B+ zssH!q*8(rEq@<)3p{vC>IXOl2<6_h0g(y%*`a=q2Rl`pz^;t$4fj`j7YZ z|3L>t-P~7ey*>Z_vl|Q*IltG-!4QwDxXi(NoYasG~_yd!wp3CTdUB zVwJDwNj{$Sx*L1zP?>?I6-8pdj zG;8OnU$bUSfEQ>F%x1sU^wp~_zWu$s$@TZX_cs=vwc_BKF_V#z@yL-Q0zyKER)wyfVU+4MY2L$^UpeA8 zCb61kUpsQ~qM*OOe_ZX?t17mKQ@wUo%sg?ynJ;8dMPW{EZfAG*=>XSHM=qcF`}gnH ztyh-$t4s|7ZEn0CSA90euus~&4>Y#Z0NM=k?Ck8>Z|^*N_Wu3(CnqO=<$C(|*4E_f z>td@^%N1SJA|f+6=k@c~{90+&TX|VcS8$GsyS64X0!^54NoGgl;@uZ)dqo}9nS8uy_;z!Un%Vwp{+f$#OpMPKHxdFgNeH{|~k&=#b$=jZ08?QgTJ{e0HErM(?= z6yUk}_WrlG<${8xudii2?$RizRp z9^M;jYYyDJdFdjz;t}KQTU#bjf#a;>`8PMUetmsi z{dV3fNxQl~6|b(Z&;Pc=mrvdfv}f@MsC<2KaWN+k&z0B8oFCVy+&s7N)O3CDDXTFt zGU4mvmZqGX^b2%|Dd^(B%gg{;p^vlXw5xwRQLR{eAyAdi#S%u5Wj)e7j)r;%^TfTe&W5 zR1R7D>wP=-r|vldk62T4bA4}aO4W?smeZCNdFb<((xu9bQmif$d+Fkbc zOxgNJN7YZ3@rCZIsr(DN+cD$Xn#f7lSBI=TbZV-$r-#RbD=UMqtc#7VKbv51VPmp; z+POI=o7wrlyagRnUcD)He_ib?)9ho<&d$EMr?R+D{w|wF&=Szeh6^A^3L2Nci;0Pi zovE{QP3wuuF0rd}`}VDTFD(B3{fbY2fB#oI78rQzaK@Eyo!ys((kI`DsQB^W{(5fF zOOuL(-Q9Cv?V3CH+ntk~Tp}0dSzBdw)+}_orEKn3D6Y>_US4ih`YPq6L7W7rB^8@ay&Z;O%*_%lzifdR%{B)Ux@H$jODLrfM&@w=aJev+4T$bsqC9ZnC|& zv(wl({hZIH-1qnP?)m+0cUoUa^zOZtpVJ&x8|+Lz&bK-K@SRiBbiE4-40NNnsi>*7 zX$CKQ@aom6`v1Sf!wRf+roSfWBx%pw6ayON~kDFzZ>C`QzJHxKl>fXJ3 z=gWj2Emb;M#`pB)%a!7e-kLZ4Rx4RL?5+Cx;ll?79UY(e@0-%k&(rDL8o1bPOV-sc zUTL!p#n1iz{rT)4wLNdH>UE>#RbO9iOgk%eYg?{&OpJ_t?H9pw=gxh3fB*iag`A2l z0!|(2Dapx)Z|Coyn-X19WAps{{O4a@UcR%p+Wc(k^>%*wb04;X(&yP(rj?I-%{9W- z+$cV-6PL5;lzscAjTgRh6x86LfqLw*R_Yr?l69F!)%sD&(871kaO`lhto-J7QeutE8-KTobQptL8T+V_NlDO_iJH z4*L9W@O`^q==5au{y2q4FTcgB&9yG~`?NKvtM>P|RL3O`9zSlLKVP1qoljQD!otFP z-DFYFu-2N$%?1)YprjbLx9X+tS)Xg`Vo$el3UhF9Tv)CI30m>ypso!YHaxfb_VMxY zJ3EWpK`Yr(PfbxVog9>GBK37*iM_r3lpswzq4m7xQoU33`XmK;5HtmyBruPN(iU(1c(TV;CG z|I(}L>*wc0d53+uZ8p=QaFLzq^T+-6e%}}!{lo+W4lMDU%+S%@efa+U`S(Q%Mr{-7|M{LW9Z0mo0c{x8rx46EaY2Swr1!g%n9M;F}HIhxw z0~KE1N`9|juBta_+NCYx+S=NnTO(9%Z_2v6O;hf&dXT#Ryp*4xo<^3fU1N}SMZ>LM zj`zUfcK(+)HY(fy{UZGD-@htu(+g2^=Gxca3rYm1DGuY)9)%_idn!K%?JP>I`ughV znVH5vp~uH)gs+o1c<|t#_x1l5*ZuvK)}8(O+S)2xMRj%cbMx)j^K+!S?W_42u_=W! zEG!JP!&^#f*22e9CK(PtKRxB-=DvLUzg_OfM@P40Tx2RQF9%)a^DvJSG<*5x#zx6~ z?ROj|y_M0~+x4Wgd&yF>se7Wg=Xve}?Sr4zXYv1i{r}6+sXfx>de?n-&NImrlCS?` zxS+S7{QW)KoBa20+=yUeX4Vy)2M*~IOzG$5cy2p;_;7RC+gpZJUot@VIe?B-{P2Jg z6f7Sf9p#ZUY7x_oO32U8|5m}qCo|)bNPcnF-Cd^1$NN;RtY)2?YrT9&owe%T>hEj` z2b)+m_w7qK$W+VnClwO%>)$S48a`2GOV{nr$=`l|e{Wy>u{}KyRGZj8*jfA>wA5x= ztoCZqIRDDvi0J5Om3Tj;TAZgXW-)vNytgT1zS zPuJ_6JXv_cuM=hy*4%Ii^HXKd-MejN(68n5>t-!f614Q~l`_4Q!^;SoZ&p%L+N7xj zDtb63hJx-a1hw2IC_00#-(}?zIk7E!edK1f$k2C@o6}Tp9>0HIe(99B2{%%npPMUV zS;WH5&c0{w-kHYfd<>wokN54{rxU%6XQ_yuo}Omh?Ng_^RK2G?c=+((p32V=n^HV? zeVnEd*d(SK_2I+A!zr)#it9u;oS$dAapT6yY551ay(hhuIdkor7(YM1!qac@Y|V|Q zrfP%EmH!xW{_pjB>pzhbSF_w3yZT3ZY{No?)*dzZB9%=7QfF~479eE0F)J9j`g zK%1GFv9PeDWc=NgIjiE)$|oB)Zq$k2H)mh%?=*{V;&WAQTh7Vk`mwY4dC;5K*tJon z4&Hx)Rz>gytPE0J6~2C5{ao3-i;nk5Iv;FeWdt1*u|4nZsZZInKxZq+T9tT|t~z`9 z+4=eBx8>g6WT6Fe9EW1i^_|7(pq*-~LRV+p*q~Vc?hfdT9Z9==d3SgD%(t66V}^uP z`8%JSoSa#|fB*gsIvA*tnf=StHLJtcE{fS%R8^;>a`W6rpOfF3+4*-AK6cx5eed4A zU!S}8%lUq_>EvEI*Rr^+`un??hNqrziD)e7|0UJyws&oq-?Ax-{O8-PTvzY^b_OFe zn}E3Z^wx=x;(PkZ>+$tx&&)KQ|8fSWu-b#yuTQ_byZhyxoyEJnmFAmOd`Q?;_VyI$ zXk3eegjv6zou2M5Z#v(;e&4_4Jz46iC(HPz$GLv$QM(Nqe@QT4h-%uAf8Wm7ZRRG& zX12ghDV_}b{(ieHvi#6<6}QC`v#zds`1I*lpX049EiYKFf^$*JhL*L_+l53$UAJak z<>2A*F*f%&yQlK=hfkkCi-iAtILx2ydQ-+TpKU(g~pEr53@Z)2>$|@=?&h303 z@BjZdT}ag{<;4xn;AJU0>=%Rba*M#Tl8=vEK}Y=S@Bee?*4FHen>Qamf4=|r_I&%x zl`^ujKc7yIFDNKT`1a;z=DXyBM4*To=etEwC->=m(m3*St$L+0nIyIajVrNn6H1Txf>9b6;jcR|D=*90l z(G>h?l*rOXkl>H)m2kp?L0MIe|`Ui|9?K8-}CX9bfoZ?V9>=_ z%Y0{V`nxOg>A`09Gcz|&OFTS{v7Vv-U*%GT0x6GLk(ehuPft1W=_@OM+M6*CDktSm zwA`tBb6Vz;oeouR_X~-8T9>_vnDyLi&Xcr~st!xg{W=lR(aaw%y32q3@bGZX?y|5A z+qW;zy=~rTnsdLd+qGNl;<{MtPfvFGpP%>NRrATjW_e-ts9*6D!0EN(qUWZ$+%qQS zF1|P;Y5%L9Fco$Qvz!_KYOb$~y}9k!joY`QQn@V3_ z1C7LFU0ZYV>FMdZveUq(2^?xtxp|KDlJ=yqWj>Oho}cGmGCxOLFGeCfJltV6*WTRQ zX2x!_wt-5BH*a`AO{SnX((`VMYKQgk+x>9Rk5UJx)0PTLkgGt)`SGx=3R}ySak8vx z@m0{>n)B*wTN7Xv32r;ax&C(HCE#BJgY*jrT! zI%@+otN6KQu66mf`Tu{tUN6z>X6!Q4(7BCgVa?A^3_1}T6t2E%hiK-QI2&Z~6zy=n z=7S7N=H=L*-t`tVdw>4%qel^&(|RQrotd$x@-yhH6vhb?CLFl1(0Qr(R*2spwJM)1 z(*te0+n98e!D6=8`bFuU+qy-y+uGaP|9xHL+I>bK_1Mqfzb}Ih9@M_{?X>>>l-FM& zjY0vX)t;N?de2xEx7@V%&J`ECy(!WQGA}Rt_1Sl}*;4DTckZN}nXzy?leAfmgrT9~ z&8k{RZP0SUYf{d0p=G7FzrVk)ZewF}^EDqI-xSSYwi6MX?k;d-{#)tf#N<6q$1r$_ z4b-eT5s+vtNQfh=iBeMTlDwEMP*Ri1kHen6Tiiu4^lasU=Xms?yt)2XJ=84_Zxr zzWyIG=v<`8okgkJj)U?AsFr@F2D10vw|E9#X)~WsUr$Zd-dX-WPHj<58C!GX`u+cA z*;IaFh}yX2&70r4kVGXAso1}iSwQmfg9i>57rE{%eC)RB?S8LmI-ZS8tUJoz-z!$V z4XVGRxAh!2;IR3~oWQHALLcw_e(&+>_4^*Zy1E*4F6YYNI-|Kw?GMS}BI(eX`!$AI$9U=l}NY8$;FY z4VJ~vW@z6@H%dIj(j}tFbYOaX-N}`~%XNg@!@4>;4kQ@7=ns#pYz3WMy?g$_1ke@P zVjU7q&CQdKObpu7={w&p_WpL4PNAD3O9h;s@PT#!e|mZv0tq}OS{Y8i$w3>QjGJ__fz{Ubi(8J z`d3$1zdk=dRjbm;scGNa-S78R-xDwf?Un-dCmLdRml>A7i|IZxQ8p(xx3IJnw8%y$ zdYg{-x`m*=mEy_!Ya!WHsrtl;GQCeFzt`_7eXVx;`AeltP?PKPoX+dHyLas>dVWrJ znoi`QFE1|_mXw${Uy)2VkeFdxZFcY8Ji?E@iR;f>TbR;b^Yhcjl#@bn z)o)Fin3z6%{J7Aml`Cy;+vLf@&(F^{e{BiQ<}O8`Va(#^=ce&JUJAO-*t>m#qS2DREE8r|0MWm;22vC@b4m zqLCS_blpIz_f&#`hC}JwTc%h4YK5&?!SM9u%b5#5Ut1Fy%y{bN&B&WKZfH1MT_1lx zCeeQLj~^AGi`{rxH5}H)?Y)(>ammv&l1m*{9&Vrib_X*%pGJCm`qC*upyTM)Mr{ph zcy)h&{iMI&-rQUq6B|2OR$fkS9q1%guc=x~L92#l&z}A2!op^&IT{nLt`2{F-`?Tq zv14kM$6sDvK6U>5`KRXF@87g}bMV&e>tV02tqndq+x&X}%j@gs@7q6r{(Pn@N4v#C zr|ZQ|*}QqPR>Xz{S+}>XwE~S#N$lObH}vD9qgO$@rn1-XT^7IGbFy02^K)}ge(Ue( z2#~M&(5Mx>tY_24je&Z4datgA$A``~&-eQ}&&kOt9f4*US3+t1I!!Pg3`ndv<2#;{FTlY-~c3l9>}D zHqDwkRn&W$&cVZnL7VP3rktE)@_m2dW45i?*VB%6iJqBfJ9~He`%R^%F(? zE9gv#5BZ74_V)Wzo`Y`O`}*qY;|B+u|NQxU9yH>gaFD5~sR?v^{cT?jon>#Ow8Ph>9Pg7Yd3{ayXhg4@a${p-kDTo+&{-O_zso?DY)(6SV_WX* zefQ7KHeVUL+YB^IqoL8!(ZTWU?d|rxdu>5+^0?yHJSHY44jvxRVM(AvtpCSB%GeW} zDmTxi?%A`4Ay=w0t98B4$!$Se&YZ=MNxy}Y6&DvLAMFwaP2&j&OnAnwx!A4u(Wj@U&&)7vz8+W2>+bFjTJ!el>FGc(!;A|H zO4gfKeaTQ#R_5g50!=0VvYe(D>*eF)Gwb-b_xI;leSP)t!2^fQX=gL8uajlxlkwR2 zsUjpqWU{*dGRI~%3oEOj)nU4z`8+w>swpXz2UY|w-cj*U33Px!?C!EB=jYGo64lyJ z@-pbo-MgT@mfQ30dX@bXRCc?t#8ddq+qWOTetr7!@o~+t7m%v(kPyh{J}1j^a&!_C z6E)v`E}6LHi%HfMkNUdz_iXpZ-srdg=MfSTl6L6ql#`RyUn~Cv?S+4SZmw9j>gua& zqo=>Tyj)mV*!lUnxt+bezJ>cAJV;oxW)0{Pqe*W;BfMTywPdVHIzR`ARIauE_k&sC z=B-6etz3Z{la8A7uZ`VZHfg=@(bwzZ_s`3@U-R?R!`H88r$lefx~dVjMgr7_J=QDD zuqJM=6zDu}+9a>C^M;|IK{!r}WhoPvbDfl76{^XJ;3@5|OcDkv7lj z=ao))da7Q2+1uIX*}q#`94ahq>T+IMg9=d>J(a5`iY0?L@fJKgBk46&YiiE?bl+{= zV!B?SrQqf7WI*dVKRh_dBX1|O_~HrBbvGtavqb02nKQ#QTdc0GPDMrK!uI_5J{ilV zy?gh%K02Az%+8B1CGjZm-ZkX1`+!R?8O9V)kX`aGI=9CD1@>XhFi`f)Pm=H^ODN=8$1 zn$33AzPn?&E^eO9* z*!Sm?clVJ=vY-WX6P4X(*w@?r{PfiO)2y{?b@lZ0BzoPFl9Rt`eL8>W+BGqCb@fGy z7aL0To)mib;ll@?qw^!OHY@pD*NE9+ux;Bm3u|j(QBhaWYU!5SCbfGqE-p&z_I{G| z@#BZ@_c!Fr%h>ZB@5@|#by>=;1V`PUx{*RzSDEVT3reqUoBgk(fZ=kx8yoYE9e=9- zRezsk*WcN=yL@ZQ-*>S)YNgl3w|h^2@FGxmrTNvP1!ZlkLbtYWH@~uez3ucUCMOQX zBi`Q2CO$Xv@6TDjtm^A4hB+36N>{hu?NpuTRrljV;;xdHOc{%p%r?)jyH{}b(d+g5 zuPxX9fB*mA_(_kV^rhV0-Rpin6_=5b35qekzcJYzv?Xy}?Cwc>&2n#BsU;rV=nBo>pbC8}FWUmyDM@m5CJ-l`8zr*A0NcX7@1{CL0K zxxj#h^`N`F`6-1lsdG>n!egmmq(0#0SwZCSR zvfMm)un}|}NrR(MMUI#X%Uf8m-%zm!b!SDB-xm^E)Dv^&(8#A68 zevI+4UEw`NW8y12ZgIUU)%^dzT=ti=%71xjsptZ)X*w&X1g$E2dy6aJ+O=!1E-m#= z>$Ekl`ub|={mTyyHtWisGyZ;aU+wR*Np=?-K7IV?S^6KeuJ@?jZTOPmAaSH6!@unO zzb|16>6fz=I$G!U^Y`!7e|~<}uCA^Q-CtL`HTSmJ)g_+7srmWq-)~PpKQHCEq;XnL zkeBN1d)soOzy5qa|8=~$eq7Ak`}^Zfb8m%MT3KmXTU%e74(q?DH$!F%mrLT{D zdV1PWg2%oA93=s>g!w7M9en)r3AXCXye9> zG5cz6URs#4(sOdcLnn*sYnLYOd9p3%;~R-oGszqot;OH9!*tx zb*8wi?AmohbrqEh>*M#A{C4Vol6P;9=fNh{&ibssFP3^wx2XSTb9R>L=75w(OFz62 zJTrT_s9^RrA8o5`35{lJt4<1KTz_}eZwup_w+pkwb8~<8O5ZB^@%Z?{vfQ;BZu#3E zoUA^rFX#zFUtgaDPn!zAwzf8xh(^Qq?dFY*jWSjxCoUzLy zbXf)(PXJBL+}iclrt;GZ*Gqh|RxWO81}c7=w&mPxTDx}bzn8z?-roN6>GXIb!L5~h z{{4Er=j*j-2GH7-#KUco7K`q@ytlU+G?5}EcC4A5AGGW+c6XU-{l7moe?A_c#^=AM zL(cx%HLdU!49x6@wAW|sT~q$1LC$uI)|3Z%I*CQEB=3__(l;kki_ztuHPw=jWHR*-)_M*~Wx}Obp-N z-aZcMq{{RPIHmNd+}?TN^4tAE!JE^39lY1*#qOH&uF}@VMk9C`&jQuk42_MA5&tjm zQd_>|4i^{Kp~HunFSy;gz9usHVMo#QMXueO3Lm>EDJ%axU;od!k%<*FE%)^F^z{G# z{{Gs}sCY)rB0{@BOoAi#)`6YHw`~5^*SU4p|9Nh|p=jx~b8FmqbHCg^?(Ti4^+)^G zt){MBA_vc(?>{@++_>gPftX&5$M(FtMqdtA`AwTJ;lQJ#-JtcI4fVqBr&w57UD}X% z_zjmYhvK|$mD@W5TDe5O?7N<+dfU#Y({wJ{v%I*!-`+g$&W3`Jo!+0HosHa@B`U5Tr=q9VH`_cP zv>GR9TTY~RyIPz|`1-8e?N()1wA$KRGDMGhPuWnCVj2DO(}ogF8B3<4U71tQ{Qi1* z)g11RQ&t8q2VGQlYioAozM7p&51*XED{VGG-Cyq6xw+g2`0f8p$g}oVY&mgK<>t9o z85tRkkLUGQXKww!YG%e2jm6o!=EZI2{cw<7{>AOIb8~*`EKHjT8oUZVp{%6z;_mM9 zb^l%BJH$^NYQ2^5ZDsI=OyNHtm@BHHtXADw8fCh+;!c<7hu`l5Rtni%?T_PVK6v0j zBQxWdU1~e8{`vX&<=x%pTeGf$HcZ~xRqD;v$*EXm>bb30^YX5@7cK+{2?+&(d#_JU zPv<}JaFn}NDzfxF9c9e$hqdA)xBwgML?4mrD) z@_UW@Y84e2`eZM=r5*kJ`ikf83y-dbKm2z^(ABF`K{LlqC#Zxo_n?T30?x`%EGiMHH05$XSvNyN3Y9FoMQT<)- z^|iI2ArQ7Le3}bXA9T)KCnzj@cwOx7FR!1ToUDGb4m1aIV?*K;-RNncInxCWjG)cc z|MQa1{T6fT2#MVAe#VKGMrQU`wQZMQHO8(E(`D5#H{Z@Pe|OE#Ph0`--o5*^&9z(X z<#lPZoQP#f=AeB(n%36VtQyhL(WPHrT+G@1ZS%LAVwUY+Zk|(m_|WU>s-;slZw@+m za9ZE9qbB9+f_{F|{Q7FO*U=*pRn6goj^Gx&8OgACU!CWp7r1 z?yl=`TO75gVk1+?Y_r@c^XJdEs`;^@tFJHYe%4O7|p?j-Jr<&)-Z7qF$E#-L4*Q?>HKx3NMx98svGcz;O@}Fn(>e|}q zli&Q`-kTEi>R7MzsmqsxMKyz5)<$plb9HrHX`Fs;MW3v-R`bCH`+mRMt+Vre&jh>M zPJ2ScK%+NPcPLf5UCVWMaVdCuYAVm%+gtK}AM2HFX=`JO%Fn-i#^@ z%1$tevRX8~Z}DPfas9ZIcXxJz?w(oX+I?xUJAd7;m+IYn&9#j67r(l`Uf#~m&cedt z!s>8+P$v~sQEf;(ydrQhTVG!vXjA9Qmos0Pyq_^c0(7w7-m0$!1qGmCJy7S@rs_+F zqH~+d?fQdFtiLkM8fMRyetT={(X5==*>|_~ z_VR+ZfGSv7S)Jutc=PSw@ApBsu`|ei^SslKf?E?3nSvPLoy0oXVI4L>#=jZeGlV#KU;QpGY ze)HUmU2oNVXT7+3ZhPL{Rr&Sr_kRBpZ`9P(R58i<8jlnY+q3iY{U07`Wz^mF;6Vbn zyXp~dB}K>A+_@%)uB}a5ZSwBLiy0}pOAjU-ICZLviIwZY+qb?62?=fX4mFCQYq@5d zAMO-3$e6Hnapg*zxjE`$^77}G`OXGi0-1Vh%EG9vS)jp^z182BMa3VLDSLN^6STf) z!^Vv#zx@34{QUeU+1lFLYu2vaxP80-rn|RpSzY~IR9NU)xclW^D;t}b`)2k3Y8EYC zTv$-x@u_}a?eA|5-yDDa`}^Biq&g->CNMA%RCcPXFHc!7t{KGAFxxy|t@^CYcik3& zPSD&yWktn<7cV%L#7^8(_4U=0v$MrdRBU?t?%g`|&!A&#mM<68iI_0YwwkHn<)x)E zSMTr2xVQ*3wXUtLJtgSN%ggG~?xHOfnZ7d?sMczSXXUOsb0otAv|) ziMhP|`NhTVpgXV9{+iF8FyX+O$juD7%fgew!oqB-zG&PuoH%h}+U~lncXxJ9e)Od* zcv7y{uE&obgU-F%UG~;VbLtzzk{1CAKVNLi40wArsc@bIum_l%j#`o(plzWmJh z<4`p6nDjR0RDwakzM4vfw-euj%G#w~q6&{MpLlq`^!CGt4?QRSOg!9{n7Z`u=AWNV z>(94*x8};4NMpAi3C4{59wl#YnI4TdY7s~)dMD#Ei)DU2U+JrqpHJ7UU8@w@=&tW#5T371vrIvUjlRCVzJ6JX^~Mh$3P7`+;qkStvu8{1 zt@;W&n*Ds~x+8AAQb+&&{S8{V1zt%7+6;evU99&e(291+bq^;=^2^&jInc=LxlPu- zZqDoL>mR>;+q-+WHR!6R!)MR-{`&fQdBwcCzrPqaU$pttThz%6cvXU6cd5hwu0M{h+NzVmc8A zw%@Niy(ROqgn8Z^yW5JUhue5TyV-8syqRbqp%Jiv!L?g#Y0k|}dp@1gUK79H?(F03 zxwnsj&U)KdV+p#^=kc*#&;nl2LCg;ivF6?1H#f)Y<7TbcT_(oq=bqfo-+%P#)vq)A z{XIND7i*hlU%RlUve@qT8)MKG+)1k5lX|~x%evb2`uh6MU$4g}n@CyK|Fdy!>kSDVn)VN3nyTDiEo zg3fNQtv)-;l#`cNRY#}Cw)$Ja!$Yip|JI+HqFGT@WmNJa;M)3l(7~w-7cMM$e{Zg| zd7glX$P#~baib2hA#3eP0{BeagXvfQDCh zb{0>%ZkBUn!Tj~X%l&5VYF{HDCbsO(ojW26c-Wew_Ewcni*b*te;Rk`*J&On=cz^# zo34wa;DxI=@`}U}fNv^Ywe}8@5zrNn{rD6HI zJ0|`0-|v=Rw)rFMuhM%7zdSg2S}KbR13?%cUmQCqWK?frhw`}1FWBcq_N@9)R& z+`U^H)T7>z=nQIBfDD_Tf22b&>-;?1lj}f78X$HYm%X_$G3WP=!pC1;S5;T9esr{Z zb?|b(mDkorYpbiPr>3Vbmom>=Q}*u8$|;xbtrnJl|N8Z8oqyfp`f9uVCMvm33G!;i zve)=VM+b*#$%_Ec@>0-D#^%kNv+nNNdTUGOvo?Q!7)1+>)<=)-4@_|Pbm$;tK(^FF|D?h13Z_jhpTw0%WZ&RvwO-&7G#tk%$ z_vPi~kX0d?lgpFsRK2DofELMRU+-&aVfpp#t#_}KsYdLsElZt+A07Sp`Fy|*gDu(V z7Y#rMUmUo%x4N^xKmFF0Oi-7Q!6f5?gTBny>%K7!)ilBIXxy-8%6K zv^)9j_WLJho9nON`%UWq_xk_tAt55oY`jUYudM}jlGepqgQlCs6K2`fT7eeAE(q0% z+goL-?B191|KDHGO^EUF@oIi^Jet{fH$9WSxLUmChhk#4nBctyj1wnLw5jKke9=&)`5L8KqE}d^y`YJ@t zZ%)VL$-$;Lg&&dv@rQ~Bl1P2uY5>e^YwZc9zGb(QDLo%{3M?)Q^& z?JGVcY|7P|x>Vx)F58V>Q?)*Vt|$Ky)hVQU$=3blrKQ1lkDor>4H}`XTC;k!c6{B> z)LGv5K*t8Ef~sS+NjcAxK&#B>FW;KCyXxyJ(5!{L{QonrxB1VrIr;YXc2FFLt`55z z|NF(_{)*3M%{@Il5{~sqYVMmE9W>i4_s56B{6F7pKEI> z)Ua!!DjZB*4CvztD@$`ou6Z#A15OtQ&3cN=-M^2$gR(pm%h0%u}f6@)zl@j zGBO*sZasSRD66%#^)t#?@QgGWSQ}L+x~yQvK^$?dd$fwe|4qv z)6>(%-`+%m&aPIUU(?jye*E)&AF&xGnL@kE-X>jN7Yo{i4_YQ{`ADgyf^E5*aLjudl9xc2a-*{eJ)E+}mb*(+eCN7%ngKeZ2jC-Q~$|k0d1}fv)!1 zSHCuD>yMAe=S=I34BxKz?d2BtuFg)+&tHq4o&rt4=v*}I75V+^*Rsk# zCnhROT9vG@Ta}}=VrHQ4EECTlV-?J=3gdYQD1)Qd3=>oS34w=cNWL zid%Q>+BMJ}!=M2pd3pbU0D;TP{m*}~of$mOrZQq*jisHPT}ylW=dY-~I)>vXV*b^h-gcR;72{a%`02>%Blx(TOO@? zv}$wI+OVVByO=`?6qLdo0vSbFVt6L*{a*S1guZ|08WjPihc)Z8r+;{2bAG2V=aX}m z&+V2iTL!wP>D~SP@sEEMKR*W=DxElKQq$pf{^YN(t}=y&i7xAtwSF|e{@=k54-W^1 zg|)eMiygdjMWpukx7;ZN)v9aRD^{+&S``x=Ev>1k>EZ7$?zd^}GPc`~l5YI_ zV;pe2DtXmM6%`fGBJVS^Ou2>C{gy1gakXGtaDa$wU{1;F^B-3-pPqUzUZ0)B zwBhx{%hB0;jvhDv<-Xu;)_u8zjSX8&Cbk8JhPF1d^D{Ak=2O@GR#8#e@$JFW6DLm! zR>jPmIdiLDzQ4aeJHx}=-BTtV(u;Bz&Rw{>?yuD{-`Q@$xm}AiR>hgz%zL^jTxEU! z-EBK}S_Vf>ov)Nx`gZ%-kB9l~9b#i;86G@-eEC6@LttTfdHd?s+6)gKAMXbp-l(Oe zh@na;DRZ0ZzNKXmkH>ubB%*jN>H^KW_m_3_2Jw!U;fBlw*m48KC14UdnUQF3N^|9&Auz-MsTc4s; zd_UD+ZF>)j?z+^})U?|8v@|u)y-4%c-@U^pYjvdO!~Nam{Hw#)ixs+vT zE}2N1jM_G7lF+X&FPRxWeE!VbeY9!H z6cHaEpAB_?t4dy9sz;NGmD9h1)V_g;>8OE zV`E_*G46Tu=2iUpVHlw!_UF$Zh7I-pYofRF2?`1(Y>e1Z`dUm&Tl-+r#s_cT_O|oO zHyuqGo3es&gg(}F?50fxYKx4^ZhZ)|MXW3wS&enX=3jSmoA$Z8 zxLmOayZ$ZlkKFoo?)`E*Zq8Buzq^bvcGrc8pmg4q<@n-6nfCFdjTg3NhcoQy&tYy7 z^<-|aE`N9B7HGwXkLrW?x}Qs3*SD7y6dYK;{~uSw-fcyXj&yz%o4#0MmDs9P4ejh3 zikF|@Ub?k%eH`O*KgPJY1OKP}1?6xN)hd&lV$5^4-Z**kQsZ=e+IF=z7$< z+j_w=Hl4ULdLR8v_kSvSa66yT*f`-=NuaxPponW=h$+~rl-UAJJ9g}_x~-|HdGN>) z7KVD|+ow*Q0-gE5@ZexGyM~_Lx~+G2mA+O`R%T|nv8yz@Tkb9!xD&bfo1vlM471#* zwb_?6yH+*tu_<`SRPa^n!|nVu!C1e!jA$rKFA+_v>qGh3k%MhcW2K zGcEUL7W(3E1-CL!?G+Rl=FOX@)YrAhMO#UU33OA`p32V~vaV|V`F1-W zlzKobxxTy%uKD$abLrBh|K}PMD13OmzG1m~!Ou-En8Y`VYKJul94h_%>61|2@^(JP z-`|;!_cQOU;@qy^1oCx=mz(!@t6sWt<;d05;fcw~&2#3+yt%cN``EE# z1;xd}r5PfsLTYMipcD0)jf1C5ow{)K>h7|)w;a8_xo@edW&A&Deqoj|`&+l3hQ2<& zEnBxHCL}Ppx*kpI+Q)lyw|K<9Ie#6GUs<`RuMOnX6;T%^<{Bm>B^`QWc>47Tvjg{c zz5Vz1x3jA&D}#W9L`1qZC=6$rax+wy{C>ax|FfO^fuQ5E^kQ}#sL|Mva&nT@^<}|R zb_53oHg4To+Whv@=g)%T;_dGJatF_!=Rcm5{4g}MHFddP;Qs-oO)UTQ;`>(3wZ3W0146|42wdgczL&g zDHbcUpK-0%iPUMieLMNCzx~!1Gj-RVo37t5S=dkBu7|P3q58I&&rBm$_kKB7FR!i@ zix-1j@k-m|rkJp8^*5FS^W5U%i&igM#FU(z%<}&3((m%e(Vh z-hBJ|dF$(3QZFuY{qghpe8vs#ptZxTKYmmQy1NFRUH_}B{?CMo6Aw<)jsEcC81IbM zcIIo>96UUP-LJdF?&bROl6g;U_w2MZhK4g|e181;b?EF_-nmw#PW$WrZb&@LrlO+K zVG#jNSPTuW9Cz2d%B+dl$h5osJ==kKUU9Xu->-uX7yA7CeDl#HMPp;(SFc{#eEs<9 zsjAc;z?UojnlK1yyMMXtl+}a9Sq91*fLtK$%-MV$46wk0Ac)1^_Q_|DZ z<02#J${8OOCFSJgRPg$m?w^mxQ( z;rM;i5K~Rf1Cvw_*#BqPoW^Kpw?kUARoXmHK|x``wVOWX`S)5DFJ8>iv{Y)*f&~o0 z!ND(HzwWjY@p3tI`0&Ne>Ha@{|L(RD=~~qCUPKlY^i^LH_VxAluHCMie%DN~W&O%a zwpCvomix_RVA!62f8F-A6DJC8F0;0?+jq4mZ*zps9E(CwPG)4N`SU~2xs7LKxwmOo z*4lkFKbhj=<3Yor*REZ=aQX7#DVo6rkB)H86VBDt)U2qeP_VK2v)@IU!K#$$&tFD+ zQ0egE*3`KL;-Z`{FLumqV*2*^>SlET(WCz^JUS!k;LLouo&Wf|ySoLYrMs6bQTg-l z_j?KRJees|rYu;n;DFB0g;Dc7C#zj_+1>m4_I7#vF3z3tq#g9i_ShM5^a_YfSMWtv^_F8$t~N{iB0A`IVNY+bl8ac=JYeYM?k zwp9xjEn;$WbF29JN_5H6rIqizr+9gJ8B~5sc{VvcHa3=pjcrl5?CsZcY$}C{pPx&; zb~rf1d&=a=%?}8O@k61GLAYpsWnEFJ=O^%)$pvb5g3dGq1H z!DgvkW@hG(Z@1r1y1gy;tgM>r)zvFja5y?T-q?~U3>xFj&CT_hVZiwN+uOsZr|a(& z%FWHq-LYfGgA)^#JNo*LZOy*^YR|eYTTIOI@AaHGaiUE)mmwfHIX`gf1cn_u7_`GS zxbF*J%XDvVc9XjnTijkIFA20(;CTAd0}>{C*8{eEj{Y+sl_MS&)5woracH)4Fwfj~+jc zzB+GrYHI2X%VIUX*j+3Qb6e)yR*Owm^JQX4NliU?<_yotlP4!knsjJy_4kDIboEmc zR+_C@w20~ae0%qR0D-2aCIKO#rc0MDMcvlY)?Qry|6f5tK|^yhvyQIrO#U|v-_GxA zYh&Z$=H7X3^M(xvRt7Im$jj5KSP;LD;dtLh_kzop7}C=dj`1Y?`LWIP*4)X=fA0Th ztpCf(!p?l`*nxigP40jHZ@-!p3~JSbPO^FN;ziVZdBY@^=F=_UKzMXgQ@|^yN5Zg) zL7}LqXvv~Qi|%dv{QSH+0|&#WmzUM|{W3H*R%YnfwX3T6uYeP1bIy!?b$`Ex@B5X- zxoXv_9dgXwN0p?_^Hf4ZLqS)upDAQmQvCd!im`F<6~*9O7gtx-&W;X+d-v|8oS9+h z5*a!3_4AFtd;Jw*XzJ7acS(#Z+PtSz8b9qfoO;uD> z9Gsn-pZ|;M%DufU@$IdxXRbs?M@P4`wOz|FPdvo(=ks~{n8ht3S3`t^g=bEDec-?W ztLvesPoF+~>5@=cSy@3r!GQ+{n-!In4~NI!-k#sSe7Snn_jjPPvW$+3wmv#7{@{`8 zgFBWFJ|;VOaY>kP6cjPJ^|AQ)HeQPmUbu*<;+M#d+S#!N?@kIg9A#?bP40i@Kj%c; zaXqJ}PoGx&_@Kzd#AJ|uPG-ieS=VlUJ2h4N#HmwFlP3#*`SN9!p%1?^71wl4Peo};|`YZ&wHCWRaB zua!P=B0+tLnc17$2O8hlE;luut*;ihbQ#n6d5ryXj0+b!R9FN=aJ+cAartR$OGah4 z4x58wR~9%nfB5jwnW16fLd9b}lFb{Fk8^!VXSuP>_vJCgSyrch|YNxf648dbVsa zIdS^5vYsBFtaaIwo#&@LIod70VdKV?<`1V$oeCQJ02L%X69XS9sH%dli{{|sa&mBB zu&etMkqx>!G$JAbbpCBwSsAD`6cU}u6uy3y)`O?sWsiQn5d1xD%8`BRYpcI?Y+tEa z-K|qw`)#ea_=1V@CRbK(m=Js8?Op2!f2$R&q&j+2kI$TXRBq?HYrTIDHmueCeYi2} zw(+*GpFe+IxNyP2)z!84cSvaH!v_x<{{H^%93CFdauM7;=ysl*TR3U%+_OIC=NYH- zfzHyby3H?RA&{7u2nvR zD%Ixu^+_`Jbu#yBzsEMe?dk0Wod>ODtx*>tW}YGq`+c zvPEZ#E)Os7%!%36)xX1b$}IL=vUFp7z{QIWK0F^Dv3_{QJ7N0w_}Smy-dub#DypH4 z?f0^koEln8US168OX5PO+S=}2#B}0(y1ce->U;Ki^Z8TKHVMDz;rVv`T_;YQ$oSI31xo%x!X`Jx%y;eD z<>Bq!3~CqOuF{R(#`F8zTjm4z^wv~=e`oXk@#DwL<>loJZ&qHtU-Q|w`T3OT(-*t< z%XxTsG)$QyvS{(*i)*9J=l#y%ytlWSy|}peNoaj=Jg6fFx;Ws+Q}KkmR*LNIj0xu- zTfZ zNy*89p`oGgGfMC8tDU)izD?z!@J(kUH}f)V&%66b^X9Z^(~ceMl{QR2CleA9lJNQ2 zS1S?abY2%N8tP=$E%o zyA}(&f+{pLbnCXOSFfgW&9bzza*B`NKXY;J(<@hRZlCrivs+@~q)CS!9BekM_>hou zd)wNBw!7qQDj3+=*}uHIEA8j!2WrC1og4f48Z)R6UymL2KQB_sdi4f>~ecd->ldj90l;|tUw_RObL3b8|rc5qe z2w-7nzdo}iBRf0!#014NFG|t*-PzaIfeM(kG&Rulb9ub7d*6|X%I+UtURFPH?AWI%8Xg`V zp!3m^kM%GrvVhJQmb0liP=0?A$V?AUPelU*f$#6`I@_h!rZaPKaTPo~WTK(b!Z<-R zZ$ilC)hkvU`276*%!#ijOc0n-v`nMkH8N5Xbiehr*yyOJOS+F%m?eLBa1b=O!ooyF>5Ya#;k ze@|3)S28dV*tBWWiL+;0*XX=I`2f@^%)F$+a9~~RZqVJ)pKI1FUaXvVe;;qdchmd2 zp02K}#-9jACm&Y1Ui<6I!_@+cuAPfttzVdZeVw9?4o_%kXh%;E=njDuhe3V970aBs zmvqkl@}&fHBPRoRM9-pd(YzkyVkqxUwZQF*`s@_zt4DLt*5tcTA0p{pRp^;{}+1|9P-(= z`hBUah{%ziQ?YC=0;nnN8EjTD>#@Zcu_x5!1%iCSK)i*ij_N`lo&Yj~^cJFIhwJJ;4#Xm5l z_Ryh224!zBwt*zNN_SIUm@k+I9&%bYW z(p0l+(TZ)|eL39=o7wr3K0Z3iP$8XLR#Y`x)!aN_Vo00eb4|e6BE;eH*b0(H>X{_`R(iL z>pwm`WM<=+i+LW@|K&@`i&w7}ty;y!Q2o83_V>4gSFeUjJOp(ZANBX;bSno32S0l~ zT|eIJM%{r1Mg|5aj{DIKo*o_si*FYe7S{B$oH%(h@%FY{h8v<;tT&I(TC^`LBBEo# z0)>jIszbMKNxi+j{rHZ;#~W&Ymw~QvP`$Nl*RF!X!h@jF@7-N%6%~~SUtV60*ioS9 zyG3&q>*Y(A4y}pYT=4D9%_`ws28*gM8Zxr73l}bI6jXKtT{hm)+xs-D`1LhiwTo;w zjMqIoJDXixTs$Q;mGh|~XzcY-uiEXT6~9gt`1trVzqLGR*1*QS>guvzCwA`NZ-4)} z|6D84va&J;&`9rtXJ=>E#5XUxQFr{!&A$s*tva=5VP8+rlPc!B`)aFwW}AWXpKDEx zO;Au!!N*6gIx#y0e*OBT)H8RHMj|H%2LpqMxVW+Wk*}|=a^Kxm+Pr(W^}T(yr?>pP zwbXlhLRwnef&~kn@yrC(2h1in#hj(2q%K^&%F5v4?rweqbWg&~c^(r|ZeP4OQS%$< zs^NX-(>F$d%G}@+xj#QWE%7y0U7+IPZts|ys#@&g>B-5*$M@meH#Zj-mZ0F^kKgat zKi>U*U-QO|8#$7fYOLBh$F5dtwt4=s21aHDP0f=s{oUQo{r&u)v4y+)j4UlBLD_8f zZ0WA9u35?{U5hllcrK(w`xLrukKbE$bZW&FH$OkVXV0E7+;F|Ls-NkTQ*5lPnVA_w z!-EG2A|fImWZyS1G8@$XDp7m3xBC01THY?EHpjTQiJt46ot!32o!WZffI~$^#eq|& zR^5B`N5r*r`M%oUNr&5bIk>qGKR-Wz=1rZds;UbYFFHm>M$Vmj&XPkB6u-Z|zHVQ! zVntfloJAU4S!Z9|b51&S<%-Dm{QGX6o}8co^1QpduHL?P>=@g_hYvxs2D8ocFD!QF z-}g(}G)u(E$tfTzs%v-o`=mQN3Tuvo?jX6dqmX&$&Yd^*R2nbyo9ngwYfw#*gNFy- znl&%hn{_S9TE226r?|NIjvYG|tXjn-Z(nz$Q&_#i&R$K8&CJXUG=}l!?c0sDzsnTe zyaNx!*Z*Y&9fH|@QSHaCUymLg?Ow#!oW)lC?M>#iTQ;C!q{40gnJQ*`-P>PZ|18^a z*`$6s+gU%OCaiqIuwe1x=C7}>Gc$B`b%6%78`mlKDJdyEc=f7FFLsxMpC4aVR@RH# z+x0qj>yC#GM&e$`y(($v&!T)tdgOfROxd%B*fMRU(0 zmWk7*wRun1TexVE)0Kr=Bn=G>Yw}aQx9U|^R_-WyDO6NkJbS7AuXQ0lq3b>5WMz9# zPFBBu``>G&%+JrxK3={5-rj2G_;~sE_xB(F`ue&fhhWC8cbigA7ySB?xu@bIlem7| zkv)~4A3S+--dOzHPbYE{%k}l~?He~5c6E0PN=bEneSIA?Zv$#b98SpC8|=SFa?D z(|DYmok0WG7S`5}zrMcS`^wwXvvVbvKG&jm^B1ky_VU}?+cnplvL|g->SS&cXZAMT?NK0cQBg4H(xexZQd~)&P#S^DbKi++Q*$gi}hO)A}D{eAfSd45pSsH5WmXgSfV^Y`w_efsoCLr?EmueAAw zw6ju;$@lkGn}hBjxpOB5bmQ{n<^K7_M=$Zo+x2vHaqZZ#H#0WeoVM0(j+vsO;)hS4n7WTLbsv2+Yg+B+XTHxWc9*@K@fdVbclS}J z#6(3WXXlw_bM{`g{JuFt2b6>!K76=g`}X!tn~X$6L=19n7__vt8C}nQ^-r^FQOn7* zXL-BDbU}5BLD`!K&_KYmXU|?-TI#*G(+o65VA`T~JE`Y>*OR}$z9tLFI9|^!UN$K_ zEX-`ztjCj7y=SOgx_*87@|AUuR4gqe8LDT`YAd+4WXY0*ySqviTCPZ>78VsTDYArx zg~c2XUlVa~%l55XSru7Y1eX2Md|n6YB0hPNaC1}YhfklJqN1eaY$_VotkL0-x0~~` zV8P1YkXh43E3S2@-A-ClwRG={88g^!Yins4JvTAC$;MD$U*EXyprWd3>)+qsjgMZM zrW@V%=+Ps$*v+Pomap2aAo}2EU_?ZRb35O`W5?J)Wz4p1$Kvb%wr<*F1e(QOQ46Zc zLDPiUPR}#DHom*N8#F1Gnwn}Oo-1jPz_4i1q7P3`i>s)p95`{JW4#?O56^|o>HbHK z9aBa(bmsf3SFa{aocJ(mzjq*L*!rmUtekGc%*@OgGiE4Q zSK`8zgMxxUsk!9cotc(;ii(Y!Hf@r6TU=C>wU0g`JiZ=GDT!rZ(AE%NoncA<;&S)V`D)@rnfh@mX=mP zaB%aiSyIMYy1Kfc5zuGpzHV-9tG7AS)!7AWFW9t6sIszBLsvId==+^JF;AX6Q7|_b zfBEvIhqw3P+2;8IGBQ0+o}{FmcH!jYEO~Q7Fm`uY>&A_SyUN~j85p+*ET3K0vOrNS9 zzM=emT;sanyFHS|pw+!Gd#gmx&$n;y@8=I&6LImy>uo7&YHBxj6e?d^AK$O+-gjl! z^|HV~!8>>FE?l`X@^R(0t5;LI))X#Ty7b}UcK)q(FBUCWaA2xT`Ri-EpuV@5Ud#y@ zZB0$biV6$R0b(-MKR>Ak1qCJK<()HKrQ7pQ^W)Sxb9yFB5J)ovt=HVVxN+Y;yIo~( zyXM(egIXb=2|W;3FLsy7OO8#OHW^+2es%S;&x=;9=(w3T@$*B6m>8LLaeKQ!cX_^9 zD);Q!GXrz;*^GUPrqfNcNydZ7U_2ZSy z&8NRF?Gh3alCZ5Z@tb4O`2GETQ2fRea%BDg_ZKvE`04ZKjfscZKoc>?jvedWm*>4L z@2-`IsOZDv^7Th%o9BOcyZ!#58#g459z6;gLpIB~(eUL<$(>!LtB?J=1sbDhWM&7A zw(Quo>(S@u=OZ?!@ow3=H83bBXtBPxw|7fx>%+&#`+t0SDJ&!`Y?yIDVV&8kRjWYC zw&mRg#q*x3uUz-*e(R>Bq&#^1SozC8&5s|yy^X%Jzg}KZQIUg_(=jMWXvvZ#7j~ED zM?^#z2_`=3ycR?3_P?-@jS$Rr?w}*!U0|&#VijPV2&fVNsYh8S9ZS;1Q zSJ%&<@85as+S+K=U2eHGH8nF{^T}FG2?-4~y}7mZ;Z|Pkgw(c0?y9Pn@U~=2}wwJoH}*NMOH1e|Mm6t z!VF6mEO5B8Fd(VpUybShUTO15a<)|+RyT@X&6B7fiqgw7i-$mAI?W0Ex zd3XJoX7D$}o;Y>k!iHwrkKWweyrb|jXl4v_IZTg~Dc8Ak z=QeEJ+B!vKZo<*PprED)4-$U-{(boVefj+R`&xJHvQqPz(J<3EJ?X`TgLRv*w~#RFu?Q ztJ0>03l)Q7R#zG2B_ud-Z!>ku$j~@9$C5cdKK{v*CkYo8ID$HbZvAp+Lyz=7Qd3uF zcXxNUu(CRI{5bo^j~{oGy_GsQ-=3eHo&Ckjmx-^gtejz8u6O3_Syx#-RRvX5RS_|< zBH84P5dop0uFucSP0Y^j&fou6EG#TcscS=KYkT|S2M3!u`1stSqNJWYeY$Y@^7g#D zyAB>a$f)ezCzA18xGPKZMfR?D*GqEG`^NUkTDP%sixtRrcXb_F=-fWTX$iybZ=m~w z3~GK9fSh&c&?49U>5~OY8K!)gIddjsLU`l9A0LyO-=?Of&Rn|{G$J1I{OR=_g^w9F zxL;o%zhCcyY1ZYv)#b~q%JcH{?%cgQ`^~M8Y;%dt>H469S1&C0pKo>j*R<)=l?@FA z9UUD(t8=#H-{&(oH}8=!1Wm#RgoU}izqi*g?~a8|^fsRA@9$dY&zGNPUwZG}w5@!rwrHF+jGQa9*14U}FgpcwvCCyk(BVSoDt~=h>F~Gi-=CQtUS2{B zM{eGXT#$Wb>6R^1zP!5H-TCp)&(FS9f0tdmVS0Pfmg47r&nlnYxwbA=`_+c5g!MPo zp4>Ek_t@3dRYg&;5mdY=yY~t3^YeplFkQ1|O~z z#f9?o^NT({as^HCe){~`^)t&A&?(F!qN1EnZ_S)JGX->+XK?W36Q@p1y16-hvbz5~ zj-~otZ_mxOPI+{s(RHf`SAIcH8xxBs@6CZEg>oH^4IdHTbrr{43< zZQQyw^_*bIU9%7OLq1))6m(}_ZS;fJSJDnNFn;*(fq@| zXbAGe2@X3uyRCWqk8wM3^vPPYDJv_3*4v(*uJ4|dqy%apetUb{Jo8P+-(4jyn`Eua z6ciO1jnmE?SQWbZ!rEwa(9HfKzTPYqvF_HR-Qvs)e6m(5k1~Fge|ZrY5*m8&=+UM3 z%FN8n6k0Agbxyf(u-dTm>`n)=sva`|q%&5)X!Dj^}kzyK<;E?d66wbl9hx>!aAMMXuX@3wV+DxPKA z+uJv;51#Hj+ssgZ)9vl~k8f;D_Pxh`b=%dcJ?bhd3s$V);N;}w;NbyHEIoMm5OnLO z@yUu-CkCl|fT*<$p9aH8r%gllS@i`nK-g zZQaw;vmyV!-M&fhcI>d=kv8LjcAzKBn9;#2ZRQXeIrIIF70VVcUD|qgclqPDx3^1J z9R1Y_TMJ-SqOtGiGije$CY}rCi?4e6;0@QOA0LyaOrL)E^l5G#F>W2P?w$M$dH435 zl*zxoPPX{Zsj1p$3dOoxzrVkq{OZa|P?f)InOfTUdA)DmfbJCLOFrHQ>d}^zmVUfj zeqYhve*VsL>tc7$$OiQ+(EI-zq~uT8SA1YNP;Z)Caq#_P<{R=)@^5Tlyt})+y{U=G z#Kgp)>`ery&oFiB)R>RrVq!`rCR27^yMEFkElmwHrlG8?44SZsjg>uj?%a;@_i>Z$ zmxp{_y=IL|LW07x^Yi&-Wo3P4nQ%_mi*+h2EZltb!nL@|O^?2)nzcI2PX04T$o5=` zl&7a>P(;Lu%a)&?olRbLwC=|T#|Qg%m%cvcvsU!jyp4v2hG+h5>FVlIv9sHE@^^-g zRd37>mbq?vK1YupEnO!b9vUi|(Y0&N92r9slQpG#EAsO4dO=4|zTP`;-aNUR+w!#!AY{&hPH;KfmSb z)vKxuC-(pUcl!G0L+>AhwrK{2hN^DQzpn=0?(XB4yIKS$&6?%K z!^7k8``g=-TeGiwn6{4u6(^M=cduRZ@n+O#n0OI&N+8GQ~Au9GX+miiH3xQ zDS?VHO>t&+z9T0mt1~iy8g*Az2D84ZesrW0G_GD&X7=vx?)Hhw?p!5vcYS$tQ+T#{ zep`DxI~O(7`uGx6r8RM4H$S^96@R)A&_rL1p)8rdPi?;OwQJsn%VVyiuiQ>__j4`a@Ky& z%*smo@!?_VyxB8ncJ3~Jf30%=j`{Z|?Ac=jnw(hfKfi6;HnT5ZzXry{oVgsf^H0|6 z^)Ej@KK}UBRPC7K7QwGqXTPZ2v|+=8Su3M&mqrWy>RZ{n!tU+kqut^*s<*do+ji#q z!i5W&)NfB#_ix+2-JIdU|9|iQ&$7A6)*z}KcHsVf`GW@!a`5sV1&sks)ebkSv=_NL zWy_W=3zjZz-BB`k~GdJnz6zP|A7Ez=$;Q?CWbJx%RdSy|uQ-!C5)76w{92C4vm{QBkO z=jV52VW5qduP-Zuhqw3j8FsoI>;J!d{qm)vn%c5sANgdhuIzl`6BszLGWguZ-R1c& zUcP+z^Ye2LU*Fbs>-4^S`7&YFtgfD(9=GGM^6Kj9pcOZuIk9Kw=lAcc{p}PKB$R(| z&%@VN)Ai%o7(j;~yxy^9jn135ZwsHDk-W33l)L!ZnTNafYt9RfJ2TIA_qpF}JQ58X zHf*qZ-{0SVe2Ql9tv5gac=-FfS5;Xt9Jp{n;PNux!(U!ro}Kf`q}KQIGUs+aQ0m;Q ze~z6&P*AXRUwxM6i{p24k6b@#roXHF{kcCz89ozDva_?(&i=6f|3`VsUlUaom4Z)C zJk#F30A1Z!H%H`Z(8o=2HYzGhu06_a>Psq`^ln}3?n9R@37tH7vf|H=!pUm4#Kgp6 zUZ0cN6&W2}T&tf^xP9A+t5-$8zrUYuXR!3Qj#N&5BxkeCyV&j18V47S+$Ve!u^4u$jH^*OyEcHMK+c?#XFs zX%!R|B~40?n=);hlDWBfQBl#>Yx5uUq+K`jUZFWJcvb4EHETc%zCL~WH0#Z*FQ&1V z8=2Wb<4Wt2o7wr<7;I{PZSnjqBx<$kuA79Uq@$-NCo3zf&HjK09WhYYzP`Tx@z2lC zPngg+%EMZv^m%dux)eGeWuz+hee4s@AT|D{VoXXaXqgQllbQc`B^ z(eDy6&CGmRwS0xRsHmc*Cgm` z_YLmX|Nr~lqUZ?+Xgc@FlOrE41sgeq)i{=3ShVBy{r&cT{{96mbO4Rn zoSA9tH2=B{1FfnP6DLnr{<6c!*f@J`-04c^bCu2S zo;_=;{r&CXrKR3y)+ufU9i>$E_EzhS8xbY%@5wUM_xB%7O8oZbCg}9tQ>RaZ&dmjF zgqW=6n^fk#;@&p1O`A4>dYO57d28Pn+tvT$Y52Q4AmrQ}%i#AWpMI6Ry#+d&Y0c-l zLi_phb26XA@2hc4N=lmiZ(h#n^_g|G-|v=x`1tYQ&(F^{mc6}o?f>^xmSJtdy3FbI z_MmC<^EbEUN(UcMFfa&su+Q1aX~t`v*j*tHUYjggwW`a)+S<6bvZ{(}t$y7Frp!av zg}9e&WtnSLDzrjC`Z=gIopxr1qh9Q;D=CIEXU`UnkB?uMoR^o!!obPF@xaQi^i{~F z($`^5C+b}jrL>;8UDeaj= z%iiBrs?F%&H^(CIb#l$$U#5Y9fr`P){X~C!T)Ao$=n~69S#2#XB^|MD&@{p89ox2< zy}Z3$KiuBEPe!pt;L)pBUJMiV|Nl4p^_)qQgcdDd?*8QIQ_rX9slKi8|nLiNk$O`AYVkmj9Rxlfca z{a3dF8=nkEY-}vUo6_4Z9={VeN9cgo{7FekF*JZ$#s&rf8nuBT-r-?k$F6_#kBW+t zFv$>5QB~cTaZw4B`0ecE($CL3`sC!~**fc1tk75&`1aQv`+B+8*Vbll+IQQiy1E*) zQvx)|YFGD1<5j_mtW~R4O_(l9?3=_wb0Pe zHIbXy5)%_ObU>X3mbA08SS2MTfBg7Sur+pjo~(_n?Z?00?;pN=S-7yUP(xeWxv0np zG)kIyxDB*QTitI?#+Apv|NVad@zGIkP$6M!D{Ec$hCy+O+eIC3Z|@^VkAlWFIk>r< zlaiF!c%@hvZfwhy=HcOa@a|pT>+9>4?d|0Y3kyNl00spIKYaW+c(H}l)vA*xPbPxe z6JNi&Mny^e`}5h~!qU<-^P~T-S$T8TMsH7gdTJ_YUnJ=AHWxRyMJrZtfJR?`eo_T3 zvhI<$mzy+cl5XAnT&qoY+d!8^{#1E?tXJA*Zg5c0p`6vGIX5=Aef@u!-`?P_echiO zf!DK6e0_bLv-_wLL&vslX4l2I7dg0ZYwhpLxh^6vAOC#$PcAO5Bj?WbfzEM#@_zq+ zwa(7Y76GR>Z{MC=;MnYunwq-#Sk(0sWu+x4yFYeycYAKnyW6pP_39PQg4|6#Hd_PH>{-utK3R{P9G$|F5*5%G zWnA1m&<#K~H9t0-tC(+7>6CVUp08EuE0-lpmv(O2WCWV6`uOpq;?ku{ne6SHI6Aw! zl=AZOmbmxJxi~sDW@KbcU}R>SkbJ!Fs)Q{lUrCx|2!L9upbItF`Q@JMvR77a-m!bP zFf%i=lCG|ANN6Z%7F4L?!ph3ZO8WZ#DJdx(eSLhAb~P3sKYdENxBJ85o$lK* zH{ETssrb`OB?Z zd~(}|iz&O8-QJ#WoNrY1?TsfW7{0x`>+R&^lvS&%uA(Bq$;tWX{rmfGHh!9%qpqqt zQ8Rd%Kxk;_qJ;|`-TLKx@9nFNUR+yMWd%Ca=i>G2>X$BES`xdv3^c;>Byy|#q|?*& zi}!L?{QYHGSXihiB_(xcWAgF7!mX9x-^tE2O63X+3R04il1jO@CQ?OPyIVz7b)sSN zF#%OoRnYi?m`;Slr%#`J7>+3Dl95eDt~`3cb58Q#&&*r z(D1g3we{}EU&86Rnv#$97%rdXAN}iRR@R)9-RbA&9l3pb_H##Z$K?~ZyXAg0^<6$O z*eN+J?U+yO!{xISmTM&x78)ukDY3k(e{o@eO=mo4<4Z^r<-!aVW$ zxw%g7CohT;VrFIrjptcfT6T1H9(;Lu`No`^MmKKWyc(7Byx;zxLpz^r%O>0S;G**K z_T9U!CrzIG@b&BN2@?cBH}$Oc&C1dOjbL|+>p!}%(D}rvQ-}Wk{yuT)R90ze>9p0L zt8^L!nm#^0&YU3L7`Y`w(5~)J$MJr7XHa23`|0WF$yZl}f@Y`g?XCWJJ-!~ixvsqY z__ejs6KBop@||t=@W;o;pmFo?n9R&f(29?9bFJCs<>f(BBlqk7w>C8~ftquFeiSaW zufM$9zrCe}MK5ND!k2v-U5i{24>qxScz8JY`0&`+*vwekBXadl#-_V%D^{%nEg)d{ z;l0f=dlq=BC)0O*P0h}Y$;X)(CQX_owe`7*K4=i}<0IE)n_lcHef{CZMdgLxJOgz* zH*Pd+EF3lO$-Wl zm34eQeae(8OIk0qEX}{aFXn#viwlel6DCbMq;f2LT})$33k&E{sHbkCb7mz0#0CG-BmLg!w7QOn=|`{ZnAVQJN88uT4| zac!-%le2T{Ep}BoP=jo$cDT{~%@I0lVt0$h#lEgwUHlZJa0|Ff8+tq$}zyH6IiHXS6sZ*KyYb-4+99&&lp^JsK<=j-dQ2GPZ z%iUf6{?VD4#-O#r(B(#)d+)Dbx|A_^xmopgk)xX@O%ghB`gFHd58KLBtBPv%6%Wo^ z5*ixH%AldE>k4Z5<*x4T?_WPLM_WtF?8g4CF0bBys;a6B7c4kX8WR*WsdHsjOi@vh z>9$)Mg#^2JEx^BTX8tUBr-B`#mbeAUS3>JpFUM+xl#o> z_Hpy^rK?tTO`0V18~Xyh#XBV0ZSq^QWmTKb`d_*e z@_HL%Le|!Ycb{opSiEFOOY!q_hOP^z>BsARF?}p@_12eHSGoP?+liJ+_$FOi;<;kQ ziWQ}+zI=Oo8?+!PBqYS7I!0LCkA>mRj>6{G6`7fu@9ykmuB@!Iu(IN^?OX0Y|In2y zAt?5GPuDw>!M0!d_MDZE6%`eGyAEEwC^&1@EQSLj+F5+lrcL|s?Hk*Hb!+Sr53y{N zIJ$VnGNZCL5kG$aR<^c|zOvBd*0$W+2`MQpKR-WLR#0HrxpOC|#G9z>z9IFr*qd8h zxr2hv?w^!(dt0u7fkDIW-PWMhLx29%965S4@mP-}sN34#&u=_8CgRbfN1&qNj1g$> zvWAyM#-_W+Hbm&m0MGlVtY5R{$xEBi(9kpy6$^_Q*|JLemn>a6^WxkiM_gLk+qr9W z>p;6O!29R+RDb6yes(7FO7cRDLZjSUCLW%i57+Pim$l8#f36j154y5@9|OajxpNOD zZ43wqIIyJ>ai{^qr%#_Ew&%$*e0#s;?d|Q%3Fq%T6mhwH?b@-)>i!0ahgfvt_DDoU zMZLJU*ZSYj=kh;({!BbIMYA++_GZ^4=fCbQE)7SM9$s4;y<*K8mhPiX+qav`+0}4} zb+>{RKZ=Pp9ZgESyvM(~lthYuUp{we{D;mn#f3$(+Yi<=uX1pR*BZ$Alt_8Iefb{xDUteGE=z>qAK%6KUeyS(6wBCX|tZ0T9yC) z{7jRL4GRi7^z`)fnOaAqx8)>md%SSPw!GKZ)=ro@_2{Lg-mbD-SC6b(wQ57cL8ciq zW*oSCH}=ZI0MPom8;ehtNv8y^jWM==y{(-`@{rH^oHx62Jv}{ZKA$ybxKaJs?0emM zH8nNR$k)N7jSd_K@9Zr8`0MNIwBE)=QA(nsqB6EsBG1qNx3B&#H~sTpyMjNVFXwQ% zYFc_f^*QlVpzWE-n}la)a!#MQ-uC{6!R<4dn+)4h{fd7W<>WlEI6l!b%+FG6cGc_WwF| z?%cWYvY-=(Vq8T~j=1x^d-ozDBN;2DZ|X&F(=pAu!jSO(-d?Nci9N9=jbGo}YyJ3m zKl_7wd#k^^y*>TOlP65)ojVRK3tsNW!piz_{{KJiN4v$Ptz{Ro2QTwUytk)PCw^bd z?)-KECk{m(@2*_Sf|ZTUDD#qvTc3<)K){5Jmj!=LnK$oT{r}(b%Y0@Y z0v+>Qb3(I4z=`AVq@>+5PDN~&m6!J~DJfa^KKt&jt=~S*v#l;Ub@0d$7wf4udU}5P zi=S4eW@VjP6}oyw&{D1jpShw+lQn~v8RXtF0o82>8ks#kJq^pel=y{&g)4tPo&NLJ z>-C&`d}${pC?50kNLg*Op<>i$-}z4EKy?w7}N zexa6%K+tWR@pV62&(1c#yr=TBjjpZWvCZZ0FL+k-M+WCdi%M`AHRNOxlc9Exp82zdw)saOnF`@lLx!s?_*Xl zHJutBSK0dEL&4%FN-l|)mwJo$$=P=G_VVuAx6fyWL1R0=yp*->#O5PMT-x~M{dSkV z{qXUlqKV0t1ASp4AUnf?a>Rp6UthaAZ{w`%6IbE{?U~u;{jA(#0jtAw!`4QH zE;#rT zgM84Dsb5}RK7J#UgL!B5_q@h$>dLo|MjQ+Iv^sqKqzMxyy#9S_Tkh(=^RsH#(V?h^J ziQGD*5EByv+B>1@b>c>ZWa+2k?{ng*~zJ2?~I&+ag>#>=}=^R{KNnc-G zjfjdeN;x6W#wY7_c9v=H+*{nwe|&sg^Z)PnH8DGdii?Xu>xL2%7L>i`23;a0B6T_? zWw*rXJ)Ti@*K>~_JN7D7dE@o?dRcC6ZU)dfj>R^yme$srtH0;%*}In!bbjI6TU(X& z^z@={KY5Ze%PjX4XhOrvSCOmr*4FIJDJO;U?(8_YqwsOW{yN*ZxHyxX8xwABPJjNg z!g1o=rQXwLSe0slgtM-6*#G;{ENPrp@c0<-zJI^6HMg`1ICVIAb-hi}*>63``I_>9 zFNRb1_{=oAm1*71FaPXNE4S70E1@?xrE+p|UVOJtPD;w_^|iI2``xCMEq3o$Q&MWG z`}<4uhn0XL*JPvAQwDW^D%Qp9JoN7F?v?TT?LcGFhYvSjTN`bhe2nMZJlpIyCfs|! zd?^8~`87)A+P80C$ojastlVOt#a?|fmQF4%EbsUIeixj63v?CTqJjxYyCsUt%8s2q z%X^}F(fvM@z+}qng_rlDWA@T3~{{IgjK0LT4a`TGV-DXp@ zLLbd7zxVL@{CYJrvuihAig5)727(4zc;swme0qBN@$1*8C#ia`h~IB_dwagRmDQ{T z3lwIVWG1}{0o_10(R)+c?irw3BYIoT!82!imMl@p$;~aU&EH$~6?ELhQt#<%dU}4* zHP6Gnytvk_Tc@I?7PK-*RWE*DOh%dczWV=mw$=NqWokFZ27?uGKx>FMs`~hlyfbiKnM$B-gp*<9#1LJao>< z$ypJ+oUiotHBcFFWo`6yDbuWgT_u^x%jcwT+_-U$b$Q?A<^IK=o_PAru{d~hb2_M1 zsOmlK$ocdBza5p z44^5LW`4U1mh=Dq{(gB?s5XOJkHo=4t=y%3EB(DRK{e@>mBGb2Ta2%)i=A!%|BrBX z_G_jyejSV6etdjg2%=KEKs~$Xh)HHjxw4R=x zg{7rv#y&4i&>FzbPDL%Pt{F2VK)1y%^`5>Z{Mnt?*Vp^+t@^qmdb{4&S62_;zWuvZ z?x466hhmo{$myVY|3{CQ4m2<_gKi^V_ukjbYmv`Pqa{n1e*AP=e{9jIv>5j_JYGGkvR>!X{fAJ#2#@2Rz^}G)&0vB^|aWN?S=bStE)m6SABi8WA|?H1G`m03Czi*E0^)zyLT?`?!l|W zbl)C}-+6UKpmLwQeP44kbNRbF7f)-PT|U3=)RmRNjG&{l^7njfJ7@USRnv94UhI#* z-|x@AeeKAR7SN4a@9ysY{PVd%VG^T?hD9OMmko;?MFc%PJzd=0LHB%>l$dPKy9+uA zT18E5(u^51mIl;)c`PyV)z#I~)}o*aqC@A&3w_7KZM=*g-rkR&oSa;_YkTbO zvRlU`txI38a%$zewWIpm8_<+aRp;u}pss1%pC2}Nh2`bXgANIT!PR^F&t+G}n9lyW7f33QFo^ACb&_%PCmU?^o z`d;;pi3K$&V)j%_JUv|>bjWwr*H^8{dgYI9ZBEzH)MV$Gvk=rSZV_0tVM0>$gEwz{ zTDe3U_K4qR0G*_5a{Swy`}^bdEh8f$F07BYXGls)0!`a~5ek>r3SW1oLs0p~hD7F% zA3uWbX*)St9dyyF*OU{L(k)-Ugd`>XO1=3u0#su-aeRCp~72doNPd+NkQ<(Jprr)!1pJKV_3 z?&0HerfA!Gh*^)0Dj(g(P@=u<;rx|PyfpX9GO~U6^?H5qrW8*GG5xrnAg}z5+_O48 zIcJ&YpZoFg@z(XA#=L+N$Hyd4I6Zjsq@}%`eZu~v-O0!MZXN$M$15*A-TnT)T1LSwv+dC-%AhXuY6)?XxP%)`cilOv0mxy^Gx?QrE-U_kGqO6oJDh6>$H8> za+~XxPh#Hl`J6SwlBG*GR(wp_dklL2Fh}j=r09&)o*d_YU2nJL-VR#i!s+n;=(pGF z_xs)4l*)M4EmKodv#J-IYZY4reyJSYcA==KXi?GAQw%b;RVL@ZTU%LWxgY=j_V)3` z?)_h;&0e}xwV92VNkLDq@BiQT^;O-m5jSt%OiW6e^w!AK^ytl-Gv#cn3f|l>Z2q!0 z^YSvC+EeY)kgWBjSLC)*_px4SX3$R3cXxJ9e*W9IOtt>Q1IBhf*-P1Z@ArJ>OG`_0 z_;^DDble;0^sI(=cXuzI;-m>WQWkV%OFO^(vdYiTs%*1#o%`i%1H3NotuEht9OB(Y z788=9Qzi!HXfNg9tc5^6+AgHvF7P_CD4@@>F4L2 znQ7dv?my3<>dT9oc(R#>-e((j)?19z2VI{ZIs zc3}7WeXDEtBphVgdtBe^*0x-3hlmJ?&dyG^b8Zl=6K8_F%El{|keA2zWc>{@W8=lO zzrQiev8$c+`uh6Uru+G1tscC5$$4OwY4#`6tAAZ5{?sWJ78X`cQv!8S6J7`(*0DBS%^$D!Vg%`0(&>QZ3JodwZ)HKYaY? zs5v!Pd28n7WsDPM&6@S}=e@nv#@W|&e0+R7{QRChIM{saed-&v|M{T)%&%9gK{rn> z^O0m?V(RGWIdkpZxw+OolE!VTLRTjxCOWPRTKeM7PUGrtZ!T{8`TbdT`1-iBq0pq= zC8W8{)l4$@M@mVDiQzwUB&9s@Hw-;$J*lNdk)95!`-BHq`E zq?NzF_w@Pv`m{4M3}?)qZCw5?Mn+aP(CgyLV09l~-<>5dg+N1q3tT#dG?sq&{24Tz z@aKK~|Kv9}Hfk*0uyyOw%FoYkoxL6u99;aS_{)onpfw;bUSwQbAAkPe-`|ygzh2+G zrL(j1;Pva%udWUk77=l&sj&f_(_v<22D&W;)U>^69)DV<`t7Z)Z|?22hGnHLDX?c| zFLC_0Y|`!>I|A0n**X;8+qSPek)53#bPfdQgptUtSySU4i@SmDx9DTBwz4wHxnTh6 zTpVm>|M>m;^=;C|X*@4qzC1J2SpD>0&~)3cudhK@UBv(8m$eeHx3|y9&CR^NPL`38 zQO3FqbXY*{Y))adf~TiMpPifQ?cl)h?c292D*~IZt`2|v>eVUGRV%f>zZob0{{8#% z*6iy!8$qpR#TJdMB{#%wzKF^>Y#)5`{oUQmzbhYLu>0|V`R%PwlE!Hh=FMC8-HvPW z8Tb07%a?;Hxo2l*fBgFO?4@G2X0Mbf(}N!$ zAKO%ZQaNvEB+r=EktF?KalhTAb-eRUv!^-!(&+m2^|kxXqNhK;-OjK4@X^Qr2ZUii(O1XXaW@pI`UO z^L?#|E2zZ0yxc$i(UDHjr5{;WS3SM4&as(I#;#@t=u!t!(W6gKPtUx$DRtkkKc7zP zgO*G#cJDuS?p)uswb9@s1bk*3SR1`PVoS!vGOL}S(J_m%Hxc{%gaoB}rOlTGE%iF) z=gjeOQGnBv2hYyV<_c(#GRX+omjt?YYvzm@8V+CI+zdW1`EPOE-(Oq-X=!Po`w!V( zyNh35rWv|6>fXDJTen{Q$77`D?|(k#zJ1OO1J)I_zrWdTJ-f5`dC2K$x>MJ#UArn^ zVbd)8`h7uOD-XBxr@#LFxZgg^Yh}*)^0&7_rSSzbIaW9C^Yf`pOa11Y_^Ru~@$rzPL4w1!dhe&F{))=TU-Ifu`w~Aerf&Rui}b|iZ)eWIJ~{RZPQoXocU+%_IpaYx}aSQ zf+8YIzT5RY{P*{_)!p~cpC6B}|LeLsZ0)>T$1Y!bRpx_2{;WRcgMoGUT6^YgJBG^95a)$FTp;r|!5@~OT*@BB>T;|aB#kZ?P)*<+*bypy0l zvBmzyx68`Pwq#y*lUCN#^OIlsG~>pG#2q_#GJ?*~k-Q6OP&i4nirjuQ)5vWbBcHt8 zoc9*``~Mg*WM*dO+}#!We9ydNr%rjfZHE-f0&eO@w^c05y1MG&qeo0Hw&m@v{{C*p zj2R4VbG`UxZM`kI`1bwU?{g83pCfYn(au?Bxm*Wk8mI55{+_olX~)i;f&1%f8Mfu$ z_w(}Vy7%d~xwf|Uv3_~}jB|JYJ(=v!b8R{#yq%u7bme}Gk$k=F^5x5)Ywwx;F`jB; zX*u)m?()~F+m}lkCb3*y9nP*`VKGBk-A`f*w0vth;RDk4>xK$1*Equv@|$PV+1cqiZFSVvtedw~)zs3mm+MRJU+(MUQ&3)hJvv6Q zMT2L_4Y8e*3RxnOl9V1keE73(^2R)A9{Z^>3p^*QeR+AA{X))%Z;$)!rS|wMwg@cJ zSP{Nn&Px+C!GGYmeEpfF-qSa2EiNf>(RAIOclXDu)$6}l8RvqV7b~K-ue+DTrRb8V zcy!x|sb^kqE1l_eZ<(*O*EAhY5uc5`puu5KS8#?&CTJ}u>m^WcB2a`!%7mlg>FMeA zrQf1*a&)ZA-Yls9|BrQM)Vv!vZ)Q&K=Tvk_Q~;Uy?Ck7p`PV@?(NR&Kz;hSBzGNyX zE0>;oTM6o}?S8+H8`Q}7`D*ogo_otdjxT{fBtyf&&kKP zEctlf&3*DRGH24~*QT|cX%Se&5$yEj5~zS;NKHywl$4zOS@!w8z162~-HKvdRrvT= z)tL`Br|Cp4Vqje{O*eYgmoHzKURU2TS?aK^X@}n&jScdv1)M~znAvy&=31AZ`&?_D zcPC)kvSp`Eo$^vuQAzoEZ=$mMl*yAPSN-|1@!QTDHzGtOBvxpJtyyvA?AfW4Cr^HL zbMtbmi7(|J&aeL$`MX*?;Q6_^!L`4>1TOWSe$7r?TzvVIpjCNycbz(WRyR6s=gahG zXJ$tJI=SP_nKPfh$VEg)uYU00fz4gz7J>5uI+stlu1j5WJIt#P)Gau^ar5TOby;<9 zZWykM-Mwu3pLyvY9vs|~eVq?V%kUHV`1Nb*-Cd=iowA_yil9SdzTdBZ{QUXy z*t~0t-T9{kftHmv2r9dMIA{GHG|b#5W7#xw=1t?`Q@Qq%v)A0b1-^uCN|44<4`1J_ z-*2n52vjN^-F9MYkL*du?WMOF*6;bmwLtTZdCrXm!E5dq85%y^{eIu!Q>VBt$gqk@ zOGhizg38O**kf*)Gwploetb~OzP1LmIrY|aHJ=#=wq{?SVVuqvyQ}2jxpRE-^77Z# zL^cO?9XN16=5fEYd7oMCt%T%c&>*6RukX>5Ctt4o`DDAiVvB|jC^Lp_&x_5;$zdpo z+kSU#w7HIs4g=Sk8*D2A7q^x5{;*6VT158CDHF8rHW8S)#_{+u{(9%x8SO-(Iw-Tr^SxEs2~ z_0ziZv$JQvjwyNR4ykHf=WWTkDRjX{o12&Ss%F@;l}~1yu<&)*}d+xu6`tg&>;u~x~9{1aqbY0z??!VYal|AG7I@$caU&RYUbtD;rcZ|C!nOSWLW+8M*B;{{88+{>rGWTFvbI&$i#MQ`Xe%1Z4=FJw!gg6vk949A5Kk1x1SN7}c>+BC6 z9Bf{)bm>bG{ba4mswyi`r_6Hyo`Qmcgr}#b-ip5hY8r>Hi_yFw0~$)L|NQM68)%ZU znVtXB-|zR0tG;AJZOiH0yVuq<>&k-i_xF6}+05jXHUkY!%&nJCzqY@=-fN16V=I^F zmfx#W!nWl^_Q~0L^~>2-yx;r1psZ|J+Syq-cXmt!&Dw6yk7od7+s@9;Z{K%s-CDYB z<-N^mXAd1Y(h|JfPf%92x3iN|Sl#bTu)QRxr#IKC^uwo5kFJKtt7>R)=`tOEdM2ipxdNLY1`h^LRnWE-lsF_gUG_PA)t=9DL%{ck@$esgu?H(@ss%Y)Jcc zr;(X`%i`~#X?~qC_33DG za`NFOR_-mzznwT1E>1Ptr29$d^Aw%f<&&%}Ei)g#y}7x4#}13RkDeY^pI@_R?zy@z zF9MhO&JKHE3F?kX?%A{F)1I5xo7wp}czK^bI@;~x;&Nf3GdpOoY+dYbo+(QOoI0LQ zOp1OId3u_zq3P8>S1)e8(N@1~((bo0lK> z3~GBge6IGKE||&9&E3@0#KF(My!Q9Esxv+uiY{>;8+AXeDS3J6*4LEZ-`+Z3pUSbf z>g%C1XLuSwy`krSJ{>-M*m-wyW>l0^?eA|-KRrF|cG8tY(d8p(S=#*ie<%6v{~U0a zuXVY;E_P+mQZ7~RX)0=JYUe*fr&rcSZ%@0jBJh^5eT#sTM7zjsrTD0=S*)OAD#Z0- zE@)0$y?S+-)c1L|)g66(*G%`;yu7@;{~O1KA3rK~mA+Pcp3kk=Vld;yiww|^zyw8S z(D~T6x8;KN^;G^7xP9fy6ua7A0&;SGe}8@bx=DD4fD^}E&yBjDT<1T}W#04gm~=y0 z_@~m>*Ivr#?|*h?rgJ-=ECUBO_v5MIaStypc6U4N&Y|dXQBYd?^gP?@AMbX*ulRnq z{N=^P$Bl1?uZxk)&dz>&T}({u$B!Qumix;yF)+nB!6{8GEo*Y$-D^E_Ty^H` z=DBz6<7dxmYG$4>vvKde5p0tFnfGR8)-FRib(P{q37K3*X+_x?Jow185ZFja#urBLd{F?38;BWu@+_d%U)z!0J-!eU`QOah$dyVVbc6O7zHIkKO1s6mPY}+=gOj7yMvSqW5 z&rDx& z^fb@OYKBQiI+lz5cj8dw64%`3x^HXF%}J@Jr!mf2`Q-1fua`CBuCI#)t*JLO1nmm{ z^m6%psjtDmrA)Ivyk5Wm(#l|UAt9lN&1t+|nqg}q8h7rr3||*>(QiIzteBI7fo>__X}Q;_NM>AyLFl#+Tm@#zHSy<_3qt-%-+>;k&&6}&YYTd zHh#^Ml(VnT{MexIn2Wb{Yqlw?RYPy@vKQaJu*l1=h!&SJz0@Gut(l3o|YuBuK zadWf!!Gi}~+}wnuq`KCxU%xK%)sgGhr{CROetDrY`=iH?BX^gr{dT_Y@2`ndrm$oz zljf7PnsRx$f3Vs9|HXPox?h}=wJ7ljPDzW|xN+9RXRodvye-YdWTLz`E^gMM%_*MA z>1(Z{Z`a2K`w0n|$Qz~fJZWzS-FkIwV)MIqvldxD{`C2B&zbJ$RbO5RK0iNST}i2F z!v+H;CZ>!#J3a>A4qqQ<8@=)EqeqKmXReFe`^)&ZamYgOCGenzSWIjz@3nT2uRzs9 z^wzAaTY~R=*{E!pv1}4MJ3I5Ni%iMlw;8^^x_Vjc4(J5->+52#tP0h>Ex7{3yRjiL z=iZ*19y7TDIqvM`cJDuQZtkqtM>swF*~7y#ZV0&bUHNl!kL47-+&4MB%R@AM8Q(si z{`KeX@`qnCE$U*5*T(TqR?D=Tvm)I8^S-SajQ{@4k^tS3_W88_{*3O|r>E;ro|bub z-_)sBjl17YkE`P3=H}kBXU`VavX@Su$~R|UUk4hyQEcJ!35nw`7EzjfJ+8WUYxeb| zq$DRFpPqAzcfEZ1vZA6wKvuT5yPG>OFt9aE{DXG*x(iFa#m~*P{(hzm)U14QVIk|3 zsRC}xL}aYlqPHDbzdwu1H8}We$qTbwlkn5iHhIp_%e&uZ|F5C;cf$L)vl=^AYX10j z=(K+Jx?5X&=Po_CWchOY;=7-FB#kA^^X>%izrQ}-K5Sh~X2%t-rH#z&pu%8V?(Lqr zUK62Jy@W-?l~+uu13;$2^cK*XRk!RI%vadO;jrwrbJYYFr$V#U7`}wQCWuys-ICge+ z%GlSp|BMFLLd^vA=$QPMl_o zz@dy3sht-*Z*R-p+W-CC-PO8NNhQ67%x>JUqTVu5C@MtlWEnx%QZ_7@Kz3flaBiE{5gjSG?9eJL~ncv#H^4 zn}W9Ke0jHar^Dys$o+A~n;*>1Uri7OVgL{r&tl6ZOM4H>c09 zte-9~u zt~@x@$_;8h{`~wrId{d~_Rk3)A01s2yW1>0*V);5rd_SoWHsMMhxtus>vcC7CpL-P zt}6bnrxVHKJw0oges$HM>i3TS|ILy;)cWz~kBoIEC!6lxy*^^$%uIv)d1a2|{rK_2X7l_>s@_4%{bc8U z7IorK{NlT8BKO>_nU~obK0iM%EGoKm`V2|y+3KpQpkuW59=URKXYunN51RQum7GtX zUwdq0@^J>=kISdTuohljo87UW@#uxE*#>DmAuASWKDxD~QQ6(ZI>UdCMr&E()2FQQ zH480^a<1#0z24Y3YyR~oCuhxl@b%5Z!|kBW6lZ3cb}w{pfAsu$`{KpQ@7}#Dd2!+4 z&i|mfXybJs5 z>veSgG3D?~o+0q7>}l7s8FAbFHaGt`(rHj*apLDb*Y1^?Te6q$Ogq!?^Rwyo@c4rd z4t_YPK5OfPst*qiGVdyR`RU60_`OwA+4 zv;IA7pLLUa+qPTFKx>(dj3#Z^U;w&H?&jun(1qb29v=3$l?1JpnW7!ucYAw&_WpAg zPN#3*md?+A?^L|XrBF~<`0%dM*FAIHCQkl&!a}j-0=wq6)^l26YdoHwn!2;-DcA0@ zx0j;t9BgJ677}U->XNVjGjV0`@>jZLaWiMkxUeD7S;{Qug!=rNLvL?y2W?gb-2{5P zPxj94^7kvh-`lx)!if_M4_+$UJ4sx9bkrbECL-d%ot?8x_o+U)ewh3Ct*GL2KN}c7 ze7!zP@O>-y!`u0iTT;1?_sKqfbhI1P+rPbb;>3wpRs=p?xlmj$rlYx;+0M?+N}f@( zr2Nql&bZpIp~=e?TLg~Io3mN>OVWu6il7q(7(h4F>My>~FK>VB>{-x~%R6`P?yUNn zwNOUZ)7$&;hlhv%{Cd3}G)2 z&H_0``LkfcuUk{^96Ho=J+7L!VZ{m!(8bTwcl=6AOLOZM)16^gyQ}Qg(>0NsGj4Cw zefHm;_4~o*2)90&%qKprCsMBKot^gf;lmC2^V4+Ki`+WueRI=?!~7d6jqiPb|2QkH zt$woFE#pvhVIL2QAlqdMbKFc)o>upNyh~#f=*;IT^FBXSMymy}f<1x@mgK>zQ-s%7RBo zA~&bK+$+D3{qC-fZ(fDwZOircaA9$@tpXi>_2=*3!m={6vNBMQbfW6fZ5O!1!^5+# zt>HYdE_U~Y>#thac%=eBgWP7hw_N@NFS8U2+qP}njobTuo}cUP=;~Tj`1sf{KTnbJ z`?c)(dl=vE<6a#uonrzz=5>xmAroXl04V>mz4U%@Zb^*gja{Li6@8wc+fccAV=!nH zPnV76w$^*#al0EgZpd8MeI9=7#ka@D`y=;OZN2wM%p^ECxTdD2XKtIuIVYzFd%v4l z2cMtGtfqGCoW}JxZ{B2FT-3Vp@`Y}v-%&a`30JiwOgug}o_Trs*f|f-K=q|1H^i!v zJ4$ae{QdP6G|bkZ>OJj+?mB^^ULhi1UbEN!K6G4O+FCj=V&<$v+wW&h6WjBNOGQ=E zS{YPIotTsq{Q`6|EU0HZ_0scQZ!azNzPz`(oZ;LY%fs>Yf0u5*;Uprh?A9=O^0OKG zit~=1;hCo2{`?x~>YREh^#AH2**^3|1<%o$y8w`?)ldsNP*V#BwMJ$c*{-QD{R zY|H&{);u9S{Yr>g?yV`Qm$$4AUk|#h`O%9P9y5(nIXE~JjEsVA*Iio^Ib+6*33KM0 zIoQm;_50Kx*DW6u78dqMnRapzFA~Z{!YfW>dS$H2N|WM zrKQaC&aB`6uWSGQ{bv6zEOg%dwCdlVO3=;VGmTQWoIiT}_~co$PTks?{qn*>W<5Q< zi0J6x-DSB=O-&yD{^l>T4JE|I&;G3Ro_^@-Yu4+avGk8hfleDFCADh% zj?B!=RY^y?xB^tYr-hWizjrk{$9Z*h_)1RUp1H0cKPv6N|N8p+aPz!7Cw})HZr2W7 zKkuJ#RiCiBpN2!}`+K&xzwau4zwYn7h0g6){{H?R>fzC`Y1_82ef##^ymkB5tyRy? z&VGL5{Mp&&p+~z!Lw6QEy>e}B^wqu9->=-g~nanMa9LJ*Zq7d z&bmT>-w&t1f4|??($n)hJKNlU=B!z(HYOjJdb3sH&g0`=Q?-|0NuMtoGvA3r@kqCF zgxj{(ILWNL+dym6-Fg^6J1KPH_r>IIY}L?O<}=f&l}q%)$B&7BeteX%C{QT3{{Q|K zt8JBp-N72rjcs*xbvJI^di4Ii|MhjTpmV+E`N_>NNMyRcE;jkx9LtiImp~U@*VNQN zIzOPv|J?t-@Bg1PV}?gSfPk!3$%SpPd#g-Oo;-Q}P5PZ3g7q# zX<}0Ji_q0!Yqta|mB0E~f1!<6df8o#+<$+5R$0fb+0fb5b*jv6V`nGlY_r@`m+~GR z>AZPsj&-?Te&w3T&2G}>k88z`rGEb(eBkim!=Sm5jGLQO<>cggWGpA$ulwCQWy+K{ z=1Z3ydU`rwbr@s%Z0mjd_C@Yn7qF0t!94%onbIEL*=C7ZSzZnf4%42;#>9O1`0?S7 zkB?nkT^T?8e!rjj!ph*~I=OS_&fR)k-0tkD{pra`;X{WG@qCKn za(R2J;GxsOuj(xVPJ0|c889_J-+!{2F9T?Vw&KT!h4+%IEiEsC#sQU-l)hLM#m(5U zd-vigkCxA`V=`Hs>7`lqCp)F+)|O0-r5Sg3nRbioyJ>#ClccC0SN+y>O3;@4`*Hb( zt$8`QxtndpMMaMuYUO@;X(_j#pC9O?x(5#ul9H26dF5;vmMXMYb2Ee2P((*WFr-Aj z{-e_`XRD;C+4<#5iHwZQrdo!n8y7x0+AR)R|M30Y-NUC&dHp`t zr{(cU9xWG4{WQh+psucNVM)mnmrfy@%124Y6Xwn93+h_G|DTk?Z5^4~J=2(kg%{sE8V4GRtW-O? z?ZWOemyJPpFJ8aFD`j%Q@97=rD!J?$#U5YqvN7}gdrv++J^knF^?1-q$hp?#pT6I( ze{SVhRb|!AFQ0a({=fHHb^jGo5+`0Sn%XmPubHBg6 zJu}ZXdi_VxB~zdg=cp*DZgKr*pU>N0&#qA{di?NkyNZemXiO7yY;S#9ot}CB|GzOw zNsAo6DetKHuIK3J2-;S%G5NSr&W#Pr`!6^@D>U@t_xYTjrpx%_ z6J$XMXhi;Y{{E$ro6|t+2kZV;fi}Su6l^Hd@6_M-qiL>nxlz@Z4A3OY=g*H{U0n^j z(0#{_9Rk9_lb7!~bLLFO9P%ipIxJ2MkB9U2`S4ca|+sFj=dR}{~?Z@D)%Iv4)| zPh5Xmcfia}{HWLceYIQN8)Em@#jf8N9269Cb5pA5f;n^MTshp%|5Ymf{-r)S--Ha9mf{qiF4>bh9#)b#Y_Yu2s}oo$wTrIDF^ z)6ve3j)1$n%fr8Y`*!NsF}JN57oFbT-ygp<|GwSrLJ$9WHi6mK)&&0h_it6q&Z1MN zPI+Bj73zI`6yTAR+`|r){{2?VJTe^CBLekIA z3;q55eYm2cV%F(ty04DQ*N1eA=>`=)KNmW`?$=5w^Sn7yrdd;@>}qzry1#!v7Y9cG z$ok69&raRG9UZzd$aUwgU0UAWr)A=U6Zh%p>Ref!mX>wBLr}}s*7p4SOi-Dgb~^dl znVGLXJUo1J-v1wu`=+*MVvTkl#x@qgyP*JUrfX~m*pTBf}u66m9 z8HULrQ?){;?A*DtsH`kZ*19Z2QBm<`k#+sQJ+CeJPPW-uiKRy8iX*np&+FNx$dUz1E73 zj(+<5`EuLiKW=PHUgbB}>eQh_PH*q-4!>=-d~>`1e7m()Wp7q!g|3>i_J-b>=UmrU zO-=an=v(FVy?gh9yb-!8B(U_=mB4-b_MN(aKfd(!HQ%opR~r_U^vg=#?iYPu;XF?A4Q#HhbqE?OeWm`KJ#b z49cWh5BJG>&77(E^)Uajb1tBU-m0clshtKLesir7laiW(y58R2Zd~ypVehf}-*30i zG)!j8%*;G9-+unTzrSCb{_9q8Hr(2pEi5DBGgT|JsAq2Bx`MU?2OL0oJs?0}vYPLqd-v?ZEz{;`@5#EV zwX5VM(*oP@9YIUISlHNvq@-rOzMhk{YJTkYwQJUZ&SgDysw-%zm+kk$yxY@sB8~1} zZg~9o@y$JzpN(%vL`7X%9j*`B)c5+@+W#}P>@tO9Y&iB-J7;M8$rk_cNJ&kNEk8d$ z@BY5tojZ4a`?)%Ny^y5j$=Uh)GLO9B>XbHL5O4qDwm2KFQJER6J#WBaZf?G3?_N%B zZet_1SHv0&=f>KJ#Yq4AJ7qR^YCo1+|x^!vY&3BRS z*REZ=cH4z>0lUj`Pfgc9zcP6Fj?&j+>(;IFx2@h$^Yhb{6@kjPj|DO^GTuDL$aZ$; zA?@&WDmpqm_V)YJ_aFE_{dRHd-Me>-Mb95OB9s6Add8(AQr_O)GBPq7Hf}t4>J*o| zyL)cpn-?!SmM&EVcPegYm#^BkdGqO@7E!hHw|ehfzC1bcaGPPm0fsq6w`^}+5eZw< zz{b14Tl~jUagEqp4L8N&I5|0cBn+E0gO>#?^N~C^&(=F3LE+oCZ$7h3PTqJadHw6_ z3oC`EXtRU%u}Ukp2rTlLoD?nLv)pek2RFB}qGIEP3juF`-v0IJ-R}3BGB2w!JUcV< z@T;qMY4X}YJ+&Nc^4-j=+)bl#?VN6yVn zH@n_0S)u}3Re0Y1zfVYrNM~nfnEeV6ihmIdT+6pSn>;Kh6ZOuA* zcDA`@=qiza|NgCs+xu&!v1M0l2Z!&%+wr-?gpD0XpK{_>XSQS4`6{_y?# z@_+y3JvZmwwNg@6{(7(7@al>{X3z<1%eR5r8q@V+7gc?IWm)(C++1tRcR6zl=M~)C zlsdoqTY=wk-@O-}bBQOJnVB^_dw=Z9%ga0K{#vaLTYJhX_D|)ikjC2ICdzl~>NXTF zXEfHEb8CD4`D4A(py7soIa?()wYI6+;XzxoLX(%LnW(3qQP`3h{4RV213O>C?Ab`Y zzJpt`u6jkwyt%RQutM#h=l1^@O@db%bL|y(y}BxNW#ncx_dc12kB)X*Zj0QW2Rhjj zG`xKLJ!rM(n;RQ-&d;?h2A#AWv^_62CN{Ql`FvX$d3n$Zw#_!*56#z(>A1Q+etzxm zZ=lVu$9kpPH*YTf$Fy^2rrVC$rk8t)`sH~2f8OjAk8xu9^7{Cc!p9%>R*U~W+`ckq zzg_IEl81-+?NeS}S}J2%q;h?8C}^SgM}Fa{mp4oor~<7C+F1L$?97=n9o^lFLskY= z_0FF*t!?>o^@$TFMnpz}ZtRMQiTQG?ech|8mvttdJ-_AI{rdlN^X~2fZOQAAGzL|} ze0+R&_SMb?osgP%h-I2ytk?T{dy8LemkVDX2iiyjYFb@c8Qk8{!O_Med1zMs0oc<>lpy%1S|LY46Qx zX9K)at-~wM%rInOXTQ8X|2|XY{_drrt3mzm;4}MwaqTKMFLPU@uw?n+PftI5Jf4u$ zq+XzC^=swX^7r?2jeWWrqPOR5tp8t^ygcy9-cP5rtL~<|aRlb*PF}pf#qsP+WA|#F zi*3BpJeQ8|srty~d+*=HB2IfGno?7uB|<7HEbQ#;7(geZxps@a+}qF2FBh;f zNcHWBpIfu9Yea5Za_{#^{p8*)*H(x3|M*d{Xwf3BZOO`$C+5n^*m5Nw&${-8jpe`$ z!wbuLH*OaCHDMlK^!7tG7Vf_wk~;ysdJH z)wgfoRMgeeEBBSWyi`$L{rK(Mvu9=+7uU)xII$nHq42=p-{0p~RyCfOxu@QV!!}wi zdt0kxWp(xAhYuMg(k7c+Si@fTe(!gNvlH#Sr|B4a*gNg{AY~4k>o_~xG`sTlw$?V@ z#IIQupN`zP+4-m91A~|zi@v^ZV{Z29pOX2vzFcvVUf|LxR8duRX?6Jebg^3tEO*;1 z=lumbpOa6<;=re;r{_oSh}l`x`sK@)JA2hY<#We`q-cp4(B*hL%HB#nKR4IdL;n5V z@AJOhSY=uKEahg8H^)SG{rzihI=uZ+_~Bz?BlE$dtZqFQdaAk)z5h{I@xS)NhYL9k z*Oze4v0N;9H}7W9dhqty>hJFaWo3OmJUF_=bd#>E2>kK;cks5H$gFE?exCWd{^Q4w zAuEGev$L~nYHD8G-mVW?v+?)WSJ2Fdd%xUE(|C~M7M!rWedvKz>8mBOx%YOJYMahC zoHZ$asrPiyDFQ64tb(GVNB!;p9%*1?{&LSh&>;Joj@_RR&Tp@)sj1cc`FPxCw%OT^ z$WEn|j?8D(qUP80ot}2EOZ3Cv?*XgD_IwrF^Qr5ZhGC#ZOY6a3UuVs~{Pc9d_H}8@ zTg>mb{CO8MpZ)3S>C0<=e!4l&-^;7&S?$Az4;gIg{>=FBq2TRx$*gN@JY8H`{t1ER z1-LqTa=4pc-`J=uCML!J8Z2ddo&M&=##?pE{O8BzELZ81wKltLc{M15dv3@IhRJFN zTe%B9C~V1KjIZMiU7f}Co>Tb2hs3kH5&{e6*)+!Pe$dSS?`Nb=6pL-uftA4ppO!qU zW(~-&?{02BY`p*dlP92ahTq=aetu)b`mnXPjNk9C`Dp|?Wby1Q(>XSkL2idy1)M~r zj5g`=oV#~#Uf9|w(A`|1ExU8A%Qb?R_1ybiSYG~o>-D(gpP!zBcF2Mj>TFK;-}_zJ zW#hFqGoQ^e_cy*;b6PB7yWi%UVK+BDc+bB!I@>I4b>QI}H}^$MY1*8gcwX+t?(om) zNsH1})!*NDVeRa+T{|)_{*t+S`}XY0&(AXV`}z1>=__z|`4eCLT{13o>i*h4)t3}h zRJI5xlq_kpiqKSEWZ_}hafyY=>+||8ju(ky{IIJp}aPOjk z!4(G&4$aq<8`~EfGB(bcGqc00n=3(^>Oor#yl+Wbm1xA* z{Zw7KawTZB3FzXIiHHAv5IHHhXYazy;Oy>>4NeaxsfIDgm~gC%YYkeu=EB__8%=*k zt&O@?T2%e$@!ESYb)(lv9;yE$cy4~XQ|p@RU(TAZeg3-mX23tER<4T+9GRs|G76%f z|F67J>E*=*s%uY7RId4a*8Iq^V_G@g9UZzN+m7l+ZO=P*?S*Nxb{fA!+qYJVsEF1xYo>Z}Jj_w79V+77j@UHE(bzO22Kfy?>sBpuqg z=UK1$y#>L`{XnNh@2&p6DgVA*pRDzFnUef()V0UQ&T`T*Eg>0L4)YB@9(#7TcPoK&H;z)q+QkT|Niyu^qTr+ zt#$jZy1!QJ{Boedmrv9$g4n8*PgSN&AuE&m!4_;^A|6X?Z>go@-^RJbC z(>ZeF!211%I)w{9sr>oWExICqO}Lyy#@>|yi`h)Fzx{q4yfNurRr5hNJ3G7WqCuyp z>-*o`RccxAfZ_VOSnuLD+wa%?K7HZqVSf7wbLRMbeRWkcc$v?#tbd?=b{mt9a=p5? z*8BOnxst|dJgVN)N^bsjby0b}GClfE+S^-O&o$VloDewHCp$Ye*VWy<_`L1+2@@tb ztPENTI$U<2*~Xw8=F>wSK6t?q6L_ueF#yk3o-X9pSZOzw>Nv^MZnNEfU1qE3Y zK4Pi<{x0?ZzrW`^Z-G{YEsgHct9UZeJz{T_X@W0D)ZVI6CuirCVQZxpE?j7mb)}=B zp}~6H^PSJ9W_-|(BV$! z=G(uYRvOICD|MuWQ(c6|Zs67*!=wonfL(x+&P_=SzZ#5|KReyi?^v=#=hKh=c zf~TjZM*oWjosz&MrZZ!i`JSMqULx9IJ=)>x?tIy$6}rkG>x#y$ZMm=Kc=#q77JvEG zxjQwk0JavOquVvhSEX=u*xD#d`}kcYnbWp~u8A;Ypvh|M};V`)!~7asF~^Yc^;_`M0;XgV#hDf(q0gN#l>BqOgOM9_4EwmbiVcb|5?4gwRN#u zuhfs9Kkpi4G=FXTYJA@2Ff+dmXm@JN-?g0`9o!l@-O;umj|iVj%!bg7INAKU4Z$CWo;WYdDx~%K#&K{Sq?_qQ5>bPUsnp?Q~zySv-(=3(< z;bpPAN;JK1Ylo~50G(qEI&We7y((=`c&;pYd5K5D0CbR4;h!IcN=iyA;`i_S`~!68 zi)FEzzuiw2Rj(-pZ11gqHix@B@e5rQ(g`}z;^(JS&^e#~?*IQ?&m(K~MgKb6`4e5D z+H)4~JU7R(`1bXqM~`kyKF$Z)l5TJ;p-0isaH8*QGeH3Xhx_|#CCzef$X-`bnsi+= zr~CF@39ormrhrbxp8xbMuY|#Yoie9EGi=-QiK!LpqY+U zp{uR><98Gsl-%PzO~-S-U2Vknyt!4SE-I%*bRs7Fe!qYI^Lf>MhRMe+EO2bzz3Y5$ zrPiw}D-XY3zyIHK=ZpDAj~{Q}Rr=bf`dbd@}hCrzGwb8B|^ zvUjRVldf0XjBR*gJ5?)mk=Il$(1?8M>1h+^%;}jPe(j%D*_#^^{q26Xl)k>UvFNE6 zr~`X?n(pQ;XYH*D7@nOijxMgeb=PhtsB-4He|uYQ^06LC&=}n1<^If|#eJX?z|?$a zx%~X}6g2U8cULLsObxv?aV{;ldp22 zeeA@%KT((bT%Meh5R~STv$?^*W}qFuuEcxxZ1a3GIXO8tgQ?o#W}KXyd70b&WRo3c zTW=4KD?EE%PgNDPa_8EY_xJCM=*QjpY5n{7TDM-Qv?nJfK6`Mmd0l3R%cm_bUc4yz zf3BjsdUn*-teJjut!7?a>^@u7dm3ni){@<2Cnu@0859;4mS1_+Cu_}gtbQzh)h3<(?h3Hfm=6zMscb)YYYvdnC>C=6wFm%gJd7@{{juGt+3epTsjrJmi>IgO&c)Xc%-CK3 z*Tp3-Y1W}_H$Yb#pZmXZ-;YP#dD+{mzrQhSet^LAH!Ok$o9xY%tbx47Pn&FSZ7c}`Z7{cb9>J`lZwM_V#wr5PD}vhrx3H`P)F@p=>0*&G^>5s#luDPfkoMxnA=6 z+F6FQYilAizs&qnPW5C%XfiGy{7UUHk+`nyypA6yKDxf zudWoni{4YQG4s+A&t1REUS2v{QC+?Kb?1L=uG>nFk}jJ#&bo2vVZnuEzS0Mx7NtBs z)|;2PJ>%jc&?RyWM~=9}RXk)pYouGQ6Th!!OWxgClE!HQ!or8Q->>t&zAjcXU;zWe z%9ShE#P6R6T45+8-B;r4Cf<>i*Ft6cf{ z`3kuo^ddK@oSkI~Dnw%T)!ck`%GD)LPerBW#0d|r&{aov6h6MOt913}h@>Q?jT<*E zS+-0_LZajFLyyh5_xH&*9B$`l{_yd*Jm{b%sJXE{`q$Pe#_?Xy*IxF z2L*w8d!YK&!s3SHrN@sR<*bWwQQ7!6 zJ=!h4y!7=oP^td<`uf{3J3CIizqK{neQ(v*h@C~Mr>E)z4ov1Aw?S~J77TCnrzrAI;E$8N>wELg|^^y{k z(pOg&LMER#)cvgjZT0#8?=L48SJA)UvnEV7q}+EuEolKrq;GG`FK*#!pzIdUf$y2;dyd3JU;dDvEG=yRa4hS zZ@;wETO4$cr$wO>!@PO(OfoOE7^j~DT?`Cr|2jD_tqxoJ=(4|k>0xbUr6TD&cIvZF z$g8NTTBftFkJz~A_U-#Si+ZO?xXjr9_ieu9Ii{E; z9)g#*W`}=%yZ!#GB}-IxpB9~%^DZy#^0&{Qy}#%CgAQ?-dwoTq^7D^vywXz1J(l(V z_DGs!OjsGQanZ+b-^?5x9iM$XE^iL%%N4&pH`m&CzFn=)*H>448<|*rCMvm}Y38@f zSmrl3D=0Yl@|@`9ezL+sLP_7=-cJAbvA=#s6Dzk=e0==p4~O}eN2mXOb93`D|M_;y zd}bOQyM6mM3p@MlcXxNset5XuI{WYAH81L2H&5*D==Lp^Sj--EB<{TZf1At8e3=uT zpPPGSW$^K}Z}NTb5q8u zMC0zq2@?cBrOd6Z+0&PW$GALcTk1Xi(yCDHM~@zT`22bE?m4?bvj*qpT0ft2^3L3% z!>`qqZh9?go7nyKjf@xHwSrI5-u<9XcKN+Z^}Cj!D;MWlmzNc%PMQvDUwwGs`0dTj z!zU&xuMAl^>GO}3!OLfuWD0?fVW|1}3EFDC8L_dWqodW#zfvy?egjt6meg_g3Yf<@4*5baZ+^^0~GJCvWGmyjOPb+fe#C?AQ1A z@8|54e=t41u8{40m#DT;&5wd_@9*a)A5~IPQu>t6bvwygUS2+GO9tbCgU#%@oV-s@ zO$9aknAbd=37VfdIa&SY-fDAyn~yEUnac!~-FECXJ9+!n_4VhEbP9KNbtS#MwH4GP z+WCg}z{khOK^<|^tSbd=U!=2dcXd1w0ZokZwKvD^E-QR>MN@{a{oj0TCChn-wxw{F z@vE|DS55}4!Ee}{e*V%TS8lobKZSa6dtTT)ZN}i92!2)sr~)!d z1o`xI{q%o-e(J>RxM0ckn2n#GU#{wfBB+FF=abb4T-4$_waX*yGD|$7pS`J^*4%Ry_uH!SUQZs!Z!U6v~(ESz6;Zjoy@2RCg zTe%!RKDzeoZEpEhrR~seXGgbYj`ugv1tp+H1_Nl#QFL2>?7o_r?((%$)<$o?_i4{8 z)9g*z*Y#{{zNoaN_)pi1eRMm2f9k(KKS8HGsHmzgwS4#Tj2*Vk=**T&@wZ zVS(?|w8m!k#OHoD_TRt7C)2P(V@JWmbMHgo^w zpMA8-#pwN^R&LNSls`W|{|wsQ`{c9{wyTjgp&)&#|L-F%N zlT-`dNU*T}m8+9BYpMFWX5qtiV)FdAw;kM7x}k3GS3@(gtZOY{YaiT9Ul^u)eY##S8bxVGJ>pkQ2go8{HCLD4V3fWC&4vkC~b{OvY z)Ft}m{Jhqw+6yC%XPEP6U2psSuKDETho7FVS?TEF;!?!&HOG5fQqRJqqg`_>3Y(N% zy9$1Nd1?JB@^sIYD1b|j@Tw5aJ{ilV_3QJ+!qq2j1s!~OXJ_$D zyV|O@?7QN+QB%ZpqXgvS{4Ou^y?iztG>fSfw&ukf&F|m8KmUB*ez|iy-#QIGHJ^s_ z_S@TP%3m>Gz9bM>FJw03YFj9-hTY_>DSY)ySTd>SAI${57n4d3R>>4 zA@T5y?fIb7gA$*dm>9A$=xF7iKR-X8nPWLQ?d+_;Z8?$Y?|<|b*ruPGW8w^I#DRvQ zYJYv%xi;=2&s*2u>U;o#X-|okQwf=v8rgQMOA8t>) zVX)fW!rW$A;Y*=Cf6Z#XO#Hg1GG)m$e&OlCNX3tBudMa7#KUcjpmRMA9X_19?!=^7 zvraua+TGdFk?{4^)p`pd4jI<2TfsB#Obn0PXyyC#-5^Yd(HZ%#jd?^@~4PfwH2 z%rNAUFi?0btmd;(%A zZ8z)Q41RuY?p$GmoyB3F_CI>~&@m!HVs+Tsq~G7(wzRiDF8IN)kw?}_EcwE;v)ipo z-~7`(_0z`2CgaKqL1A@26)mkUqtsJ(u9bFncJjzrO!)AjKuAca&c5L9uCF=YCMX&d zsjP{dY~5@Y;XNt$ZkF$yYdej5BohB7b#-)jtXsT6_hyiX2S=~8IUA@JEw@RzD*Ni{ z>f>KtUS1jaSX|0f>g1c7n=MOUO}U%ex#Q}-+TTCEUXOqOV%ALK^h+BOo%`hN`NG#b zeST(8Z&&ks?bXe1U(R&BnkM}7v$G3J&BxZQQzDo9O_-BY9;&3I^eD-)V4LJgZP32l zS*F>b{i*Nn>@=6J$}-kppCDykH~Ia3`C~hapTE&_KeG1O+1cgc*WcdQ*!=tb?taVE zQy(%)wrmY6i>sdSZ|Cy`POKSMPgVKVK09;gzgzQ;qfM;bC#LJqznl8R!n*9uhTSZJ zCsReXsot)7HZvVG_SxClS@ZMh^qXcm_aD4|U48p-rfU&%GEedIb9-OEK0nv~y#2ZP z=~oUk@~n&$Zs*QEZ8*zh<22Lkn?nEI|6gOe%hgD8_nBfPrAgN_C3dDnw{nXwOFcae zd_?m6`hPc{b-6t02X!bO7A2G`u}X*uI{yClc4yJku57N;nR1m!qWXV#>#s>YDbE32w5t&KKk(2L!5zJH z=jZ1?zg+fb%ocJ>=23R*VOaAaZf8+y)Yh!2FK@l;TCQI6W1(qejM}_baY4a}ZyXb& zH|?EgTWwXn57Y-JHdQLRE+o8m;p1kuga6&u?C4s*UjON-smV7trRLn-^>x{E-x&rE zmkCQsC42b#s+yW!UApz|#9v<*dW%=QxBZbT)ob@?3H`)Apv6umLX4T<# z{@XDVJMK)a|1Yf<*CHNQ@N=!Ljg5p|jl}`q_SX1aC7mZHs~hLs*uc{-t`h;eTpP4U z=J?aEcPG~W6aMz5vGnzuwazXsE=I12(M2tBd#f13&R-UfuSo<(2JIke8Om{`d%Ajdm-W!#^KD77yp&rSya8QGL=7J5n zmWL+$+j)L`bd<59r$wpI0)^pO@cRxPN zZx8ATp8askwOefIOp~{_wq{GdvoCzaB5PH$AYh@Bh;G!Bu(eTlOWeNsWZt_oYilg1 zp4Dm1Jt4&N=x#Kt(pOJ@ zgjO!DqXG`!#UyKl0(|E-vdcRRbfytbQdIQ%f-;v(0~ zbJB)MF1w2PWGoVbuPV(fc_$;HnZ)`|=i8%h{h%!wfuLn~6P4XT{c%vcdu#Ufb6@tp z-~E1{N&Nj8H*Kt}tS*1|Q`R`~OG5bZt>0Z89UZqda=iO4ZBF-R2nr6KX_h;>?n(Ui<|YH^0_kL)+*?~bi|_4zzpvY{tzEuu#>(L3Nj(drwq})IUH0}hd-sv! z&W%iYnWygGpWn#LK55dVLnkIGSN{L|eQtJUdRRh2!mRbRH8l(|`(q;Z)jW91TUfYm z@A{68jvc*+wms1}Z}XX_m0O(cLAU-s1y$9f&$^1*ayHg&c#`Ydb)c0yFB>$#%EHF> z>1ud<;Br6NcYD9bZQuGYTy_L18m;jm|+maFZd|&bNa}#IGI3bl8~rJFE5ZL(q|vMgQ*AeLid6VA{3Jd%9lEtu2~&|4G|EJw?y2pPgrW zn<4GShQ#eQ?;p0yn*}fT^WAQ*qjQEqO-JWU&W#NRj~qQZ^Xcj7((&=}#rJE!-~IBZ zrG@4BzGr7=OY`&dgGY^@+kd&>{A~65eMNP$va-3L8G@$f=ChZUdY_%D9e!q>ZS|SM z{PsDYo}bS*%egTjv6|oh&xXjYSyOjbeO+~POXlQ{U%r^6pPy%HTm8+Xv9a;l@Av!7 zKYsl9?95E#v=0vsvKg!nTf6IZ+5b~_|Lr-#TJ>#99YaxeXXmjg8i{A3^KZs>f`%pb zX1=;PP3EQi{~zpE|8M7e3u;RgKkGRwdQ;u_^*=s2n;BQGgdFRapP%;s*VosUrLRQZ z-r8FHuKMZJaEr=MDxif5uH9lke*YGhk~%fVve@9*h4u0Kd2UOXRz5^1gIMJ}99&d#9yu7QDp zFK_Mm|L?bP&hE<3&p=~7_x4tA&b+Ml{B^;H2adB$GAF$(QTmp~>aCeYA4x42%3=k7_qy^_q`;)ge-mW5BUt^LUQ<{oeU z-c)cwG0Btb_N3&WzkXfXU7mknmc#4S>-TNixyZUWdB>M~d#m%S{F0KCK^7C*bNzy5#8^R2nJr#*R+a&3M5{C78I7$$2( zZ__z>^5pirc?+FdEeakmFxXh_FBC9x1(;9S&YzTo*511V!zax3{N*t_puRaqIt;-`?Gwec*rt=$g*i zX1N@koSx<9UR+$fGGwI?XsGk_G+kvgvuWJodIqVdMDEr7&b?Rv|F6mUiu--yaTSfA zJ-;(%c=-76Bp>fPD&c&2neXN;u^S^-1{qXuGZnm1{r+Zb@86!ry1xm>`F?!g|B!#N zmy3&w3VZQymKRET+e%-DJvT~N8@;`(`uEIOudLhKazO>*vYMZt)Z+Km96Nse_!Pa^ zTU)ZPp97E5|CBb*E2-OWzU_Kk^;wDJOKkNamoJw5&YrhPsCR^HrMyc~4;(#p8KyEFq9 zG-w7b>8Sj0kp1kHmBGGQS+8WbSMT2PCEV=ON%dnEGRJ&oB$TUu`}N$u_v1ISw2Ml+ zwLy__edaR*HTK@!qB}d?dZjkj{jHMWWB>i_?c%7dS$WyJ^I|hDGP(5@MNgi@`KvP3 z`0??>4-Q`APx(=>dv)RZDI!0f+drJ_pKwhlTViKNN5>PfiBfKQI}d>twiz5VD178H zd$r)i+h!R8K65yf-5kEZn=m7z-1VKHH22!5gU{z5o@2>%OG!y-=Y&Jso^a*f+5#H% zVDOo3_IBH~8DbN27RB3VTW)COUKpr+WB>hkU7M~g^DVevyCGYAO(gUG+2u~4cAR)? z?n%)-d-j0#el`^U)Dk@DIIn`qET65N`PKFI4vy>@rFlhfXI*W+zr!$O4M+6$sD+@G zSdnUL?n%>KFo14MSza?3rH#RV~@is4XUKnQ^vGLHmRWXlWuV3iK z``WjqQ#kRaQFd4vD1U7g*`|8^#B_b|+9HOJA3s)=MXRWP`qVU0`Qh{V3u7!ZuAP~6 zG4HO`ZtdO0#}3s0W9F51`u**iz)xoO2S>%%%GH2Oxhk?vHT>n>-R6#tjtro~VPkfc zfZM$5Le^&49{>CI`?Zv$Ug_xDhgv60NhvSgK5YVnae9>P=e1Fe2?~F{2%nk32r4k= zf*L`chqgV@s;jHxkuYFr038Rbq?7~do-B<{Mu-_rE1Pxjh`yzm`GtlM%LPk3m*xxSLwwaa0)Ss4FsZ~cSs?q1vcteMU6 ze#(iQ@y5YeY~B&|KaoJ$1g5+=j7u%H)-3eYg?b?OPOkU z=jrP$n;)(xD$1IDJ<56K_4Vzx)enA^e)!Pv>FL^q&lME~WO7&^HnAQ&&R$ciSYNj~ z+{W-?)V$ZHL_0bgFE3yFc6$68-ZjPlznNFOP|SX`xs6wJ4QSX&d172yxWXjSKY#v! zYV2k<-bb&luI`bw4$IE(ev-D-+j+U)HMR+Jc-;FB-P?PO=fTB`1+S)TomTGCBf4UJ z{D0e&`y6+Fes12sU-XpslnrW@*>`VM{o7SlntfweJ6mgKN5_fy;Pcy_M1d}4nOFVp z;gyxapkbsB4;)WT(R}==>`L&g%`cvVnzBlH0xP#aSG|5}zP&wYjS~Z8W6z;yT`nM? zvK|yCYtzrqYiVm^`tWpmJZNruwzd$cXqdRiAu+nh)ZgFV?Qi~`f~+hp=Qf^=JC#6k zf+x8_iNE^ON%hQITQnI!Gi&?*|6PAp6x0Cf@W@-fLAUbIi;Ig3Eo2x#w>dv~k^(dK zj*oY}=e&adf4^VenCuSfW`K@zd$G75bVASRcl8e#&dh$k>9(iXu9B1QxWLZTzi=sj zQo4()YvA6h(npUTad2=vIMB#EMJLke^7pmT;$?4(92*~*t>3d~>3*;VZ&$4x?|GmN zo1n8W7B_=b5BOEi{J0}_SRO*iVq5W?aijy*DmZROx}GO;`ckM zLBdNs=RJD-_;9;?9Y=#<+w{1q&LvA!X0L`Sa7&E-G$-xstc##KIO_iWOh48mnOy7& z>c%Qfx}71h^NHtj|M_YrCR4h_^(X1a+kwtA?v*lqqvs8BgG&)Ruk!RgD^pHR`tv&e zKa+x?;Y2yxstL1ZWfg-)jg*uoMQh}E&%3%hTz{5HCewjszO#Qkne6{Y*8`%RmsfeZ z&D#$TK{rLVx3sWuiD(?Swl*468{AEW#KO5{iBBeN4_y~?({hfDo!vap-ju(;N?~4@ z8E)(>R*&6X=IS2>F@J8*4Y8lh`uh6M&dzrK z`ROTR#D)aM_j^9~?RACtu5a-M-B0SE^^CLg_Z>Wcp1)zDvb#~*840-mToR*In73wM zPrJ4zvZA`0`NJvg^&c*}%ioNd3bx~k2-j^Tb3rk&V{dM5{`l$BAqnUI|NhRjsoVq$ zLB0hWbc?wC?f;rUt|Vhl<^dh6__*JG+io3*H=lvL=>)oJ=ux-+hYue>R}Jo~{cV(R z0MreBtLF=ju1%V)xf5?+*jrt`@5dwV=f-zH2OELru?!6j4}bpt_O|=`dwcIjE&{tN zMVafi()N|r-{0xP?wZojz`*eA+}zWT`|Z#D{QUg#obu!yKd-C|HhmHUGFqj-NFurC zu4~5=mFjPA7N(w__UF@SeTFHT!EK;6+yX~thO{#?9JlA)1+55pw)_3Q#}nP_r zu=sJl{!Vy#UhoD5n~yDbLm_r+1SLj4(Q|Qiy|^jWyX^fv-iH2u{^a9*sx~%rvaYTY z6c&DLvpr&CQqH|SGr2^ymh3#f&^ci1s_4__Lf`FV=ab*In+p^$6M0;-BzB&N)rj3? z0y;50{ro%z&}3I5GyA9Q`~T|tUSP8*eCwf1B{W2xn|99K$Rp9I@Xswykz2m^D(A6Fu9zRZh2DJpAotyi*4N?vs z@dFu9^6N`xT>am#x2>*AfbLb9BfJ`t(%voEpgYME)VtWYapU&de^*zBb8>S(esr`r zG6Is4Zg?g}s|bg!ivf)rzyGmISl#c!{{O}flU{d2?7yv<)1Bhf$|X9(s#MFi>dS(( zv$HCys_uQ;I@^3bBU?%=XceZCQj)a(Zf=2-CqX9-9qkgG`#Sgd(W9U}9ouqmAKR9D zJ7Ra)Ti@x-n|+?WUY{Mj{T+ASN>HWe;&SJ3Vvk{&xZn8d#ZN$hwuCU-#w;PJnj3v<`W(kH8#Lc$g65yUeOp%d_m|D@H{AzH z#PnR8HZZAZ^yQQ;;LguN7XiP{JOZr_#{TF zw1ciV<73BW=E2ZN@v zo*1pt4?2kY>+9>s&!6vK7rR?XO6t_6)YB3s83LuRuN}RAf4*JquYiS4tp7gG|G#AC zH_!>JPfkt--P0_$5*F_4?PXOkF!-?SyM4_MgQecn{WhOJe_nrcD!7P9$>zGPR22T{>1p?cPOTl? z-O7rJjQaY2i@`~ysJU%o_lekSqy<$Q4U>-rY|Dw9G*+iM{?uFji6B13|{u(+wJ_%|9-z;eH@%BKdFF{u!fP5Q2XJ7Q#6AaDjs#J z7g)#~IeOIc{LYQrzM9{!VQyHzUO#qM3Ft=Ym*4s&44c+QZ+}!^0Xo>$!_)KN!-5a% z>;HC_zP|Rbzyfq!4P-3t!?W4>OaXf;3eEEG`OG%U1#PTzbaV_^9oEarE%xE8`TYy~ zYO5P~ZkJfdysO#?a=go(bI<}pT-J&uboHS=*?{fq?p}SO^L{V;#EAtzHr$1jWGNa! zwxCf=P`H5R_dzsh4hxd=m6VhQqu{gDaz>@fyPuvGyqIt|^odUOw;QpIpp156t!7U5 zjhq(&yR}cue7EyBq&?}9=a(3LL@jhxgJD^?BG`wKj^~k!1CZX14$z7baO&yk*fB%g m;Ql)$a8SCq6iw9qFaNW-_kiL`k1Gre3=E#GelF{r5}E*7OxT$K literal 0 HcmV?d00001 diff --git a/doc/utils/requirements.txt b/doc/utils/requirements.txt index 2806c16498..b86522baf4 100644 --- a/doc/utils/requirements.txt +++ b/doc/utils/requirements.txt @@ -1 +1,5 @@ Sphinx +sphinxcontrib-spelling +sphinx-fortran +breathe +Pygments diff --git a/doc/utils/sphinx-config/_static/css/lammps.css b/doc/utils/sphinx-config/_static/css/lammps.css index 751bba3900..d2aa8a975d 100644 --- a/doc/utils/sphinx-config/_static/css/lammps.css +++ b/doc/utils/sphinx-config/_static/css/lammps.css @@ -7,3 +7,10 @@ display: block; margin-bottom: 0.809em; } + +.lammps_release { + text-align: center; + font-size: 11px; + display: block; + margin-bottom: 0.405em; +} diff --git a/doc/utils/sphinx-config/_themes/lammps_theme/layout.html b/doc/utils/sphinx-config/_themes/lammps_theme/layout.html index 9344063304..8e0d235d55 100644 --- a/doc/utils/sphinx-config/_themes/lammps_theme/layout.html +++ b/doc/utils/sphinx-config/_themes/lammps_theme/layout.html @@ -103,6 +103,12 @@ {%- endif %} {%- endblock %} {%- block extrahead %} {% endblock %} + + {# Keep modernizr in head - http://modernizr.com/docs/#installing #} + + + {# for improved browser compatibility #} + @@ -135,9 +141,8 @@ {%- set nav_version = current_version %} {% endif %} {% if nav_version %} -

- {{ nav_version }} -
+
Version: {{ nav_version }}
+
git info: {{ release }}
{% endif %} {% endif %} diff --git a/doc/utils/sphinx-config/conf.py b/doc/utils/sphinx-config/conf.py.in similarity index 90% rename from doc/utils/sphinx-config/conf.py rename to doc/utils/sphinx-config/conf.py.in index cc7dc0741f..92ba10a341 100644 --- a/doc/utils/sphinx-config/conf.py +++ b/doc/utils/sphinx-config/conf.py.in @@ -27,7 +27,7 @@ except: # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.insert(0, os.path.abspath('.')) -sys.path.append(os.path.join(os.path.dirname(__file__), '../../src/_ext')) +sys.path.append(os.path.join('@LAMMPS_DOC_DIR@', 'src', '_ext')) # -- General configuration ------------------------------------------------ @@ -41,7 +41,9 @@ extensions = [ 'sphinx.ext.mathjax', 'sphinx.ext.imgmath', 'sphinx.ext.autodoc', + 'sphinxfortran.fortran_domain', 'table_from_list', + 'breathe', ] # 2017-12-07: commented out, since this package is broken with Sphinx 16.x # yet we can no longer use Sphinx 15.x, since that breaks with @@ -72,12 +74,24 @@ copyright = '2003-2020 Sandia Corporation' def get_lammps_version(): import os script_dir = os.path.dirname(os.path.realpath(__file__)) - with open(os.path.join(script_dir, '../../../src/version.h'), 'r') as f: + with open(os.path.join('@LAMMPS_SOURCE_DIR@', 'version.h'), 'r') as f: line = f.readline() start_pos = line.find('"')+1 end_pos = line.find('"', start_pos) return line[start_pos:end_pos] +def get_git_info(): + import subprocess,time + + git_n_date = '' + try: + gitinfo = subprocess.run(['git','describe'],stdout=subprocess.PIPE,stderr=subprocess.PIPE) + if gitinfo.returncode == 0: + git_n_date = gitinfo.stdout.decode().replace('_',' ') + except: + pass + return git_n_date + # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. @@ -85,7 +99,7 @@ def get_lammps_version(): # The short X.Y version. version = get_lammps_version() # The full version, including alpha/beta/rc tags. -release = '' +release = get_git_info() # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -342,13 +356,29 @@ if spelling_spec and has_enchant: spelling_lang='en_US' spelling_word_list_filename='false_positives.txt' -sys.path.append(os.path.join(os.path.dirname(__file__), '.')) +conf_script_dir = os.path.dirname(os.path.realpath(__file__)) +sys.path.append(os.path.join(conf_script_dir, '.')) import LAMMPSLexer from sphinx.highlighting import lexers lexers['LAMMPS'] = LAMMPSLexer.LAMMPSLexer(startinline=True) -sys.path.append(os.path.join(os.path.dirname(__file__), '../../../python')) +sys.path.append('@LAMMPS_PYTHON_DIR@') # avoid syntax highlighting in blocks that don't specify language highlight_language = 'none' + +# autodoc configuration + +autodoc_member_order = 'bysource' +#autoclass_content = 'both' + +# breathe configuration + +breathe_projects = { 'progguide' : '@DOXYGEN_XML_DIR@' } +breathe_default_project = 'progguide' +breathe_show_define_initializer = True +breathe_domain_by_extension = { 'h' : 'cpp', + 'cpp' : 'cpp', + 'c' : 'c', + } -- GitLab From 024e4c5f21c75189aa58db7e9edab01b0326d7f5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 24 Aug 2020 20:45:44 -0400 Subject: [PATCH 051/165] make formatting and doxygen decorations for utils functions consistent --- src/utils.cpp | 32 ++++++------- src/utils.h | 130 +++++++++++++++++++++++++------------------------- 2 files changed, 80 insertions(+), 82 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp index 8c19e889cd..f841086673 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -352,7 +352,7 @@ tagint utils::tnumeric(const char *file, int line, const char *str, Return string without leading or trailing whitespace ------------------------------------------------------------------------- */ -std::string utils::trim(const std::string & line) { +std::string utils::trim(const std::string &line) { int beg = re_match(line.c_str(),"\\S+"); int end = re_match(line.c_str(),"\\s+$"); if (beg < 0) beg = 0; @@ -365,7 +365,7 @@ std::string utils::trim(const std::string & line) { Return string without trailing # comment ------------------------------------------------------------------------- */ -std::string utils::trim_comment(const std::string & line) { +std::string utils::trim_comment(const std::string &line) { auto end = line.find_first_of("#"); if (end != std::string::npos) { return line.substr(0, end); @@ -377,7 +377,7 @@ std::string utils::trim_comment(const std::string & line) { return number of words ------------------------------------------------------------------------- */ -size_t utils::count_words(const char * text) { +size_t utils::count_words(const char *text) { size_t count = 0; const char * buf = text; char c = *buf; @@ -406,7 +406,7 @@ size_t utils::count_words(const char * text) { return number of words ------------------------------------------------------------------------- */ -size_t utils::count_words(const std::string & text) { +size_t utils::count_words(const std::string &text) { return utils::count_words(text.c_str()); } @@ -414,7 +414,7 @@ size_t utils::count_words(const std::string & text) { Return number of words ------------------------------------------------------------------------- */ -size_t utils::count_words(const std::string & text, const std::string & separators) { +size_t utils::count_words(const std::string &text, const std::string &separators) { size_t count = 0; size_t start = text.find_first_not_of(separators); @@ -435,7 +435,7 @@ size_t utils::count_words(const std::string & text, const std::string & separato Trim comment from string and return number of words ------------------------------------------------------------------------- */ -size_t utils::trim_and_count_words(const std::string & text, const std::string & separators) { +size_t utils::trim_and_count_words(const std::string &text, const std::string &separators) { return utils::count_words(utils::trim_comment(text), separators); } @@ -526,7 +526,7 @@ std::vector utils::split_words(const std::string &text) Return whether string is a valid integer number ------------------------------------------------------------------------- */ -bool utils::is_integer(const std::string & str) { +bool utils::is_integer(const std::string &str) { if (str.size() == 0) { return false; } @@ -542,7 +542,7 @@ bool utils::is_integer(const std::string & str) { Return whether string is a valid floating-point number ------------------------------------------------------------------------- */ -bool utils::is_double(const std::string & str) { +bool utils::is_double(const std::string &str) { if (str.size() == 0) { return false; } @@ -560,7 +560,7 @@ bool utils::is_double(const std::string & str) { strip off leading part of path, return just the filename ------------------------------------------------------------------------- */ -std::string utils::path_basename(const std::string & path) { +std::string utils::path_basename(const std::string &path) { #if defined(_WIN32) size_t start = path.find_last_of("/\\"); #else @@ -580,7 +580,7 @@ std::string utils::path_basename(const std::string & path) { join two paths ------------------------------------------------------------------------- */ -std::string utils::path_join(const std::string & a, const std::string & b) { +std::string utils::path_join(const std::string &a, const std::string &b) { #if defined(_WIN32) return fmt::format("{}\\{}", a, b); #else @@ -592,7 +592,7 @@ std::string utils::path_join(const std::string & a, const std::string & b) { try to open file for reading ------------------------------------------------------------------------- */ -bool utils::file_is_readable(const std::string & path) { +bool utils::file_is_readable(const std::string &path) { FILE * fp = fopen(path.c_str(), "r"); if(fp) { fclose(fp); @@ -607,7 +607,7 @@ bool utils::file_is_readable(const std::string & path) { specified ------------------------------------------------------------------------- */ -std::string utils::get_potential_file_path(const std::string& path) { +std::string utils::get_potential_file_path(const std::string &path) { std::string filepath = path; std::string filename = utils::path_basename(path); @@ -634,7 +634,7 @@ std::string utils::get_potential_file_path(const std::string& path) { if it has a DATE field, return the following word ------------------------------------------------------------------------- */ -std::string utils::get_potential_date(const std::string & path, const std::string & potential_name) { +std::string utils::get_potential_date(const std::string &path, const std::string &potential_name) { TextFileReader reader(path, potential_name); reader.ignore_comments = false; @@ -657,7 +657,7 @@ std::string utils::get_potential_date(const std::string & path, const std::strin if it has UNITS field, return following word ------------------------------------------------------------------------- */ -std::string utils::get_potential_units(const std::string & path, const std::string & potential_name) { +std::string utils::get_potential_units(const std::string &path, const std::string &potential_name) { TextFileReader reader(path, potential_name); reader.ignore_comments = false; @@ -710,7 +710,7 @@ double utils::get_conversion_factor(const int property, const int conversion) the strings "off" and "unlimited" result in -1.0; ------------------------------------------------------------------------- */ -double utils::timespec2seconds(const std::string & timespec) +double utils::timespec2seconds(const std::string ×pec) { double vals[3]; int i = 0; @@ -728,7 +728,7 @@ double utils::timespec2seconds(const std::string & timespec) if (!values.has_next()) break; vals[i] = values.next_int(); } - } catch (TokenizerException & e) { + } catch (TokenizerException &e) { return -1.0; } diff --git a/src/utils.h b/src/utils.h index 2751870d44..4b9d3f7e81 100644 --- a/src/utils.h +++ b/src/utils.h @@ -29,7 +29,7 @@ namespace LAMMPS_NS { namespace utils { - /** \brief Match text against a simplified regex pattern + /** Match text against a simplified regex pattern * * \param text the text to be matched against the pattern * \param pattern the search pattern, which may contain regexp markers @@ -37,14 +37,14 @@ namespace LAMMPS_NS { */ bool strmatch(const std::string &text, const std::string &pattern); - /** \brief Send message to screen and logfile, if available + /** Send message to screen and logfile, if available * * \param lmp pointer to LAMMPS class instance * \param mesg message to be printed */ void logmesg(LAMMPS *lmp, const std::string &mesg); - /** \brief return a string representing the current system error status + /** return a string representing the current system error status * * This is a wrapper around calling strerror(errno). * @@ -52,7 +52,7 @@ namespace LAMMPS_NS { */ std::string getsyserror(); - /** \brief safe wrapper around fgets() which aborts on errors + /** safe wrapper around fgets() which aborts on errors * or EOF and prints a suitable error message to help debugging * * \param srcname name of the calling source file (from FLERR macro) @@ -66,7 +66,7 @@ namespace LAMMPS_NS { void sfgets(const char *srcname, int srcline, char *s, int size, FILE *fp, const char *filename, Error *error); - /** \brief safe wrapper around fread() which aborts on errors + /** safe wrapper around fread() which aborts on errors * or EOF and prints a suitable error message to help debugging * * \param srcname name of the calling source file (from FLERR macro) @@ -81,7 +81,7 @@ namespace LAMMPS_NS { void sfread(const char *srcname, int srcline, void *s, size_t size, size_t num, FILE *fp, const char *filename, Error *error); - /** \brief Report if a requested style is in a package or may have a typo + /** Report if a requested style is in a package or may have a typo * * \param style type of style that is to be checked for * \param name name of style that was not found @@ -91,8 +91,8 @@ namespace LAMMPS_NS { std::string check_packages_for_style(const std::string &style, const std::string &name, LAMMPS *lmp); - /** \brief Convert a string to a floating point number while checking - if it is a valid floating point or integer number + /** Convert a string to a floating point number while checking + * if it is a valid floating point or integer number * * \param file name of source file for error message * \param line in source file for error message @@ -104,8 +104,8 @@ namespace LAMMPS_NS { double numeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp); - /** \brief Convert a string to an integer number while checking - if it is a valid integer number (regular int) + /** Convert a string to an integer number while checking + * if it is a valid integer number (regular int) * * \param file name of source file for error message * \param line in source file for error message @@ -117,8 +117,8 @@ namespace LAMMPS_NS { int inumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp); - /** \brief Convert a string to an integer number while checking - if it is a valid integer number (bigint) + /** Convert a string to an integer number while checking + * if it is a valid integer number (bigint) * * \param file name of source file for error message * \param line in source file for error message @@ -130,8 +130,8 @@ namespace LAMMPS_NS { bigint bnumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp); - /** \brief Convert a string to an integer number while checking - if it is a valid integer number (tagint) + /** Convert a string to an integer number while checking + * if it is a valid integer number (tagint) * * \param file name of source file for error message * \param line in source file for error message @@ -143,54 +143,51 @@ namespace LAMMPS_NS { tagint tnumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp); - /** - * \brief Trim leading and trailing whitespace. Like TRIM() in Fortran. + /** Trim leading and trailing whitespace. Like TRIM() in Fortran. + * * \param line string that should be trimmed * \return new string without whitespace (string) */ std::string trim(const std::string &line); - /** - * \brief Trim anything from '#' onward + /** Trim anything from '#' onward + * * \param line string that should be trimmed * \return new string without comment (string) */ std::string trim_comment(const std::string &line); - /** - * \brief Count words in string + /** Count words in string + * * \param text string that should be searched * \param separators string containing characters that will be treated as whitespace * \return number of words found */ - size_t count_words(const std::string & text, const std::string & separators); + size_t count_words(const std::string &text, const std::string &separators); - /** - * \brief Count words in string, ignore any whitespace matching " \t\r\n\f" + /** Count words in string, ignore any whitespace matching " \t\r\n\f" + * * \param text string that should be searched - * \param separators string containing characters that will be treated as whitespace * \return number of words found */ - size_t count_words(const std::string & text); + size_t count_words(const std::string &text); - /** - * \brief Count words in C-string, ignore any whitespace matching " \t\r\n\f" + /** Count words in C-string, ignore any whitespace matching " \t\r\n\f" + * * \param text string that should be searched - * \param separators string containing characters that will be treated as whitespace * \return number of words found */ - size_t count_words(const char * text); + size_t count_words(const char *text); - /** - * \brief Count words in a single line, trim anything from '#' onward + /** Count words in a single line, trim anything from '#' onward + * * \param text string that should be trimmed and searched * \param separators string containing characters that will be treated as whitespace * \return number of words found */ - size_t trim_and_count_words(const std::string & text, const std::string & separators = " \t\r\n\f"); + size_t trim_and_count_words(const std::string &text, const std::string &separators = " \t\r\n\f"); - /** - * \brief Take text and split into non-whitespace words. + /** Take text and split into non-whitespace words. * * This can handle single and double quotes, escaped quotes, * and escaped codes within quotes, but due to using an STL @@ -203,21 +200,21 @@ namespace LAMMPS_NS { */ std::vector split_words(const std::string &text); - /** - * \brief Check if string can be converted to valid integer - * \param text string that should be checked + /** Check if string can be converted to valid integer + * + * \param str string that should be checked * \return true, if string contains valid integer, false otherwise */ - bool is_integer(const std::string & str); + bool is_integer(const std::string &str); - /** - * \brief Check if string can be converted to valid floating-point number - * \param text string that should be checked + /** Check if string can be converted to valid floating-point number + * + * \param str string that should be checked * \return true, if string contains valid floating-point number, false otherwise */ - bool is_double(const std::string & str); + bool is_double(const std::string &str); - /** \brief try to detect pathname from FILE pointer. + /** Try to detect pathname from FILE pointer. * * Currently only supported on Linux, otherwise will report "(unknown)". * @@ -228,12 +225,12 @@ namespace LAMMPS_NS { */ const char *guesspath(char *buf, int len, FILE *fp); - /** - * \brief Strip off leading part of path, return just the filename + /** Strip off leading part of path, return just the filename + * * \param path file path * \return file name */ - std::string path_basename(const std::string & path); + std::string path_basename(const std::string &path); /** * \brief Join two paths @@ -241,64 +238,65 @@ namespace LAMMPS_NS { * \param b second path * \return combined path */ - std::string path_join(const std::string & a, const std::string & b); + std::string path_join(const std::string &a, const std::string &b); /** * \brief Check if file exists and is readable * \param path file path * \return true if file exists and is readable */ - bool file_is_readable(const std::string & path); + bool file_is_readable(const std::string &path); - /** - * \brief Determine full path of potential file - * If file is not found in current directory, search LAMMPS_POTENTIALS folder + /** Determine full path of potential file. If file is not found in current directory, + * search LAMMPS_POTENTIALS folder + * * \param path file path * \return full path to potential file */ - std::string get_potential_file_path(const std::string& path); + std::string get_potential_file_path(const std::string &path); - /** - * \brief Read potential file and return DATE field if it is present + /** Read potential file and return DATE field if it is present + * * \param path file path * \param potential_name name of potential that is being read * \return DATE field if present */ - std::string get_potential_date(const std::string & path, const std::string & potential_name); + std::string get_potential_date(const std::string &path, const std::string &potential_name); - /** - * \brief Read potential file and return UNITS field if it is present + /** Read potential file and return UNITS field if it is present + * * \param path file path * \param potential_name name of potential that is being read * \return UNITS field if present */ - std::string get_potential_units(const std::string & path, const std::string & potential_name); + std::string get_potential_units(const std::string &path, const std::string &potential_name); enum { NOCONVERT = 0, METAL2REAL = 1, REAL2METAL = 1<<1 }; enum { UNKNOWN = 0, ENERGY }; - /** - * \brief Return bitmask of available conversion factors for a given propert + /** Return bitmask of available conversion factors for a given property + * * \param property property to be converted * \return bitmask indicating available conversions */ int get_supported_conversions(const int property); - /** - * \brief Return unit conversion factor for given property and selected from/to units + /** Return unit conversion factor for given property and selected from/to units + * * \param property property to be converted * \param conversion constant indicating the conversion * \return conversion factor */ double get_conversion_factor(const int property, const int conversion); - /** - * \brief Convert a time string to seconds - * The strings "off" and "unlimited" result in -1 + /** Convert a time string to seconds + * + * The strings "off" and "unlimited" result in -1 + * * \param timespec a string in the following format: ([[HH:]MM:]SS) * \return total in seconds */ - double timespec2seconds(const std::string & timespec); + double timespec2seconds(const std::string ×pec); } } -- GitLab From 69cffb2d04b0f6b2cfba36f050c5977a2e3f9c75 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Aug 2020 11:03:31 -0400 Subject: [PATCH 052/165] import test infrastructure for c, c++ and python library usage --- unittest/CMakeLists.txt | 3 + unittest/c-library/CMakeLists.txt | 13 + unittest/c-library/library-commands.cpp | 103 +++++++ unittest/c-library/library-open.cpp | 186 ++++++++++++ unittest/c-library/library-properties.cpp | 45 +++ unittest/cplusplus/CMakeLists.txt | 8 + unittest/cplusplus/input-class.cpp | 114 +++++++ unittest/cplusplus/lammps-class.cpp | 351 ++++++++++++++++++++++ unittest/python/CMakeLists.txt | 40 +++ unittest/python/python-commands.py | 90 ++++++ unittest/python/python-open.py | 57 ++++ 11 files changed, 1010 insertions(+) create mode 100644 unittest/c-library/CMakeLists.txt create mode 100644 unittest/c-library/library-commands.cpp create mode 100644 unittest/c-library/library-open.cpp create mode 100644 unittest/c-library/library-properties.cpp create mode 100644 unittest/cplusplus/CMakeLists.txt create mode 100644 unittest/cplusplus/input-class.cpp create mode 100644 unittest/cplusplus/lammps-class.cpp create mode 100644 unittest/python/CMakeLists.txt create mode 100644 unittest/python/python-commands.py create mode 100644 unittest/python/python-open.py diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt index 9a1646126f..bfa4c7d002 100644 --- a/unittest/CMakeLists.txt +++ b/unittest/CMakeLists.txt @@ -3,6 +3,9 @@ include(GTest) add_subdirectory(utils) add_subdirectory(formats) add_subdirectory(commands) +add_subdirectory(c-library) +add_subdirectory(cplusplus) +add_subdirectory(python) add_subdirectory(force-styles) find_package(ClangFormat 8.0) diff --git a/unittest/c-library/CMakeLists.txt b/unittest/c-library/CMakeLists.txt new file mode 100644 index 0000000000..8dde2b1967 --- /dev/null +++ b/unittest/c-library/CMakeLists.txt @@ -0,0 +1,13 @@ + +add_executable(library-open library-open.cpp) +target_link_libraries(library-open PRIVATE lammps GTest::GTest GTest::GTestMain) +add_test(LibraryOpen library-open) + +add_executable(library-commands library-commands.cpp) +target_link_libraries(library-commands PRIVATE lammps GTest::GTest GTest::GTestMain) +add_test(LibraryCommands library-commands) + +add_executable(library-properties library-properties.cpp) +target_link_libraries(library-properties PRIVATE lammps GTest::GTest GTest::GTestMain) +add_test(LibraryProperties library-properties) + diff --git a/unittest/c-library/library-commands.cpp b/unittest/c-library/library-commands.cpp new file mode 100644 index 0000000000..8cd2200f8a --- /dev/null +++ b/unittest/c-library/library-commands.cpp @@ -0,0 +1,103 @@ +// unit tests for issuing command to a LAMMPS instance through the library interface + +#include "library.h" +#include "lammps.h" +#include + +#include "gtest/gtest.h" + +const char *demo_input[] = { + "region box block 0 $x 0 2 0 2", + "create_box 1 box", + "create_atoms 1 single 1.0 1.0 ${zpos}" }; +const char *cont_input[] = { + "create_atoms 1 single &", + "0.2 0.1 0.1" }; + +class LAMMPS_commands : public ::testing::Test +{ +protected: + void *lmp; + LAMMPS_commands() {}; + ~LAMMPS_commands() override {}; + + void SetUp() override { + const char *args[] = {"LAMMPS_test", + "-log", "none", + "-echo", "screen", + "-nocite", "-var","x","2", + "-var", "zpos", "1.5"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + ::testing::internal::CaptureStdout(); + lmp = lammps_open_no_mpi(argc, argv, NULL); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,8).c_str(), "LAMMPS ("); + } + void TearDown() override { + ::testing::internal::CaptureStdout(); + lammps_close(lmp); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); + lmp = nullptr; + } +}; + +TEST_F(LAMMPS_commands, from_file) { + FILE *fp; + const char demo_file[] = "in.test"; + const char cont_file[] = "in.cont"; + + fp = fopen(demo_file,"w"); + for (unsigned int i=0; i < sizeof(demo_input)/sizeof(char *); ++i) { + fputs(demo_input[i],fp); + fputc('\n',fp); + } + fclose(fp); + fp = fopen(cont_file,"w"); + for (unsigned int i=0; i < sizeof(cont_input)/sizeof(char *); ++i) { + fputs(cont_input[i],fp); + fputc('\n',fp); + } + fclose(fp); + + EXPECT_EQ(lammps_get_natoms(lmp),0); + lammps_file(lmp,demo_file); + lammps_file(lmp,cont_file); + EXPECT_EQ(lammps_get_natoms(lmp),2); + + unlink(demo_file); + unlink(cont_file); +}; + +TEST_F(LAMMPS_commands, from_line) { + EXPECT_EQ(lammps_get_natoms(lmp),0); + for (unsigned int i=0; i < sizeof(demo_input)/sizeof(char *); ++i) { + lammps_command(lmp,demo_input[i]); + } + EXPECT_EQ(lammps_get_natoms(lmp),1); +}; + +TEST_F(LAMMPS_commands, from_list) { + EXPECT_EQ(lammps_get_natoms(lmp),0); + lammps_commands_list(lmp,sizeof(demo_input)/sizeof(char *),demo_input); + lammps_commands_list(lmp,sizeof(cont_input)/sizeof(char *),cont_input); + EXPECT_EQ(lammps_get_natoms(lmp),2); +}; + +TEST_F(LAMMPS_commands, from_string) { + std::string cmds(""); + + for (unsigned int i=0; i < sizeof(demo_input)/sizeof(char *); ++i) { + cmds += demo_input[i]; + cmds += "\n"; + } + for (unsigned int i=0; i < sizeof(cont_input)/sizeof(char *); ++i) { + cmds += cont_input[i]; + cmds += "\n"; + } + EXPECT_EQ(lammps_get_natoms(lmp),0); + lammps_commands_string(lmp,cmds.c_str()); + EXPECT_EQ(lammps_get_natoms(lmp),2); +}; diff --git a/unittest/c-library/library-open.cpp b/unittest/c-library/library-open.cpp new file mode 100644 index 0000000000..12d974d6c4 --- /dev/null +++ b/unittest/c-library/library-open.cpp @@ -0,0 +1,186 @@ +// unit tests for the LAMMPS base class + +#include "library.h" +#include "lammps.h" +#include +#include // for stdin, stdout +#include + +#include "gtest/gtest.h" + +TEST(lammps_open, null_args) { + ::testing::internal::CaptureStdout(); + void *handle = lammps_open(0,NULL, MPI_COMM_WORLD, NULL); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,6).c_str(),"LAMMPS"); + int mpi_init=0; + MPI_Initialized(&mpi_init); + EXPECT_GT(mpi_init,0); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + EXPECT_EQ(lmp->world, MPI_COMM_WORLD); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->screen, stdout); + EXPECT_NE(lmp->citeme, nullptr); + ::testing::internal::CaptureStdout(); + lammps_close(handle); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); +} + +TEST(lammps_open, with_args) { + const char *args[] = {"liblammps", + "-log", "none", + "-nocite"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + // MPI is already initialized + MPI_Comm mycomm; + MPI_Comm_split(MPI_COMM_WORLD, 0, 1, &mycomm); + ::testing::internal::CaptureStdout(); + void *alt_ptr; + void *handle = lammps_open(argc, argv, mycomm, &alt_ptr); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,6).c_str(),"LAMMPS"); + EXPECT_EQ(handle,alt_ptr); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + + // MPI STUBS uses no real communicators +#if !defined(MPI_STUBS) + EXPECT_NE(lmp->world, MPI_COMM_WORLD); +#endif + + EXPECT_EQ(lmp->world, mycomm); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->logfile, nullptr); + EXPECT_EQ(lmp->citeme, nullptr); + EXPECT_EQ(lmp->kokkos, nullptr); + EXPECT_EQ(lmp->atomKK, nullptr); + EXPECT_EQ(lmp->memoryKK, nullptr); + ::testing::internal::CaptureStdout(); + lammps_close(handle); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); +} + +TEST(lammps_open, with_kokkos) { + if (!LAMMPS_NS::LAMMPS::is_installed_pkg("KOKKOS")) GTEST_SKIP(); + const char *args[] = {"liblammps", + "-k", "on", "t", "2", + "-sf", "kk", + "-log", "none" }; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + ::testing::internal::CaptureStdout(); + void *alt_ptr; + void *handle = lammps_open(argc, argv, MPI_COMM_WORLD, &alt_ptr); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,6).c_str(),"LAMMPS"); + EXPECT_EQ(handle,alt_ptr); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + + EXPECT_EQ(lmp->world, MPI_COMM_WORLD); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->logfile, nullptr); + EXPECT_NE(lmp->citeme, nullptr); + EXPECT_EQ(lmp->num_package, 0); + EXPECT_NE(lmp->kokkos, nullptr); + EXPECT_NE(lmp->atomKK, nullptr); + EXPECT_NE(lmp->memoryKK, nullptr); + ::testing::internal::CaptureStdout(); + lammps_close(handle); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); +} + +TEST(lammps_open_no_mpi, no_screen) { + const char *args[] = {"liblammps", + "-log", "none", + "-screen", "none", + "-nocite"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + ::testing::internal::CaptureStdout(); + void *alt_ptr; + void *handle = lammps_open_no_mpi(argc, argv, &alt_ptr); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.c_str(),""); + EXPECT_EQ(handle,alt_ptr); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + + EXPECT_EQ(lmp->world, MPI_COMM_WORLD); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->screen, nullptr); + EXPECT_EQ(lmp->logfile, nullptr); + EXPECT_EQ(lmp->citeme, nullptr); + EXPECT_EQ(lmp->suffix_enable, 0); + + EXPECT_STREQ(lmp->exename, "liblammps"); + EXPECT_EQ(lmp->num_package, 0); + ::testing::internal::CaptureStdout(); + lammps_close(handle); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.c_str(), ""); +} + +TEST(lammps_open_no_mpi, with_omp) { + if (!LAMMPS_NS::LAMMPS::is_installed_pkg("USER-OMP")) GTEST_SKIP(); + const char *args[] = {"liblammps", + "-pk", "omp", "2", "neigh", "no", + "-sf", "omp", + "-log", "none", + "-nocite"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + ::testing::internal::CaptureStdout(); + void *alt_ptr; + void *handle = lammps_open_no_mpi(argc, argv, &alt_ptr); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,6).c_str(),"LAMMPS"); + EXPECT_EQ(handle,alt_ptr); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + + EXPECT_EQ(lmp->world, MPI_COMM_WORLD); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->logfile, nullptr); + EXPECT_EQ(lmp->citeme, nullptr); + EXPECT_EQ(lmp->suffix_enable, 1); + EXPECT_STREQ(lmp->suffix, "omp"); + EXPECT_EQ(lmp->suffix2, nullptr); + EXPECT_STREQ(lmp->exename, "liblammps"); + EXPECT_EQ(lmp->num_package, 1); + ::testing::internal::CaptureStdout(); + lammps_close(handle); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); +} + +TEST(lammps_open_fortran, no_args) { + // MPI is already initialized + MPI_Comm mycomm; + MPI_Comm_split(MPI_COMM_WORLD, 0, 1, &mycomm); + int fcomm = MPI_Comm_c2f(mycomm); + ::testing::internal::CaptureStdout(); + void *handle = lammps_open_fortran(0, NULL, fcomm, NULL); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,6).c_str(),"LAMMPS"); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + + // MPI STUBS uses no real communicators +#if !defined(MPI_STUBS) + EXPECT_NE(lmp->world, MPI_COMM_WORLD); +#endif + + EXPECT_EQ(lmp->world, mycomm); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->screen, stdout); + EXPECT_NE(lmp->logfile, nullptr); + EXPECT_NE(lmp->citeme, nullptr); + ::testing::internal::CaptureStdout(); + lammps_close(handle); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); +} diff --git a/unittest/c-library/library-properties.cpp b/unittest/c-library/library-properties.cpp new file mode 100644 index 0000000000..87b4d54f86 --- /dev/null +++ b/unittest/c-library/library-properties.cpp @@ -0,0 +1,45 @@ +// unit tests for checking and changing simulation properties through the library interface + +#include "library.h" +#include "lammps.h" +#include + +#include "gtest/gtest.h" + +const char *demo_input[] = { + "region box block 0 $x 0 2 0 2", + "create_box 1 box", + "create_atoms 1 single 1.0 1.0 ${zpos}" }; +const char *cont_input[] = { + "create_atoms 1 single &", + "0.2 0.1 0.1" }; + +class LAMMPS_properties : public ::testing::Test +{ +protected: + void *lmp; + LAMMPS_properties() {}; + ~LAMMPS_properties() override {}; + + void SetUp() override { + const char *args[] = {"LAMMPS_test", "-log", "none", + "-echo", "screen", "-nocite" }; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + ::testing::internal::CaptureStdout(); + lmp = lammps_open_no_mpi(argc, argv, NULL); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,8).c_str(), "LAMMPS ("); + } + void TearDown() override { + ::testing::internal::CaptureStdout(); + lammps_close(lmp); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); + lmp = nullptr; + } +}; + +TEST_F(LAMMPS_properties, box) { +}; diff --git a/unittest/cplusplus/CMakeLists.txt b/unittest/cplusplus/CMakeLists.txt new file mode 100644 index 0000000000..2137d99a29 --- /dev/null +++ b/unittest/cplusplus/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_executable(lammps-class lammps-class.cpp) +target_link_libraries(lammps-class PRIVATE lammps GTest::GMockMain GTest::GTest GTest::GMock) +add_test(LammpsClass lammps-class) + +add_executable(input-class input-class.cpp) +target_link_libraries(input-class PRIVATE lammps GTest::GTest GTest::GTestMain) +add_test(InputClass input-class) diff --git a/unittest/cplusplus/input-class.cpp b/unittest/cplusplus/input-class.cpp new file mode 100644 index 0000000000..1c7796b46d --- /dev/null +++ b/unittest/cplusplus/input-class.cpp @@ -0,0 +1,114 @@ +// unit tests for issuing command to a LAMMPS instance through the Input class + +#include "lammps.h" +#include "input.h" +#include "atom.h" +#include "memory.h" +#include +#include +#include + +#include "gtest/gtest.h" + +const char *demo_input[] = { + "region box block 0 $x 0 2 0 2", + "create_box 1 box", + "create_atoms 1 single 1.0 1.0 ${zpos}" }; +const char *cont_input[] = { + "create_atoms 1 single &", + "0.2 0.1 0.1" }; + +namespace LAMMPS_NS +{ + + class Input_commands : public ::testing::Test + { + protected: + LAMMPS *lmp; + Input_commands() { + const char *args[] = {"LAMMPS_test"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + int flag; + MPI_Initialized(&flag); + if (!flag) MPI_Init(&argc,&argv); + } + ~Input_commands() override {} + + void SetUp() override { + const char *args[] = {"LAMMPS_test", + "-log", "none", + "-echo", "screen", + "-nocite", + "-var", "zpos", "1.5", + "-var","x","2"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + ::testing::internal::CaptureStdout(); + lmp = new LAMMPS(argc, argv, MPI_COMM_WORLD); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,8).c_str(), "LAMMPS ("); + } + void TearDown() override { + ::testing::internal::CaptureStdout(); + delete lmp; + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); + lmp = nullptr; + } + }; + + TEST_F(Input_commands, from_file) { + FILE *fp; + const char demo_file[] = "in.test"; + const char cont_file[] = "in.cont"; + + fp = fopen(demo_file,"w"); + for (unsigned int i=0; i < sizeof(demo_input)/sizeof(char *); ++i) { + fputs(demo_input[i],fp); + fputc('\n',fp); + } + fclose(fp); + fp = fopen(cont_file,"w"); + for (unsigned int i=0; i < sizeof(cont_input)/sizeof(char *); ++i) { + fputs(cont_input[i],fp); + fputc('\n',fp); + } + fclose(fp); + + EXPECT_EQ(lmp->atom->natoms,0); + lmp->input->file(demo_file); + lmp->input->file(cont_file); + EXPECT_EQ(lmp->atom->natoms,2); + + unlink(demo_file); + unlink(cont_file); + }; + + TEST_F(Input_commands, from_line) { + EXPECT_EQ(lmp->atom->natoms,0); + for (unsigned int i=0; i < sizeof(demo_input)/sizeof(char *); ++i) { + lmp->input->one(demo_input[i]); + } + EXPECT_EQ(lmp->atom->natoms,1); + }; + + TEST_F(Input_commands, substitute) { + char *string,*scratch; + int nstring=100,nscratch=100; + + lmp->memory->create(string,nstring,"test:string"); + lmp->memory->create(scratch,nscratch,"test:scratch"); + strcpy(string,demo_input[0]); + lmp->input->substitute(string,scratch,nstring,nscratch,0); + EXPECT_STREQ(string,"region box block 0 2 0 2 0 2"); + + strcpy(string,demo_input[2]); + lmp->input->substitute(string,scratch,nstring,nscratch,0); + EXPECT_STREQ(string,"create_atoms 1 single 1.0 1.0 1.5"); + lmp->memory->destroy(string); + lmp->memory->destroy(scratch); + }; +} diff --git a/unittest/cplusplus/lammps-class.cpp b/unittest/cplusplus/lammps-class.cpp new file mode 100644 index 0000000000..d81c1271ed --- /dev/null +++ b/unittest/cplusplus/lammps-class.cpp @@ -0,0 +1,351 @@ +// unit tests for the LAMMPS base class + +#include "lammps.h" +#include +#include // for stdin, stdout +#include + +#include "gmock/gmock.h" +#include "gtest/gtest.h" + +using ::testing::StartsWith; + +namespace LAMMPS_NS +{ + // test fixture for regular tests + class LAMMPS_plain : public ::testing::Test { + protected: + LAMMPS *lmp; + LAMMPS_plain() : lmp(nullptr) { + const char *args[] = {"LAMMPS_test"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + int flag; + MPI_Initialized(&flag); + if (!flag) MPI_Init(&argc,&argv); + } + + ~LAMMPS_plain() override { + lmp = nullptr; + } + + void SetUp() override { + const char *args[] = {"LAMMPS_test", + "-log", "none", + "-echo", "both", + "-nocite"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + ::testing::internal::CaptureStdout(); + lmp = new LAMMPS(argc, argv, MPI_COMM_WORLD); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_THAT(output, StartsWith("LAMMPS (")); + } + + void TearDown() override { + ::testing::internal::CaptureStdout(); + delete lmp; + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_THAT(output, StartsWith("Total wall time:")); + } + }; + + TEST_F(LAMMPS_plain, InitMembers) + { + EXPECT_NE(lmp->memory, nullptr); + EXPECT_NE(lmp->error, nullptr); + EXPECT_NE(lmp->universe, nullptr); + EXPECT_NE(lmp->input, nullptr); + + EXPECT_NE(lmp->atom, nullptr); + EXPECT_NE(lmp->update, nullptr); + EXPECT_NE(lmp->neighbor, nullptr); + EXPECT_NE(lmp->comm, nullptr); + EXPECT_NE(lmp->domain, nullptr); + EXPECT_NE(lmp->force, nullptr); + EXPECT_NE(lmp->modify, nullptr); + EXPECT_NE(lmp->group, nullptr); + EXPECT_NE(lmp->output, nullptr); + EXPECT_NE(lmp->timer, nullptr); + + EXPECT_EQ(lmp->world, MPI_COMM_WORLD); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->screen, stdout); + EXPECT_EQ(lmp->logfile, nullptr); + EXPECT_GE(lmp->initclock, 0.0); + + EXPECT_EQ(lmp->suffix_enable, 0); + EXPECT_EQ(lmp->suffix, nullptr); + EXPECT_EQ(lmp->suffix2, nullptr); + + EXPECT_STREQ(lmp->exename, "LAMMPS_test"); + EXPECT_EQ(lmp->num_package, 0); + EXPECT_EQ(lmp->clientserver, 0); + + EXPECT_EQ(lmp->kokkos, nullptr); + EXPECT_EQ(lmp->atomKK, nullptr); + EXPECT_EQ(lmp->memoryKK, nullptr); + EXPECT_NE(lmp->python, nullptr); + EXPECT_EQ(lmp->citeme, nullptr); + if (LAMMPS::has_git_info) { + EXPECT_STRNE(LAMMPS::git_commit,""); + EXPECT_STRNE(LAMMPS::git_branch,""); + EXPECT_STRNE(LAMMPS::git_descriptor,""); + } else { + EXPECT_STREQ(LAMMPS::git_commit,"(unknown)"); + EXPECT_STREQ(LAMMPS::git_branch,"(unknown)"); + EXPECT_STREQ(LAMMPS::git_descriptor,"(unknown)"); + } + } + + TEST_F(LAMMPS_plain, TestStyles) + { + // skip tests if base class is not available + if (lmp == nullptr) return; + const char *found; + + const char *atom_styles[] = { + "atomic", "body", "charge", "ellipsoid", "hybrid", + "line", "sphere", "tri", NULL }; + for (int i = 0; atom_styles[i] != NULL; ++i) { + found = lmp->match_style("atom",atom_styles[i]); + EXPECT_STREQ(found, NULL); + } + + const char *molecule_atom_styles[] = { + "angle", "bond", "full", "molecular", "template", NULL }; + for (int i = 0; molecule_atom_styles[i] != NULL; ++i) { + found = lmp->match_style("atom",molecule_atom_styles[i]); + EXPECT_STREQ(found, "MOLECULE"); + } + + const char *kokkos_atom_styles[] = { + "angle/kk", "bond/kk", "full/kk", "molecular/kk", "hybrid/kk", NULL }; + for (int i = 0; kokkos_atom_styles[i] != NULL; ++i) { + found = lmp->match_style("atom",kokkos_atom_styles[i]); + EXPECT_STREQ(found, "KOKKOS"); + } + found = lmp->match_style("atom","dipole"); + EXPECT_STREQ(found,"DIPOLE"); + found = lmp->match_style("atom","peri"); + EXPECT_STREQ(found,"PERI"); + found = lmp->match_style("atom","spin"); + EXPECT_STREQ(found,"SPIN"); + found = lmp->match_style("atom","wavepacket"); + EXPECT_STREQ(found,"USER-AWPMD"); + found = lmp->match_style("atom","dpd"); + EXPECT_STREQ(found,"USER-DPD"); + found = lmp->match_style("atom","edpd"); + EXPECT_STREQ(found,"USER-MESODPD"); + found = lmp->match_style("atom","mdpd"); + EXPECT_STREQ(found,"USER-MESODPD"); + found = lmp->match_style("atom","tdpd"); + EXPECT_STREQ(found,"USER-MESODPD"); + found = lmp->match_style("atom","spin"); + EXPECT_STREQ(found,"SPIN"); + found = lmp->match_style("atom","smd"); + EXPECT_STREQ(found,"USER-SMD"); + found = lmp->match_style("atom","sph"); + EXPECT_STREQ(found,"USER-SPH"); + found = lmp->match_style("atom","i_don't_exist"); + EXPECT_STREQ(found,NULL); + } + + // test fixture for OpenMP with 2 threads + class LAMMPS_omp : public ::testing::Test { + protected: + LAMMPS *lmp; + LAMMPS_omp() : lmp(nullptr) { + const char *args[] = {"LAMMPS_test"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + int flag; + MPI_Initialized(&flag); + if (!flag) MPI_Init(&argc,&argv); + } + + ~LAMMPS_omp() override { + lmp = nullptr; + } + + void SetUp() override { + const char *args[] = {"LAMMPS_test", + "-log", "none", + "-screen", "none", + "-echo", "screen", + "-pk", "omp","2", "neigh", "yes", + "-sf", "omp" + }; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + // only run this test fixture with omp suffix if USER-OMP package is installed + + if (LAMMPS::is_installed_pkg("USER-OMP")) + lmp = new LAMMPS(argc, argv, MPI_COMM_WORLD); + else GTEST_SKIP(); + } + + void TearDown() override { + delete lmp; + } + }; + + TEST_F(LAMMPS_omp, InitMembers) + { + EXPECT_NE(lmp->memory, nullptr); + EXPECT_NE(lmp->error, nullptr); + EXPECT_NE(lmp->universe, nullptr); + EXPECT_NE(lmp->input, nullptr); + + EXPECT_NE(lmp->atom, nullptr); + EXPECT_NE(lmp->update, nullptr); + EXPECT_NE(lmp->neighbor, nullptr); + EXPECT_NE(lmp->comm, nullptr); + EXPECT_NE(lmp->domain, nullptr); + EXPECT_NE(lmp->force, nullptr); + EXPECT_NE(lmp->modify, nullptr); + EXPECT_NE(lmp->group, nullptr); + EXPECT_NE(lmp->output, nullptr); + EXPECT_NE(lmp->timer, nullptr); + + EXPECT_EQ(lmp->world, MPI_COMM_WORLD); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->screen, nullptr); + EXPECT_EQ(lmp->logfile, nullptr); + EXPECT_GE(lmp->initclock, 0.0); + + EXPECT_EQ(lmp->suffix_enable, 1); + EXPECT_STREQ(lmp->suffix, "omp"); + EXPECT_EQ(lmp->suffix2, nullptr); + + EXPECT_STREQ(lmp->exename, "LAMMPS_test"); + EXPECT_EQ(lmp->num_package, 1); + EXPECT_EQ(lmp->clientserver, 0); + + EXPECT_EQ(lmp->kokkos, nullptr); + EXPECT_EQ(lmp->atomKK, nullptr); + EXPECT_EQ(lmp->memoryKK, nullptr); + EXPECT_NE(lmp->python, nullptr); + EXPECT_NE(lmp->citeme, nullptr); + if (LAMMPS::has_git_info) { + EXPECT_STRNE(LAMMPS::git_commit,""); + EXPECT_STRNE(LAMMPS::git_branch,""); + EXPECT_STRNE(LAMMPS::git_descriptor,""); + } else { + EXPECT_STREQ(LAMMPS::git_commit,"(unknown)"); + EXPECT_STREQ(LAMMPS::git_branch,"(unknown)"); + EXPECT_STREQ(LAMMPS::git_descriptor,"(unknown)"); + } + } + + // test fixture for Kokkos tests + class LAMMPS_kokkos : public ::testing::Test { + protected: + LAMMPS *lmp; + LAMMPS_kokkos() : lmp(nullptr) { + const char *args[] = {"LAMMPS_test"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + int flag; + MPI_Initialized(&flag); + if (!flag) MPI_Init(&argc,&argv); + } + + ~LAMMPS_kokkos() override { + lmp = nullptr; + } + + void SetUp() override { + const char *args[] = {"LAMMPS_test", + "-log", "none", + "-echo", "none", + "-screen", "none", + "-k", "on","t", "2", + "-sf", "kk" + }; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + // only run this test fixture with kk suffix if KOKKOS package is installed + // also need to figure out a way to find which parallelizations are enabled + + if (LAMMPS::is_installed_pkg("KOKKOS")) { + ::testing::internal::CaptureStdout(); + lmp = new LAMMPS(argc, argv, MPI_COMM_WORLD); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_THAT(output, StartsWith("Kokkos::OpenMP::")); + } else GTEST_SKIP(); + } + + void TearDown() override { + delete lmp; + } + }; + + TEST_F(LAMMPS_kokkos, InitMembers) + { + EXPECT_NE(lmp->memory, nullptr); + EXPECT_NE(lmp->error, nullptr); + EXPECT_NE(lmp->universe, nullptr); + EXPECT_NE(lmp->input, nullptr); + + EXPECT_NE(lmp->atom, nullptr); + EXPECT_NE(lmp->update, nullptr); + EXPECT_NE(lmp->neighbor, nullptr); + EXPECT_NE(lmp->comm, nullptr); + EXPECT_NE(lmp->domain, nullptr); + EXPECT_NE(lmp->force, nullptr); + EXPECT_NE(lmp->modify, nullptr); + EXPECT_NE(lmp->group, nullptr); + EXPECT_NE(lmp->output, nullptr); + EXPECT_NE(lmp->timer, nullptr); + + EXPECT_EQ(lmp->world, MPI_COMM_WORLD); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->screen, nullptr); + EXPECT_EQ(lmp->logfile, nullptr); + EXPECT_GE(lmp->initclock, 0.0); + + EXPECT_EQ(lmp->suffix_enable, 1); + EXPECT_STREQ(lmp->suffix, "kk"); + EXPECT_EQ(lmp->suffix2, nullptr); + + EXPECT_STREQ(lmp->exename, "LAMMPS_test"); + EXPECT_EQ(lmp->num_package, 0); + EXPECT_EQ(lmp->clientserver, 0); + + EXPECT_NE(lmp->kokkos, nullptr); + EXPECT_NE(lmp->atomKK, nullptr); + EXPECT_NE(lmp->memoryKK, nullptr); + EXPECT_NE(lmp->python, nullptr); + EXPECT_NE(lmp->citeme, nullptr); + if (LAMMPS::has_git_info) { + EXPECT_STRNE(LAMMPS::git_commit,""); + EXPECT_STRNE(LAMMPS::git_branch,""); + EXPECT_STRNE(LAMMPS::git_descriptor,""); + } else { + EXPECT_STREQ(LAMMPS::git_commit,"(unknown)"); + EXPECT_STREQ(LAMMPS::git_branch,"(unknown)"); + EXPECT_STREQ(LAMMPS::git_descriptor,"(unknown)"); + } + } + + // check help message printing + TEST(LAMMPS_help, HelpMessage) { + const char *args[] = {"LAMMPS_test", "-h"}; + char **argv = (char **)args; + int argc = sizeof(args)/sizeof(char *); + + ::testing::internal::CaptureStdout(); + LAMMPS *lmp = new LAMMPS(argc, argv, MPI_COMM_WORLD); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_THAT(output, + StartsWith("\nLarge-scale Atomic/Molecular Massively Parallel Simulator -")); + delete lmp; + } +} diff --git a/unittest/python/CMakeLists.txt b/unittest/python/CMakeLists.txt new file mode 100644 index 0000000000..64d6aba2f4 --- /dev/null +++ b/unittest/python/CMakeLists.txt @@ -0,0 +1,40 @@ +# we must have shared libraries enabled for testing the python module +if(NOT BUILD_SHARED_LIBS) + message(STATUS "Skipping Tests for the LAMMPS Python Module: must enable BUILD_SHARED_LIBS") + return() +endif() + +if(CMAKE_VERSION VERSION_LESS 3.12) + find_package(PythonInterp 3.5) # Deprecated since version 3.12 + if(PYTHONINTERP_FOUND) + set(Python_EXECUTABLE ${PYTHON_EXECUTABLE}) + endif() +else() + find_package(Python3 COMPONENTS Interpreter) +endif() + +if (Python_EXECUTABLE) + # prepare to augment the environment so that the LAMMPS python module and the shared library is found. + set(PYTHON_TEST_ENVIRONMENT PYTHONPATH=${LAMMPS_PYTHON_DIR}:$ENV{PYTHONPATH}) + if(APPLE) + list(APPEND PYTHON_TEST_ENVIRONMENT DYLD_LIBRARY_PATH=${CMAKE_BINARY_DIR}:$ENV{DYLD_LIBRARY_PATH}) + else() + list(APPEND PYTHON_TEST_ENVIRONMENT LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}:$ENV{LD_LIBRARY_PATH}) + endif() + if(LAMMPS_MACHINE) + # convert from '_machine' to 'machine' + string(SUBSTRING ${LAMMPS_MACHINE} 1 -1 LAMMPS_MACHINE_NAME) + list(APPEND PYTHON_TEST_ENVIRONMENT LAMMPS_MACHINE_NAME=${LAMMPS_MACHINE_NAME}) + endif() + + add_test(NAME PythonOpen + COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/python-open.py -v + WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) + set_tests_properties(PythonOpen PROPERTIES ENVIRONMENT "${PYTHON_TEST_ENVIRONMENT}") + add_test(NAME PythonCommands + COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/python-commands.py -v + WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) + set_tests_properties(PythonCommands PROPERTIES ENVIRONMENT "${PYTHON_TEST_ENVIRONMENT}") +else() + message(STATUS "Skipping Tests for the LAMMPS Python Module: no suitable Python interpreter") +endif() diff --git a/unittest/python/python-commands.py b/unittest/python/python-commands.py new file mode 100644 index 0000000000..f6d48c8bba --- /dev/null +++ b/unittest/python/python-commands.py @@ -0,0 +1,90 @@ + +import sys,os,unittest +from lammps import lammps + +class PythonCommand(unittest.TestCase): + + def setUp(self): + machine=None + if 'LAMMPS_MACHINE_NAME' in os.environ: + machine=os.environ['LAMMPS_MACHINE_NAME'] + self.lmp=lammps(name=machine, + cmdargs=['-nocite', + '-log','none', + '-echo','screen', + '-var','zpos','1.5', + '-var','x','2']) + # create demo input strings and files + # a few commands to set up a box with a single atom + self.demo_input=""" +region box block 0 $x 0 2 0 2 +create_box 1 box +create_atoms 1 single 1.0 1.0 ${zpos} +""" + # another command to add an atom and use a continuation line + self.cont_input=""" +create_atoms 1 single & + 0.2 0.1 0.1 +""" + self.demo_file='in.test' + with open(self.demo_file,'w') as f: + f.write(self.demo_input) + self.cont_file='in.cont' + with open(self.cont_file,'w') as f: + f.write(self.cont_input) + + # clean up temporary files + def tearDown(self): + if os.path.exists(self.demo_file): + os.remove(self.demo_file) + if os.path.exists(self.cont_file): + os.remove(self.cont_file) + + ############################## + def testFile(self): + """Test reading commands from a file""" + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,0) + self.lmp.file(self.demo_file) + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,1) + self.lmp.file(self.cont_file) + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,2) + + def testNoFile(self): + """Test (not) reading commands from no file""" + self.lmp.file(None) + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,0) + + def testCommand(self): + """Test executing individual commands""" + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,0) + cmds = self.demo_input.splitlines() + for cmd in cmds: + self.lmp.command(cmd) + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,1) + + def testCommandsList(self): + """Test executing commands from list of strings""" + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,0) + cmds = self.demo_input.splitlines()+self.cont_input.splitlines() + self.lmp.commands_list(cmds) + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,2) + + def testCommandsString(self): + """Test executing block of commands from string""" + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,0) + self.lmp.commands_string(self.demo_input+self.cont_input) + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,2) + +############################## +if __name__ == "__main__": + unittest.main() diff --git a/unittest/python/python-open.py b/unittest/python/python-open.py new file mode 100644 index 0000000000..2ace52296f --- /dev/null +++ b/unittest/python/python-open.py @@ -0,0 +1,57 @@ + +import sys,os,unittest +from lammps import lammps + +has_mpi=False +has_mpi4py=False +try: + from mpi4py import __version__ as mpi4py_version + # tested to work with mpi4py versions 2 and 3 + has_mpi4py = mpi4py_version.split('.')[0] in ['2','3'] +except: + pass + +try: + lmp = lammps() + has_mpi = lmp.has_mpi_support + lmp.close() +except: + pass + +class PythonOpen(unittest.TestCase): + + def setUp(self): + self.machine=None + if 'LAMMPS_MACHINE_NAME' in os.environ: + self.machine=os.environ['LAMMPS_MACHINE_NAME'] + + def testNoArgs(self): + """Create LAMMPS instance without any arguments""" + + lmp=lammps(name=self.machine) + self.assertIsNot(lmp.lmp,None) + self.assertEqual(lmp.opened,1) + self.assertEqual(has_mpi4py,lmp.has_mpi4py) + self.assertEqual(has_mpi,lmp.has_mpi_support) + lmp.close() + self.assertIsNone(lmp.lmp,None) + self.assertEqual(lmp.opened,0) + + def testWithArgs(self): + """Create LAMMPS instance with a few arguments""" + lmp=lammps(name=self.machine, + cmdargs=['-nocite','-sf','opt','-log','none']) + self.assertIsNot(lmp.lmp,None) + self.assertEqual(lmp.opened,1) + + @unittest.skipIf(not (has_mpi and has_mpi4py),"Skipping MPI test since LAMMPS is not parallel or mpi4py is not found") + def testWithMPI(self): + from mpi4py import MPI + mycomm=MPI.Comm.Split(MPI.COMM_WORLD, 0, 1) + lmp=lammps(name=self.machine,comm=mycomm) + self.assertIsNot(lmp.lmp,None) + self.assertEqual(lmp.opened,1) + lmp.close() + +if __name__ == "__main__": + unittest.main() -- GitLab From f965786e74a7abdac4bc8062c54e21d3b6850b46 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Aug 2020 11:45:07 -0400 Subject: [PATCH 053/165] refactor C library interface and add doxygen decorations --- src/library.cpp | 2272 +++++++++++++++++++++++++++++++++++------------ src/library.h | 216 +++-- 2 files changed, 1861 insertions(+), 627 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index 5cfc6f3149..3b3cb06a6c 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -11,14 +11,15 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -// C or Fortran style library interface to LAMMPS -// customize by adding new LAMMPS-specific functions +// C style library interface to LAMMPS. +// See the manual for detailed documentation. #include "library.h" #include #include #include #include +#include #include "universe.h" #include "atom_vec.h" #include "atom.h" @@ -92,139 +93,298 @@ using namespace LAMMPS_NS; #endif // ---------------------------------------------------------------------- -// library API functions to create/destroy an instance of LAMMPS -// and communicate commands to it +// Library functions to create/destroy an instance of LAMMPS // ---------------------------------------------------------------------- -/* ---------------------------------------------------------------------- - create an instance of LAMMPS and return pointer to it - pass in command-line args and MPI communicator to run on -------------------------------------------------------------------------- */ - -void lammps_open(int argc, char **argv, MPI_Comm communicator, void **ptr) +/** Create instance of the LAMMPS class and return pointer to it. + * +\verbatim embed:rst + +The :cpp:func:`lammps_open` function creates a new :cpp:class:`LAMMPS +` class instance while passing in a list of strings +as if they were :doc:`command-line arguments ` for the +LAMMPS executable, and an MPI communicator for LAMMPS to run under. +Since the list of arguments is **exactly** as when called from the +command line, the first argument would be the name of the executable and +thus is otherwise ignored. However ``argc`` may be set to 0 and then +``argv`` may be ``NULL``. If MPI is not yet initialized, ``MPI_Init()`` +will be called during creation of the LAMMPS class instance. + +The function returns a pointer to the created LAMMPS class. If for some +reason the initialization of the LAMMPS instance fails, the function +returns ``NULL``. For backward compatibility it is also possible to +provide the address of a pointer variable as argument *ptr*\ . This +argument may be ``NULL`` and is then ignored. + +.. note:: + + This function is not declared when the code linking to the LAMMPS + library interface is compiled with ``-DLAMMPS_LIB_NO_MPI``, or + contains a ``#define LAMMPS_LIB_NO_MPI 1`` statement before + ``#include "library.h"``. In that case, you need to use the + :cpp:func:`lammps_open_no_mpi` function. + +\endverbatim + * + * \param argc number of command line arguments + * \param argv list of command line argument strings + * \param comm MPI communicator for this LAMMPS instance + * \param ptr pointer to a void pointer variable which serves + * as a handle; may be ``NULL`` + * \return pointer to new LAMMPS instance cast to ``void *`` */ + +void *lammps_open(int argc, char **argv, MPI_Comm comm, void **ptr) { + LAMMPS *lmp = NULL; + lammps_mpi_init(); + #ifdef LAMMPS_EXCEPTIONS try { - LAMMPS *lmp = new LAMMPS(argc,argv,communicator); - *ptr = (void *) lmp; + lmp = new LAMMPS(argc, argv, comm); + if (ptr) *ptr = (void *) lmp; } catch(LAMMPSException & e) { fmt::print(stderr, "LAMMPS Exception: {}", e.message); *ptr = (void *) NULL; } #else - LAMMPS *lmp = new LAMMPS(argc,argv,communicator); - *ptr = (void *) lmp; + lmp = new LAMMPS(argc, argv, comm); + if (ptr) *ptr = (void *) lmp; #endif + return (void *) lmp; } -/* ---------------------------------------------------------------------- - create an instance of LAMMPS and return pointer to it - caller doesn't know MPI communicator, so use MPI_COMM_WORLD - initialize MPI if needed -------------------------------------------------------------------------- */ +/** Variant of ``lammps_open()`` that implicitly uses ``MPI_COMM_WORLD``. + * +\verbatim embed:rst + +This function is a version of :cpp:func:`lammps_open`, that is missing +the MPI communicator argument. It will use ``MPI_COMM_WORLD`` instead. +The type and purpose of arguments and return value are otherwise the +same. + +Outside of the convenience, this function is useful, when the LAMMPS +library was compiled in serial mode, but the calling code runs in +parallel and the ``MPI_Comm`` data type of the STUBS library would not +be compatible with that of the calling code. + +\endverbatim + * + * \param argc number of command line arguments + * \param argv list of command line argument strings + * \param ptr pointer to a void pointer variable + * which serves as a handle; may be ``NULL`` + * \return pointer to new LAMMPS instance cast to ``void *`` */ + +void *lammps_open_no_mpi(int argc, char **argv, void **ptr) +{ + return lammps_open(argc,argv,MPI_COMM_WORLD,ptr); +} + +/** Variant of ``lammps_open()`` using a Fortran MPI communicator. + * +\verbatim embed:rst + +This function is a version of :cpp:func:`lammps_open`, that uses an +integer for the MPI communicator as the MPI Fortran interface does. It +is used in the :f:func:`lammps` constructor of the LAMMPS Fortran +module. Internally it converts the *f_comm* argument into a C-style MPI +communicator with ``MPI_Comm_f2c()`` and then calls +:cpp:func:`lammps_open`. + +\endverbatim + * + * \param argc number of command line arguments + * \param argv list of command line argument strings + * \param f_comm Fortran style MPI communicator for this LAMMPS instance + * \param ptr pointer to a void pointer variable + * which serves as a handle; may be ``NULL`` + * \return pointer to new LAMMPS instance cast to ``void *`` */ + +void *lammps_open_fortran(int argc, char **argv, int f_comm, void **ptr) +{ + lammps_mpi_init(); + MPI_Comm c_comm = MPI_Comm_f2c((MPI_Fint)f_comm); + return lammps_open(argc, argv, c_comm, ptr); +} + +/** Delete a LAMMPS instance created by lammps_open() or its variants. + * +\verbatim embed:rst + +This function deletes the LAMMPS class instance pointed to by ``handle`` +that was created by one of the :cpp:func:`lammps_open` variants. It +does **not** call ``MPI_Finalize()`` to allow creating and deleting +multiple LAMMPS instances concurrently or sequentially. See +:cpp:func:`lammps_mpi_finalize` for a function performing this operation. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance */ + +void lammps_close(void *handle) +{ + LAMMPS *lmp = (LAMMPS *) handle; + delete lmp; +} + +/** Ensure the MPI environment is initialized. + * +\verbatim embed:rst + +The MPI standard requires that any MPI application must call +``MPI_Init()`` exactly once before performing any other MPI function +calls. This function checks, whether MPI is already initialized and +calls ``MPI_Init()`` in case it is not. + +\endverbatim */ -void lammps_open_no_mpi(int argc, char **argv, void **ptr) +void lammps_mpi_init() { int flag; MPI_Initialized(&flag); if (!flag) { - int argc = 0; - char **argv = NULL; + // provide a dummy argc and argv for MPI_Init(). + int argc = 1; + char *args[] = { (char *)"liblammps" , NULL }; + char **argv = args; MPI_Init(&argc,&argv); } +} - MPI_Comm communicator = MPI_COMM_WORLD; +/** Shut down the MPI infrastructure. + * +\verbatim embed:rst -#ifdef LAMMPS_EXCEPTIONS - try - { - LAMMPS *lmp = new LAMMPS(argc,argv,communicator); - *ptr = (void *) lmp; - } - catch(LAMMPSException & e) { - fmt::print(stderr, "LAMMPS Exception: {}", e.message); - *ptr = (void*) NULL; - } -#else - LAMMPS *lmp = new LAMMPS(argc,argv,communicator); - *ptr = (void *) lmp; -#endif -} +The MPI standard requires that any MPI application calls +``MPI_Finalize()`` before exiting. Even if a calling program does not +do any MPI calls, MPI is still initialized internally to avoid errors +accessing any MPI functions. This function should then be called right +before exiting the program to wait until all (parallel) tasks are +completed and then MPI is cleanly shut down. After this function no +more MPI calls may be made. -/* ---------------------------------------------------------------------- - destruct an instance of LAMMPS -------------------------------------------------------------------------- */ +\endverbatim */ -void lammps_close(void *ptr) +void lammps_mpi_finalize() { - LAMMPS *lmp = (LAMMPS *) ptr; - delete lmp; + MPI_Barrier(MPI_COMM_WORLD); + MPI_Finalize(); } -/* ---------------------------------------------------------------------- - get the numerical representation of the current LAMMPS version -------------------------------------------------------------------------- */ +/** Free memory buffer allocated by LAMMPS. + * +\verbatim embed:rst -int lammps_version(void *ptr) +Some of the LAMMPS C library interface functions return data as pointer +to a buffer that has been allocated by LAMMPS or the library interface. +This function can be used to delete those in order to avoid memory +leaks. + +\endverbatim + * + * \param ptr pointer to data allocated by LAMMPS */ + +void lammps_free(void *ptr) { - LAMMPS *lmp = (LAMMPS *) ptr; - return atoi(lmp->universe->num_ver); + free(ptr); } -/* ---------------------------------------------------------------------- - process an input script in filename str -------------------------------------------------------------------------- */ +// ---------------------------------------------------------------------- +// Library functions to process commands +// ---------------------------------------------------------------------- + +/** Process LAMMPS input from a file. + * +\verbatim embed:rst -void lammps_file(void *ptr, char *str) +This function processes commands in the file pointed to by *filename* +line by line and thus functions very similar to the :doc:`include +` command. The function returns when the end of the file is +reached and the commands have completed. + +The actual work is done by the functions +:cpp:func:`Input::file(const char *)` +and :cpp:func:`Input::file()`. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param filename name of a file with LAMMPS input */ + +void lammps_file(void *handle, const char *filename) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { if (lmp->update->whichflag != 0) - lmp->error->all(FLERR,"Library error: issuing LAMMPS command during run"); + lmp->error->all(FLERR,"Library error: issuing LAMMPS commands " + "during a run is not allowed."); else - lmp->input->file(str); + lmp->input->file(filename); } END_CAPTURE } -/* ---------------------------------------------------------------------- - process a single input command in str - does not matter if str ends in newline - return command name to caller -------------------------------------------------------------------------- */ +/** Process a single LAMMPS input command from a string. + * +\verbatim embed:rst + +This function tells LAMMPS to execute the single command in the string +*cmd*. The entire string is considered as command and need not have a +(final) newline character. Newline characters in the body of the +string, however, will be treated as part of the command and will **not** +start a second command. The function :cpp:func:`lammps_commands_string` +processes a string with multiple command lines. -char *lammps_command(void *ptr, char *str) +The function returns the name of the command on success or ``NULL`` when +passing a string without a command. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param cmd string with a single LAMMPS command + * \return string with parsed command name or ``NULL`` */ + +char *lammps_command(void *handle, const char *cmd) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; char *result = NULL; BEGIN_CAPTURE { if (lmp->update->whichflag != 0) - lmp->error->all(FLERR,"Library error: issuing LAMMPS command during run"); + lmp->error->all(FLERR,"Library error: issuing LAMMPS commands " + "during a run is not allowed."); else - result = lmp->input->one(str); + result = lmp->input->one(cmd); } END_CAPTURE return result; } -/* ---------------------------------------------------------------------- - process multiple input commands in cmds = list of strings - does not matter if each string ends in newline - create long contatentated string for processing by commands_string() - insert newlines in concatenated string as needed -------------------------------------------------------------------------- */ +/** Process multiple LAMMPS input commands from list of strings. + * +\verbatim embed:rst + +This function processes multiple commands from a list of strings by +first concatenating the individual strings in *cmds* into a single +string, inserting newline characters as needed. The combined string +is passed to :cpp:func:`lammps_commands_string` for processing. -void lammps_commands_list(void *ptr, int ncmd, char **cmds) +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param ncmd number of lines in *cmds* + * \param cmds list of strings with LAMMPS commands */ + +void lammps_commands_list(void *handle, int ncmd, const char **cmds) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; int n = ncmd+1; for (int i = 0; i < ncmd; i++) n += strlen(cmds[i]); @@ -243,19 +403,35 @@ void lammps_commands_list(void *ptr, int ncmd, char **cmds) } } - lammps_commands_string(ptr,str); + lammps_commands_string(handle,str); lmp->memory->sfree(str); } -/* ---------------------------------------------------------------------- - process multiple input commands in single long str, separated by newlines - single command can span multiple lines via continuation characters - multi-line commands enabled by triple quotes will not work -------------------------------------------------------------------------- */ +/** \brief Process a block of LAMMPS input commands from a single string. + * +\verbatim embed:rst + +This function processes a multi-line string similar to a block of +commands from a file. The string may have multiple lines (separated by +newline characters) and also single commands may be distributed over +multiple lines with continuation characters ('&'). Those lines are +combined by removing the '&' and the following newline character. After +this processing the string is handed to LAMMPS for parsing and +executing. + +.. note:: + + Multi-line commands enabled by triple quotes will NOT work with + this function. -void lammps_commands_string(void *ptr, char *str) +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param str string with block of LAMMPS input commands */ + +void lammps_commands_string(void *handle, const char *str) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; // make copy of str so can strtok() it @@ -291,56 +467,534 @@ void lammps_commands_string(void *ptr, char *str) delete [] copy; } -/* ---------------------------------------------------------------------- - clean-up function to free memory allocated by lib and returned to caller -------------------------------------------------------------------------- */ +// ----------------------------------------------------------------------- +// Library functions to extract info from LAMMPS or set data in LAMMPS +// ----------------------------------------------------------------------- -void lammps_free(void *ptr) +/** Get numerical representation of the LAMMPS version date. + * +\verbatim embed:rst + +The :cpp:func:`lammps_version` function returns an integer representing +the version of the LAMMPS code in the format YYYYMMDD. This can be used +to implement backward compatibility in software using the LAMMPS library +interface. The specific format guarantees, that this version number is +growing with every new LAMMPS release. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \return an integer representing the version data in the + * format YYYYMMDD */ + +int lammps_version(void *handle) { - free(ptr); + LAMMPS *lmp = (LAMMPS *) handle; + return atoi(lmp->universe->num_ver); } -// ---------------------------------------------------------------------- -// library API functions to extract info from LAMMPS or set info in LAMMPS -// ---------------------------------------------------------------------- +/** Return the total number of atoms in the system. + * +\verbatim embed:rst + +This number may be very large when running large simulations across +multiple processors. Depending on compile time choices, LAMMPS may be +using either 32-bit or a 64-bit integer to store this number. For +portability this function returns thus a double precision +floating point number, which can represent up to a 53-bit signed +integer exactly (:math:`\approx 10^{16}`). + +As an alternative, you can use :cpp:func:`lammps_extract_global` +and cast the resulting pointer to an integer pointer of the correct +size and dereference it. The size of that integer (in bytes) can be +queried by calling :cpp:func:`lammps_extract_setting` to return +the size of a ``bigint`` integer. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \return total number of atoms or 0 if value is too large */ -/* ---------------------------------------------------------------------- - add LAMMPS-specific library functions - all must receive LAMMPS pointer as argument - customize by adding a function here and in library.h header file -------------------------------------------------------------------------- */ +double lammps_get_natoms(void *handle) +{ + LAMMPS *lmp = (LAMMPS *) handle; -/* ---------------------------------------------------------------------- - extract a LAMMPS setting as an integer - only use for settings that require return of an int - customize by adding names -------------------------------------------------------------------------- */ + double natoms = static_cast (lmp->atom->natoms); + if (natoms > 9.0e15) return 0; // TODO:XXX why not -1? + return natoms; +} + +/** Get current value of a thermo keyword. + * +\verbatim embed:rst + +This function returns the current value of a :doc:`thermo keyword +`. Unlike :cpp:func:`lammps_extract_global` it does not +give access to the storage of the desired data but returns its value as +a double, so it can also return information that is computed on-the-fly. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param keyword string with the name of the thermo keyword + * \return value of the requested thermo property or 0.0 */ + +double lammps_get_thermo(void *handle, char *keyword) +{ + LAMMPS *lmp = (LAMMPS *) handle; + double dval = 0.0; + + BEGIN_CAPTURE + { + lmp->output->thermo->evaluate_keyword(keyword,&dval); + } + END_CAPTURE + + return dval; +} + +/** Extract simulation box parameters. + * +\verbatim embed:rst -int lammps_extract_setting(void * /*ptr*/, char *name) +This function (re-)initializes the simulation box and boundary +information and then assign the designated data to the locations in the +pointers passed as arguments. Any argument (except the first) may be +a NULL pointer and then will not be assigned. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param boxlo pointer to 3 doubles where the lower box boundary is stored + * \param boxhi pointer to 3 doubles where the upper box boundary is stored + * \param xy pointer to a double where the xy tilt factor is stored + * \param yz pointer to a double where the yz tilt factor is stored + * \param xz pointer to a double where the xz tilt factor is stored + * \param pflags pointer to 3 ints, set to 1 for periodic boundaries + and 0 for non-periodic + * \param boxflag pointer to an int, which is set to 1 if the box will be + * changed during a simulation by a fix and 0 if not. */ + +void lammps_extract_box(void *handle, double *boxlo, double *boxhi, + double *xy, double *yz, double *xz, + int *pflags, int *boxflag) +{ + LAMMPS *lmp = (LAMMPS *) handle; + Domain *domain = lmp->domain; + + BEGIN_CAPTURE + { + // do nothing if box does not yet exist + if ((lmp->domain->box_exist == 0) + && (lmp->comm->me == 0)) { + lmp->error->warning(FLERR,"Calling lammps_extract_box without a box"); + return; + } + + // domain->init() is needed to update domain->box_change + domain->init(); + + if (boxlo) { + boxlo[0] = domain->boxlo[0]; + boxlo[1] = domain->boxlo[1]; + boxlo[2] = domain->boxlo[2]; + } + if (boxhi) { + boxhi[0] = domain->boxhi[0]; + boxhi[1] = domain->boxhi[1]; + boxhi[2] = domain->boxhi[2]; + } + if (xy) *xy = domain->xy; + if (yz) *yz = domain->yz; + if (xz) *xz = domain->xz; + + if (pflags) { + pflags[0] = domain->periodicity[0]; + pflags[1] = domain->periodicity[1]; + pflags[2] = domain->periodicity[2]; + } + if (boxflag) *boxflag = domain->box_change; + } + END_CAPTURE +} + +/** Reset simulation box parameters. + * +\verbatim embed:rst + +This function sets the simulation box dimensions (upper and lower bounds +and tilt factors) from the provided data and then re-initializes the box +information and all derived settings. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param boxlo pointer to 3 doubles containing the lower box boundary + * \param boxhi pointer to 3 doubles containing the upper box boundary + * \param xy xy tilt factor + * \param yz yz tilt factor + * \param xz xz tilt factor */ + +void lammps_reset_box(void *handle, double *boxlo, double *boxhi, + double xy, double yz, double xz) +{ + LAMMPS *lmp = (LAMMPS *) handle; + Domain *domain = lmp->domain; + + BEGIN_CAPTURE + { + // error if box does not exist + if ((lmp->domain->box_exist == 0) + && (lmp->comm->me == 0)) { + lmp->error->warning(FLERR,"Calling lammps_reset_box without a box"); + return; + } + domain->boxlo[0] = boxlo[0]; + domain->boxlo[1] = boxlo[1]; + domain->boxlo[2] = boxlo[2]; + domain->boxhi[0] = boxhi[0]; + domain->boxhi[1] = boxhi[1]; + domain->boxhi[2] = boxhi[2]; + + domain->xy = xy; + domain->yz = yz; + domain->xz = xz; + + domain->set_global_box(); + lmp->comm->set_proc_grid(); + domain->set_local_box(); + } + END_CAPTURE +} + +/** Query LAMMPS about global settings. + * +\verbatim embed:rst + +This function will retrieve or compute global properties. In contrast to +:cpp:func:`lammps_get_thermo` this function returns an ``int``. The +following keywords are currently supported. If a keyword is not +recognized, the function returns -1. Please also see :cpp:func:`lammps_extract_global`. + +.. list-table:: + :header-rows: 1 + :widths: auto + + * - Keyword + - Description / Return value + * - bigint + - size of the ``bigint`` integer type, 4 or 8 bytes. + Set at :ref:`compile time `. + * - tagint + - size of the ``tagint`` integer type, 4 or 8 bytes. + Set at :ref:`compile time `. + * - imageint + - size of the ``imageint`` integer type, 4 or 8 bytes. + Set at :ref:`compile time `. + * - dimension + - Number of dimensions: 2 or 3. See :doc:`dimension`. + * - box_exist + - 1 if the simulation box is defined, 0 if not. + See :doc:`create_box`. + * - triclinic + - 1 if the the simulation box is triclinic, 0 if orthogonal. + See :doc:`change_box`. + * - nlocal + - number of "owned" atoms of the current MPI rank. + * - nghost + - number of "ghost" atoms of the current MPI rank. + * - nall + - number of all "owned" and "ghost" atoms of the current MPI rank. + * - nmax + - maximum of nlocal+nghost across all MPI ranks (for per-atom data array size). + * - ntypes + - number of atom types + * - molecule_flag + - 1 if the atom style includes molecular topology data. See :doc:`atom_style`. + * - q_flag + - 1 if the atom style includes point charges. See :doc:`atom_style`. + * - mu_flag + - 1 if the atom style includes point dipoles. See :doc:`atom_style`. + * - rmass_flag + - 1 if the atom style includes per-atom masses, 0 if there are per-type masses. See :doc:`atom_style`. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param keyword string with the name of the thermo keyword + * \return value of the queried setting or -1 if unknown */ + +int lammps_extract_setting(void * handle, char *name) { + LAMMPS *lmp = (LAMMPS *) handle; + +// This can be customized by adding keywords and documenting them in the section above. if (strcmp(name,"bigint") == 0) return sizeof(bigint); if (strcmp(name,"tagint") == 0) return sizeof(tagint); if (strcmp(name,"imageint") == 0) return sizeof(imageint); + if (strcmp(name,"dimension") == 0) return lmp->domain->dimension; + if (strcmp(name,"box_exist") == 0) return lmp->domain->box_exist; + if (strcmp(name,"triclinic") == 0) return lmp->domain->triclinic; + + if (strcmp(name,"nlocal") == 0) return lmp->atom->nlocal; + if (strcmp(name,"nghost") == 0) return lmp->atom->nghost; + if (strcmp(name,"nall") == 0) return lmp->atom->nlocal+lmp->atom->nghost; + if (strcmp(name,"nmax") == 0) return lmp->atom->nmax; + if (strcmp(name,"ntypes") == 0) return lmp->atom->ntypes; + + if (strcmp(name,"molecule_flag") == 0) return lmp->atom->molecule_flag; + if (strcmp(name,"q_flag") == 0) return lmp->atom->q_flag; + if (strcmp(name,"mu_flag") == 0) return lmp->atom->mu_flag; + if (strcmp(name,"rmass_flag") == 0) return lmp->atom->rmass_flag; + return -1; } -/* ---------------------------------------------------------------------- - extract a pointer to an internal LAMMPS global entity - name = desired quantity, e.g. dt or boxyhi or natoms - returns a void pointer to the entity - which the caller can cast to the proper data type - returns a NULL if name not listed below - this function need only be invoked once - the returned pointer is a permanent valid reference to the quantity - customize by adding names -------------------------------------------------------------------------- */ +/** Get pointer to internal global LAMMPS variables or arrays. + * +\verbatim embed:rst + +This function returns a pointer to the location of some global property +stored in one of the constituent classes of a LAMMPS instance. The +returned pointer is cast to ``void *`` and needs to be cast to a pointer +of the type that the entity represents. The pointers returned by this +function are generally persistent; therefore it is not necessary to call +the function again, unless a :doc:`clear` command is issued which wipes +out and recreates the contents of the :cpp:class:`LAMMPS +` class. + +Please also see :cpp:func:`lammps_extract_setting`, +:cpp:func:`lammps_get_thermo`, and :cpp:func:`lammps_extract_box`. + +.. warning:: + + Modifying the data in the location pointed to by the returned pointer + may lead to inconsistent internal data and thus may cause failures or + crashes or bogus simulations. In general it is thus usually better + to use a LAMMPS input command that sets or changes these parameters. + Those will takes care of all side effects and necessary updates of + settings derived from such settings. Where possible a reference to + such a command or a relevant section of the manual is given below. + +This table lists the supported names, their data types, length of the +data area, and a short description. The ``bigint`` type may be defined +to be either an ``int`` or an ``int64_t``. This is selected at +:ref:`compile time `. + +.. list-table:: + :header-rows: 1 + :widths: auto + + * - Name + - Type + - Length + - Description + * - units + - char \* + - 1 + - string with the current unit style. See :doc:`units`. + * - dt + - double + - 1 + - length of the time step. See :doc:`timestep`. + * - ntimestep + - bigint + - 1 + - current time step number. See :doc:`reset_timestep`. + * - boxlo + - double + - 3 + - lower box boundaries. See :doc:`create_box`. + * - boxhi + - double + - 3 + - upper box boundaries. See :doc:`create_box`. + * - boxxlo + - double + - 1 + - lower box boundary in x-direction. See :doc:`create_box`. + * - boxxhi + - double + - 1 + - upper box boundary in x-direction. See :doc:`create_box`. + * - boxylo + - double + - 1 + - lower box boundary in y-direction. See :doc:`create_box`. + * - boxyhi + - double + - 1 + - upper box boundary in y-direction. See :doc:`create_box`. + * - boxzlo + - double + - 1 + - lower box boundary in z-direction. See :doc:`create_box`. + * - boxzhi + - double + - 1 + - upper box boundary in z-direction. See :doc:`create_box`. + * - periodicity + - int + - 3 + - 0 if non-periodic, 1 if periodic for x, y, and z; + See :doc:`boundary`. + * - triclinic + - int + - 1 + - 1 if the the simulation box is triclinic, 0 if orthogonal; + See :doc:`change_box`. + * - xy + - double + - 1 + - triclinic tilt factor. See :doc:`Howto_triclinic`. + * - yz + - double + - 1 + - triclinic tilt factor. See :doc:`Howto_triclinic`. + * - xz + - double + - 1 + - triclinic tilt factor. See :doc:`Howto_triclinic`. + * - natoms + - bigint + - 1 + - total number of atoms in the simulation. + * - nbonds + - bigint + - 1 + - total number of bonds in the simulation. + * - nangles + - bigint + - 1 + - total number of angles in the simulation. + * - ndihedrals + - bigint + - 1 + - total number of dihedrals in the simulation. + * - nimpropers + - bigint + - 1 + - total number of impropers in the simulation. + * - nlocal + - int + - 1 + - number of "owned" atoms of the current MPI rank. + * - nghost + - int + - 1 + - number of "ghost" atoms of the current MPI rank. + * - nmax + - int + - 1 + - maximum of nlocal+nghost across all MPI ranks (for per-atom data array size). + * - ntypes + - int + - 1 + - number of atom types + * - q_flag + - int + - 1 + - 1 if the atom style includes point charges. See :doc:`atom_style`. + * - atime + - double + - 1 + - accumulated simulation time in time units. + * - atimestep + - bigint + - 1 + - the number of the timestep when "atime" was last updated. + * - boltz + - double + - 1 + - value of the "boltz" constant. See :doc:`units`. + * - hplanck + - double + - 1 + - value of the "hplanck" constant. See :doc:`units`. + * - mvv2e + - double + - 1 + - factor to convert :math:`\frac{1}{2}mv^2` for a particle to + the current energy unit; See :doc:`units`. + * - ftm2v + - double + - 1 + - (description missing) See :doc:`units`. + * - mv2d + - double + - 1 + - (description missing) See :doc:`units`. + * - nktv2p + - double + - 1 + - (description missing) See :doc:`units`. + * - qqr2e + - double + - 1 + - factor to convert :math:`\frac{q_i q_j}{r}` to energy units; + See :doc:`units`. + * - qe2f + - double + - 1 + - (description missing) See :doc:`units`. + * - vxmu2f + - double + - 1 + - (description missing) See :doc:`units`. + * - xxt2kmu + - double + - 1 + - (description missing) See :doc:`units`. + * - dielectric + - double + - 1 + - value of the dielectric constant. See :doc:`dielectric`. + * - qqrd2e + - double + - 1 + - (description missing) See :doc:`units`. + * - e_mass + - double + - 1 + - (description missing) See :doc:`units`. + * - hhmrr2e + - double + - 1 + - (description missing) See :doc:`units`. + * - mvh2r + - double + - 1 + - (description missing) See :doc:`units`. + * - angstrom + - double + - 1 + - constant to convert current length unit to angstroms; + 1.0 for reduced (aka "lj") units. See :doc:`units`. + * - femtosecond + - double + - 1 + - constant to convert current time unit to femtoseconds; + 1.0 for reduced (aka "lj") units + * - qelectron + - double + - 1 + - (description missing) See :doc:`units`. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param name string with the name of the extracted property + * \return pointer (cast to ``void *``) to the location of the + requested property. NULL if name is not known. */ -void *lammps_extract_global(void *ptr, char *name) +void *lammps_extract_global(void *handle, char *name) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; + if (strcmp(name,"units") == 0) return (void *) lmp->update->unit_style; if (strcmp(name,"dt") == 0) return (void *) &lmp->update->dt; + if (strcmp(name,"ntimestep") == 0) return (void *) &lmp->update->ntimestep; if (strcmp(name,"boxlo") == 0) return (void *) lmp->domain->boxlo; if (strcmp(name,"boxhi") == 0) return (void *) lmp->domain->boxhi; if (strcmp(name,"boxxlo") == 0) return (void *) &lmp->domain->boxlo[0]; @@ -350,7 +1004,7 @@ void *lammps_extract_global(void *ptr, char *name) if (strcmp(name,"boxzlo") == 0) return (void *) &lmp->domain->boxlo[2]; if (strcmp(name,"boxzhi") == 0) return (void *) &lmp->domain->boxhi[2]; if (strcmp(name,"periodicity") == 0) return (void *) lmp->domain->periodicity; - + if (strcmp(name,"triclinic") == 0) return (void *) &lmp->domain->triclinic; if (strcmp(name,"xy") == 0) return (void *) &lmp->domain->xy; if (strcmp(name,"xz") == 0) return (void *) &lmp->domain->xz; if (strcmp(name,"yz") == 0) return (void *) &lmp->domain->yz; @@ -363,10 +1017,6 @@ void *lammps_extract_global(void *ptr, char *name) if (strcmp(name,"nghost") == 0) return (void *) &lmp->atom->nghost; if (strcmp(name,"nmax") == 0) return (void *) &lmp->atom->nmax; if (strcmp(name,"ntypes") == 0) return (void *) &lmp->atom->ntypes; - if (strcmp(name,"ntimestep") == 0) return (void *) &lmp->update->ntimestep; - - if (strcmp(name,"units") == 0) return (void *) lmp->update->unit_style; - if (strcmp(name,"triclinic") == 0) return (void *) &lmp->domain->triclinic; if (strcmp(name,"q_flag") == 0) return (void *) &lmp->atom->q_flag; @@ -402,85 +1052,290 @@ void *lammps_extract_global(void *ptr, char *name) return NULL; } -/* ---------------------------------------------------------------------- - extract simulation box parameters - see domain.h for definition of these arguments - domain->init() call needed to set box_change -------------------------------------------------------------------------- */ +/** Get pointer to a LAMMPS per-atom property. + * +\verbatim embed:rst -void lammps_extract_box(void *ptr, double *boxlo, double *boxhi, - double *xy, double *yz, double *xz, - int *periodicity, int *box_change) -{ - LAMMPS *lmp = (LAMMPS *) ptr; - Domain *domain = lmp->domain; - domain->init(); +This function returns a pointer to the location of per-atom properties +(and per-atom-type properties in the case of the 'mass' keyword). +Per-atom data is distributed across sub-domains and thus MPI ranks. The +returned pointer is cast to ``void *`` and needs to be cast to a pointer +of data type that the entity represents. - boxlo[0] = domain->boxlo[0]; - boxlo[1] = domain->boxlo[1]; - boxlo[2] = domain->boxlo[2]; - boxhi[0] = domain->boxhi[0]; - boxhi[1] = domain->boxhi[1]; - boxhi[2] = domain->boxhi[2]; +A table with supported keywords is included in the documentation +of the :cpp:func:`Atom::extract() ` function. - *xy = domain->xy; - *yz = domain->yz; - *xz = domain->xz; +.. note:: - periodicity[0] = domain->periodicity[0]; - periodicity[1] = domain->periodicity[1]; - periodicity[2] = domain->periodicity[2]; + The pointers returned by this function are generally not persistent + since per-atom data may be re-distributed, re-allocated, and + re-ordered at every re-neighboring operation. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param name string with the name of the extracted property + * \return pointer (cast to ``void *``) to the location of the + * requested data or ``NULL`` if not found. */ - *box_change = domain->box_change; +void *lammps_extract_atom(void *handle, char *name) +{ + LAMMPS *lmp = (LAMMPS *) handle; + return lmp->atom->extract(name); } -/* ---------------------------------------------------------------------- - extract a pointer to an internal LAMMPS atom-based entity - name = desired quantity, e.g. x or mass - returns a void pointer to the entity - which the caller can cast to the proper data type - returns a NULL if Atom::extract() does not recognize the name - the returned pointer is not a permanent valid reference to the - per-atom quantity, since LAMMPS may reallocate per-atom data - customize by adding names to Atom::extract() -------------------------------------------------------------------------- */ +/** Create N atoms from list of coordinates + * +\verbatim embed:rst + +The prototype for this function when compiling with ``-DLAMMPS_BIGBIG`` +is: + +.. code-block:: c + + int lammps_create_atoms(void *handle, int n, int64_t *id, int *type, double *x, double *v, int64_t *image, int bexpand); + +This function creates additional atoms from a given list of coordinates +and a list of atom types. Additionally the atom-IDs, velocities, and +image flags may be provided. If atom-IDs are not provided, they will be +automatically created as a sequence following the largest existing +atom-ID. + +This function is useful to add atoms to a simulation or - in tandem with +:cpp:func:`lammps_reset_box` - to restore a previously extracted and +saved state of a simulation. Additional properties for the new atoms +can then be assigned via the :cpp:func:`lammps_scatter_atoms` +:cpp:func:`lammps_extract_atom` functions. + +For non-periodic boundaries, atoms will **not** be created that have +coordinates outside the box unless it is a shrink-wrap boundary and the +shrinkexceed flag has been set to a non-zero value. For periodic +boundaries atoms will be wrapped back into the simulation cell and its +image flags adjusted accordingly, unless explicit image flags are +provided. + +The function returns the number of atoms created or -1 on failure, e.g. +when called before as box has been created. + +Coordinates and velocities have to be given in a 1d-array in the order +X(1),Y(1),Z(1),X(2),Y(2),Z(2),...,X(N),Y(N),Z(N). + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param n number of atoms, N, to be added to the system + * \param id pointer to N atom IDs; ``NULL`` will generate IDs + * \param type pointer to N atom types (required) + * \param x pointer to 3N doubles with x-,y-,z- positions + of the new atoms (required) + * \param v pointer to 3N doubles with x-,y-,z- velocities + of the new atoms (set to 0.0 if ``NULL``) + * \param image pointer to N imageint sets of image flags, or ``NULL`` + * \param bexpand if 1, atoms outside of shrink-wrap boundaries will + still be created and not dropped and the box extended + * \return number of atoms created on success; + -1 on failure (no box, no atom IDs, etc.) */ + +int lammps_create_atoms(void *handle, int n, tagint *id, int *type, + double *x, double *v, imageint *image, + int bexpand) +{ + LAMMPS *lmp = (LAMMPS *) handle; + bigint natoms_prev = lmp->atom->natoms; + + BEGIN_CAPTURE + { + // error if box does not exist or tags not defined + + int flag = 0; + std::string msg("Failure in lammps_create_atoms: "); + if (lmp->domain->box_exist == 0) { + flag = 1; + msg += "trying to create atoms before before simulation box is defined"; + } + if (lmp->atom->tag_enable == 0) { + flag = 1; + msg += "must have atom IDs to use this function"; + } + + if (flag) { + if (lmp->comm->me == 0) lmp->error->warning(FLERR,msg.c_str()); + return -1; + } + + // loop over all N atoms on all MPI ranks + // if this proc would own it based on its coordinates, invoke create_atom() + // optionally set atom tags and velocities + + Atom *atom = lmp->atom; + Domain *domain = lmp->domain; + int nlocal = atom->nlocal; + + int nlocal_prev = nlocal; + double xdata[3]; + + for (int i = 0; i < n; i++) { + xdata[0] = x[3*i]; + xdata[1] = x[3*i+1]; + xdata[2] = x[3*i+2]; + imageint * img = image ? image + i : NULL; + tagint tag = id ? id[i] : 0; + + // create atom only on MPI rank that would own it + + if (!domain->ownatom(tag, xdata, img, bexpand)) continue; + + atom->avec->create_atom(type[i],xdata); + if (id) atom->tag[nlocal] = id[i]; + else atom->tag[nlocal] = 0; + if (v) { + atom->v[nlocal][0] = v[3*i]; + atom->v[nlocal][1] = v[3*i+1]; + atom->v[nlocal][2] = v[3*i+2]; + } + if (image) atom->image[nlocal] = image[i]; + nlocal++; + } + + // if no tags are given explicitly, create new and unique tags + + if (id == NULL) atom->tag_extend(); + + // reset box info, if extended when adding atoms. + + if (bexpand) domain->reset_box(); + + // need to reset atom->natoms inside LAMMPS + + bigint ncurrent = nlocal; + MPI_Allreduce(&ncurrent,&lmp->atom->natoms,1,MPI_LMP_BIGINT, + MPI_SUM,lmp->world); + + // init per-atom fix/compute/variable values for created atoms + + atom->data_fix_compute_variable(nlocal_prev,nlocal); -void *lammps_extract_atom(void *ptr, char *name) -{ - LAMMPS *lmp = (LAMMPS *) ptr; - return lmp->atom->extract(name); + // if global map exists, reset it + // invoke map_init() b/c atom count has grown + + if (lmp->atom->map_style) { + lmp->atom->map_init(); + lmp->atom->map_set(); + } + } + END_CAPTURE; + return (int) lmp->atom->natoms - natoms_prev; } -/* ---------------------------------------------------------------------- - extract a pointer to an internal LAMMPS compute-based entity - the compute is invoked if its value(s) is not current - id = compute ID - style = 0 for global data, 1 for per-atom data, 2 for local data - type = 0 for scalar, 1 for vector, 2 for array - for global data, returns a pointer to the - compute's internal data structure for the entity - caller should cast it to (double *) for a scalar or vector - caller should cast it to (double **) for an array - for per-atom or local vector/array data, returns a pointer to the - compute's internal data structure for the entity - caller should cast it to (double *) for a vector - caller should cast it to (double **) for an array - for local data, accessing scalar data for the compute (type = 0), - returns a pointer that should be cast to (int *) which points to - an int with the number of local rows, i.e. the length of the local array. - returns a void pointer to the compute's internal data structure - for the entity which the caller can cast to the proper data type - returns a NULL if id is not recognized or style/type not supported - the returned pointer is not a permanent valid reference to the - compute data, this function should be re-invoked - IMPORTANT: if the compute is not current it will be invoked - LAMMPS cannot easily check here if it is valid to invoke the compute, - so caller must insure that it is OK -------------------------------------------------------------------------- */ +// ---------------------------------------------------------------------- +// Library functions to access data from computes, fixes, variables in LAMMPS +// ---------------------------------------------------------------------- -void *lammps_extract_compute(void *ptr, char *id, int style, int type) +/** Get pointer to data from a LAMMPS compute. + * +\verbatim embed:rst + +This function returns a pointer to the location of data provided by a +:doc:`compute` instance identified by the compute-ID. Computes may +provide global, per-atom, or local data, and those may be a scalar, a +vector, or an array or they may provide the information about the +dimensions of the respective data. Since computes may provide multiple +kinds of data, it is required to set style and type flags representing +what specific data is desired. This also determines to what kind of +pointer the returned pointer needs to be cast to access the data +correctly. The function returns ``NULL`` if the compute ID is not found +or the requested data is not available or current. The following table +lists the available options. + +.. list-table:: + :header-rows: 1 + :widths: auto + + * - Style (see :cpp:enum:`_LMP_STYLE_CONST`) + - Type (see :cpp:enum:`_LMP_TYPE_CONST`) + - Returned type + - Returned data + * - LMP_STYLE_GLOBAL + - LMP_TYPE_SCALAR + - ``double *`` + - Global scalar + * - LMP_STYLE_GLOBAL + - LMP_TYPE_VECTOR + - ``double *`` + - Global vector + * - LMP_STYLE_GLOBAL + - LMP_TYPE_ARRAY + - ``double **`` + - Global array + * - LMP_STYLE_GLOBAL + - LMP_SIZE_VECTOR + - ``int *`` + - Length of global vector + * - LMP_STYLE_GLOBAL + - LMP_SIZE_ROWS + - ``int *`` + - Rows of global array + * - LMP_STYLE_GLOBAL + - LMP_SIZE_COLS + - ``int *`` + - Columns of global array + * - LMP_STYLE_ATOM + - LMP_TYPE_VECTOR + - ``double *`` + - Per-atom value + * - LMP_STYLE_ATOM + - LMP_TYPE_ARRAY + - ``double **`` + - Per-atom vector + * - LMP_STYLE_ATOM + - LMP_SIZE_COLS + - ``int *`` + - Columns in per-atom array, 0 if vector + * - LMP_STYLE_LOCAL + - LMP_TYPE_VECTOR + - ``double *`` + - Local data vector + * - LMP_STYLE_LOCAL + - LMP_TYPE_ARRAY + - ``double **`` + - Local data array + * - LMP_STYLE_LOCAL + - LMP_SIZE_ROWS + - ``int *`` + - Number of local data rows + * - LMP_STYLE_LOCAL + - LMP_SIZE_COLS + - ``int *`` + - Number of local data columns + +The pointers returned by this function are generally not persistent +since the computed data may be re-distributed, re-allocated, and +re-ordered at every invocation. It is advisable to re-invoke this +function before the data is accessed, or make a copy if the data shall +be used after other LAMMPS commands have been issued. + +.. note:: + + If the compute's data is not computed for the current step, the + compute will be invoked. LAMMPS cannot easily check at that time, if + it is valid to invoke a compute, so it may fail with an error. The + caller has to check to avoid such an error. + + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param id string with ID of the compute + * \param style constant indicating the style of data requested + (global, per-atom, or local) + * \param type constant indicating type of data (scalar, vector, + or array) or size of rows or columns + * \return pointer (cast to ``void *``) to the location of the + * requested data or ``NULL`` if not found. */ + +void *lammps_extract_compute(void *handle, char *id, int style, int type) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -488,42 +1343,53 @@ void *lammps_extract_compute(void *ptr, char *id, int style, int type) if (icompute < 0) return NULL; Compute *compute = lmp->modify->compute[icompute]; - if (style == 0) { - if (type == 0) { + if (style == LMP_STYLE_GLOBAL) { + if (type == LMP_TYPE_SCALAR) { if (!compute->scalar_flag) return NULL; if (compute->invoked_scalar != lmp->update->ntimestep) compute->compute_scalar(); return (void *) &compute->scalar; } - if (type == 1) { + if ((type == LMP_TYPE_VECTOR) || (type == LMP_SIZE_VECTOR)) { if (!compute->vector_flag) return NULL; if (compute->invoked_vector != lmp->update->ntimestep) compute->compute_vector(); - return (void *) compute->vector; + if (type == LMP_TYPE_VECTOR) + return (void *) compute->vector; + else + return (void *) &compute->size_vector; } - if (type == 2) { + if ((type == LMP_TYPE_ARRAY) || (type == LMP_SIZE_ROWS) || (type == LMP_SIZE_COLS)) { if (!compute->array_flag) return NULL; if (compute->invoked_array != lmp->update->ntimestep) compute->compute_array(); - return (void *) compute->array; + if (type == LMP_TYPE_ARRAY) + return (void *) compute->array; + else if (type == LMP_SIZE_ROWS) + return (void *) &compute->size_array_rows; + else + return (void *) &compute->size_array_cols; } } - if (style == 1) { + if (style == LMP_STYLE_ATOM) { if (!compute->peratom_flag) return NULL; if (compute->invoked_peratom != lmp->update->ntimestep) compute->compute_peratom(); - if (type == 1) return (void *) compute->vector_atom; - if (type == 2) return (void *) compute->array_atom; + if (type == LMP_TYPE_VECTOR) return (void *) compute->vector_atom; + if (type == LMP_TYPE_ARRAY) return (void *) compute->array_atom; + if (type == LMP_SIZE_COLS) return (void *) &compute->size_peratom_cols; } - if (style == 2) { + if (style == LMP_STYLE_LOCAL) { if (!compute->local_flag) return NULL; if (compute->invoked_local != lmp->update->ntimestep) compute->compute_local(); - if (type == 0) return (void *) &compute->size_local_rows; - if (type == 1) return (void *) compute->vector_local; - if (type == 2) return (void *) compute->array_local; + if (type == LMP_TYPE_SCALAR) return (void *) &compute->size_local_rows; /* for backward compatibility */ + if (type == LMP_TYPE_VECTOR) return (void *) compute->vector_local; + if (type == LMP_TYPE_ARRAY) return (void *) compute->array_local; + if (type == LMP_SIZE_ROWS) return (void *) &compute->size_local_rows; + if (type == LMP_SIZE_COLS) return (void *) &compute->size_local_cols; } } END_CAPTURE @@ -531,34 +1397,128 @@ void *lammps_extract_compute(void *ptr, char *id, int style, int type) return NULL; } -/* ---------------------------------------------------------------------- - extract a pointer to an internal LAMMPS fix-based entity - id = fix ID - style = 0 for global data, 1 for per-atom data, 2 for local data - type = 0 for scalar, 1 for vector, 2 for array - i,j = indices needed only to specify which global vector or array value - for global data, returns a pointer to a memory location - which is allocated by this function - which the caller can cast to a (double *) which points to the value - for per-atom or local data, returns a pointer to the - fix's internal data structure for the entity - caller should cast it to (double *) for a vector - caller should cast it to (double **) for an array - returns a NULL if id is not recognized or style/type not supported - IMPORTANT: for global data, - this function allocates a double to store the value in, - so the caller must free this memory to avoid a leak, e.g. - double *dptr = (double *) lammps_extract_fix(); - double value = *dptr; - lammps_free(dptr); - IMPORTANT: LAMMPS cannot easily check here when info extracted from - the fix is valid, so caller must insure that it is OK -------------------------------------------------------------------------- */ - -void *lammps_extract_fix(void *ptr, char *id, int style, int type, - int i, int j) +/** Get pointer to data from a LAMMPS fix. + * +\verbatim embed:rst + +This function returns a pointer to data provided by a :doc:`fix` +instance identified by its fix-ID. Fixes may provide global, per-atom, +or local data, and those may be a scalar, a vector, or an array, or they +may provide the information about the dimensions of the respective data. +Since individual fixes may provide multiple kinds of data, it is +required to set style and type flags representing what specific data is +desired. This also determines to what kind of pointer the returned +pointer needs to be cast to access the data correctly. The function +returns ``NULL`` if the fix ID is not found or the requested data is not +available. + +.. note:: + + When requesting global data, the fix data can only be accessed one + item at a time without access to the pointer itself. Thus this + function will allocate storage for a single double value, copy the + returned value to it, and returns a pointer to the location of the + copy. Therefore the allocated storage needs to be freed after its + use to avoid a memory leak. Example: + + .. code-block:: c + + double *dptr = (double *) lammps_extract_fix(handle,name,0,1,0,0); + double value = *dptr; + lammps_free((void *)dptr); + +The following table lists the available options. + +.. list-table:: + :header-rows: 1 + :widths: auto + + * - Style (see :cpp:enum:`_LMP_STYLE_CONST`) + - Type (see :cpp:enum:`_LMP_TYPE_CONST`) + - Returned type + - Returned data + * - LMP_STYLE_GLOBAL + - LMP_TYPE_SCALAR + - ``double *`` + - Copy of global scalar + * - LMP_STYLE_GLOBAL + - LMP_TYPE_VECTOR + - ``double *`` + - Copy of global vector element at index nrow + * - LMP_STYLE_GLOBAL + - LMP_TYPE_ARRAY + - ``double *`` + - Copy of global array element at nrow, ncol + * - LMP_STYLE_GLOBAL + - LMP_SIZE_VECTOR + - ``int *`` + - Length of global vector + * - LMP_STYLE_GLOBAL + - LMP_SIZE_ROWS + - ``int *`` + - Rows in global array + * - LMP_STYLE_GLOBAL + - LMP_SIZE_COLS + - ``int *`` + - Columns in global array + * - LMP_STYLE_ATOM + - LMP_TYPE_VECTOR + - ``double *`` + - Per-atom value + * - LMP_STYLE_ATOM + - LMP_TYPE_ARRAY + - ``double **`` + - Per-atom vector + * - LMP_STYLE_ATOM + - LMP_SIZE_COLS + - ``int *`` + - Columns of per-atom array, 0 if vector + * - LMP_STYLE_LOCAL + - LMP_TYPE_VECTOR + - ``double *`` + - Local data vector + * - LMP_STYLE_LOCAL + - LMP_TYPE_ARRAY + - ``double **`` + - Local data array + * - LMP_STYLE_LOCAL + - LMP_SIZE_ROWS + - ``int *`` + - Number of local data rows + * - LMP_STYLE_LOCAL + - LMP_SIZE_COLS + - ``int *`` + - Number of local data columns + +The pointers returned by this function for per-atom or local data are +generally not persistent, since the computed data may be re-distributed, +re-allocated, and re-ordered at every invocation of the fix. It is thus +advisable to re-invoke this function before the data is accessed, or +make a copy, if the data shall be used after other LAMMPS commands have +been issued. + +.. note:: + + LAMMPS cannot easily check if it is valid to access the data, so it + may fail with an error. The caller has avoid such an error. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param id string with ID of the fix + * \param style constant indicating the style of data requested + (global, per-atom, or local) + * \param type constant indicating type of data (scalar, vector, + or array) or size of rows or columns + * \param nrow row index (only used for global vectors and arrays) + * \param ncol column index (only used for global arrays) + * \return pointer (cast to ``void *``) to the location of the + * requested data or ``NULL`` if not found. */ + +void *lammps_extract_fix(void *handle, char *id, int style, int type, + int nrow, int ncol) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -566,38 +1526,52 @@ void *lammps_extract_fix(void *ptr, char *id, int style, int type, if (ifix < 0) return NULL; Fix *fix = lmp->modify->fix[ifix]; - if (style == 0) { - if (type == 0) { + if (style == LMP_STYLE_GLOBAL) { + if (type == LMP_TYPE_SCALAR) { if (!fix->scalar_flag) return NULL; double *dptr = (double *) malloc(sizeof(double)); *dptr = fix->compute_scalar(); return (void *) dptr; } - if (type == 1) { + if (type == LMP_TYPE_VECTOR) { if (!fix->vector_flag) return NULL; double *dptr = (double *) malloc(sizeof(double)); - *dptr = fix->compute_vector(i); + *dptr = fix->compute_vector(nrow); return (void *) dptr; } - if (type == 2) { + if (type == LMP_TYPE_ARRAY) { if (!fix->array_flag) return NULL; double *dptr = (double *) malloc(sizeof(double)); - *dptr = fix->compute_array(i,j); + *dptr = fix->compute_array(nrow,ncol); return (void *) dptr; } + if (type == LMP_SIZE_VECTOR) { + if (!fix->vector_flag) return NULL; + return (void *) &fix->size_vector; + } + if ((type == LMP_SIZE_ROWS) || (type == LMP_SIZE_COLS)) { + if (!fix->array_flag) return NULL; + if (type == LMP_SIZE_ROWS) + return (void *) &fix->size_array_rows; + else + return (void *) &fix->size_array_cols; + } } - if (style == 1) { + if (style == LMP_STYLE_ATOM) { if (!fix->peratom_flag) return NULL; - if (type == 1) return (void *) fix->vector_atom; - if (type == 2) return (void *) fix->array_atom; + if (type == LMP_TYPE_VECTOR) return (void *) fix->vector_atom; + if (type == LMP_TYPE_ARRAY) return (void *) fix->array_atom; + if (type == LMP_SIZE_COLS) return (void *) &fix->size_peratom_cols; } - if (style == 2) { + if (style == LMP_STYLE_LOCAL) { if (!fix->local_flag) return NULL; - if (type == 0) return (void *) &fix->size_local_rows; - if (type == 1) return (void *) fix->vector_local; - if (type == 2) return (void *) fix->array_local; + if (type == LMP_TYPE_SCALAR) return (void *) &fix->size_local_rows; + if (type == LMP_TYPE_VECTOR) return (void *) fix->vector_local; + if (type == LMP_TYPE_ARRAY) return (void *) fix->array_local; + if (type == LMP_SIZE_ROWS) return (void *) &fix->size_local_rows; + if (type == LMP_SIZE_COLS) return (void *) &fix->size_local_cols; } } END_CAPTURE @@ -605,36 +1579,61 @@ void *lammps_extract_fix(void *ptr, char *id, int style, int type, return NULL; } -/* ---------------------------------------------------------------------- - extract a pointer to an internal LAMMPS evaluated variable - name = variable name, must be equal-style or atom-style variable - group = group ID for evaluating an atom-style variable, else NULL - for equal-style variable, returns a pointer to a memory location - which is allocated by this function - which the caller can cast to a (double *) which points to the value - for atom-style variable, returns a pointer to the - vector of per-atom values on each processor, - which the caller can cast to a (double *) which points to the values - returns a NULL if name is not recognized or not equal-style or atom-style - IMPORTANT: for both equal-style and atom-style variables, - this function allocates memory to store the variable data in - so the caller must free this memory to avoid a leak - e.g. for equal-style variables - double *dptr = (double *) lammps_extract_variable(); - double value = *dptr; - lammps_free(dptr); - e.g. for atom-style variables - double *vector = (double *) lammps_extract_variable(); - use the vector values - lammps_free(vector); - IMPORTANT: LAMMPS cannot easily check here when it is valid to evaluate - the variable or any fixes or computes or thermodynamic info it references, - so caller must insure that it is OK -------------------------------------------------------------------------- */ +/** Get pointer to data from a LAMMPS variable. + * +\verbatim embed:rst + +This function returns a pointer to data from a LAMMPS :doc:`variable` +identified by its name. The variable must be either an *equal*\ -style +compatible or an *atom*\ -style variable. Variables of style *internal* +are compatible with *equal*\ -style variables and so are *python*\ +-style variables, if they return a numeric value. The function returns +``NULL`` when a variable of the provided *name* is not found or of an +incompatible style. The *group* argument is only used for *atom*\ +-style variables and ignored otherwise. If set to ``NULL`` when +extracting data from and *atom*\ -style variable, the group is assumed +to be "all". + +.. note:: + + When requesting data from an *equal*\ -style or compatible variable + this function allocates storage for a single double value, copies the + returned value to it, and returns a pointer to the location of the + copy. Therefore the allocated storage needs to be freed after its + use to avoid a memory leak. Example: + + .. code-block:: c -void *lammps_extract_variable(void *ptr, char *name, char *group) + double *dptr = (double *) lammps_extract_variable(handle,name,NULL); + double value = *dptr; + lammps_free((void *)dptr); + + For *atom*\ -style variables the data returned is a pointer to an + allocated block of storage of double of the length ``atom->nlocal``. + To avoid a memory leak, also this pointer needs to be freed after use. + +Since the data is returned as copies, the location will persist, but its +values will not be updated, in case the variable is re-evaluated. + +.. note:: + + LAMMPS cannot easily check if it is valid to access the data + referenced by the variables, e.g. computes or fixes or thermodynamic + info, so it may fail with an error. The caller has to make certain, + that the data is extracted only when it safe to evaluate the variable + and thus an error and crash is avoided. + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param name name of the variable + * \param group group-ID for atom style variable or ``NULL`` + * \return pointer (cast to ``void *``) to the location of the + * requested data or ``NULL`` if not found. */ + +void *lammps_extract_variable(void *handle, char *name, char *group) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -648,6 +1647,7 @@ void *lammps_extract_variable(void *ptr, char *name, char *group) } if (lmp->input->variable->atomstyle(ivar)) { + if (group == NULL) group = (char *)"all"; int igroup = lmp->group->find(group); if (igroup < 0) return NULL; int nlocal = lmp->atom->nlocal; @@ -661,51 +1661,20 @@ void *lammps_extract_variable(void *ptr, char *name, char *group) return NULL; } -/* ---------------------------------------------------------------------- - return the current value of a thermo keyword as a double - unlike lammps_extract_global() this does not give access to the - storage of the data in question - instead it triggers the Thermo class to compute the current value - and returns it -------------------------------------------------------------------------- */ - -double lammps_get_thermo(void *ptr, char *name) -{ - LAMMPS *lmp = (LAMMPS *) ptr; - double dval = 0.0; - - BEGIN_CAPTURE - { - lmp->output->thermo->evaluate_keyword(name,&dval); - } - END_CAPTURE - - return dval; -} - -/* ---------------------------------------------------------------------- - return the total number of atoms in the system - useful before call to lammps_get_atoms() so can pre-allocate vector -------------------------------------------------------------------------- */ - -int lammps_get_natoms(void *ptr) -{ - LAMMPS *lmp = (LAMMPS *) ptr; - - if (lmp->atom->natoms > MAXSMALLINT) return 0; - int natoms = static_cast (lmp->atom->natoms); - return natoms; -} - -/* ---------------------------------------------------------------------- - set the value of a STRING variable to str - return -1 if variable doesn't exist or not a STRING variable - return 0 for success -------------------------------------------------------------------------- */ - -int lammps_set_variable(void *ptr, char *name, char *str) +/** Set the value of a string-style variable. + * + * This function assigns a new value from the string str to the + * string-style variable name. Returns -1 if a variable of that + * name does not exist or is not a string-style variable, otherwise 0. + * + * \param handle pointer to a previously created LAMMPS instance + * \param name name of the variable + * \param str new value of the variable + * \return 0 on success or -1 on failure + */ +int lammps_set_variable(void *handle, char *name, char *str) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; int err = -1; BEGIN_CAPTURE @@ -717,33 +1686,9 @@ int lammps_set_variable(void *ptr, char *name, char *str) return err; } -/* ---------------------------------------------------------------------- - reset simulation box parameters - see domain.h for definition of these arguments - assumes domain->set_initial_box() has been invoked previously -------------------------------------------------------------------------- */ - -void lammps_reset_box(void *ptr, double *boxlo, double *boxhi, - double xy, double yz, double xz) -{ - LAMMPS *lmp = (LAMMPS *) ptr; - Domain *domain = lmp->domain; - - domain->boxlo[0] = boxlo[0]; - domain->boxlo[1] = boxlo[1]; - domain->boxlo[2] = boxlo[2]; - domain->boxhi[0] = boxhi[0]; - domain->boxhi[1] = boxhi[1]; - domain->boxhi[2] = boxhi[2]; - - domain->xy = xy; - domain->yz = yz; - domain->xz = xz; - - domain->set_global_box(); - lmp->comm->set_proc_grid(); - domain->set_local_box(); -} +// ---------------------------------------------------------------------- +// Library functions for scatter/gather operations of data +// ---------------------------------------------------------------------- /* ---------------------------------------------------------------------- gather the named atom-based entity for all atoms @@ -767,10 +1712,10 @@ void lammps_reset_box(void *ptr, double *boxlo, double *boxhi, ------------------------------------------------------------------------- */ #if defined(LAMMPS_BIGBIG) -void lammps_gather_atoms(void *ptr, char * /*name */, +void lammps_gather_atoms(void *handle, char * /*name */, int /*type*/, int /*count*/, void * /*data*/) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -780,10 +1725,10 @@ void lammps_gather_atoms(void *ptr, char * /*name */, END_CAPTURE } #else -void lammps_gather_atoms(void *ptr, char *name, +void lammps_gather_atoms(void *handle, char *name, int type, int count, void *data) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -908,10 +1853,10 @@ void lammps_gather_atoms(void *ptr, char *name, ------------------------------------------------------------------------- */ #if defined(LAMMPS_BIGBIG) -void lammps_gather_atoms_concat(void *ptr, char * /*name */, +void lammps_gather_atoms_concat(void *handle, char * /*name */, int /*type*/, int /*count*/, void * /*data*/) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -921,10 +1866,10 @@ void lammps_gather_atoms_concat(void *ptr, char * /*name */, END_CAPTURE } #else -void lammps_gather_atoms_concat(void *ptr, char *name, +void lammps_gather_atoms_concat(void *handle, char *name, int type, int count, void *data) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -1067,11 +2012,11 @@ void lammps_gather_atoms_concat(void *ptr, char *name, ------------------------------------------------------------------------- */ #if defined(LAMMPS_BIGBIG) -void lammps_gather_atoms_subset(void *ptr, char * /*name */, +void lammps_gather_atoms_subset(void *handle, char * /*name */, int /*type*/, int /*count*/, int /*ndata*/, int * /*ids*/, void * /*data*/) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -1081,11 +2026,11 @@ void lammps_gather_atoms_subset(void *ptr, char * /*name */, END_CAPTURE } #else -void lammps_gather_atoms_subset(void *ptr, char *name, +void lammps_gather_atoms_subset(void *handle, char *name, int type, int count, int ndata, int *ids, void *data) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -1217,10 +2162,10 @@ void lammps_gather_atoms_subset(void *ptr, char *name, ------------------------------------------------------------------------- */ #if defined(LAMMPS_BIGBIG) -void lammps_scatter_atoms(void *ptr, char * /*name */, +void lammps_scatter_atoms(void *handle, char * /*name */, int /*type*/, int /*count*/, void * /*data*/) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -1230,10 +2175,10 @@ void lammps_scatter_atoms(void *ptr, char * /*name */, END_CAPTURE } #else -void lammps_scatter_atoms(void *ptr, char *name, +void lammps_scatter_atoms(void *handle, char *name, int type, int count, void *data) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -1345,11 +2290,11 @@ void lammps_scatter_atoms(void *ptr, char *name, ------------------------------------------------------------------------- */ #if defined(LAMMPS_BIGBIG) -void lammps_scatter_atoms_subset(void *ptr, char * /*name */, +void lammps_scatter_atoms_subset(void *handle, char * /*name */, int /*type*/, int /*count*/, int /*ndata*/, int * /*ids*/, void * /*data*/) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -1359,11 +2304,11 @@ void lammps_scatter_atoms_subset(void *ptr, char * /*name */, END_CAPTURE } #else -void lammps_scatter_atoms_subset(void *ptr, char *name, +void lammps_scatter_atoms_subset(void *handle, char *name, int type, int count, int ndata, int *ids, void *data) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -1464,116 +2409,66 @@ void lammps_scatter_atoms_subset(void *ptr, char *name, #endif /* ---------------------------------------------------------------------- - create N atoms and assign them to procs based on coords - id = atom IDs (optional, NULL will generate 1 to N) - type = N-length vector of atom types (required) - x = 3N-length 1d vector of atom coords (required) - v = 3N-length 1d vector of atom velocities (optional, NULL if just 0.0) - image flags can be treated in two ways: - (a) image = vector of current image flags - each atom will be remapped into periodic box by domain->ownatom() - image flag will be incremented accordingly and stored with atom - (b) image = NULL - each atom will be remapped into periodic box by domain->ownatom() - image flag will be set to 0 by atom->avec->create_atom() - shrinkexceed = 1 allows atoms to be outside a shrinkwrapped boundary - passed to ownatom() which will assign them to boundary proc - important if atoms may be (slightly) outside non-periodic dim - e.g. due to restoring a snapshot from a previous run and previous box - id and image must be 32-bit integers - x,v = ordered by xyz, then by atom - e.g. x[0][0],x[0][1],x[0][2],x[1][0],x[1][1],x[1][2],x[2][0],... + find fix external with given ID and set the callback function + and caller pointer ------------------------------------------------------------------------- */ -void lammps_create_atoms(void *ptr, int n, tagint *id, int *type, - double *x, double *v, imageint *image, - int shrinkexceed) +void lammps_set_fix_external_callback(void *handle, char *id, FixExternalFnPtr callback_ptr, void * caller) { - LAMMPS *lmp = (LAMMPS *) ptr; + LAMMPS *lmp = (LAMMPS *) handle; + FixExternal::FnPtr callback = (FixExternal::FnPtr) callback_ptr; BEGIN_CAPTURE { - // error if box does not exist or tags not defined - - int flag = 0; - if (lmp->domain->box_exist == 0) flag = 1; - if (lmp->atom->tag_enable == 0) flag = 1; - if (flag) { - if (lmp->comm->me == 0) - lmp->error->warning(FLERR,"Library error in lammps_create_atoms"); - return; + int ifix = lmp->modify->find_fix(id); + if (ifix < 0) { + char str[128]; + snprintf(str, 128, "Can not find fix with ID '%s'!", id); + lmp->error->all(FLERR,str); } - // loop over N atoms of entire system - // if this proc owns it based on coords, invoke create_atom() - // optionally set atom tags and velocities - - Atom *atom = lmp->atom; - Domain *domain = lmp->domain; - int nlocal = atom->nlocal; - - bigint natoms_prev = atom->natoms; - int nlocal_prev = nlocal; - double xdata[3]; - - for (int i = 0; i < n; i++) { - xdata[0] = x[3*i]; - xdata[1] = x[3*i+1]; - xdata[2] = x[3*i+2]; - imageint * img = image ? &image[i] : NULL; - tagint tag = id ? id[i] : -1; - if (!domain->ownatom(tag, xdata, img, shrinkexceed)) continue; + Fix *fix = lmp->modify->fix[ifix]; - atom->avec->create_atom(type[i],xdata); - if (id) atom->tag[nlocal] = id[i]; - else atom->tag[nlocal] = i+1; - if (v) { - atom->v[nlocal][0] = v[3*i]; - atom->v[nlocal][1] = v[3*i+1]; - atom->v[nlocal][2] = v[3*i+2]; - } - if (image) atom->image[nlocal] = image[i]; - nlocal++; + if (strcmp("external",fix->style) != 0){ + char str[128]; + snprintf(str, 128, "Fix '%s' is not of style external!", id); + lmp->error->all(FLERR,str); } - // need to reset atom->natoms inside LAMMPS - - bigint ncurrent = nlocal; - MPI_Allreduce(&ncurrent,&lmp->atom->natoms,1,MPI_LMP_BIGINT, - MPI_SUM,lmp->world); - - // init per-atom fix/compute/variable values for created atoms + FixExternal * fext = (FixExternal*) fix; + fext->set_callback(callback, caller); + } + END_CAPTURE +} - atom->data_fix_compute_variable(nlocal_prev,nlocal); +/* set global energy contribution from fix external */ +void lammps_fix_external_set_energy_global(void *handle, char *id, + double energy) +{ + LAMMPS *lmp = (LAMMPS *) handle; - // if global map exists, reset it - // invoke map_init() b/c atom count has grown + BEGIN_CAPTURE + { + int ifix = lmp->modify->find_fix(id); + if (ifix < 0) + lmp->error->all(FLERR,fmt::format("Can not find fix with ID '{}'!", id)); - if (lmp->atom->map_style) { - lmp->atom->map_init(); - lmp->atom->map_set(); - } + Fix *fix = lmp->modify->fix[ifix]; - // warn if new natoms is not correct + if (strcmp("external",fix->style) != 0) + lmp->error->all(FLERR,fmt::format("Fix '{}' is not of style external!", id)); - if ((lmp->atom->natoms != natoms_prev + n) && (lmp->comm->me == 0)) - lmp->error->warning(FLERR,fmt::format("Library warning in " - "lammps_create_atoms: " - "invalid total atoms {} vs. {}", - lmp->atom->natoms,natoms_prev+n)); + FixExternal * fext = (FixExternal*) fix; + fext->set_energy_global(energy); } END_CAPTURE } -/* ---------------------------------------------------------------------- - find fix external with given ID and set the callback function - and caller pointer -------------------------------------------------------------------------- */ - -void lammps_set_fix_external_callback(void *ptr, char *id, FixExternalFnPtr callback_ptr, void * caller) +/* set global virial contribution from fix external */ +void lammps_fix_external_set_virial_global(void *handle, char *id, + double *virial) { - LAMMPS *lmp = (LAMMPS *) ptr; - FixExternal::FnPtr callback = (FixExternal::FnPtr) callback_ptr; + LAMMPS *lmp = (LAMMPS *) handle; BEGIN_CAPTURE { @@ -1587,20 +2482,38 @@ void lammps_set_fix_external_callback(void *ptr, char *id, FixExternalFnPtr call lmp->error->all(FLERR,fmt::format("Fix '{}' is not of style external!", id)); FixExternal * fext = (FixExternal*) fix; - fext->set_callback(callback, caller); + fext->set_virial_global(virial); } END_CAPTURE } - // ---------------------------------------------------------------------- -// library API functions for accessing LAMMPS configuration +// Library functions for accessing LAMMPS configuration // ---------------------------------------------------------------------- -int lammps_config_has_package(char * package_name) { - return Info::has_package(package_name); +/** \brief Check if a specific package has been included in LAMMPS + * +\verbatim embed:rst +This function checks if the LAMMPS library in use includes the +specific :doc:`LAMMPS package ` provided as argument. +\endverbatim + * + * \param name string with the name of the package + * \return 1 if included, 0 if not. + */ +int lammps_config_has_package(char * name) { + return Info::has_package(name) ? 1 : 0; } +/** \brief Count the number of installed packages in the LAMMPS library. + * +\verbatim embed:rst +This function counts how many :doc:`LAMMPS packages ` are +included in the LAMMPS library in use. +\endverbatim + * + * \return number of packages included + */ int lammps_config_package_count() { int i = 0; while(LAMMPS::installed_packages[i] != NULL) { @@ -1609,105 +2522,202 @@ int lammps_config_package_count() { return i; } -int lammps_config_package_name(int index, char * buffer, int max_size) { - int i = 0; - while(LAMMPS::installed_packages[i] != NULL && i < index) { - ++i; - } - - if(LAMMPS::installed_packages[i] != NULL) { - strncpy(buffer, LAMMPS::installed_packages[i], max_size); - return true; +/** \brief Get the name of a package in the list of installed packages in the LAMMPS library. + * +\verbatim embed:rst +This function copies the name of the package with the index *idx* into the +provided C-style string buffer. The length of the buffer must be provided +as *buf_size* argument. If the name of the package exceeds the length of the +buffer, it will be truncated accordingly. If the index is out of range, +the function returns 0 and *buffer* is set to an empty string, otherwise 1; +\endverbatim + * + * \param idx index of the package in the list of included packages (0 <= idx < package count) + * \param buffer string buffer to copy the name of the package to + * \param buf_size size of the provided string buffer + * \return 1 if successful, otherwise 0 + */ +int lammps_config_package_name(int idx, char * buffer, int buf_size) { + int maxidx = lammps_config_package_count(); + if ((idx < 0) || (idx >= maxidx)) { + buffer[0] = '\0'; + return 0; } - return false; + strncpy(buffer, LAMMPS::installed_packages[idx], buf_size); + return 1; } -int lammps_has_style(void * ptr, char * category, char * name) { - LAMMPS *lmp = (LAMMPS *) ptr; +/** \brief Check if a specific style has been included in LAMMPS + * +\verbatim embed:rst +This function checks if the LAMMPS library in use includes the +specific *style* of a specific *category* provided as an argument. +Valid categories are: *atom*\ , *integrate*\ , *minimize*\ , +*pair*\ , *bond*\ , *angle*\ , *dihedral*\ , *improper*\ , *kspace*\ , +*compute*\ , *fix*\ , *region*\ , *dump*\ , and *command*\ . +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param category category of the style + * \param name name of the style + * \return 1 if included, 0 if not. + */ +int lammps_has_style(void * handle, char * category, char * name) { + LAMMPS *lmp = (LAMMPS *) handle; Info info(lmp); - return info.has_style(category, name); + return info.has_style(category, name) ? 0 : 1; } -int lammps_style_count(void * ptr, char * category) { - LAMMPS *lmp = (LAMMPS *) ptr; +/** \brief Count the number of styles of category in the LAMMPS library. + * +\verbatim embed:rst +This function counts how many styles in the provided *category* +are included in the LAMMPS library in use. +Please see :cpp:func:`lammps_has_style` for a list of valid +categories. +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param category category of styles + * \return number of styles in category + */ +int lammps_style_count(void * handle, char * category) { + LAMMPS *lmp = (LAMMPS *) handle; Info info(lmp); return info.get_available_styles(category).size(); } -int lammps_style_name(void* ptr, char * category, int index, char * buffer, int max_size) { - LAMMPS *lmp = (LAMMPS *) ptr; +/** \brief Look up the name of a style by index in the list of style of a given category in the LAMMPS library. + * +\verbatim embed:rst +This function copies the name of the package with the index *idx* into the +provided C-style string buffer. The length of the buffer must be provided +as *buf_size* argument. If the name of the package exceeds the length of the +buffer, it will be truncated accordingly. If the index is out of range, +the function returns 0 and *buffer* is set to an empty string, otherwise 1. +Please see :cpp:func:`lammps_has_style` for a list of valid categories. +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param category category of styles + * \param idx index of the package in the list of included packages (0 <= idx < style count) + * \param buffer string buffer to copy the name of the style to + * \param buf_size size of the provided string buffer + * \return 1 if successful, otherwise 0 + */ +int lammps_style_name(void* handle, char * category, int idx, char * buffer, int buf_size) { + LAMMPS *lmp = (LAMMPS *) handle; Info info(lmp); auto styles = info.get_available_styles(category); - if (index < (int)styles.size()) { - strncpy(buffer, styles[index].c_str(), max_size); - return true; + if ((idx >=0) && (idx < (int) styles.size())) { + strncpy(buffer, styles[idx].c_str(), buf_size); + return 1; } - return false; + buffer[0] = '\0'; + return 0; +} + +/** This function is used to query whether LAMMPS was compiled with + * a real MPI library or in serial. + * + * \return 0 when compiled with MPI STUBS, otherwise 1 */ + +int lammps_config_has_mpi_support() +{ +#ifdef MPI_STUBS + return 0; +#else + return 1; +#endif } +/** \brief Check if the LAMMPS library supports compressed files via a pipe to gzip + +\verbatim embed:rst +Several LAMMPS commands (e.g. :doc:`read_data`, :doc:`write_data`, +:doc:`dump styles atom, custom, and xyz `) support reading and +writing compressed files via creating a pipe to the ``gzip`` program. +This function checks whether this feature was :ref:`enabled at compile +time `. It does **not** check whether the ``gzip`` itself is +installed and usable. +\endverbatim + * + * \return 1 if yes, otherwise 0 + */ int lammps_config_has_gzip_support() { - return Info::has_gzip_support(); + return Info::has_gzip_support() ? 1 : 0; } +/** \brief Check if the LAMMPS library supports writing PNG format images + +\verbatim embed:rst +The LAMMPS :doc:`dump style image ` supports writing multiple +image file formats. Most of them need, however, support from an external +library and using that has to be :ref:`enabled at compile time `. +This function checks whether support for the `PNG image file format +`_ is available +in the current LAMMPS library. +\endverbatim + * + * \return 1 if yes, otherwise 0 + */ int lammps_config_has_png_support() { - return Info::has_png_support(); + return Info::has_png_support() ? 1 : 0; } +/** \brief Check if the LAMMPS library supports writing JPEG format images + +\verbatim embed:rst +The LAMMPS :doc:`dump style image ` supports writing multiple +image file formats. Most of them need, however, support from an external +library and using that has to be :ref:`enabled at compile time `. +This function checks whether support for the `JPEG image file format +`_ is available in the current LAMMPS library. +\endverbatim + * + * \return 1 if yes, otherwise 0 + */ int lammps_config_has_jpeg_support() { - return Info::has_jpeg_support(); + return Info::has_jpeg_support() ? 1 : 0; } +/** \brief Check if the LAMMPS library supports creating movie files via a pipe to ffmpeg + +\verbatim embed:rst +The LAMMPS :doc:`dump style movie ` supports generating movies +from images on-the-fly via creating a pipe to the +`ffmpeg `_ program. +This function checks whether this feature was :ref:`enabled at compile time `. +It does **not** check whether the ``ffmpeg`` itself is installed and usable. +\endverbatim + * + * \return 1 if yes, otherwise 0 + */ int lammps_config_has_ffmpeg_support() { - return Info::has_ffmpeg_support(); + return Info::has_ffmpeg_support() ? 1 : 0; } +/** \brief Check whether LAMMPS errors will throw a C++ exception + * +\verbatim embed:rst +In case of errors LAMMPS will either abort or throw a C++ exception. +The latter has to be :ref:`enabled at compile time `. +This function checks if exceptions were enabled. +\endverbatim + * \return 1 if yes, otherwise 0 + */ int lammps_config_has_exceptions() { - return Info::has_exceptions(); + return Info::has_exceptions() ? 1 : 0; } // ---------------------------------------------------------------------- -// library API functions for error handling +// Library functions for accessing neighbor lists // ---------------------------------------------------------------------- -#ifdef LAMMPS_EXCEPTIONS - -/* ---------------------------------------------------------------------- - check if a new error message -------------------------------------------------------------------------- */ - -int lammps_has_error(void *ptr) { - LAMMPS *lmp = (LAMMPS *)ptr; - Error *error = lmp->error; - return (error->get_last_error().empty()) ? 0 : 1; -} - -/* ---------------------------------------------------------------------- - copy the last error message of LAMMPS into a character buffer - return value encodes which type of error: - 1 = normal error (recoverable) - 2 = abort error (non-recoverable) -------------------------------------------------------------------------- */ - -int lammps_get_last_error_message(void *ptr, char * buffer, int buffer_size) { - LAMMPS *lmp = (LAMMPS *)ptr; - Error *error = lmp->error; - - if(!error->get_last_error().empty()) { - int error_type = error->get_last_error_type(); - strncpy(buffer, error->get_last_error().c_str(), buffer_size-1); - error->set_last_error("", ERROR_NONE); - return error_type; - } - return 0; -} - -#endif - -/******************************************************************************* - * Find neighbor list index of pair style neighbor list +/** \brief Find neighbor list index of pair style neighbor list * * Try finding pair instance that matches style. If exact is set, the pair must * match style exactly. If exact is 0, style must only be contained. If pair is @@ -1718,18 +2728,18 @@ int lammps_get_last_error_message(void *ptr, char * buffer, int buffer_size) { * index. Thus, providing this request index ensures that the correct neighbor * list index is returned. * - * @param ptr Pointer to LAMMPS instance - * @param style String used to search for pair style instance - * @param exact Flag to control whether style should match exactly or only + * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param style String used to search for pair style instance + * \param exact Flag to control whether style should match exactly or only * must be contained in pair style name - * @param nsub match nsub-th hybrid sub-style - * @param request request index that specifies which neighbor list should be + * \param nsub match nsub-th hybrid sub-style + * \param request request index that specifies which neighbor list should be * returned, in case there are multiple neighbor lists requests * for the found pair style - * @return return neighbor list index if found, otherwise -1 - ******************************************************************************/ -int lammps_find_pair_neighlist(void* ptr, char * style, int exact, int nsub, int request) { - LAMMPS * lmp = (LAMMPS *) ptr; + * \return return neighbor list index if found, otherwise -1 + */ +int lammps_find_pair_neighlist(void* handle, char * style, int exact, int nsub, int request) { + LAMMPS * lmp = (LAMMPS *) handle; Pair* pair = lmp->force->pair_match(style, exact, nsub); if (pair != NULL) { @@ -1746,17 +2756,16 @@ int lammps_find_pair_neighlist(void* ptr, char * style, int exact, int nsub, int return -1; } -/******************************************************************************* - * Find neighbor list index of fix neighbor list +/** \brief Find neighbor list index of fix neighbor list * - * @param ptr Pointer to LAMMPS instance - * @param id Identifier of fix instance - * @param request request index that specifies which request should be returned, + * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param id Identifier of fix instance + * \param request request index that specifies which request should be returned, * in case there are multiple neighbor lists for this fix - * @return return neighbor list index if found, otherwise -1 - ******************************************************************************/ -int lammps_find_fix_neighlist(void* ptr, char * id, int request) { - LAMMPS * lmp = (LAMMPS *) ptr; + * \return return neighbor list index if found, otherwise -1 + */ +int lammps_find_fix_neighlist(void* handle, char * id, int request) { + LAMMPS * lmp = (LAMMPS *) handle; Fix* fix = NULL; const int nfix = lmp->modify->nfix; @@ -1782,17 +2791,16 @@ int lammps_find_fix_neighlist(void* ptr, char * id, int request) { return -1; } -/******************************************************************************* - * Find neighbor list index of compute neighbor list +/** \brief Find neighbor list index of compute neighbor list * - * @param ptr Pointer to LAMMPS instance - * @param id Identifier of fix instance - * @param request request index that specifies which request should be returned, + * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param id Identifier of fix instance + * \param request request index that specifies which request should be returned, * in case there are multiple neighbor lists for this fix - * @return return neighbor list index if found, otherwise -1 - ******************************************************************************/ -int lammps_find_compute_neighlist(void* ptr, char * id, int request) { - LAMMPS * lmp = (LAMMPS *) ptr; + * \return return neighbor list index if found, otherwise -1 + */ +int lammps_find_compute_neighlist(void* handle, char * id, int request) { + LAMMPS * lmp = (LAMMPS *) handle; Compute* compute = NULL; const int ncompute = lmp->modify->ncompute; @@ -1818,16 +2826,15 @@ int lammps_find_compute_neighlist(void* ptr, char * id, int request) { return -1; } -/******************************************************************************* - * Return the number of entries in the neighbor list with given index +/** \brief Return the number of entries in the neighbor list with given index * - * @param ptr Pointer to LAMMPS instance - * @param idx neighbor list index - * @return return number of entries in neighbor list, -1 if idx is + * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param idx neighbor list index + * \return return number of entries in neighbor list, -1 if idx is * not a valid index - ******************************************************************************/ -int lammps_neighlist_num_elements(void * ptr, int idx) { - LAMMPS * lmp = (LAMMPS *) ptr; + */ +int lammps_neighlist_num_elements(void * handle, int idx) { + LAMMPS * lmp = (LAMMPS *) handle; Neighbor * neighbor = lmp->neighbor; if(idx < 0 || idx >= neighbor->nlist) { @@ -1838,21 +2845,20 @@ int lammps_neighlist_num_elements(void * ptr, int idx) { return list->inum; } -/******************************************************************************* - * Return atom local index, number of neighbors, and array of neighbor local +/** \brief Return atom local index, number of neighbors, and array of neighbor local * atom indices of neighbor list entry * - * @param ptr Pointer to LAMMPS instance - * @param idx neighbor list index - * @param element neighbor list element index - * @param[out] iatom atom local index in range [0, nlocal + nghost), -1 if - invalid idx or element index - * @param[out] numneigh number of neighbors of atom i or 0 - * @param[out] neighbors pointer to array of neighbor atom local indices or + * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param idx index of this neighbor list in the list of all neighbor lists + * \param element index of this neighbor list entry + * \param[out] iatom local atom index (i.e. in the range [0, nlocal + nghost), -1 if + invalid idx or element value + * \param[out] numneigh number of neighbors of atom iatom or 0 + * \param[out] neighbors pointer to array of neighbor atom local indices or * NULL - ******************************************************************************/ -void lammps_neighlist_element_neighbors(void * ptr, int idx, int element, int * iatom, int * numneigh, int ** neighbors) { - LAMMPS * lmp = (LAMMPS *) ptr; + */ +void lammps_neighlist_element_neighbors(void * handle, int idx, int element, int * iatom, int * numneigh, int ** neighbors) { + LAMMPS * lmp = (LAMMPS *) handle; Neighbor * neighbor = lmp->neighbor; *iatom = -1; *numneigh = 0; @@ -1873,3 +2879,147 @@ void lammps_neighlist_element_neighbors(void * ptr, int idx, int element, int * *numneigh = list->numneigh[i]; *neighbors = list->firstneigh[i]; } + +// ---------------------------------------------------------------------- +// utility functions +// ---------------------------------------------------------------------- + +/** Encode three integer image flags into a single imageint. + * +\verbatim embed:rst + +The prototype for this function when compiling with ``-DLAMMPS_BIGBIG`` +is: + +.. code-block:: c + + int64_t lammps_encode_image_flags(int ix, int iy, int iz); + +This function performs the bit-shift, addition, and bit-wise OR +operations necessary to combine the values of three integers +representing the image flags in x-, y-, and z-direction. Unless +LAMMPS is compiled with -DLAMMPS_BIGBIG, those integers are +limited 10-bit signed integers [-512, 511]. Otherwise the return +type changes from ``int`` to ``int64_t`` and the valid range for +the individual image flags becomes [-1048576,1048575], +i.e. that of a 21-bit signed integer. There is no check on whether +the arguments conform to these requirements. + +\endverbatim + * + * \param ix image flag value in x + * \param iy image flag value in y + * \param iz image flag value in z + * \return encoded image flag integer */ + +imageint lammps_encode_image_flags(int ix, int iy, int iz) +{ + imageint image = ((imageint) (ix + IMGMAX) & IMGMASK) | + (((imageint) (iy + IMGMAX) & IMGMASK) << IMGBITS) | + (((imageint) (iz + IMGMAX) & IMGMASK) << IMG2BITS); + return image; +} + +/** Decode a single image flag integer into three regular integers + * +\verbatim embed:rst + +The prototype for this function when compiling with ``-DLAMMPS_BIGBIG`` +is: + +.. code-block:: c + + void lammps_decode_image_flags(int64_t image, int *flags); + +This function does the reverse operation of +:cpp:func:`lammps_encode_image_flags` and takes an image flag integer +does the bit-shift and bit-masking operations to decode it and stores +the resulting three regular integers into the buffer pointed to by +*flags*. + +\endverbatim + * + * \param image encoded image flag integer + * \param flags pointer to storage where the decoded image flags are stored. */ + +void lammps_decode_image_flags(imageint image, int *flags) +{ + flags[0] = (image & IMGMASK) - IMGMAX; + flags[1] = (image >> IMGBITS & IMGMASK) - IMGMAX; + flags[2] = (image >> IMG2BITS) - IMGMAX; +} + +// ---------------------------------------------------------------------- +// Library functions for error handling with exceptions enabled +// ---------------------------------------------------------------------- + +#ifdef LAMMPS_EXCEPTIONS + +/** \brief Check if there is a (new) error message available + +\verbatim embed:rst +This function can be used to query if an error inside of LAMMPS +has thrown a :ref:`C++ exception `. + +.. note: + + This function is only available when the LAMMPS library has been + compiled with ``-DLAMMPS_EXCEPTIONS`` which turns errors aborting + LAMMPS into a C++ exceptions. You can use the library function + :cpp:func:`lammps_config_has_exceptions` to check if this is the case. +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \return 0 on no error, 1 on error. + */ +int lammps_has_error(void *handle) { + LAMMPS * lmp = (LAMMPS *) handle; + Error * error = lmp->error; + return (error->get_last_error().empty()) ? 0 : 1; +} + +/** \brief Copy the last error message into the provided buffer + +\verbatim embed:rst +This function can be used to retrieve the error message that was set +in the event of an error inside of LAMMPS which resulted in a +:ref:`C++ exception `. A suitable buffer for a C-style +string has to be provided and its length. If the internally stored +error message is longer, it will be truncated accordingly. The return +value of the function corresponds to the kind of error: a "1" indicates +an error that occurred on all MPI ranks and is often recoverable, while +a "2" indicates an abort that would happen only in a single MPI rank +and thus may not be recoverable as other MPI ranks may be waiting on +the failing MPI ranks to send messages. + +.. note: + + This function is only available when the LAMMPS library has been + compiled with ``-DLAMMPS_EXCEPTIONS`` which turns errors aborting + LAMMPS into a C++ exceptions. You can use the library function + :cpp:func:`lammps_config_has_exceptions` to check if this is the case. +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param buffer string buffer to copy the error message to + * \param buf_size size of the provided string buffer + * \return 1 when all ranks had the error, 1 on a single rank error. + */ +int lammps_get_last_error_message(void *handle, char * buffer, int buf_size) { + LAMMPS * lmp = (LAMMPS *) handle; + Error * error = lmp->error; + + if(!error->get_last_error().empty()) { + int error_type = error->get_last_error_type(); + strncpy(buffer, error->get_last_error().c_str(), buf_size-1); + error->set_last_error("", ERROR_NONE); + return error_type; + } + return 0; +} + +#endif + +// Local Variables: +// fill-column: 72 +// End: diff --git a/src/library.h b/src/library.h index d078474454..a035273c4e 100644 --- a/src/library.h +++ b/src/library.h @@ -1,4 +1,4 @@ -/* -*- c++ -*- ---------------------------------------------------------- +/* -*- c -*- ------------------------------------------------------------ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator http://lammps.sandia.gov, Sandia National Laboratories Steve Plimpton, sjplimp@sandia.gov @@ -14,54 +14,123 @@ #ifndef LAMMPS_LIBRARY_H #define LAMMPS_LIBRARY_H -/* - C or Fortran style library interface to LAMMPS - new LAMMPS-specific functions can be added -*/ +/* C style library interface to LAMMPS which allows to create and + * control instances of the LAMMPS C++ class and exchange data with it. + * The C bindings are the basis for the Python and Fortran modules. + * + * If needed, new LAMMPS-specific functions can be added to expose + * additional LAMMPS functionality to this library interface. */ + +/* We follow the behavior of regular LAMMPS compilation and assume + * -DLAMMPS_SMALLBIG when no define is set. */ -/* - * Follow the behavior of regular LAMMPS compilation and assume - * -DLAMMPS_SMALLBIG when no define is set. - */ -#if !defined(LAMMPS_BIGBIG) && !defined(LAMMPS_SMALLBIG) && !defined(LAMMPS_SMALLSMALL) +#if !defined(LAMMPS_BIGBIG) \ + && !defined(LAMMPS_SMALLBIG) \ + && !defined(LAMMPS_SMALLSMALL) #define LAMMPS_SMALLBIG #endif +/* To allow including the library interface without MPI */ + +#if !defined(LAMMPS_LIB_NO_MPI) #include +#endif + #if defined(LAMMPS_BIGBIG) || defined(LAMMPS_SMALLBIG) #include /* for int64_t */ #endif -/* ifdefs allow this file to be included in a C program */ +/** Style constants for extracting data from computes and fixes. + * + * Must be kept in sync with the equivalent constants in lammps.py */ + +enum _LMP_STYLE_CONST { + LMP_STYLE_GLOBAL=0, /*!< return global data */ + LMP_STYLE_ATOM =1, /*!< return per-atom data */ + LMP_STYLE_LOCAL =2 /*!< return local data */ +}; + +/** Type and size constants for extracting data from computes and fixes. + * + * Must be kept in sync with the equivalent constants in lammps.py */ + +enum _LMP_TYPE_CONST { + LMP_TYPE_SCALAR=0, /*!< return scalar */ + LMP_TYPE_VECTOR=1, /*!< return vector */ + LMP_TYPE_ARRAY =2, /*!< return array */ + LMP_SIZE_VECTOR=3, /*!< return length of vector */ + LMP_SIZE_ROWS =4, /*!< return number of rows */ + LMP_SIZE_COLS =5 /*!< return number of columns */ +}; + +/* Ifdefs to allow this file to be included in C and C++ programs */ #ifdef __cplusplus extern "C" { #endif -void lammps_open(int, char **, MPI_Comm, void **); -void lammps_open_no_mpi(int, char **, void **); -void lammps_close(void *); -int lammps_version(void *); -void lammps_file(void *, char *); -char *lammps_command(void *, char *); -void lammps_commands_list(void *, int, char **); -void lammps_commands_string(void *, char *); -void lammps_free(void *); - -int lammps_extract_setting(void *, char *); -void *lammps_extract_global(void *, char *); -void lammps_extract_box(void *, double *, double *, - double *, double *, double *, int *, int *); -void *lammps_extract_atom(void *, char *); -void *lammps_extract_compute(void *, char *, int, int); -void *lammps_extract_fix(void *, char *, int, int, int, int); -void *lammps_extract_variable(void *, char *, char *); - -double lammps_get_thermo(void *, char *); -int lammps_get_natoms(void *); - -int lammps_set_variable(void *, char *, char *); -void lammps_reset_box(void *, double *, double *, double, double, double); +// ---------------------------------------------------------------------- +// Library functions to create/destroy an instance of LAMMPS +// ---------------------------------------------------------------------- + +#if !defined(LAMMPS_LIB_NO_MPI) +void *lammps_open(int argc, char **argv, MPI_Comm comm, void **ptr); +#endif +void *lammps_open_no_mpi(int argc, char **argv, void **ptr); +void *lammps_open_fortran(int argc, char **argv, int f_comm, void **ptr); +void lammps_close(void *handle); +void lammps_mpi_init(); +void lammps_mpi_finalize(); +void lammps_free(void *ptr); + +// ---------------------------------------------------------------------- +// Library functions to process commands +// ---------------------------------------------------------------------- + +void lammps_file(void *handle, const char *file); + +char *lammps_command(void *handle, const char *cmd); +void lammps_commands_list(void *handle, int ncmd, const char **cmds); +void lammps_commands_string(void *handle, const char *str); + +// ----------------------------------------------------------------------- +// Library functions to extract info from LAMMPS or set data in LAMMPS +// ----------------------------------------------------------------------- + +int lammps_version(void *handle); +double lammps_get_natoms(void *handle); +double lammps_get_thermo(void *handle, char *keyword); + +void lammps_extract_box(void *handle, double *boxlo, double *boxhi, + double *xy, double *yz, double *xz, + int *pflags, int *boxflag); +void lammps_reset_box(void *handle, double *boxlo, double *boxhi, + double xy, double yz, double xz); + +int lammps_extract_setting(void *handle, char *keyword); +void *lammps_extract_global(void *handle, char *name); +void *lammps_extract_atom(void *handle, char *name); + +#if !defined(LAMMPS_BIGBIG) +int lammps_create_atoms(void *handle, int n, int *id, int *type, + double *x, double *v, int *image, int bexpand); +#else +int lammps_create_atoms(void *handle, int n, int64_t *id, int *type, + double *x, double *v, int64_t* image, int bexpand); +#endif + +// ---------------------------------------------------------------------- +// Library functions to access data from computes, fixes, variables in LAMMPS +// ---------------------------------------------------------------------- + +void *lammps_extract_compute(void *handle, char *id, int, int); +void *lammps_extract_fix(void *handle, char *, int, int, int, int); +void *lammps_extract_variable(void *handle, char *, char *); +int lammps_set_variable(void *, char *, char *); + +// ---------------------------------------------------------------------- +// Library functions for scatter/gather operations of data +// ---------------------------------------------------------------------- void lammps_gather_atoms(void *, char *, int, int, void *); void lammps_gather_atoms_concat(void *, char *, int, int, void *); @@ -69,59 +138,70 @@ void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *); void lammps_scatter_atoms(void *, char *, int, int, void *); void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *); -#if defined(LAMMPS_BIGBIG) -typedef void (*FixExternalFnPtr)(void *, int64_t, int, int64_t *, double **, double **); -void lammps_set_fix_external_callback(void *, char *, FixExternalFnPtr, void*); -#elif defined(LAMMPS_SMALLBIG) -typedef void (*FixExternalFnPtr)(void *, int64_t, int, int *, double **, double **); -void lammps_set_fix_external_callback(void *, char *, FixExternalFnPtr, void*); -#else -typedef void (*FixExternalFnPtr)(void *, int, int, int *, double **, double **); -void lammps_set_fix_external_callback(void *, char *, FixExternalFnPtr, void*); -#endif +// ---------------------------------------------------------------------- +// Library functions for retrieving configuration information +// ---------------------------------------------------------------------- -int lammps_config_has_package(char * package_name); +int lammps_config_has_mpi_support(); +int lammps_config_has_package(char *); int lammps_config_package_count(); -int lammps_config_package_name(int index, char * buffer, int max_size); +int lammps_config_package_name(int, char *, int); int lammps_config_has_gzip_support(); int lammps_config_has_png_support(); int lammps_config_has_jpeg_support(); int lammps_config_has_ffmpeg_support(); int lammps_config_has_exceptions(); -int lammps_has_style(void* ptr, char * category, char * name); -int lammps_style_count(void* ptr, char * category); -int lammps_style_name(void*ptr, char * category, int index, char * buffer, int max_size); +int lammps_has_style(void *, char *, char *); +int lammps_style_count(void *, char *); +int lammps_style_name(void *, char *, int, char *, int); + +// ---------------------------------------------------------------------- +// Library functions for accessing neighbor lists +// ---------------------------------------------------------------------- + +int lammps_find_pair_neighlist(void*, char *, int, int, int); +int lammps_find_fix_neighlist(void*, char *, int); +int lammps_find_compute_neighlist(void*, char *, int); +int lammps_neighlist_num_elements(void*, int); +void lammps_neighlist_element_neighbors(void *, int, int, int *, int *, int ** ); -int lammps_find_pair_neighlist(void* ptr, char * style, int exact, int nsub, int request); -int lammps_find_fix_neighlist(void* ptr, char * id, int request); -int lammps_find_compute_neighlist(void* ptr, char * id, int request); -int lammps_neighlist_num_elements(void* ptr, int idx); -void lammps_neighlist_element_neighbors(void * ptr, int idx, int element, int * iatom, int * numneigh, int ** neighbors); +// ---------------------------------------------------------------------- +// Utility functions +// ---------------------------------------------------------------------- -// lammps_create_atoms() takes tagint and imageint as args -// ifdef insures they are compatible with rest of LAMMPS -// caller must match to how LAMMPS library is built +#if !defined(LAMMPS_BIGBIG) +int lammps_encode_image_flags(int ix, int iy, int iz); +void lammps_decode_image_flags(int image, int *flags); +#else +int64_t lammps_encode_image_flags(int ix, int iy, int iz); +void lammps_decode_image_flags(int64_t image, int *flags); +#endif -#ifdef LAMMPS_BIGBIG -void lammps_create_atoms(void *, int, int64_t *, int *, - double *, double *, int64_t *, int); +#if defined(LAMMPS_BIGBIG) +typedef void (*FixExternalFnPtr)(void *, int64_t, int, int64_t *, double **, double **); +void lammps_set_fix_external_callback(void *, char *, FixExternalFnPtr, void*); +#elif defined(LAMMPS_SMALLBIG) +typedef void (*FixExternalFnPtr)(void *, int64_t, int, int *, double **, double **); +void lammps_set_fix_external_callback(void *, char *, FixExternalFnPtr, void*); #else -void lammps_create_atoms(void *, int, int *, int *, - double *, double *, int *, int); +typedef void (*FixExternalFnPtr)(void *, int, int, int *, double **, double **); +void lammps_set_fix_external_callback(void *, char *, FixExternalFnPtr, void*); #endif +void lammps_fix_external_set_energy_global(void *, char *, double); +void lammps_fix_external_set_virial_global(void *, char *, double *); #ifdef LAMMPS_EXCEPTIONS -int lammps_has_error(void *); -int lammps_get_last_error_message(void *, char *, int); +int lammps_has_error(void *handle); +int lammps_get_last_error_message(void *handle, char *buffer, int buf_size); #endif -#undef LAMMPS #ifdef __cplusplus } #endif #endif /* LAMMPS_LIBRARY_H */ + /* ERROR/WARNING messages: E: Library error: issuing LAMMPS command during run @@ -172,3 +252,7 @@ W: Library warning in lammps_create_atoms, invalid total atoms %ld %ld UNDOCUMENTED */ + +/* Local Variables: + * fill-column: 72 + * End: */ -- GitLab From 14b66d1f84752addf96bfec1e500bc7cf62205e2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Aug 2020 12:15:19 -0400 Subject: [PATCH 054/165] tweak test tolerance of reax/c tests for running on ubuntu 18.04 --- unittest/force-styles/tests/atomic-pair-reax_c.yaml | 2 +- unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/unittest/force-styles/tests/atomic-pair-reax_c.yaml b/unittest/force-styles/tests/atomic-pair-reax_c.yaml index a1fea19d79..15f7bf02ab 100644 --- a/unittest/force-styles/tests/atomic-pair-reax_c.yaml +++ b/unittest/force-styles/tests/atomic-pair-reax_c.yaml @@ -1,7 +1,7 @@ --- lammps_version: 21 Aug 2020 date_generated: Sun Aug 23 06:35:54 202 -epsilon: 5e-12 +epsilon: 7.5e-12 prerequisites: ! | pair reax/c fix qeq/reax diff --git a/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml b/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml index 1383339444..7d549efc18 100644 --- a/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml +++ b/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml @@ -1,7 +1,7 @@ --- lammps_version: 21 Aug 2020 date_generated: Sun Aug 23 06:41:04 202 -epsilon: 5e-11 +epsilon: 1e-10 prerequisites: ! | pair reax/c fix qeq/reax -- GitLab From df8fb26272086e727df778f3385a402242f1334d Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 25 Aug 2020 13:38:12 -0400 Subject: [PATCH 055/165] Refactor changes to documentation build - Added CMake variables for readability - Moved Mathjax files to _static to avoid special copy logic - Moved JPG/lammps-logo.png to _static to avoid special copy logic - Removed dead CMake code --- cmake/Modules/Documentation.cmake | 85 ++++++++---------- doc/.gitignore | 2 + doc/Makefile | 8 +- .../sphinx-config/_static}/lammps-logo.png | Bin doc/utils/sphinx-config/conf.py.in | 17 ++-- doc/utils/sphinx-config/lammps-logo.png | 1 - 6 files changed, 53 insertions(+), 60 deletions(-) rename doc/{src/JPG => utils/sphinx-config/_static}/lammps-logo.png (100%) delete mode 120000 doc/utils/sphinx-config/lammps-logo.png diff --git a/cmake/Modules/Documentation.cmake b/cmake/Modules/Documentation.cmake index ddd284aa90..c3bf458cf5 100644 --- a/cmake/Modules/Documentation.cmake +++ b/cmake/Modules/Documentation.cmake @@ -19,62 +19,70 @@ if(BUILD_DOC) file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.rst) + add_custom_command( OUTPUT docenv COMMAND ${VIRTUALENV} docenv ) set(DOCENV_BINARY_DIR ${CMAKE_BINARY_DIR}/docenv/bin) + set(DOCENV_REQUIREMENTS_FILE ${LAMMPS_DOC_DIR}/utils/requirements.txt) + + set(SPHINX_CONFIG_DIR ${LAMMPS_DOC_DIR}/utils/sphinx-config) + set(SPHINX_CONFIG_FILE_TEMPLATE ${SPHINX_CONFIG_DIR}/conf.py.in) + set(SPHINX_STATIC_DIR ${SPHINX_CONFIG_DIR}/_static) + + # configuration and static files are copied to binary dir to avoid collisions with parallel builds + set(DOC_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/doc) + set(DOC_BUILD_CONFIG_FILE ${DOC_BUILD_DIR}/conf.py) + set(DOC_BUILD_STATIC_DIR ${DOC_BUILD_DIR}/_static) + set(DOXYGEN_BUILD_DIR ${DOC_BUILD_DIR}/doxygen) + set(DOXYGEN_XML_DIR ${DOXYGEN_BUILD_DIR}/xml) + + # copy entire configuration folder to doc build directory + # files in _static are automatically copied during sphinx-build, so no need to copy them individually + file(COPY ${SPHINX_CONFIG_DIR}/ DESTINATION ${DOC_BUILD_DIR}) + + # configure paths in conf.py, since relative paths change when file is copied + configure_file(${SPHINX_CONFIG_FILE_TEMPLATE} ${DOC_BUILD_CONFIG_FILE}) add_custom_command( - OUTPUT requirements.txt - DEPENDS docenv - COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/utils/requirements.txt requirements.txt + OUTPUT ${DOC_BUILD_DIR}/requirements.txt + DEPENDS docenv ${DOCENV_REQUIREMENTS_FILE} + COMMAND ${CMAKE_COMMAND} -E copy ${DOCENV_REQUIREMENTS_FILE} ${DOC_BUILD_DIR}/requirements.txt + COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade pip COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters - COMMAND ${DOCENV_BINARY_DIR}/pip install --use-feature=2020-resolver -r requirements.txt --upgrade + COMMAND ${DOCENV_BINARY_DIR}/pip install --use-feature=2020-resolver -r ${DOC_BUILD_DIR}/requirements.txt --upgrade ) # download mathjax distribution and unpack to folder "mathjax" - if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/mathjax/es5) + if(NOT EXISTS ${DOC_BUILD_STATIC_DIR}/mathjax/es5) file(DOWNLOAD "https://github.com/mathjax/MathJax/archive/3.0.5.tar.gz" "${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz" EXPECTED_MD5 5d9d3799cce77a1a95eee6be04eb68e7) execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf mathjax.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) file(GLOB MATHJAX_VERSION_DIR ${CMAKE_CURRENT_BINARY_DIR}/MathJax-*) - execute_process(COMMAND ${CMAKE_COMMAND} -E rename ${MATHJAX_VERSION_DIR} ${CMAKE_CURRENT_BINARY_DIR}/mathjax) + execute_process(COMMAND ${CMAKE_COMMAND} -E rename ${MATHJAX_VERSION_DIR} ${DOC_BUILD_STATIC_DIR}/mathjax) endif() - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/_static/mathjax) - file(COPY ${CMAKE_CURRENT_BINARY_DIR}/mathjax/es5 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/html/_static/mathjax/) # for increased browser compatibility - if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/html/_static/polyfill.js) + if(NOT EXISTS ${DOC_BUILD_STATIC_DIR}/polyfill.js) file(DOWNLOAD "https://polyfill.io/v3/polyfill.min.js?features=es6" - "${CMAKE_CURRENT_BINARY_DIR}/html/_static/polyfill.js") + "${DOC_BUILD_STATIC_DIR}/polyfill.js") endif() # set up doxygen and add targets to run it - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen) - set(DOXYGEN_XML_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen/xml) - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/doxygen/lammps-logo.png - DEPENDS ${LAMMPS_DOC_DIR}/doxygen/lammps-logo.png - COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/doxygen/lammps-logo.png ${CMAKE_BINARY_DIR}/doxygen/lammps-logo.png - ) - configure_file(${LAMMPS_DOC_DIR}/doxygen/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/doxygen/Doxyfile) + file(MAKE_DIRECTORY ${DOXYGEN_BUILD_DIR}) + file(COPY ${LAMMPS_DOC_DIR}/doxygen/lammps-logo.png DESTINATION ${DOXYGEN_BUILD_DIR}/lammps-logo.png) + configure_file(${LAMMPS_DOC_DIR}/doxygen/Doxyfile.in ${DOXYGEN_BUILD_DIR}/Doxyfile) get_target_property(LAMMPS_SOURCES lammps SOURCES) - # need to update timestamps on pg_*.rst files after running doxygen to have sphinx re-read them - file(GLOB PG_SOURCES ${LAMMPS_DOC_DIR}/src/pg_*.rst) add_custom_command( OUTPUT ${DOXYGEN_XML_DIR}/index.xml DEPENDS ${DOC_SOURCES} ${LAMMPS_SOURCES} - COMMAND Doxygen::doxygen ${CMAKE_CURRENT_BINARY_DIR}/doxygen/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen + COMMAND Doxygen::doxygen ${DOXYGEN_BUILD_DIR}/Doxyfile WORKING_DIRECTORY ${DOXYGEN_BUILD_DIR} COMMAND ${CMAKE_COMMAND} -E touch ${DOXYGEN_XML_DIR}/run.stamp ) - # note, this may run in parallel with other tasks, so we must not use multiple processes here - file(COPY ${LAMMPS_DOC_DIR}/utils/sphinx-config DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/utils) - file(COPY ${LAMMPS_DOC_DIR}/src DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) - configure_file(${CMAKE_CURRENT_BINARY_DIR}/utils/sphinx-config/conf.py.in ${CMAKE_CURRENT_BINARY_DIR}/utils/sphinx-config/conf.py) if(EXISTS ${DOXYGEN_XML_DIR}/run.stamp) set(SPHINX_EXTRA_OPTS "-E") else() @@ -82,34 +90,17 @@ if(BUILD_DOC) endif() add_custom_command( OUTPUT html - DEPENDS ${DOC_SOURCES} docenv requirements.txt ${DOXYGEN_XML_DIR}/index.xml ${CMAKE_CURRENT_BINARY_DIR}/utils/sphinx-config/conf.py - COMMAND ${DOCENV_BINARY_DIR}/sphinx-build ${SPHINX_EXTRA_OPTS} -b html -c ${CMAKE_BINARY_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${LAMMPS_DOC_DIR}/src html - COMMAND ${CMAKE_COMMAND} -E create_symlink Manual.html ${CMAKE_CURRENT_BINARY_DIR}/html/index.html + DEPENDS ${DOC_SOURCES} docenv ${DOC_BUILD_DIR}/requirements.txt ${DOXYGEN_XML_DIR}/index.xml ${BUILD_DOC_CONFIG_FILE} + COMMAND ${DOCENV_BINARY_DIR}/sphinx-build ${SPHINX_EXTRA_OPTS} -b html -c ${DOC_BUILD_DIR} -d ${DOC_BUILD_DIR}/doctrees ${LAMMPS_DOC_DIR}/src ${DOC_BUILD_DIR}/html + COMMAND ${CMAKE_COMMAND} -E create_symlink Manual.html ${DOC_BUILD_DIR}/html/index.html COMMAND ${CMAKE_COMMAND} -E remove -f ${DOXYGEN_XML_DIR}/run.stamp ) - # copy selected image files to html output tree - file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/html/_images/wsl_tutorial) - file(GLOB HTML_EXTRA_IMAGES RELATIVE ${LAMMPS_DOC_DIR}/src/img/ - ${LAMMPS_DOC_DIR}/src/img/[^.]*.jpg - ${LAMMPS_DOC_DIR}/src/img/[^.]*.gif - ${LAMMPS_DOC_DIR}/src/img/[^.]*.png - ${LAMMPS_DOC_DIR}/src/img/wsl_tutorial/[^.]*.png) - set(HTML_IMAGE_TARGETS "") - foreach(_IMG ${HTML_EXTRA_IMAGES}) - list(APPEND HTML_IMAGE_TARGETS "${CMAKE_CURRENT_BINARY_DIR}/html/_images/${_IMG}") - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/_images/${_IMG} - DEPENDS ${LAMMPS_DOC_DIR}/src/img/${_IMG} ${CMAKE_CURRENT_BINARY_DIR}/html/_images - COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/src/img/${_IMG} ${CMAKE_BINARY_DIR}/html/_images/${_IMG} - ) - endforeach() - add_custom_target( doc ALL - DEPENDS html ${CMAKE_CURRENT_BINARY_DIR}/html/_static/mathjax/es5 ${HTML_IMAGE_TARGETS} + DEPENDS html ${DOC_BUILD_STATIC_DIR}/mathjax/es5 SOURCES ${LAMMPS_DOC_DIR}/utils/requirements.txt ${DOC_SOURCES} ) - install(DIRECTORY ${CMAKE_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR}) + install(DIRECTORY ${DOC_BUILD_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR}) endif() diff --git a/doc/.gitignore b/doc/.gitignore index 85c75c2934..7649fb34f1 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -15,3 +15,5 @@ /utils/sphinx-config/conf.py /doxygen/Doxyfile *.el +/utils/sphinx-config/_static/mathjax +/utils/sphinx-config/_static/polyfill.js diff --git a/doc/Makefile b/doc/Makefile index 1b5fb35b4c..7931525b92 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -4,11 +4,11 @@ SHELL = /bin/bash BUILDDIR = ${CURDIR} RSTDIR = $(BUILDDIR)/src VENV = $(BUILDDIR)/docenv -MATHJAX = $(BUILDDIR)/mathjax -POLYFILL = $(BUILDDIR)/mathjax/polyfill.js TXT2RST = $(VENV)/bin/txt2rst ANCHORCHECK = $(VENV)/bin/rst_anchor_check SPHINXCONFIG = $(BUILDDIR)/utils/sphinx-config +MATHJAX = $(SPHINXCONFIG)/_static/mathjax +POLYFILL = $(SPHINXCONFIG)/_static/polyfill.js PYTHON = $(shell which python3) DOXYGEN = $(shell which doxygen) @@ -106,9 +106,6 @@ html: xmlgen $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX) $(POLYFILL) @mkdir -p html/JPG @cp `grep -A2 '\.\. .*\(image\|figure\)::' src/*.rst | grep ':target: JPG' | sed -e 's,.*:target: JPG/,src/JPG/,' | sort | uniq` html/JPG/ @rm -rf html/PDF/.[sg]* - @mkdir -p html/_static/mathjax - @cp -r $(MATHJAX)/es5 html/_static/mathjax/ - @cp $(POLYFILL) html/_static/ @echo "Build finished. The HTML pages are in doc/html." spelling: xmlgen $(VENV) $(SPHINXCONFIG)/false_positives.txt @@ -125,7 +122,6 @@ epub: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) @$(MAKE) $(MFLAGS) -C graphviz all @mkdir -p epub/JPG @rm -f LAMMPS.epub - @cp src/JPG/lammps-logo.png epub/ @cp src/JPG/*.* epub/JPG @(\ . $(VENV)/bin/activate ;\ diff --git a/doc/src/JPG/lammps-logo.png b/doc/utils/sphinx-config/_static/lammps-logo.png similarity index 100% rename from doc/src/JPG/lammps-logo.png rename to doc/utils/sphinx-config/_static/lammps-logo.png diff --git a/doc/utils/sphinx-config/conf.py.in b/doc/utils/sphinx-config/conf.py.in index 92ba10a341..c6b161ee14 100644 --- a/doc/utils/sphinx-config/conf.py.in +++ b/doc/utils/sphinx-config/conf.py.in @@ -23,11 +23,16 @@ try: except: pass +LAMMPS_DOC_DIR = '@LAMMPS_DOC_DIR@' +LAMMPS_SOURCE_DIR = '@LAMMPS_SOURCE_DIR@' +LAMMPS_PYTHON_DIR = '@LAMMPS_PYTHON_DIR@' +LAMMPS_DOXYGEN_XML_DIR = '@DOXYGEN_XML_DIR@' + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.insert(0, os.path.abspath('.')) -sys.path.append(os.path.join('@LAMMPS_DOC_DIR@', 'src', '_ext')) +sys.path.append(os.path.join(LAMMPS_DOC_DIR, 'src', '_ext')) # -- General configuration ------------------------------------------------ @@ -74,7 +79,7 @@ copyright = '2003-2020 Sandia Corporation' def get_lammps_version(): import os script_dir = os.path.dirname(os.path.realpath(__file__)) - with open(os.path.join('@LAMMPS_SOURCE_DIR@', 'version.h'), 'r') as f: + with open(os.path.join(LAMMPS_SOURCE_DIR, 'version.h'), 'r') as f: line = f.readline() start_pos = line.find('"')+1 end_pos = line.find('"', start_pos) @@ -167,7 +172,7 @@ html_title = "LAMMPS documentation" # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = 'lammps-logo.png' +html_logo = '_static/lammps-logo.png' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 @@ -328,7 +333,7 @@ texinfo_documents = [ epub_title = 'LAMMPS Documentation - ' + get_lammps_version() -epub_cover = ('lammps-logo.png', '') +epub_cover = ('_static/lammps-logo.png', '') epub_description = """ This is the Manual for the LAMMPS software package. @@ -363,7 +368,7 @@ from sphinx.highlighting import lexers lexers['LAMMPS'] = LAMMPSLexer.LAMMPSLexer(startinline=True) -sys.path.append('@LAMMPS_PYTHON_DIR@') +sys.path.append(LAMMPS_PYTHON_DIR) # avoid syntax highlighting in blocks that don't specify language highlight_language = 'none' @@ -375,7 +380,7 @@ autodoc_member_order = 'bysource' # breathe configuration -breathe_projects = { 'progguide' : '@DOXYGEN_XML_DIR@' } +breathe_projects = { 'progguide' : LAMMPS_DOXYGEN_XML_DIR } breathe_default_project = 'progguide' breathe_show_define_initializer = True breathe_domain_by_extension = { 'h' : 'cpp', diff --git a/doc/utils/sphinx-config/lammps-logo.png b/doc/utils/sphinx-config/lammps-logo.png deleted file mode 120000 index 37d35bece1..0000000000 --- a/doc/utils/sphinx-config/lammps-logo.png +++ /dev/null @@ -1 +0,0 @@ -../../src/JPG/lammps-logo.png \ No newline at end of file -- GitLab From 80e07c69f0033fdc835995ee7f85febf6a7484c3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Aug 2020 15:07:09 -0400 Subject: [PATCH 056/165] add part of developer guide as to showcase the integration of the programmer guide --- doc/src/Manual.rst | 13 +++++ doc/src/pg_developer.rst | 120 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 doc/src/pg_developer.rst diff --git a/doc/src/Manual.rst b/doc/src/Manual.rst index 773a5fbd75..29852093d0 100644 --- a/doc/src/Manual.rst +++ b/doc/src/Manual.rst @@ -60,6 +60,19 @@ every LAMMPS command. Errors Manual_build +.. _programmer_documentation: +.. toctree:: + :maxdepth: 2 + :numbered: 3 + :caption: Programmer Documentation + :name: progdoc + :includehidden: + + pg_developer +.. pg_library +.. pg_modify +.. pg_base + .. toctree:: :caption: Index :name: index diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst new file mode 100644 index 0000000000..7b46a4f90a --- /dev/null +++ b/doc/src/pg_developer.rst @@ -0,0 +1,120 @@ +LAMMPS Developer Guide +********************** + +This section describes the internal structure and basic algorithms +of the LAMMPS code. This is a work in progress and additional +information will be added incrementally depending on availability +of time and requests from the LAMMPS user community. + + +LAMMPS source files +=================== + +The source files of the LAMMPS code are distributed across two +directories of the distribution. The core of the code is located in the +``src`` folder and its sub-directories. Almost all of those are C++ files +(implementation files have a ``.cpp`` extension and and headers a +``.h``). A sizable number of these files are in the ``src`` directory +itself, but there are plenty of :doc:`packages `, which can be +included or excluded when LAMMPS is built. See the :doc:`Include +packages in build ` section of the manual for more +information about that part of the build process. LAMMPS currently +supports building with :doc:`conventional makefiles ` and +through :doc:`CMake ` which differ in how packages are +enabled or disabled for a LAMMPS binary. The source files for each +package are in all-uppercase sub-directories of the ``src`` folder, for +example ``src/MOLECULE`` or ``src/USER-MISC``. The ``src/STUBS`` +sub-directory is not a package but contains a dummy MPI library, that is +used when building a serial version of the code. the ``src/MAKE`` +directory contains makefiles with settings and flags for a variety of +configuration and machines for the build process with traditional +makefiles. + +The ``lib`` directory contains the source code for several supporting +libraries or files with configuration settings to use globally installed +libraries, that are required by some of the optional packages. +Each sub-directory, like ``lib/poems`` or ``lib/gpu``, contains the +source files, some of which are in different languages such as Fortran +or CUDA. These libraries are linked to during a LAMMPS build, if the +corresponding package is installed. + +LAMMPS C++ source files almost always come in pairs, such as +``src/run.cpp`` and ``src/run.h``. The pair of files defines a C++ +class, for example the :cpp:class:`LAMMPS_NS::Run` class which contains +the code invoked by the :doc:`run ` command in a LAMMPS input script. +As this example illustrates, source file and class names often have a +one-to-one correspondence with a command used in a LAMMPS input script. +Some source files and classes do not have a corresponding input script +command, e.g. ``src/force.cpp`` and the :cpp:class:`LAMMPS_NS::Force` +class. They are discussed in the next section. + +Overview of LAMMPS class topology +================================= + +Though LAMMPS has a lot of source files and classes, its class topology +is relative flat, as outlined in the :ref:`class-topology` figure. Each +name refers to a class and has a pair of associated source files in the +``src`` folder, for example the class :cpp:class:`LAMMPS_NS::Memory` +corresponds to the files ``memory.cpp`` and ``memory.h``, or the class +:cpp:class:`LAMMPS_NS::AtomVec` corresponds to the files +``atom_vec.cpp`` and ``atom_vec.h``. Full lines in the figure represent +compositing: that is the class to the left holds a pointer to an +instance of the class to the right. Dashed lines instead represent +inheritance: the class to the right is derived from the class on the +left. Classes with a red boundary are not instantiated directly, but +they represent the base classes for "styles". Those "styles" make up +the bulk of the LAMMPS code and only a few typical examples are included +in the figure for demonstration purposes. + +.. _class-topology: +.. figure:: JPG/lammps-classes.png + + LAMMPS class topology + + This figure shows some of the relations of the base classes of the + LAMMPS simulation package. Full lines indicate that a class holds an + instance of the class it is pointing to; dashed lines point to + derived classes that are given as examples of what classes may be + instantiated during a LAMMPS run based on the input commands and + accessed through the API define by their respective base classes. At + the core is the :cpp:class:`LAMMPS ` class, which + holds pointers to class instances with specific purposes. Those may + hold instances of other classes, sometimes directly, or only + temporarily, sometimes as derived classes or derived classes or + derived classes, which may also hold instances of other classes. + +The :cpp:class:`LAMMPS_NS::LAMMPS` class is the topmost class and +represents what is referred to an "instance" of LAMMPS. It is a +composite holding references to instances of other core classes +providing the core functionality of the MD engine in LAMMPS and through +them abstractions of the required operations. The constructor of the +LAMMPS class will instantiate those instances, process the command line +flags, initialize MPI (if not already done) and set up file pointers for +input and output. The destructor will shut everything down and free all +associated memory. Thus code for the standalone LAMMPS executable in +``main.cpp`` simply initializes MPI, instantiates a single instance of +LAMMPS, and passes it the command line flags and input script. It +deletes the LAMMPS instance after the method reading the input returns +and shuts down the MPI environment before it exits the executable. + +The :cpp:class:`LAMMPS_NS::Pointers` is not shown in the +:ref:`class-topology` figure, it holds references to members of the +`LAMMPS_NS::LAMMPS`, so that all classes derived from +:cpp:class:`LAMMPS_NS::Pointers` have direct access to those reference. +From the class topology all classes with blue boundary are referenced in +this class and all classes in the second and third columns, that are not +listed as derived classes are instead derived from +:cpp:class:`LAMMPS_NS::Pointers`. + +Since all storage is encapsulated, the LAMMPS class can also be +instantiated multiple times by a calling code, and that can be either +simultaneously or consecutively. When running in parallel with MPI, +care has to be taken, that suitable communicators are used to not +create conflicts between different instances. + +The LAMMPS class currently holds instances of 19 classes representing +different core functionalities +There are a handful of virtual parent classes in LAMMPS that define +what LAMMPS calls ``styles``. They are shaded red in Fig +\ref{fig:classes}. Each of these are parents of a number of child +classes that implement the interface defined by the parent class. -- GitLab From 3a638440a46defcd923dbb152e1f26590a269563 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 25 Aug 2020 16:12:09 -0400 Subject: [PATCH 057/165] Add missing PDF folder --- cmake/Modules/Documentation.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/Modules/Documentation.cmake b/cmake/Modules/Documentation.cmake index c3bf458cf5..6125155ad5 100644 --- a/cmake/Modules/Documentation.cmake +++ b/cmake/Modules/Documentation.cmake @@ -93,6 +93,7 @@ if(BUILD_DOC) DEPENDS ${DOC_SOURCES} docenv ${DOC_BUILD_DIR}/requirements.txt ${DOXYGEN_XML_DIR}/index.xml ${BUILD_DOC_CONFIG_FILE} COMMAND ${DOCENV_BINARY_DIR}/sphinx-build ${SPHINX_EXTRA_OPTS} -b html -c ${DOC_BUILD_DIR} -d ${DOC_BUILD_DIR}/doctrees ${LAMMPS_DOC_DIR}/src ${DOC_BUILD_DIR}/html COMMAND ${CMAKE_COMMAND} -E create_symlink Manual.html ${DOC_BUILD_DIR}/html/index.html + COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DOC_DIR}/src/PDF ${DOC_BUILD_DIR}/html/PDF COMMAND ${CMAKE_COMMAND} -E remove -f ${DOXYGEN_XML_DIR}/run.stamp ) -- GitLab From ae5c0bd8d1f140674fa513346185b54811453c8e Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 25 Aug 2020 16:44:50 -0400 Subject: [PATCH 058/165] Remove targets to JPG images --- doc/src/Build_development.rst | 8 ++++---- doc/src/Howto_cmake.rst | 12 ++++++------ doc/src/pair_mesodpd.rst | 4 +++- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/doc/src/Build_development.rst b/doc/src/Build_development.rst index 5af264f29d..cd432dddcb 100644 --- a/doc/src/Build_development.rst +++ b/doc/src/Build_development.rst @@ -378,22 +378,22 @@ The images below illustrate how the data is presented. .. list-table:: * - .. figure:: JPG/coverage-overview-top.png - :target: JPG/coverage-overview-top.png + :scale: 25% Top of the overview page - .. figure:: JPG/coverage-overview-manybody.png - :target: JPG/coverage-overview-manybody.png + :scale: 25% Styles with good coverage - .. figure:: JPG/coverage-file-top.png - :target: JPG/coverage-file-top.png + :scale: 25% Top of individual source page - .. figure:: JPG/coverage-file-branches.png - :target: JPG/coverage-file-branches.png + :scale: 25% Source page with branches diff --git a/doc/src/Howto_cmake.rst b/doc/src/Howto_cmake.rst index afea5fea1d..9176600820 100644 --- a/doc/src/Howto_cmake.rst +++ b/doc/src/Howto_cmake.rst @@ -191,19 +191,19 @@ You start the command ``ccmake ../cmake`` in the ``build`` folder. .. list-table:: * - .. figure:: JPG/ccmake-initial.png - :target: JPG/ccmake-initial.png + :scale: 33% :align: center Initial ``ccmake`` screen - .. figure:: JPG/ccmake-config.png - :target: JPG/ccmake-config.png + :scale: 33% :align: center Configure output of ``ccmake`` - .. figure:: JPG/ccmake-options.png - :target: JPG/ccmake-options.png + :scale: 33% :align: center Options screen of ``ccmake`` @@ -236,19 +236,19 @@ not required, it can also be entered from the GUI. .. list-table:: * - .. figure:: JPG/cmake-gui-initial.png - :target: JPG/cmake-gui-initial.png + :scale: 40% :align: center Initial ``cmake-gui`` screen - .. figure:: JPG/cmake-gui-popup.png - :target: JPG/cmake-gui-popup.png + :scale: 60% :align: center Generator selection in ``cmake-gui`` - .. figure:: JPG/cmake-gui-options.png - :target: JPG/cmake-gui-options.png + :scale: 40% :align: center Options screen of ``cmake-gui`` diff --git a/doc/src/pair_mesodpd.rst b/doc/src/pair_mesodpd.rst index ed486d88d7..7943684597 100644 --- a/doc/src/pair_mesodpd.rst +++ b/doc/src/pair_mesodpd.rst @@ -250,8 +250,10 @@ from :ref:`(Li2013_POF) `. The short mDPD run (about 2 minutes on a single core) generates a particle trajectory which can be visualized as follows. +.. image:: JPG/examples_mdpd.gif + :align: center + .. image:: JPG/examples_mdpd_first.jpg - :target: JPG/examples_mdpd.gif :align: center .. image:: JPG/examples_mdpd_last.jpg -- GitLab From c256f2331fa36db61555b41ec6ab28da6437c4b7 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 25 Aug 2020 16:59:39 -0400 Subject: [PATCH 059/165] JPG folder is no longer needed in HTML output --- doc/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/doc/Makefile b/doc/Makefile index 7931525b92..49ad98775d 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -103,8 +103,6 @@ html: xmlgen $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX) $(POLYFILL) @rm -rf html/USER @rm -rf html/JPG @cp -r src/PDF html/PDF - @mkdir -p html/JPG - @cp `grep -A2 '\.\. .*\(image\|figure\)::' src/*.rst | grep ':target: JPG' | sed -e 's,.*:target: JPG/,src/JPG/,' | sort | uniq` html/JPG/ @rm -rf html/PDF/.[sg]* @echo "Build finished. The HTML pages are in doc/html." -- GitLab From 1c10aa6a4df1d83de06b86cd59a66f2546f2e598 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 25 Aug 2020 17:15:34 -0400 Subject: [PATCH 060/165] GIFs are only supported in HTML --- doc/src/pair_mesodpd.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/src/pair_mesodpd.rst b/doc/src/pair_mesodpd.rst index 7943684597..093eb707ad 100644 --- a/doc/src/pair_mesodpd.rst +++ b/doc/src/pair_mesodpd.rst @@ -250,8 +250,10 @@ from :ref:`(Li2013_POF) `. The short mDPD run (about 2 minutes on a single core) generates a particle trajectory which can be visualized as follows. -.. image:: JPG/examples_mdpd.gif - :align: center +.. only:: html + + .. image:: JPG/examples_mdpd.gif + :align: center .. image:: JPG/examples_mdpd_first.jpg :align: center -- GitLab From 4d90c2b74b74df6de0bbda5ece0a74a79a83ca52 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Tue, 25 Aug 2020 20:21:48 -0600 Subject: [PATCH 061/165] Update Kokkos library in LAMMPS to v3.2 --- lib/kokkos/BUILD.md | 77 +- lib/kokkos/CHANGELOG.md | 109 +- lib/kokkos/CMakeLists.txt | 41 +- lib/kokkos/Makefile.kokkos | 335 ++-- lib/kokkos/Makefile.targets | 24 +- lib/kokkos/README.md | 44 +- lib/kokkos/Spack.md | 267 +++ lib/kokkos/algorithms/CMakeLists.txt | 4 +- lib/kokkos/algorithms/src/CMakeLists.txt | 16 +- lib/kokkos/algorithms/src/Kokkos_Random.hpp | 214 ++- lib/kokkos/algorithms/src/Kokkos_Sort.hpp | 64 +- .../algorithms/unit_tests/CMakeLists.txt | 16 +- .../algorithms/unit_tests/TestRandom.hpp | 52 +- lib/kokkos/algorithms/unit_tests/TestSort.hpp | 32 +- lib/kokkos/appveyor.yml | 2 +- lib/kokkos/benchmarks/atomic/main.cpp | 14 +- .../benchmarks/bytes_and_flops/main.cpp | 18 +- lib/kokkos/benchmarks/gather/main.cpp | 14 +- lib/kokkos/benchmarks/gups/gups-kokkos.cc | 221 +-- .../benchmarks/policy_performance/main.cpp | 28 +- .../policy_performance/policy_perf_test.hpp | 4 +- lib/kokkos/benchmarks/stream/stream-kokkos.cc | 347 ++-- lib/kokkos/bin/nvcc_wrapper | 73 +- lib/kokkos/cmake/KokkosConfigCommon.cmake.in | 3 +- lib/kokkos/cmake/KokkosCore_config.h.in | 13 +- lib/kokkos/cmake/Modules/CudaToolkit.cmake | 958 +++++++++++ lib/kokkos/cmake/Modules/FindTPLCUDA.cmake | 46 +- .../compile_tests/cuda_compute_capability.cc} | 54 +- lib/kokkos/cmake/fake_tribits.cmake | 13 +- lib/kokkos/cmake/kokkos_arch.cmake | 124 +- lib/kokkos/cmake/kokkos_compiler_id.cmake | 64 +- lib/kokkos/cmake/kokkos_corner_cases.cmake | 8 +- lib/kokkos/cmake/kokkos_enable_devices.cmake | 58 +- lib/kokkos/cmake/kokkos_enable_options.cmake | 3 +- lib/kokkos/cmake/kokkos_functions.cmake | 92 +- lib/kokkos/cmake/kokkos_install.cmake | 2 +- lib/kokkos/cmake/kokkos_test_cxx_std.cmake | 19 +- lib/kokkos/cmake/kokkos_tpls.cmake | 8 +- lib/kokkos/cmake/kokkos_tribits.cmake | 95 +- lib/kokkos/config/yaml/volta.yaml | 4 + lib/kokkos/containers/CMakeLists.txt | 4 +- .../containers/performance_tests/Makefile | 8 +- .../performance_tests/TestDynRankView.hpp | 28 +- .../performance_tests/TestGlobal2LocalIds.hpp | 44 +- .../performance_tests/TestScatterView.hpp | 6 +- .../TestUnorderedMapPerformance.hpp | 6 +- lib/kokkos/containers/src/CMakeLists.txt | 5 + lib/kokkos/containers/src/Kokkos_Bitset.hpp | 36 +- lib/kokkos/containers/src/Kokkos_DualView.hpp | 220 +-- .../containers/src/Kokkos_DynRankView.hpp | 319 ++-- .../containers/src/Kokkos_DynamicView.hpp | 145 +- .../containers/src/Kokkos_ErrorReporter.hpp | 12 +- .../containers/src/Kokkos_Functional.hpp | 56 +- .../containers/src/Kokkos_OffsetView.hpp | 178 +- .../containers/src/Kokkos_ScatterView.hpp | 741 +++++---- .../containers/src/Kokkos_StaticCrsGraph.hpp | 113 +- .../containers/src/Kokkos_UnorderedMap.hpp | 122 +- lib/kokkos/containers/src/Kokkos_Vector.hpp | 31 +- .../src/impl/Kokkos_Bitset_impl.hpp | 10 +- .../src/impl/Kokkos_Functional_impl.hpp | 8 +- .../impl/Kokkos_StaticCrsGraph_factory.hpp | 78 +- .../src/impl/Kokkos_UnorderedMap_impl.hpp | 34 +- .../containers/unit_tests/TestBitset.hpp | 48 +- .../containers/unit_tests/TestDualView.hpp | 78 +- .../containers/unit_tests/TestDynViewAPI.hpp | 252 +-- .../unit_tests/TestDynViewAPI_generic.hpp | 3 - .../unit_tests/TestDynViewAPI_rank12345.hpp | 3 - .../containers/unit_tests/TestDynamicView.hpp | 31 +- .../unit_tests/TestErrorReporter.hpp | 33 +- .../containers/unit_tests/TestOffsetView.hpp | 50 +- .../containers/unit_tests/TestScatterView.hpp | 352 ++-- .../unit_tests/TestStaticCrsGraph.hpp | 68 +- .../unit_tests/TestUnorderedMap.hpp | 42 +- .../containers/unit_tests/TestVector.hpp | 51 +- .../TestViewCtorPropEmbeddedDim.hpp | 32 +- lib/kokkos/core/CMakeLists.txt | 4 +- lib/kokkos/core/cmake/KokkosCore_config.h.in | 10 +- lib/kokkos/core/perf_test/CMakeLists.txt | 31 +- lib/kokkos/core/perf_test/Makefile | 2 - .../core/perf_test/PerfTestBlasKernels.hpp | 20 +- .../core/perf_test/PerfTestGramSchmidt.cpp | 29 +- lib/kokkos/core/perf_test/PerfTestHexGrad.cpp | 22 +- lib/kokkos/core/perf_test/PerfTestMDRange.hpp | 58 +- .../perf_test/PerfTest_CustomReduction.cpp | 6 +- .../PerfTest_ExecSpacePartitioning.cpp | 2 +- lib/kokkos/core/perf_test/test_atomic.cpp | 38 +- lib/kokkos/core/perf_test/test_mempool.cpp | 22 +- lib/kokkos/core/perf_test/test_taskdag.cpp | 10 +- lib/kokkos/core/src/CMakeLists.txt | 31 +- .../src/Cuda/KokkosExp_Cuda_IterateTile.hpp | 17 +- .../KokkosExp_Cuda_IterateTile_Refactor.hpp | 6 +- lib/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp | 185 ++- .../Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp | 600 ++----- .../core/src/Cuda/Kokkos_Cuda_Error.hpp | 9 +- .../core/src/Cuda/Kokkos_Cuda_Instance.cpp | 187 ++- .../core/src/Cuda/Kokkos_Cuda_Instance.hpp | 64 +- .../src/Cuda/Kokkos_Cuda_KernelLaunch.hpp | 193 ++- .../core/src/Cuda/Kokkos_Cuda_Parallel.hpp | 562 +++---- .../core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp | 74 +- lib/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp | 6 +- lib/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp | 26 +- .../core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp | 27 +- .../src/Cuda/Kokkos_Cuda_Vectorization.hpp | 2 +- lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp | 4 +- .../src/Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp | 6 +- .../core/src/Cuda/Kokkos_Cuda_abort.hpp | 22 +- .../src/HIP/KokkosExp_HIP_IterateTile.hpp | 750 ++++----- lib/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp | 21 +- lib/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp | 7 +- .../HIP/Kokkos_HIP_BlockSize_Deduction.hpp | 144 +- .../core/src/HIP/Kokkos_HIP_Instance.cpp | 171 +- .../core/src/HIP/Kokkos_HIP_Instance.hpp | 19 +- .../core/src/HIP/Kokkos_HIP_KernelLaunch.hpp | 78 +- lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp | 15 +- .../src/HIP/Kokkos_HIP_Parallel_MDRange.hpp | 32 +- .../src/HIP/Kokkos_HIP_Parallel_Range.hpp | 168 +- .../core/src/HIP/Kokkos_HIP_Parallel_Team.hpp | 589 ++++++- .../core/src/HIP/Kokkos_HIP_ReduceScan.hpp | 249 ++- .../src/HIP/Kokkos_HIP_Shuffle_Reduce.hpp | 345 ++++ lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp | 277 +++- lib/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp | 254 ++- .../core/src/HIP/Kokkos_HIP_UniqueToken.hpp | 129 ++ .../core/src/HIP/Kokkos_HIP_Vectorization.hpp | 103 +- .../Kokkos_HIP_WorkGraphPolicy.hpp} | 76 +- lib/kokkos/core/src/HPX/Kokkos_HPX.cpp | 7 +- lib/kokkos/core/src/HPX/Kokkos_HPX_Task.hpp | 18 +- .../src/HPX/Kokkos_HPX_ViewCopyETIAvail.hpp | 57 - .../src/HPX/Kokkos_HPX_ViewCopyETIDecl.hpp | 57 - .../src/HPX/Kokkos_HPX_WorkGraphPolicy.hpp | 6 +- .../core/src/KokkosExp_MDRangePolicy.hpp | 165 +- ....cpp => Kokkos_AcquireUniqueTokenImpl.hpp} | 38 +- lib/kokkos/core/src/Kokkos_AnonymousSpace.hpp | 8 +- lib/kokkos/core/src/Kokkos_Array.hpp | 76 +- lib/kokkos/core/src/Kokkos_Atomic.hpp | 30 +- lib/kokkos/core/src/Kokkos_Complex.hpp | 67 +- lib/kokkos/core/src/Kokkos_Concepts.hpp | 83 +- lib/kokkos/core/src/Kokkos_CopyViews.hpp | 964 ++++------- lib/kokkos/core/src/Kokkos_Core.hpp | 16 +- lib/kokkos/core/src/Kokkos_Core_fwd.hpp | 110 +- lib/kokkos/core/src/Kokkos_Crs.hpp | 43 +- lib/kokkos/core/src/Kokkos_Cuda.hpp | 50 +- lib/kokkos/core/src/Kokkos_CudaSpace.hpp | 45 +- lib/kokkos/core/src/Kokkos_ExecPolicy.hpp | 276 +--- lib/kokkos/core/src/Kokkos_Extents.hpp | 2 + lib/kokkos/core/src/Kokkos_HBWSpace.hpp | 23 +- lib/kokkos/core/src/Kokkos_HIP.hpp | 1 + lib/kokkos/core/src/Kokkos_HIP_Space.hpp | 45 +- lib/kokkos/core/src/Kokkos_HPX.hpp | 372 ++++- lib/kokkos/core/src/Kokkos_HostSpace.hpp | 38 +- lib/kokkos/core/src/Kokkos_Layout.hpp | 67 +- lib/kokkos/core/src/Kokkos_Macros.hpp | 123 +- lib/kokkos/core/src/Kokkos_MemoryPool.hpp | 40 +- lib/kokkos/core/src/Kokkos_MemoryTraits.hpp | 21 +- lib/kokkos/core/src/Kokkos_NumericTraits.hpp | 1 + lib/kokkos/core/src/Kokkos_OpenMP.hpp | 62 +- lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp | 16 +- .../core/src/Kokkos_OpenMPTargetSpace.hpp | 10 +- lib/kokkos/core/src/Kokkos_Pair.hpp | 20 +- lib/kokkos/core/src/Kokkos_Parallel.hpp | 101 +- .../core/src/Kokkos_Parallel_Reduce.hpp | 326 ++-- .../src/Kokkos_Profiling_ProfileSection.hpp | 11 +- lib/kokkos/core/src/Kokkos_ROCm.hpp | 16 +- lib/kokkos/core/src/Kokkos_ROCmSpace.hpp | 20 +- lib/kokkos/core/src/Kokkos_ScratchSpace.hpp | 11 +- lib/kokkos/core/src/Kokkos_Serial.hpp | 320 +--- lib/kokkos/core/src/Kokkos_TaskScheduler.hpp | 6 +- .../core/src/Kokkos_TaskScheduler_fwd.hpp | 1 + lib/kokkos/core/src/Kokkos_Threads.hpp | 51 +- lib/kokkos/core/src/Kokkos_Timer.hpp | 1 + lib/kokkos/core/src/Kokkos_UniqueToken.hpp | 91 ++ lib/kokkos/core/src/Kokkos_Vectorization.hpp | 2 + lib/kokkos/core/src/Kokkos_View.hpp | 752 ++------- .../core/src/Kokkos_WorkGraphPolicy.hpp | 7 + lib/kokkos/core/src/Kokkos_hwloc.hpp | 2 + .../core/src/OpenMP/Kokkos_OpenMP_Exec.cpp | 44 +- .../core/src/OpenMP/Kokkos_OpenMP_Exec.hpp | 122 +- .../src/OpenMP/Kokkos_OpenMP_Parallel.hpp | 223 ++- .../core/src/OpenMP/Kokkos_OpenMP_Task.hpp | 18 +- .../core/src/OpenMP/Kokkos_OpenMP_Team.hpp | 155 +- .../OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp | 57 - .../OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp | 57 - .../OpenMP/Kokkos_OpenMP_WorkGraphPolicy.hpp | 8 +- .../OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp | 6 +- .../OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp | 2 +- .../OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp | 119 +- .../Kokkos_OpenMPTarget_Parallel.hpp | 240 +-- .../Kokkos_OpenMPTarget_Parallel_MDRange.hpp | 261 ++- .../KokkosExp_ROCm_IterateTile_Refactor.hpp | 6 +- lib/kokkos/core/src/ROCm/Kokkos_ROCm_Impl.cpp | 34 +- .../core/src/ROCm/Kokkos_ROCm_Parallel.hpp | 235 +-- .../core/src/ROCm/Kokkos_ROCm_Reduce.hpp | 26 +- .../core/src/ROCm/Kokkos_ROCm_ReduceScan.hpp | 28 +- lib/kokkos/core/src/ROCm/Kokkos_ROCm_Scan.hpp | 30 +- .../core/src/ROCm/Kokkos_ROCm_Space.cpp | 25 +- lib/kokkos/core/src/ROCm/Kokkos_ROCm_Task.hpp | 2 +- lib/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp | 16 +- .../Serial/Kokkos_Serial_ViewCopyETIAvail.hpp | 57 - .../Serial/Kokkos_Serial_ViewCopyETIDecl.hpp | 57 - .../core/src/Threads/Kokkos_ThreadsExec.cpp | 43 +- .../core/src/Threads/Kokkos_ThreadsExec.hpp | 173 +- .../core/src/Threads/Kokkos_ThreadsTeam.hpp | 217 +-- .../src/Threads/Kokkos_Threads_Parallel.hpp | 168 +- .../Kokkos_Threads_WorkGraphPolicy.hpp | 10 +- lib/kokkos/core/src/eti/CMakeLists.txt | 25 - lib/kokkos/core/src/eti/Cuda/CMakeLists.txt | 148 -- ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 55 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 55 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 56 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 57 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 55 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 56 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 57 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 56 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 57 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 55 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 55 - ...ETIInst_int64_t_float_LayoutLeft_Rank4.cpp | 56 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 57 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 55 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 55 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 56 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 57 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 55 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 56 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 57 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 55 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 56 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 57 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 56 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 57 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 57 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank5.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 56 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 55 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 55 - ...ETIInst_int64_t_int_LayoutStride_Rank4.cpp | 56 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 57 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 57 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 56 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 56 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 57 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 56 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 55 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 55 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 56 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 57 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 56 - .../core/src/eti/Cuda/Makefile.eti_Cuda | 288 ---- lib/kokkos/core/src/eti/HPX/CMakeLists.txt | 148 -- ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 59 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 59 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 59 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 59 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank5.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 59 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank3.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 59 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 59 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 59 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 59 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 59 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 59 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 59 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 59 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 59 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 59 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 59 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 59 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 59 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 58 - lib/kokkos/core/src/eti/HPX/Makefile.eti_HPX | 288 ---- lib/kokkos/core/src/eti/OpenMP/CMakeLists.txt | 148 -- ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 56 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 57 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 57 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 55 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 56 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 57 - ...ETIInst_int64_t_float_LayoutLeft_Rank4.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 56 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 57 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 57 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 57 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 56 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 57 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 56 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 57 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 56 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 57 - ...ETIInst_int64_t_int_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 56 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 56 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 57 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 56 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 57 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 56 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 56 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 57 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 56 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 57 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 56 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 57 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 56 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 57 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 56 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 57 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 58 - .../core/src/eti/OpenMP/Makefile.eti_OpenMP | 288 ---- lib/kokkos/core/src/eti/ROCm/CMakeLists.txt | 148 -- ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 59 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 59 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 59 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 59 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank4.cpp | 59 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 59 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank5.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 59 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 59 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 59 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 59 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank4.cpp | 59 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 59 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 59 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 59 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 59 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 59 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 59 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 59 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 59 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 59 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 59 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 59 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 59 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 59 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 59 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 59 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 59 - .../core/src/eti/ROCm/Makefile.eti_ROCm | 288 ---- lib/kokkos/core/src/eti/Serial/CMakeLists.txt | 148 -- ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 56 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 57 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 57 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 55 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 56 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 57 - ...ETIInst_int64_t_float_LayoutLeft_Rank4.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 56 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 57 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 57 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 57 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank5.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 56 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 57 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 56 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 57 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 56 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 57 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 56 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 56 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 57 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 56 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 57 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 56 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 56 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 57 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 56 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 57 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 56 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 57 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 56 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 57 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 56 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 57 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 58 - .../core/src/eti/Serial/Makefile.eti_Serial | 288 ---- .../core/src/eti/Threads/CMakeLists.txt | 148 -- ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 57 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 56 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 57 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank4.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 57 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank5.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank3.cpp | 56 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 57 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 56 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 57 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 56 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 57 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 56 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 57 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 56 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 57 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 56 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 57 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 56 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 56 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 57 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 56 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 57 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 56 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 57 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 56 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 57 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 56 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 57 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 57 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 56 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 58 - .../core/src/eti/Threads/Makefile.eti_Threads | 288 ---- .../Kokkos_ViewFillCopyETIAvail_Macros.hpp | 1440 ----------------- .../Kokkos_ViewFillCopyETIDecl_Macros.hpp | 1152 ------------- lib/kokkos/core/src/impl/CMakeLists.txt | 2 +- .../src/impl/KokkosExp_Host_IterateTile.hpp | 113 +- .../Kokkos_Atomic_Compare_Exchange_Strong.hpp | 6 +- .../Kokkos_Atomic_Compare_Exchange_Weak.hpp | 2 + .../core/src/impl/Kokkos_Atomic_Exchange.hpp | 19 +- .../core/src/impl/Kokkos_Atomic_Fetch_Add.hpp | 4 + .../core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp | 4 + .../core/src/impl/Kokkos_Atomic_Generic.hpp | 8 + .../impl/Kokkos_Atomic_Generic_Secondary.hpp | 10 + .../core/src/impl/Kokkos_Atomic_View.hpp | 10 +- .../core/src/impl/Kokkos_Atomic_Windows.hpp | 18 +- lib/kokkos/core/src/impl/Kokkos_BitOps.hpp | 20 +- .../core/src/impl/Kokkos_CPUDiscovery.cpp | 28 +- lib/kokkos/core/src/impl/Kokkos_ClockTic.hpp | 10 +- .../core/src/impl/Kokkos_Combined_Reducer.hpp | 689 ++++++++ .../core/src/impl/Kokkos_ConcurrentBitset.hpp | 4 +- lib/kokkos/core/src/impl/Kokkos_Core.cpp | 157 +- lib/kokkos/core/src/impl/Kokkos_Error.cpp | 16 + lib/kokkos/core/src/impl/Kokkos_Error.hpp | 29 +- .../core/src/impl/Kokkos_ExecPolicy.cpp | 11 + .../core/src/impl/Kokkos_FunctorAdapter.hpp | 159 +- .../core/src/impl/Kokkos_FunctorAnalysis.hpp | 16 +- lib/kokkos/core/src/impl/Kokkos_HBWSpace.cpp | 53 +- lib/kokkos/core/src/impl/Kokkos_HostSpace.cpp | 65 +- .../src/impl/Kokkos_HostSpace_deepcopy.cpp | 2 +- .../core/src/impl/Kokkos_MemoryPool.cpp | 27 +- .../Kokkos_MemorySpace.cpp} | 67 +- .../core/src/impl/Kokkos_MemorySpace.hpp | 44 +- .../core/src/impl/Kokkos_Memory_Fence.hpp | 4 +- lib/kokkos/core/src/impl/Kokkos_OldMacros.hpp | 526 ------ lib/kokkos/core/src/impl/Kokkos_Profiling.cpp | 893 ++++++++++ lib/kokkos/core/src/impl/Kokkos_Profiling.hpp | 244 +++ .../src/impl/Kokkos_Profiling_C_Interface.h | 244 +++ .../src/impl/Kokkos_Profiling_DeviceInfo.hpp | 8 +- .../src/impl/Kokkos_Profiling_Interface.cpp | 387 ----- .../src/impl/Kokkos_Profiling_Interface.hpp | 195 ++- lib/kokkos/core/src/impl/Kokkos_Serial.cpp | 37 +- .../impl/Kokkos_Serial_WorkGraphPolicy.hpp | 2 +- .../core/src/impl/Kokkos_SharedAlloc.cpp | 6 - .../core/src/impl/Kokkos_SharedAlloc.hpp | 119 +- .../src/impl/Kokkos_SimpleTaskScheduler.hpp | 14 - lib/kokkos/core/src/impl/Kokkos_Tags.hpp | 6 +- lib/kokkos/core/src/impl/Kokkos_TaskBase.hpp | 2 +- .../Kokkos_Tools.hpp} | 15 +- lib/kokkos/core/src/impl/Kokkos_Traits.hpp | 50 +- lib/kokkos/core/src/impl/Kokkos_ViewArray.hpp | 184 +-- lib/kokkos/core/src/impl/Kokkos_ViewCtor.hpp | 73 +- .../src/impl/Kokkos_ViewFillCopyETIAvail.hpp | 126 -- .../src/impl/Kokkos_ViewFillCopyETIDecl.hpp | 140 -- .../core/src/impl/Kokkos_ViewLayoutTiled.hpp | 346 ++-- .../core/src/impl/Kokkos_ViewMapping.hpp | 585 ++++--- lib/kokkos/core/src/impl/Kokkos_ViewTile.hpp | 222 --- .../core/src/impl/Kokkos_ViewTracker.hpp | 130 ++ .../core/src/impl/Kokkos_ViewUniformType.hpp | 84 +- .../core/src/impl/Kokkos_Volatile_Load.hpp | 26 +- lib/kokkos/core/unit_test/CMakeLists.txt | 155 +- lib/kokkos/core/unit_test/TestAggregate.hpp | 18 +- lib/kokkos/core/unit_test/TestAtomic.hpp | 30 +- .../core/unit_test/TestAtomicOperations.hpp | 60 +- lib/kokkos/core/unit_test/TestAtomicViews.hpp | 235 ++- lib/kokkos/core/unit_test/TestCXX11.hpp | 38 +- .../core/unit_test/TestCXX11Deduction.hpp | 2 +- .../core/unit_test/TestCompilerMacros.hpp | 6 +- lib/kokkos/core/unit_test/TestComplex.hpp | 2 - .../core/unit_test/TestConcurrentBitset.hpp | 10 +- lib/kokkos/core/unit_test/TestCrs.hpp | 2 +- lib/kokkos/core/unit_test/TestDeepCopy.hpp | 15 +- .../unit_test/TestDefaultDeviceTypeInit.hpp | 14 +- .../core/unit_test/TestFunctorAnalysis.hpp | 26 +- .../core/unit_test/TestIrregularLayout.hpp | 264 +++ .../core/unit_test/TestLocalDeepCopy.hpp | 44 +- lib/kokkos/core/unit_test/TestMDRange.hpp | 897 +++++----- lib/kokkos/core/unit_test/TestMemoryPool.hpp | 54 +- .../unit_test/TestNonTrivialScalarTypes.hpp | 338 ++++ .../core/unit_test/TestPolicyConstruction.hpp | 671 +++----- lib/kokkos/core/unit_test/TestRange.hpp | 26 +- .../core/unit_test/TestRangeRequire.hpp | 26 +- lib/kokkos/core/unit_test/TestReduce.hpp | 126 +- .../unit_test/TestReduceCombinatorical.hpp | 32 +- .../core/unit_test/TestReduceDeviceView.hpp | 4 +- lib/kokkos/core/unit_test/TestReducers.hpp | 6 +- lib/kokkos/core/unit_test/TestReducers_d.hpp | 9 + lib/kokkos/core/unit_test/TestResize.hpp | 32 +- lib/kokkos/core/unit_test/TestScan.hpp | 13 +- lib/kokkos/core/unit_test/TestSharedAlloc.hpp | 12 +- .../core/unit_test/TestTaskScheduler.hpp | 28 +- lib/kokkos/core/unit_test/TestTeam.hpp | 185 +-- .../core/unit_test/TestTeamTeamSize.hpp | 10 +- lib/kokkos/core/unit_test/TestTeamVector.hpp | 307 +--- .../core/unit_test/TestTeamVectorRange.hpp | 44 +- .../unit_test/TestTemplateMetaFunctions.hpp | 30 +- lib/kokkos/core/unit_test/TestTile.hpp | 181 --- lib/kokkos/core/unit_test/TestUniqueToken.hpp | 130 +- lib/kokkos/core/unit_test/TestViewAPI.hpp | 293 ++-- lib/kokkos/core/unit_test/TestViewAPI_e.hpp | 22 +- .../unit_test/TestViewCtorPropEmbeddedDim.hpp | 16 +- .../TestViewLayoutStrideAssignment.hpp | 24 +- .../core/unit_test/TestViewLayoutTiled.hpp | 108 +- .../core/unit_test/TestViewMapping_a.hpp | 166 +- .../core/unit_test/TestViewMapping_b.hpp | 66 +- .../unit_test/TestViewMapping_subview.hpp | 32 +- lib/kokkos/core/unit_test/TestViewResize.hpp | 2 +- lib/kokkos/core/unit_test/TestViewSubview.hpp | 1017 +++++++----- .../core/unit_test/Test_InterOp_Streams.hpp | 144 ++ lib/kokkos/core/unit_test/UnitTestConfig.make | 52 - .../core/unit_test/config/bin/hcc-config | 2 - lib/kokkos/core/unit_test/config/clang | 5 - .../unit_test/config/cmaketest/CMakeLists.txt | 79 - lib/kokkos/core/unit_test/config/cxx | 5 - lib/kokkos/core/unit_test/config/mpic++ | 5 - lib/kokkos/core/unit_test/config/nvcc | 5 - .../results/AMDAVX_Cuda_KokkosCore_config.h | 18 - .../results/AMDAVX_OpenMP_KokkosCore_config.h | 17 - .../AMDAVX_Pthread_KokkosCore_config.h | 17 - .../results/AMDAVX_ROCm_KokkosCore_config.h | 18 - .../results/AMDAVX_Serial_KokkosCore_config.h | 17 - .../ARMv8-ThunderX_Cuda_KokkosCore_config.h | 19 - .../ARMv8-ThunderX_OpenMP_KokkosCore_config.h | 18 - ...ARMv8-ThunderX_Pthread_KokkosCore_config.h | 18 - .../ARMv8-ThunderX_ROCm_KokkosCore_config.h | 19 - .../ARMv8-ThunderX_Serial_KokkosCore_config.h | 18 - .../results/ARMv80_Cuda_KokkosCore_config.h | 18 - .../results/ARMv80_OpenMP_KokkosCore_config.h | 17 - .../ARMv80_Pthread_KokkosCore_config.h | 17 - .../results/ARMv80_ROCm_KokkosCore_config.h | 18 - .../results/ARMv80_Serial_KokkosCore_config.h | 17 - .../results/ARMv81_Cuda_KokkosCore_config.h | 18 - .../results/ARMv81_OpenMP_KokkosCore_config.h | 17 - .../ARMv81_Pthread_KokkosCore_config.h | 17 - .../results/ARMv81_ROCm_KokkosCore_config.h | 18 - .../results/ARMv81_Serial_KokkosCore_config.h | 17 - .../results/BDW_Cuda_KokkosCore_config.h | 24 - .../results/BDW_OpenMP_KokkosCore_config.h | 23 - .../results/BDW_Pthread_KokkosCore_config.h | 23 - .../results/BDW_ROCm_KokkosCore_config.h | 24 - .../results/BDW_Serial_KokkosCore_config.h | 23 - .../results/BGQ_Cuda_KokkosCore_config.h | 17 - .../results/BGQ_OpenMP_KokkosCore_config.h | 16 - .../results/BGQ_Pthread_KokkosCore_config.h | 16 - .../results/BGQ_ROCm_KokkosCore_config.h | 17 - .../results/BGQ_Serial_KokkosCore_config.h | 16 - .../results/HSW_Cuda_KokkosCore_config.h | 21 - .../results/HSW_OpenMP_KokkosCore_config.h | 20 - .../results/HSW_Pthread_KokkosCore_config.h | 20 - .../results/HSW_ROCm_KokkosCore_config.h | 21 - .../results/HSW_Serial_KokkosCore_config.h | 20 - .../results/KNC_Cuda_KokkosCore_config.h | 21 - .../results/KNC_OpenMP_KokkosCore_config.h | 20 - .../results/KNC_Pthread_KokkosCore_config.h | 20 - .../results/KNC_ROCm_KokkosCore_config.h | 21 - .../results/KNC_Serial_KokkosCore_config.h | 20 - .../results/KNL_Cuda_KokkosCore_config.h | 21 - .../results/KNL_OpenMP_KokkosCore_config.h | 20 - .../results/KNL_Pthread_KokkosCore_config.h | 20 - .../results/KNL_ROCm_KokkosCore_config.h | 21 - .../results/KNL_Serial_KokkosCore_config.h | 20 - .../results/Kepler30_Cuda_KokkosCore_config.h | 19 - .../Kepler30_OpenMP_KokkosCore_config.h | 16 - .../Kepler30_Pthread_KokkosCore_config.h | 16 - .../results/Kepler30_ROCm_KokkosCore_config.h | 17 - .../Kepler30_Serial_KokkosCore_config.h | 16 - .../results/Kepler32_Cuda_KokkosCore_config.h | 19 - .../Kepler32_OpenMP_KokkosCore_config.h | 16 - .../Kepler32_Pthread_KokkosCore_config.h | 16 - .../results/Kepler32_ROCm_KokkosCore_config.h | 17 - .../Kepler32_Serial_KokkosCore_config.h | 16 - .../results/Kepler35_Cuda_KokkosCore_config.h | 19 - .../Kepler35_OpenMP_KokkosCore_config.h | 16 - .../Kepler35_Pthread_KokkosCore_config.h | 16 - .../results/Kepler35_ROCm_KokkosCore_config.h | 17 - .../Kepler35_Serial_KokkosCore_config.h | 16 - .../results/Kepler37_Cuda_KokkosCore_config.h | 19 - .../Kepler37_OpenMP_KokkosCore_config.h | 16 - .../Kepler37_Pthread_KokkosCore_config.h | 16 - .../results/Kepler37_ROCm_KokkosCore_config.h | 17 - .../Kepler37_Serial_KokkosCore_config.h | 16 - .../results/Kepler_Cuda_KokkosCore_config.h | 19 - .../results/Kepler_OpenMP_KokkosCore_config.h | 16 - .../Kepler_Pthread_KokkosCore_config.h | 16 - .../results/Kepler_ROCm_KokkosCore_config.h | 17 - .../results/Kepler_Serial_KokkosCore_config.h | 16 - .../Maxwell50_Cuda_KokkosCore_config.h | 19 - .../Maxwell50_OpenMP_KokkosCore_config.h | 16 - .../Maxwell50_Pthread_KokkosCore_config.h | 16 - .../Maxwell50_ROCm_KokkosCore_config.h | 17 - .../Maxwell50_Serial_KokkosCore_config.h | 16 - .../Maxwell52_Cuda_KokkosCore_config.h | 19 - .../Maxwell52_OpenMP_KokkosCore_config.h | 16 - .../Maxwell52_Pthread_KokkosCore_config.h | 16 - .../Maxwell52_ROCm_KokkosCore_config.h | 17 - .../Maxwell52_Serial_KokkosCore_config.h | 16 - .../Maxwell53_Cuda_KokkosCore_config.h | 19 - .../Maxwell53_OpenMP_KokkosCore_config.h | 16 - .../Maxwell53_Pthread_KokkosCore_config.h | 16 - .../Maxwell53_ROCm_KokkosCore_config.h | 17 - .../Maxwell53_Serial_KokkosCore_config.h | 16 - .../results/Maxwell_Cuda_KokkosCore_config.h | 19 - .../Maxwell_OpenMP_KokkosCore_config.h | 16 - .../Maxwell_Pthread_KokkosCore_config.h | 16 - .../results/Maxwell_ROCm_KokkosCore_config.h | 17 - .../Maxwell_Serial_KokkosCore_config.h | 16 - .../results/None_Cuda_KokkosCore_config.h | 17 - .../results/None_OpenMP_KokkosCore_config.h | 16 - .../results/None_Pthread_KokkosCore_config.h | 16 - .../results/None_ROCm_KokkosCore_config.h | 17 - .../results/None_Serial_KokkosCore_config.h | 16 - .../results/Pascal60_Cuda_KokkosCore_config.h | 19 - .../Pascal60_OpenMP_KokkosCore_config.h | 16 - .../Pascal60_Pthread_KokkosCore_config.h | 16 - .../results/Pascal60_ROCm_KokkosCore_config.h | 17 - .../Pascal60_Serial_KokkosCore_config.h | 16 - .../results/Pascal61_Cuda_KokkosCore_config.h | 19 - .../Pascal61_OpenMP_KokkosCore_config.h | 16 - .../Pascal61_Pthread_KokkosCore_config.h | 16 - .../results/Pascal61_ROCm_KokkosCore_config.h | 17 - .../Pascal61_Serial_KokkosCore_config.h | 16 - .../results/Power7_Cuda_KokkosCore_config.h | 21 - .../results/Power7_OpenMP_KokkosCore_config.h | 20 - .../Power7_Pthread_KokkosCore_config.h | 20 - .../results/Power7_ROCm_KokkosCore_config.h | 21 - .../results/Power7_Serial_KokkosCore_config.h | 20 - .../results/Power8_Cuda_KokkosCore_config.h | 21 - .../results/Power8_OpenMP_KokkosCore_config.h | 20 - .../Power8_Pthread_KokkosCore_config.h | 20 - .../results/Power8_ROCm_KokkosCore_config.h | 21 - .../results/Power8_Serial_KokkosCore_config.h | 20 - .../results/Power9_Cuda_KokkosCore_config.h | 21 - .../results/Power9_OpenMP_KokkosCore_config.h | 20 - .../Power9_Pthread_KokkosCore_config.h | 20 - .../results/Power9_ROCm_KokkosCore_config.h | 21 - .../results/Power9_Serial_KokkosCore_config.h | 20 - .../results/SKX_Cuda_KokkosCore_config.h | 24 - .../results/SKX_OpenMP_KokkosCore_config.h | 23 - .../results/SKX_Pthread_KokkosCore_config.h | 23 - .../results/SKX_ROCm_KokkosCore_config.h | 24 - .../results/SKX_Serial_KokkosCore_config.h | 23 - .../results/SNB_Cuda_KokkosCore_config.h | 21 - .../results/SNB_OpenMP_KokkosCore_config.h | 20 - .../results/SNB_Pthread_KokkosCore_config.h | 20 - .../results/SNB_ROCm_KokkosCore_config.h | 21 - .../results/SNB_Serial_KokkosCore_config.h | 20 - .../results/WSM_Cuda_KokkosCore_config.h | 21 - .../results/WSM_OpenMP_KokkosCore_config.h | 20 - .../results/WSM_Pthread_KokkosCore_config.h | 20 - .../results/WSM_ROCm_KokkosCore_config.h | 21 - .../results/WSM_Serial_KokkosCore_config.h | 20 - .../test-code/test_config_arch_list.bash | 2 +- .../test-code/test_config_options_list.bash | 3 +- .../cuda/TestCuda_InterOp_Streams.cpp | 147 +- .../core/unit_test/cuda/TestCuda_Other.cpp | 1 - .../TestCuda_ViewLayoutStrideAssignment.cpp | 1 + .../default/TestDefaultDeviceDevelop.cpp} | 19 +- .../default/TestDefaultDeviceType.cpp | 8 +- .../default/TestDefaultDeviceTypeResize.cpp | 2 +- .../headers_self_contained/CMakeLists.txt | 20 + .../headers_self_contained/tstHeader.cpp | 15 + .../unit_test/hip/TestHIP_InterOp_Init.cpp | 4 +- .../unit_test/hip/TestHIP_InterOp_Streams.cpp | 115 ++ .../hip/TestHIP_Other.cpp} | 20 +- .../hip/TestHIP_Reductions_DeviceView.cpp} | 15 +- .../core/unit_test/hip/TestHIP_ScanUnit.cpp | 12 +- .../core/unit_test/hip/TestHIP_Team.cpp | 152 ++ .../hip/TestHIP_TeamReductionScan.cpp} | 45 +- .../hip/TestHIP_TeamScratch.cpp} | 45 +- .../unit_test/hip/TestHIP_UniqueToken.cpp | 46 + .../core/unit_test/hip/TestHIP_ViewAPI_a.cpp | 46 + .../core/unit_test/hip/TestHIP_ViewAPI_b.cpp | 46 + .../core/unit_test/hip/TestHIP_ViewAPI_e.cpp | 47 + .../TestHIP_ViewLayoutStrideAssignment.cpp | 47 + .../core/unit_test/hip/TestHIP_WorkGraph.cpp | 46 + .../hpx/TestHPX_IndependentInstances.cpp | 188 +++ ..._IndependentInstancesDelayedExecution.cpp} | 53 +- ...estHPX_IndependentInstancesInstanceIds.cpp | 99 ++ ...stHPX_IndependentInstancesRefCounting.cpp} | 64 +- .../TestHPX_ViewLayoutStrideAssignment.cpp | 1 + .../incremental/Test01_execspace.hpp | 6 +- .../incremental/Test02_atomic_host.hpp | 3 +- .../Test04_ParallelFor_RangePolicy.hpp | 20 +- .../Test05_ParallelReduce_RangePolicy.hpp | 6 +- .../Test06_ParallelFor_MDRangePolicy.hpp | 36 +- .../Test11a_ParallelFor_TeamThreadRange.hpp | 8 +- .../Test11b_ParallelFor_TeamVectorRange.hpp | 8 +- .../Test11c_ParallelFor_ThreadVectorRange.hpp | 6 +- .../Test13a_ParallelRed_TeamThreadRange.hpp | 6 +- .../Test13b_ParallelRed_TeamVectorRange.hpp | 6 +- .../Test13c_ParallelRed_ThreadVectorRange.hpp | 6 +- .../incremental/Test14_MDRangeReduce.hpp | 182 +++ .../incremental/Test16_ParallelScan.hpp} | 68 +- .../incremental/Test17_CompleteAtomic.hpp | 126 ++ .../core/unit_test/openmp/TestOpenMP.hpp | 1 - .../unit_test/openmp/TestOpenMP_Other.cpp | 20 +- .../TestOpenMP_ViewLayoutStrideAssignment.cpp | 1 + .../openmptarget/TestOpenMPTarget.hpp | 1 - .../openmptarget/TestOpenMPTarget_Other.cpp | 1 - .../TestOpenMPTarget_Reductions.cpp | 3 +- .../TestOpenMPTarget_TeamReductionScan.cpp | 4 +- ...penMPTarget_ViewLayoutStrideAssignment.cpp | 47 + .../core/unit_test/rocm/TestROCm_Other.cpp | 1 - .../unit_test/serial/TestSerial_Other.cpp | 1 - .../TestSerial_ViewLayoutStrideAssignment.cpp | 1 + .../unit_test/threads/TestThreads_Other.cpp | 1 - ...TestThreads_ViewLayoutStrideAssignment.cpp | 1 + .../tools/TestAllCalls.cpp} | 59 +- .../core/unit_test/tools/TestCInterface.c | 2 + .../core/unit_test/tools/TestTuning.cpp | 196 +++ .../core/unit_test/tools/printing-tool.cpp | 118 ++ lib/kokkos/example/CMakeLists.txt | 5 +- .../build_cmake_in_tree/CMakeLists.txt | 53 +- .../build_cmake_in_tree/cmake_example.cpp | 4 - lib/kokkos/example/build_cmake_in_tree/foo.f | 4 - .../build_cmake_installed/CMakeLists.txt | 54 +- .../build_cmake_installed/cmake_example.cpp | 11 +- lib/kokkos/example/make_buildlink/main.cpp | 6 +- .../tutorial/01_hello_world/hello_world.cpp | 6 +- .../02_simple_reduce/simple_reduce.cpp | 4 +- .../tutorial/03_simple_view/simple_view.cpp | 6 +- .../simple_view_lambda.cpp | 2 +- .../simple_memoryspaces.cpp | 6 +- .../05_simple_atomics/simple_atomics.cpp | 10 +- .../simple_mdrangepolicy.cpp | 24 +- .../01_data_layouts/data_layouts.cpp | 8 +- .../02_memory_traits/memory_traits.cpp | 10 +- .../Advanced_Views/03_subviews/subviews.cpp | 16 +- .../Advanced_Views/04_dualviews/dual_view.cpp | 18 +- .../05_NVIDIA_UVM/uvm_example.cpp | 10 +- .../overlapping_deepcopy.cpp | 2 +- .../01_random_numbers/random_numbers.cpp | 6 +- .../01_thread_teams/thread_teams.cpp | 6 +- .../thread_teams_lambda.cpp | 4 +- .../nested_parallel_for.cpp | 6 +- .../03_vectorization/vectorization.cpp | 12 +- .../04_team_scan/team_scan.cpp | 8 +- .../launch_bounds/launch_bounds_reduce.cpp | 2 +- lib/kokkos/generate_makefile.bash | 11 +- lib/kokkos/gnu_generate_makefile.bash | 91 +- lib/kokkos/master_history.txt | 3 +- 1410 files changed, 19391 insertions(+), 71980 deletions(-) create mode 100644 lib/kokkos/Spack.md create mode 100644 lib/kokkos/cmake/Modules/CudaToolkit.cmake rename lib/kokkos/{core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp => cmake/compile_tests/cuda_compute_capability.cc} (54%) create mode 100644 lib/kokkos/config/yaml/volta.yaml create mode 100644 lib/kokkos/core/src/HIP/Kokkos_HIP_Shuffle_Reduce.hpp create mode 100644 lib/kokkos/core/src/HIP/Kokkos_HIP_UniqueToken.hpp rename lib/kokkos/core/src/{eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp => HIP/Kokkos_HIP_WorkGraphPolicy.hpp} (52%) delete mode 100644 lib/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIAvail.hpp delete mode 100644 lib/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIDecl.hpp rename lib/kokkos/core/src/{eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp => Kokkos_AcquireUniqueTokenImpl.hpp} (68%) delete mode 100644 lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp delete mode 100644 lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp delete mode 100644 lib/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIAvail.hpp delete mode 100644 lib/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIDecl.hpp delete mode 100644 lib/kokkos/core/src/eti/CMakeLists.txt delete mode 100644 lib/kokkos/core/src/eti/Cuda/CMakeLists.txt delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Cuda/Makefile.eti_Cuda delete mode 100644 lib/kokkos/core/src/eti/HPX/CMakeLists.txt delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/HPX/Makefile.eti_HPX delete mode 100644 lib/kokkos/core/src/eti/OpenMP/CMakeLists.txt delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/OpenMP/Makefile.eti_OpenMP delete mode 100644 lib/kokkos/core/src/eti/ROCm/CMakeLists.txt delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/ROCm/Makefile.eti_ROCm delete mode 100644 lib/kokkos/core/src/eti/Serial/CMakeLists.txt delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Serial/Makefile.eti_Serial delete mode 100644 lib/kokkos/core/src/eti/Threads/CMakeLists.txt delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 lib/kokkos/core/src/eti/Threads/Makefile.eti_Threads delete mode 100644 lib/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp delete mode 100644 lib/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp create mode 100644 lib/kokkos/core/src/impl/Kokkos_Combined_Reducer.hpp rename lib/kokkos/core/src/{eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp => impl/Kokkos_MemorySpace.cpp} (53%) delete mode 100644 lib/kokkos/core/src/impl/Kokkos_OldMacros.hpp create mode 100644 lib/kokkos/core/src/impl/Kokkos_Profiling.cpp create mode 100644 lib/kokkos/core/src/impl/Kokkos_Profiling.hpp create mode 100644 lib/kokkos/core/src/impl/Kokkos_Profiling_C_Interface.h delete mode 100644 lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp rename lib/kokkos/core/src/{Cuda/Kokkos_Cuda_ViewCopyETIDecl.hpp => impl/Kokkos_Tools.hpp} (86%) delete mode 100644 lib/kokkos/core/src/impl/Kokkos_ViewFillCopyETIAvail.hpp delete mode 100644 lib/kokkos/core/src/impl/Kokkos_ViewFillCopyETIDecl.hpp delete mode 100644 lib/kokkos/core/src/impl/Kokkos_ViewTile.hpp create mode 100644 lib/kokkos/core/src/impl/Kokkos_ViewTracker.hpp create mode 100644 lib/kokkos/core/unit_test/TestIrregularLayout.hpp create mode 100644 lib/kokkos/core/unit_test/TestNonTrivialScalarTypes.hpp delete mode 100644 lib/kokkos/core/unit_test/TestTile.hpp create mode 100644 lib/kokkos/core/unit_test/Test_InterOp_Streams.hpp delete mode 100644 lib/kokkos/core/unit_test/UnitTestConfig.make delete mode 100755 lib/kokkos/core/unit_test/config/bin/hcc-config delete mode 100755 lib/kokkos/core/unit_test/config/clang delete mode 100644 lib/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt delete mode 100755 lib/kokkos/core/unit_test/config/cxx delete mode 100755 lib/kokkos/core/unit_test/config/mpic++ delete mode 100755 lib/kokkos/core/unit_test/config/nvcc delete mode 100644 lib/kokkos/core/unit_test/config/results/AMDAVX_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/AMDAVX_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/AMDAVX_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/AMDAVX_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/AMDAVX_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv80_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv80_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv80_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv80_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv80_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv81_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv81_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv81_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv81_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/ARMv81_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/BDW_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/BDW_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/BDW_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/BDW_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/BDW_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/BGQ_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/BGQ_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/BGQ_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/BGQ_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/BGQ_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/HSW_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/HSW_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/HSW_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/HSW_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/HSW_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/KNC_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/KNC_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/KNC_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/KNC_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/KNC_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/KNL_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/KNL_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/KNL_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/KNL_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/KNL_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler30_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler30_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler30_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler30_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler30_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler32_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler32_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler32_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler32_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler32_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler35_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler35_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler35_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler35_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler35_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler37_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler37_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler37_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler37_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler37_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Kepler_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell50_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell50_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell50_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell50_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell50_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell52_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell52_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell52_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell52_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell52_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell53_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell53_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell53_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell53_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell53_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Maxwell_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/None_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/None_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/None_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/None_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/None_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Pascal60_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Pascal60_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Pascal60_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Pascal60_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Pascal60_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Pascal61_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Pascal61_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Pascal61_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Pascal61_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Pascal61_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power7_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power7_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power7_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power7_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power7_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power8_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power8_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power8_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power8_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power8_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power9_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power9_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power9_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power9_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/Power9_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/SKX_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/SKX_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/SKX_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/SKX_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/SKX_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/SNB_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/SNB_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/SNB_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/SNB_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/SNB_Serial_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/WSM_Cuda_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/WSM_OpenMP_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/WSM_Pthread_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/WSM_ROCm_KokkosCore_config.h delete mode 100644 lib/kokkos/core/unit_test/config/results/WSM_Serial_KokkosCore_config.h rename lib/kokkos/core/{src/ROCm/Kokkos_ROCm_ViewCopyETIDecl.hpp => unit_test/default/TestDefaultDeviceDevelop.cpp} (85%) create mode 100644 lib/kokkos/core/unit_test/headers_self_contained/CMakeLists.txt create mode 100644 lib/kokkos/core/unit_test/headers_self_contained/tstHeader.cpp create mode 100644 lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Streams.cpp rename lib/kokkos/core/{src/Cuda/Kokkos_Cuda_ViewCopyETIAvail.hpp => unit_test/hip/TestHIP_Other.cpp} (85%) rename lib/kokkos/core/{src/ROCm/Kokkos_ROCm_ViewCopyETIAvail.hpp => unit_test/hip/TestHIP_Reductions_DeviceView.cpp} (85%) create mode 100644 lib/kokkos/core/unit_test/hip/TestHIP_Team.cpp rename lib/kokkos/core/{src/Threads/Kokkos_Threads_ViewCopyETIDecl.hpp => unit_test/hip/TestHIP_TeamReductionScan.cpp} (54%) rename lib/kokkos/core/{src/Threads/Kokkos_Threads_ViewCopyETIAvail.hpp => unit_test/hip/TestHIP_TeamScratch.cpp} (58%) create mode 100644 lib/kokkos/core/unit_test/hip/TestHIP_UniqueToken.cpp create mode 100644 lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_a.cpp create mode 100644 lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_b.cpp create mode 100644 lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_e.cpp create mode 100644 lib/kokkos/core/unit_test/hip/TestHIP_ViewLayoutStrideAssignment.cpp create mode 100644 lib/kokkos/core/unit_test/hip/TestHIP_WorkGraph.cpp create mode 100644 lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstances.cpp rename lib/kokkos/core/{src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp => unit_test/hpx/TestHPX_IndependentInstancesDelayedExecution.cpp} (66%) create mode 100644 lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesInstanceIds.cpp rename lib/kokkos/core/{src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp => unit_test/hpx/TestHPX_IndependentInstancesRefCounting.cpp} (62%) create mode 100644 lib/kokkos/core/unit_test/incremental/Test14_MDRangeReduce.hpp rename lib/kokkos/core/{src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp => unit_test/incremental/Test16_ParallelScan.hpp} (60%) create mode 100644 lib/kokkos/core/unit_test/incremental/Test17_CompleteAtomic.hpp rename lib/kokkos/core/{src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp => unit_test/tools/TestAllCalls.cpp} (50%) create mode 100644 lib/kokkos/core/unit_test/tools/TestCInterface.c create mode 100644 lib/kokkos/core/unit_test/tools/TestTuning.cpp create mode 100644 lib/kokkos/core/unit_test/tools/printing-tool.cpp delete mode 100644 lib/kokkos/example/build_cmake_in_tree/foo.f diff --git a/lib/kokkos/BUILD.md b/lib/kokkos/BUILD.md index 63dbf7fdb2..0a5dc69c93 100644 --- a/lib/kokkos/BUILD.md +++ b/lib/kokkos/BUILD.md @@ -10,33 +10,45 @@ for C++. Applications heavily leveraging Kokkos are strongly encouraged to use You can either use Kokkos as an installed package (encouraged) or use Kokkos in-tree in your project. Modern CMake is exceedingly simple at a high-level (with the devil in the details). Once Kokkos is installed In your `CMakeLists.txt` simply use: -```` +````cmake find_package(Kokkos REQUIRED) ```` Then for every executable or library in your project: -```` +````cmake target_link_libraries(myTarget Kokkos::kokkos) ```` That's it! There is no checking Kokkos preprocessor, compiler, or linker flags. Kokkos propagates all the necessary flags to your project. This means not only is linking to Kokkos easy, but Kokkos itself can actually configure compiler and linker flags for *your* -project. If building in-tree, there is no `find_package` and you link with `target_link_libraries(kokkos)`. +project. +When configuring your project just set: +````bash +> cmake ${srcdir} \ + -DKokkos_ROOT=${kokkos_install_prefix} \ + -DCMAKE_CXX_COMPILER=${compiler_used_to_build_kokkos} +```` +Note: You may need the following if using some versions of CMake (e.g. 3.12): +````cmake +cmake_policy(SET CMP0074 NEW) +```` +If building in-tree, there is no `find_package`. You can use `add_subdirectory(kokkos)` with the Kokkos source and again just link with `target_link_libraries(Kokkos::kokkos)`. +The examples in `examples/cmake_build_installed` and `examples/cmake_build_in_tree` can help get you started. ## Configuring CMake -A very basic installation is done with: -```` -cmake ${srcdir} \ +A very basic installation of Kokkos is done with: +````bash +> cmake ${srcdir} \ -DCMAKE_CXX_COMPILER=g++ \ - -DCMAKE_INSTALL_PREFIX=${my_install_folder} + -DCMAKE_INSTALL_PREFIX=${kokkos_install_folder} ```` which builds and installed a default Kokkos when you run `make install`. There are numerous device backends, options, and architecture-specific optimizations that can be configured, e.g. -```` -cmake ${srcdir} \ +````bash +> cmake ${srcdir} \ -DCMAKE_CXX_COMPILER=g++ \ - -DCMAKE_INSTALL_PREFIX=${my_install_folder} \ - -DKokkos_ENABLE_OPENMP=On + -DCMAKE_INSTALL_PREFIX=${kokkos_install_folder} \ + -DKokkos_ENABLE_OPENMP=ON ```` which activates the OpenMP backend. All of the options controlling device backends, options, architectures, and third-party libraries (TPLs) are given below. @@ -50,16 +62,16 @@ which activates the OpenMP backend. All of the options controlling device backen ## Spack An alternative to manually building with the CMake is to use the Spack package manager. To do so, download the `kokkos-spack` git repo and add to the package list: -```` -spack repo add $path-to-kokkos-spack +````bash +> spack repo add $path-to-kokkos-spack ```` A basic installation would be done as: -```` -spack install kokkos +````bash +> spack install kokkos ```` Spack allows options and and compilers to be tuned in the install command. -```` -spack install kokkos@3.0 %gcc@7.3.0 +openmp +````bash +> spack install kokkos@3.0 %gcc@7.3.0 +openmp ```` This example illustrates the three most common parameters to Spack: * Variants: specified with, e.g. `+openmp`, this activates (or deactivates with, e.g. `~openmp`) certain options. @@ -67,17 +79,17 @@ This example illustrates the three most common parameters to Spack: * Compiler: a default compiler will be chosen if not specified, but an exact compiler version can be given with the `%`option. For a complete list of Kokkos options, run: +````bash +> spack info kokkos ```` -spack info kokkos -```` -More details can be found in the kokkos-spack repository [README](https://github.com/kokkos/kokkos-spack/blob/master/README.md). +More details can be found in the [Spack README](Spack.md) #### Spack Development Spack currently installs packages to a location determined by a unique hash. This hash name is not really "human readable". Generally, Spack usage should never really require you to reference the computer-generated unique install folder. If you must know, you can locate Spack Kokkos installations with: -```` -spack find -p kokkos ... +````bash +> spack find -p kokkos ... ```` where `...` is the unique spec identifying the particular Kokkos configuration and version. @@ -102,8 +114,14 @@ Device backends can be enabled by specifying `-DKokkos_ENABLE_X`. * Whether to build Pthread backend * BOOL Default: OFF * Kokkos_ENABLE_SERIAL - * Whether to build serial backend + * Whether to build serial backend * BOOL Default: ON +* Kokkos_ENABLE_HIP (Experimental) + * Whether to build HIP backend + * BOOL Default: OFF +* Kokkos_ENABLE_OPENMPTARGET (Experimental) + * Whether to build the OpenMP target backend + * BOOL Default: OFF ## Enable Options Options can be enabled by specifying `-DKokkos_ENABLE_X`. @@ -138,9 +156,6 @@ Options can be enabled by specifying `-DKokkos_ENABLE_X`. * Kokkos_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK * Debug check on dual views * BOOL Default: OFF -* Kokkos_ENABLE_DEPRECATED_CODE - * Whether to enable deprecated code - * BOOL Default: OFF * Kokkos_ENABLE_EXAMPLES * Whether to enable building examples * BOOL Default: OFF @@ -150,9 +165,6 @@ Options can be enabled by specifying `-DKokkos_ENABLE_X`. * Kokkos_ENABLE_LARGE_MEM_TESTS * Whether to perform extra large memory tests * BOOL_Default: OFF -* Kokkos_ENABLE_PROFILING - * Whether to create bindings for profiling tools - * BOOL Default: ON * Kokkos_ENABLE_PROFILING_LOAD_PRINT * Whether to print information about which profiling tools gotloaded * BOOL Default: OFF @@ -235,8 +247,11 @@ Architecture-specific optimizations can be enabled by specifying `-DKokkos_ARCH_ * Kokkos_ARCH_BGQ * Whether to optimize for the BGQ architecture * BOOL Default: OFF -* Kokkos_ARCH_EPYC - * Whether to optimize for the EPYC architecture +* Kokkos_ARCH_ZEN + * Whether to optimize for the Zen architecture + * BOOL Default: OFF +* Kokkos_ARCH_ZEN2 + * Whether to optimize for the Zen2 architecture * BOOL Default: OFF * Kokkos_ARCH_HSW * Whether to optimize for the HSW architecture diff --git a/lib/kokkos/CHANGELOG.md b/lib/kokkos/CHANGELOG.md index 9595b03ff9..c0c227999d 100644 --- a/lib/kokkos/CHANGELOG.md +++ b/lib/kokkos/CHANGELOG.md @@ -1,6 +1,113 @@ # Change Log -## [3.1.1](https://github.com/kokkos/kokkos/tree/3.1.1) (2020-04-14) +## [3.2.00](https://github.com/kokkos/kokkos/tree/3.2.00) (2020-08-19) +[Full Changelog](https://github.com/kokkos/kokkos/compare/3.1.01...3.2.00) + +**Implemented enhancements:** + +- HIP:Enable stream in HIP [\#3163](https://github.com/kokkos/kokkos/issues/3163) +- HIP:Add support for shuffle reduction for the HIP backend [\#3154](https://github.com/kokkos/kokkos/issues/3154) +- HIP:Add implementations of missing HIPHostPinnedSpace methods for LAMMPS [\#3137](https://github.com/kokkos/kokkos/issues/3137) +- HIP:Require HIP 3.5.0 or higher [\#3099](https://github.com/kokkos/kokkos/issues/3099) +- HIP:WorkGraphPolicy for HIP [\#3096](https://github.com/kokkos/kokkos/issues/3096) +- OpenMPTarget: Significant update to the new experimental backend. Requires C++17, works on Intel GPUs, reference counting fixes. [\#3169](https://github.com/kokkos/kokkos/issues/3169) +- Windows Cuda support [\#3018](https://github.com/kokkos/kokkos/issues/3018) +- Pass `-Wext-lambda-captures-this` to NVCC when support for `__host__ __device__` lambda is enabled from CUDA 11 [\#3241](https://github.com/kokkos/kokkos/issues/3241) +- Use explicit staging buffer for constant memory kernel launches and cleanup host/device synchronization [\#3234](https://github.com/kokkos/kokkos/issues/3234) +- Various fixup to policies including making TeamPolicy default constructible and making RangePolicy and TeamPolicy assignable 1: [\#3202](https://github.com/kokkos/kokkos/issues/3202) +- Various fixup to policies including making TeamPolicy default constructible and making RangePolicy and TeamPolicy assignable 2: [\#3203](https://github.com/kokkos/kokkos/issues/3203) +- Various fixup to policies including making TeamPolicy default constructible and making RangePolicy and TeamPolicy assignable 3: [\#3196](https://github.com/kokkos/kokkos/issues/3196) +- Annotations for `DefaultExectutionSpace` and `DefaultHostExectutionSpace` to use in static analysis [\#3189](https://github.com/kokkos/kokkos/issues/3189) +- Add documentation on using Spack to install Kokkos and developing packages that depend on Kokkos [\#3187](https://github.com/kokkos/kokkos/issues/3187) +- Improve support for nvcc\_wrapper with exotic host compiler [\#3186](https://github.com/kokkos/kokkos/issues/3186) +- Add OpenMPTarget backend flags for NVC++ compiler [\#3185](https://github.com/kokkos/kokkos/issues/3185) +- Move deep\_copy/create\_mirror\_view on Experimental::OffsetView into Kokkos:: namespace [\#3166](https://github.com/kokkos/kokkos/issues/3166) +- Allow for larger block size in HIP [\#3165](https://github.com/kokkos/kokkos/issues/3165) +- View: Added names of Views to the different View initialize/free kernels [\#3159](https://github.com/kokkos/kokkos/issues/3159) +- Cuda: Caching cudaFunctorAttributes and whether L1/Shmem prefer was set [\#3151](https://github.com/kokkos/kokkos/issues/3151) +- BuildSystem: Provide an explicit default CMAKE\_BUILD\_TYPE [\#3131](https://github.com/kokkos/kokkos/issues/3131) +- Cuda: Update CUDA occupancy calculation [\#3124](https://github.com/kokkos/kokkos/issues/3124) +- Vector: Adding data() to Vector [\#3123](https://github.com/kokkos/kokkos/issues/3123) +- BuildSystem: Add CUDA Ampere configuration support [\#3122](https://github.com/kokkos/kokkos/issues/3122) +- General: Apply [[noreturn]] to Kokkos::abort when applicable [\#3106](https://github.com/kokkos/kokkos/issues/3106) +- TeamPolicy: Validate storage level argument passed to TeamPolicy::set\_scratch\_size() [\#3098](https://github.com/kokkos/kokkos/issues/3098) +- nvcc\_wrapper: send --cudart to nvcc instead of host compiler [\#3092](https://github.com/kokkos/kokkos/issues/3092) +- BuildSystem: Make kokkos\_has\_string() function in Makefile.kokkos case insensitive [\#3091](https://github.com/kokkos/kokkos/issues/3091) +- Modify KOKKOS\_FUNCTION macro for clang-tidy analysis [\#3087](https://github.com/kokkos/kokkos/issues/3087) +- Move allocation profiling to allocate/deallocate calls [\#3084](https://github.com/kokkos/kokkos/issues/3084) +- BuildSystem: FATAL\_ERROR when attempting in-source build [\#3082](https://github.com/kokkos/kokkos/issues/3082) +- Change enums in ScatterView to types [\#3076](https://github.com/kokkos/kokkos/issues/3076) +- HIP: Changes for new compiler/runtime [\#3067](https://github.com/kokkos/kokkos/issues/3067) +- Extract and use get\_gpu [\#3061](https://github.com/kokkos/kokkos/issues/3061) +- Extract and use get\_gpu [\#3048](https://github.com/kokkos/kokkos/issues/3048) +- Add is\_allocated to View-like containers [\#3059](https://github.com/kokkos/kokkos/issues/3059) +- Combined reducers for scalar references [\#3052](https://github.com/kokkos/kokkos/issues/3052) +- Add configurable capacity for UniqueToken [\#3051](https://github.com/kokkos/kokkos/issues/3051) +- Add installation testing [\#3034](https://github.com/kokkos/kokkos/issues/3034) +- BuildSystem: Add -expt-relaxed-constexpr flag to nvcc\_wrapper [\#3021](https://github.com/kokkos/kokkos/issues/3021) +- HIP: Add UniqueToken [\#3020](https://github.com/kokkos/kokkos/issues/3020) +- Autodetect number of devices [\#3013](https://github.com/kokkos/kokkos/issues/3013) + + +**Fixed bugs:** + +- Check error code from `cudaStreamSynchronize` in CUDA fences [\#3255](https://github.com/kokkos/kokkos/issues/3255) +- Fix issue with C++ standard flags when using `nvcc\_wrapper` with PGI [\#3254](https://github.com/kokkos/kokkos/issues/3254) +- Add missing threadfence in lock-based atomics [\#3208](https://github.com/kokkos/kokkos/issues/3208) +- Fix dedup of linker flags for shared lib on CMake <=3.12 [\#3176](https://github.com/kokkos/kokkos/issues/3176) +- Fix memory leak with CUDA streams [\#3170](https://github.com/kokkos/kokkos/issues/3170) +- BuildSystem: Fix OpenMP Target flags for Cray [\#3161](https://github.com/kokkos/kokkos/issues/3161) +- ScatterView: fix for OpenmpTarget remove inheritance from reducers [\#3162](https://github.com/kokkos/kokkos/issues/3162) +- BuildSystem: Set OpenMP flags according to host compiler [\#3127](https://github.com/kokkos/kokkos/issues/3127) +- OpenMP: Fix logic for nested omp in partition\_master bug [\#3101](https://github.com/kokkos/kokkos/issues/3101) +- BuildSystem: Fixes for Cuda/11 and c++17 [\#3085](https://github.com/kokkos/kokkos/issues/3085) +- HIP: Fix print\_configuration [\#3080](https://github.com/kokkos/kokkos/issues/3080) +- Conditionally define get\_gpu [\#3072](https://github.com/kokkos/kokkos/issues/3072) +- Fix bounds for ranges in random number generator [\#3069](https://github.com/kokkos/kokkos/issues/3069) +- Fix Cuda minor arch check [\#3035](https://github.com/kokkos/kokkos/issues/3035) + +**Incompatibilities:** + +- Remove ETI support [\#3157](https://github.com/kokkos/kokkos/issues/3157) +- Remove KOKKOS\_INTERNAL\_ENABLE\_NON\_CUDA\_BACKEND [\#3147](https://github.com/kokkos/kokkos/issues/3147) +- Remove core/unit\_test/config [\#3146](https://github.com/kokkos/kokkos/issues/3146) +- Removed the preprocessor branch for KOKKOS\_ENABLE\_PROFILING [\#3115](https://github.com/kokkos/kokkos/issues/3115) +- Disable profiling with MSVC [\#3066](https://github.com/kokkos/kokkos/issues/3066) + +**Closed issues:** + +- Silent error (Validate storage level arg to set_scratch_size) [\#3097](https://github.com/kokkos/kokkos/issues/3097) +- Remove KOKKKOS\_ENABLE\_PROFILING Option [\#3095](https://github.com/kokkos/kokkos/issues/3095) +- Cuda 11 -\> allow C++17 [\#3083](https://github.com/kokkos/kokkos/issues/3083) +- In source build failure not explained [\#3081](https://github.com/kokkos/kokkos/issues/3081) +- Allow naming of Views for initialization kernel [\#3070](https://github.com/kokkos/kokkos/issues/3070) +- DefaultInit tests failing when using CTest resource allocation feature [\#3040](https://github.com/kokkos/kokkos/issues/3040) +- Add installation testing. [\#3037](https://github.com/kokkos/kokkos/issues/3037) +- nvcc\_wrapper needs to handle `-expt-relaxed-constexpr` flag [\#3017](https://github.com/kokkos/kokkos/issues/3017) +- CPU core oversubscription warning on macOS with OpenMP backend [\#2996](https://github.com/kokkos/kokkos/issues/2996) +- Default behavior of KOKKOS\_NUM\_DEVICES to use all devices available [\#2975](https://github.com/kokkos/kokkos/issues/2975) +- Assert blocksize \> 0 [\#2974](https://github.com/kokkos/kokkos/issues/2974) +- Add ability to assign kokkos profile function from executable [\#2973](https://github.com/kokkos/kokkos/issues/2973) +- ScatterView Support for the pre/post increment operator [\#2967](https://github.com/kokkos/kokkos/issues/2967) + +- Compiler issue: Cuda build with clang 10 has errors with the atomic unit tests [\#3237](https://github.com/kokkos/kokkos/issues/3237) +- Incompatibility of flags for C++ standard with PGI v20.4 on Power9/NVIDIA V100 system [\#3252](https://github.com/kokkos/kokkos/issues/3252) +- Error configuring as subproject [\#3140](https://github.com/kokkos/kokkos/issues/3140) +- CMake fails with Nvidia compilers when the GPU architecture option is not supplied (Fix configure with OMPT and Cuda) [\#3207](https://github.com/kokkos/kokkos/issues/3207) +- PGI compiler being passed the gcc -fopenmp flag [\#3125](https://github.com/kokkos/kokkos/issues/3125) +- Cuda: Memory leak when using CUDA stream [\#3167](https://github.com/kokkos/kokkos/issues/3167) +- RangePolicy has an implicitly deleted assignment operator [\#3192](https://github.com/kokkos/kokkos/issues/3192) +- MemorySpace::allocate needs to have memory pool counting. [\#3064](https://github.com/kokkos/kokkos/issues/3064) +- Missing write fence for lock based atomics on CUDA [\#3038](https://github.com/kokkos/kokkos/issues/3038) +- CUDA compute capability version check problem [\#3026](https://github.com/kokkos/kokkos/issues/3026) +- Make DynRankView fencing consistent [\#3014](https://github.com/kokkos/kokkos/issues/3014) +- nvcc\_wrapper cant handle -Xcompiler -o out.o [\#2993](https://github.com/kokkos/kokkos/issues/2993) +- Reductions of non-trivial types of size 4 fail in CUDA shfl operations [\#2990](https://github.com/kokkos/kokkos/issues/2990) +- complex\_double misalignment in reduce, clang+CUDA [\#2989](https://github.com/kokkos/kokkos/issues/2989) +- Span of degenerated \(zero-length\) subviews is not zero in some special cases [\#2979](https://github.com/kokkos/kokkos/issues/2979) +- Rank 1 custom layouts dont work as expected. [\#2840](https://github.com/kokkos/kokkos/issues/2840) + +## [3.1.01](https://github.com/kokkos/kokkos/tree/3.1.1) (2020-04-14) [Full Changelog](https://github.com/kokkos/kokkos/compare/3.1.00...3.1.1) **Fixed bugs:** diff --git a/lib/kokkos/CMakeLists.txt b/lib/kokkos/CMakeLists.txt index 0e2aaa1897..540665e48a 100644 --- a/lib/kokkos/CMakeLists.txt +++ b/lib/kokkos/CMakeLists.txt @@ -1,4 +1,9 @@ +# Disable in-source builds to prevent source tree corruption. +if( "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}" ) + message( FATAL_ERROR "FATAL: In-source builds are not allowed. You should create a separate directory for build files." ) +endif() + # We want to determine if options are given with the wrong case # In order to detect which arguments are given to compare against # the list of valid arguments, at the beginning here we need to @@ -34,6 +39,9 @@ IF(COMMAND TRIBITS_PACKAGE_DECL) ELSE() SET(KOKKOS_HAS_TRILINOS OFF) ENDIF() +# Is this build a subdirectory of another project +GET_DIRECTORY_PROPERTY(HAS_PARENT PARENT_DIRECTORY) + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_functions.cmake) INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_pick_cxx_std.cmake) @@ -75,16 +83,17 @@ IF(NOT KOKKOS_HAS_TRILINOS) SET(CMAKE_CXX_COMPILER ${SPACK_CXX} CACHE STRING "the C++ compiler" FORCE) SET(ENV{CXX} ${SPACK_CXX}) ENDIF() - ENDif() - IF(NOT DEFINED ${PROJECT_NAME}) - # WORKAROUND FOR HIPCC - IF(Kokkos_ENABLE_HIP) - SET(KOKKOS_INTERNAL_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --amdgpu-target=gfx906") - ENDIF() - PROJECT(Kokkos CXX) - IF(Kokkos_ENABLE_HIP) - SET(CMAKE_CXX_FLAGS ${KOKKOS_INTERNAL_CMAKE_CXX_FLAGS}) + ENDIF() + # Always call the project command to define Kokkos_ variables + # and to make sure that C++ is an enabled language + PROJECT(Kokkos CXX) + IF(NOT HAS_PARENT) + IF (NOT CMAKE_BUILD_TYPE) + SET(DEFAULT_BUILD_TYPE "RelWithDebInfo") + MESSAGE(STATUS "Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified.") + SET(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING + "Choose the type of build, options are: Debug, Release, RelWithDebInfo and MinSizeRel." + FORCE) ENDIF() ENDIF() ENDIF() @@ -102,8 +111,8 @@ ENDIF() set(Kokkos_VERSION_MAJOR 3) -set(Kokkos_VERSION_MINOR 1) -set(Kokkos_VERSION_PATCH 1) +set(Kokkos_VERSION_MINOR 2) +set(Kokkos_VERSION_PATCH 0) set(Kokkos_VERSION "${Kokkos_VERSION_MAJOR}.${Kokkos_VERSION_MINOR}.${Kokkos_VERSION_PATCH}") math(EXPR KOKKOS_VERSION "${Kokkos_VERSION_MAJOR} * 10000 + ${Kokkos_VERSION_MINOR} * 100 + ${Kokkos_VERSION_PATCH}") @@ -147,6 +156,7 @@ INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_tribits.cmake) # Check the environment and set certain variables # to allow platform-specific checks INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_check_env.cmake) + # The build environment setup goes in the following steps # 1) Check all the enable options. This includes checking Kokkos_DEVICES # 2) Check the compiler ID (type and version) @@ -169,7 +179,6 @@ SET(KOKKOS_EXT_LIBRARIES Kokkos::kokkos Kokkos::kokkoscore Kokkos::kokkoscontain SET(KOKKOS_INT_LIBRARIES kokkos kokkoscore kokkoscontainers kokkosalgorithms) SET_PROPERTY(GLOBAL PROPERTY KOKKOS_INT_LIBRARIES ${KOKKOS_INT_LIBRARIES}) -GET_DIRECTORY_PROPERTY(HAS_PARENT PARENT_DIRECTORY) IF (KOKKOS_HAS_TRILINOS) SET(TRILINOS_INCDIR ${CMAKE_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_INCLUDE_DIR}) SET(KOKKOS_HEADER_DIR ${TRILINOS_INCDIR}) @@ -203,7 +212,7 @@ IF (KOKKOS_HAS_TRILINOS) SET(KOKKOSCORE_XCOMPILER_OPTIONS "${KOKKOSCORE_XCOMPILER_OPTIONS} -Xcompiler ${XCOMP_FLAG}") LIST(APPEND KOKKOS_ALL_COMPILE_OPTIONS -Xcompiler ${XCOMP_FLAG}) ENDFOREACH() - SET(KOKKOSCORE_CXX_FLAGS "${KOKKOSCORE_COMPILE_OPTIONS} ${CMAKE_CXX${KOKKOS_CXX_STANDARD}_STANDARD_COMPILE_OPTION} ${KOKKOSCORE_XCOMPILER_OPTIONS}") + SET(KOKKOSCORE_CXX_FLAGS "${KOKKOSCORE_COMPILE_OPTIONS} ${KOKKOSCORE_XCOMPILER_OPTIONS}") IF (KOKKOS_ENABLE_CUDA) STRING(REPLACE ";" " " KOKKOSCORE_CUDA_OPTIONS "${KOKKOS_CUDA_OPTIONS}") FOREACH(CUDAFE_FLAG ${KOKKOS_CUDAFE_OPTIONS}) @@ -246,7 +255,7 @@ KOKKOS_PACKAGE_POSTPROCESS() #We are ready to configure the header CONFIGURE_FILE(cmake/KokkosCore_config.h.in KokkosCore_config.h @ONLY) -IF (NOT KOKKOS_HAS_TRILINOS) +IF (NOT KOKKOS_HAS_TRILINOS AND NOT Kokkos_INSTALL_TESTING) ADD_LIBRARY(kokkos INTERFACE) #Make sure in-tree projects can reference this as Kokkos:: #to match the installed target names @@ -262,8 +271,6 @@ INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_install.cmake) # If the argument of DESTINATION is a relative path, CMake computes it # as relative to ${CMAKE_INSTALL_PATH}. INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bin/nvcc_wrapper DESTINATION ${CMAKE_INSTALL_BINDIR}) -INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/KokkosCore_config.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - # Finally - if we are a subproject - make sure the enabled devices are visible IF (HAS_PARENT) diff --git a/lib/kokkos/Makefile.kokkos b/lib/kokkos/Makefile.kokkos index cf5f06c64c..0736d75833 100644 --- a/lib/kokkos/Makefile.kokkos +++ b/lib/kokkos/Makefile.kokkos @@ -11,20 +11,20 @@ CXXFLAGS += $(SHFLAGS) endif KOKKOS_VERSION_MAJOR = 3 -KOKKOS_VERSION_MINOR = 1 -KOKKOS_VERSION_PATCH = 1 +KOKKOS_VERSION_MINOR = 2 +KOKKOS_VERSION_PATCH = 0 KOKKOS_VERSION = $(shell echo $(KOKKOS_VERSION_MAJOR)*10000+$(KOKKOS_VERSION_MINOR)*100+$(KOKKOS_VERSION_PATCH) | bc) # Options: Cuda,HIP,ROCm,OpenMP,Pthread,Serial KOKKOS_DEVICES ?= "OpenMP" #KOKKOS_DEVICES ?= "Pthread" -# Options: +# Options: # Intel: KNC,KNL,SNB,HSW,BDW,SKX -# NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75 +# NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75,Ampere80 # ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2 # IBM: BGQ,Power7,Power8,Power9 # AMD-GPUS: Vega900,Vega906 -# AMD-CPUS: AMDAVX,EPYC +# AMD-CPUS: AMDAVX,Zen,Zen2 KOKKOS_ARCH ?= "" # Options: yes,no KOKKOS_DEBUG ?= "no" @@ -32,10 +32,8 @@ KOKKOS_DEBUG ?= "no" KOKKOS_USE_TPLS ?= "" # Options: c++11,c++14,c++1y,c++17,c++1z,c++2a KOKKOS_CXX_STANDARD ?= "c++11" -# Options: aggressive_vectorization,disable_profiling,enable_deprecated_code,disable_deprecated_code,enable_large_mem_tests,disable_complex_align +# Options: aggressive_vectorization,disable_profiling,enable_large_mem_tests,disable_complex_align KOKKOS_OPTIONS ?= "" -# Option for setting ETI path -KOKKOS_ETI_PATH ?= ${KOKKOS_PATH}/core/src/eti KOKKOS_CMAKE ?= "no" KOKKOS_TRIBITS ?= "no" KOKKOS_STANDALONE_CMAKE ?= "no" @@ -74,6 +72,7 @@ KOKKOS_INTERNAL_ENABLE_CXX1Y := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD), KOKKOS_INTERNAL_ENABLE_CXX17 := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++17) KOKKOS_INTERNAL_ENABLE_CXX1Z := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++1z) KOKKOS_INTERNAL_ENABLE_CXX2A := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++2a) +KOKKOS_INTERNAL_ENABLE_CXX20 := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++20) # Check for external libraries. KOKKOS_INTERNAL_USE_HWLOC := $(call kokkos_has_string,$(KOKKOS_USE_TPLS),hwloc) @@ -83,9 +82,7 @@ KOKKOS_INTERNAL_USE_MEMKIND := $(call kokkos_has_string,$(KOKKOS_USE_TPLS),exper # Check for advanced settings. KOKKOS_INTERNAL_ENABLE_COMPILER_WARNINGS := $(call kokkos_has_string,$(KOKKOS_OPTIONS),compiler_warnings) KOKKOS_INTERNAL_OPT_RANGE_AGGRESSIVE_VECTORIZATION := $(call kokkos_has_string,$(KOKKOS_OPTIONS),aggressive_vectorization) -KOKKOS_INTERNAL_DISABLE_PROFILING := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_profiling) -KOKKOS_INTERNAL_DISABLE_DEPRECATED_CODE := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_deprecated_code) -KOKKOS_INTERNAL_ENABLE_DEPRECATED_CODE := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_deprecated_code) +KOKKOS_INTERNAL_ENABLE_TUNING := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_tuning) KOKKOS_INTERNAL_DISABLE_COMPLEX_ALIGN := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_complex_align) KOKKOS_INTERNAL_DISABLE_DUALVIEW_MODIFY_CHECK := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_dualview_modify_check) KOKKOS_INTERNAL_ENABLE_PROFILING_LOAD_PRINT := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_profile_load_print) @@ -96,7 +93,6 @@ KOKKOS_INTERNAL_CUDA_USE_RELOC := $(call kokkos_has_string,$(KOKKOS_CUDA_OPTIONS KOKKOS_INTERNAL_CUDA_USE_LAMBDA := $(call kokkos_has_string,$(KOKKOS_CUDA_OPTIONS),enable_lambda) KOKKOS_INTERNAL_CUDA_USE_CONSTEXPR := $(call kokkos_has_string,$(KOKKOS_CUDA_OPTIONS),enable_constexpr) KOKKOS_INTERNAL_HPX_ENABLE_ASYNC_DISPATCH := $(call kokkos_has_string,$(KOKKOS_HPX_OPTIONS),enable_async_dispatch) -KOKKOS_INTERNAL_ENABLE_ETI := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_eti) KOKKOS_INTERNAL_HIP_USE_RELOC := $(call kokkos_has_string,$(KOKKOS_HIP_OPTIONS),rdc) @@ -140,6 +136,12 @@ ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) KOKKOS_DEVICELIST += OPENMPTARGET + KOKKOS_INTERNAL_HAVE_CXX17_OR_NEWER := $(shell expr $(KOKKOS_INTERNAL_ENABLE_CXX17) \ + + $(KOKKOS_INTERNAL_ENABLE_CXX20) \ + + $(KOKKOS_INTERNAL_ENABLE_CXX2A)) + ifneq ($(KOKKOS_INTERNAL_HAVE_CXX17_OR_NEWER), 1) + $(error OpenMPTarget backend requires C++17 or newer) + endif endif ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) @@ -281,7 +283,7 @@ endif ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1) KOKKOS_INTERNAL_CXX11_FLAG := --c++11 KOKKOS_INTERNAL_CXX14_FLAG := --c++14 - #KOKKOS_INTERNAL_CXX17_FLAG := --c++17 + KOKKOS_INTERNAL_CXX17_FLAG := --c++17 else ifeq ($(KOKKOS_INTERNAL_COMPILER_XL), 1) KOKKOS_INTERNAL_CXX11_FLAG := -std=c++11 @@ -338,35 +340,27 @@ KOKKOS_INTERNAL_USE_ARCH_PASCAL60 := $(call kokkos_has_string,$(KOKKOS_ARCH),Pas KOKKOS_INTERNAL_USE_ARCH_VOLTA70 := $(call kokkos_has_string,$(KOKKOS_ARCH),Volta70) KOKKOS_INTERNAL_USE_ARCH_VOLTA72 := $(call kokkos_has_string,$(KOKKOS_ARCH),Volta72) KOKKOS_INTERNAL_USE_ARCH_TURING75 := $(call kokkos_has_string,$(KOKKOS_ARCH),Turing75) +KOKKOS_INTERNAL_USE_ARCH_AMPERE80 := $(call kokkos_has_string,$(KOKKOS_ARCH),Ampere80) KOKKOS_INTERNAL_USE_ARCH_NVIDIA := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KEPLER30) \ + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER32) \ + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER35) \ + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER37) \ + + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \ + + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \ + + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53) \ + $(KOKKOS_INTERNAL_USE_ARCH_PASCAL61) \ + $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \ + $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \ + $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \ + $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \ - + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \ - + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \ - + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53)) + + $(KOKKOS_INTERNAL_USE_ARCH_AMPERE80)) #SEK: This seems like a bug to me ifeq ($(KOKKOS_INTERNAL_USE_ARCH_NVIDIA), 0) KOKKOS_INTERNAL_USE_ARCH_MAXWELL50 := $(call kokkos_has_string,$(KOKKOS_ARCH),Maxwell) KOKKOS_INTERNAL_USE_ARCH_KEPLER35 := $(call kokkos_has_string,$(KOKKOS_ARCH),Kepler) - KOKKOS_INTERNAL_USE_ARCH_NVIDIA := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KEPLER30) \ - + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER32) \ - + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER35) \ - + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER37) \ - + $(KOKKOS_INTERNAL_USE_ARCH_PASCAL61) \ - + $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \ - + $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \ - + $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \ - + $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \ - + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \ - + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \ - + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53)) + KOKKOS_INTERNAL_USE_ARCH_NVIDIA := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KEPLER35) \ + + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50)) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_NVIDIA), 1) @@ -394,19 +388,20 @@ KOKKOS_INTERNAL_USE_ARCH_IBM := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_ # AMD based. KOKKOS_INTERNAL_USE_ARCH_AMDAVX := $(call kokkos_has_string,$(KOKKOS_ARCH),AMDAVX) -KOKKOS_INTERNAL_USE_ARCH_EPYC := $(call kokkos_has_string,$(KOKKOS_ARCH),EPYC) +KOKKOS_INTERNAL_USE_ARCH_ZEN2 := $(call kokkos_has_string,$(KOKKOS_ARCH),Zen2) +KOKKOS_INTERNAL_USE_ARCH_ZEN := $(call kokkos_has_string,$(KOKKOS_ARCH),Zen) KOKKOS_INTERNAL_USE_ARCH_VEGA900 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega900) KOKKOS_INTERNAL_USE_ARCH_VEGA906 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega906) # Any AVX? KOKKOS_INTERNAL_USE_ARCH_SSE42 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM)) KOKKOS_INTERNAL_USE_ARCH_AVX := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_AMDAVX)) -KOKKOS_INTERNAL_USE_ARCH_AVX2 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_EPYC)) +KOKKOS_INTERNAL_USE_ARCH_AVX2 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN2)) KOKKOS_INTERNAL_USE_ARCH_AVX512MIC := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KNL)) KOKKOS_INTERNAL_USE_ARCH_AVX512XEON := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_SKX)) # Decide what ISA level we are able to support. -KOKKOS_INTERNAL_USE_ISA_X86_64 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM) + $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_KNL) + $(KOKKOS_INTERNAL_USE_ARCH_SKX) + $(KOKKOS_INTERNAL_USE_ARCH_EPYC)) +KOKKOS_INTERNAL_USE_ISA_X86_64 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM) + $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_KNL) + $(KOKKOS_INTERNAL_USE_ARCH_SKX) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN2)) KOKKOS_INTERNAL_USE_ISA_KNC := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KNC)) KOKKOS_INTERNAL_USE_ISA_POWERPCLE := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_POWER8) + $(KOKKOS_INTERNAL_USE_ARCH_POWER9)) KOKKOS_INTERNAL_USE_ISA_POWERPCBE := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_POWER7)) @@ -430,7 +425,7 @@ endif KOKKOS_CPPFLAGS = KOKKOS_LIBDIRS = ifneq ($(KOKKOS_CMAKE), yes) - KOKKOS_CPPFLAGS = -I./ -I$(KOKKOS_PATH)/core/src -I$(KOKKOS_PATH)/containers/src -I$(KOKKOS_PATH)/algorithms/src -I$(KOKKOS_ETI_PATH) + KOKKOS_CPPFLAGS = -I./ -I$(KOKKOS_PATH)/core/src -I$(KOKKOS_PATH)/containers/src -I$(KOKKOS_PATH)/algorithms/src endif KOKKOS_TPL_INCLUDE_DIRS = KOKKOS_TPL_LIBRARY_DIRS = @@ -458,88 +453,91 @@ KOKKOS_CONFIG_HEADER=KokkosCore_config.h # Functions for generating config header file kokkos_append_header = $(shell echo $1 >> $(KOKKOS_INTERNAL_CONFIG_TMP)) +# assign hash sign to variable for compat. with make 4.3 +H := \# + # Do not append first line tmp := $(shell echo "/* ---------------------------------------------" > KokkosCore_config.tmp) tmp := $(call kokkos_append_header,"Makefile constructed configuration:") tmp := $(call kokkos_append_header,"$(shell date)") tmp := $(call kokkos_append_header,"----------------------------------------------*/") -tmp := $(call kokkos_append_header,'\#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H)') -tmp := $(call kokkos_append_header,'\#error "Do not include $(KOKKOS_CONFIG_HEADER) directly; include Kokkos_Macros.hpp instead."') -tmp := $(call kokkos_append_header,'\#else') -tmp := $(call kokkos_append_header,'\#define KOKKOS_CORE_CONFIG_H') -tmp := $(call kokkos_append_header,'\#endif') +tmp := $(call kokkos_append_header,'$H''if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H)') +tmp := $(call kokkos_append_header,'$H''error "Do not include $(KOKKOS_CONFIG_HEADER) directly; include Kokkos_Macros.hpp instead."') +tmp := $(call kokkos_append_header,'$H''else') +tmp := $(call kokkos_append_header,'$H''define KOKKOS_CORE_CONFIG_H') +tmp := $(call kokkos_append_header,'$H''endif') tmp := $(call kokkos_append_header,"") -tmp := $(call kokkos_append_header,"\#define KOKKOS_VERSION $(KOKKOS_VERSION)") +tmp := $(call kokkos_append_header,"$H""define KOKKOS_VERSION $(KOKKOS_VERSION)") tmp := $(call kokkos_append_header,"") - + tmp := $(call kokkos_append_header,"/* Execution Spaces */") ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA") - tmp := $(call kokkos_append_header,"\#define KOKKOS_COMPILER_CUDA_VERSION $(KOKKOS_INTERNAL_COMPILER_NVCC_VERSION)") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_COMPILER_CUDA_VERSION $(KOKKOS_INTERNAL_COMPILER_NVCC_VERSION)") endif ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) - tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_ROCM') - tmp := $(call kokkos_append_header,'\#define KOKKOS_IMPL_ROCM_CLANG_WORKAROUND 1') + tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_ROCM') + tmp := $(call kokkos_append_header,'$H''define KOKKOS_IMPL_ROCM_CLANG_WORKAROUND 1') endif ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) - tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_HIP') + tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_HIP') endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) - tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_OPENMPTARGET') + tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_OPENMPTARGET') ifeq ($(KOKKOS_INTERNAL_COMPILER_GCC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_WORKAROUND_OPENMPTARGET_GCC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_WORKAROUND_OPENMPTARGET_GCC") endif endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) - tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_OPENMP') + tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_OPENMP') endif ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_THREADS") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_THREADS") endif ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HPX") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_HPX") endif ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_SERIAL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_SERIAL") endif ifeq ($(KOKKOS_INTERNAL_USE_TM), 1) - tmp := $(call kokkos_append_header,"\#ifndef __CUDA_ARCH__") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_TM") - tmp := $(call kokkos_append_header,"\#endif") + tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_TM") + tmp := $(call kokkos_append_header,"$H""endif") endif ifeq ($(KOKKOS_INTERNAL_USE_ISA_X86_64), 1) - tmp := $(call kokkos_append_header,"\#ifndef __CUDA_ARCH__") - tmp := $(call kokkos_append_header,"\#define KOKKOS_USE_ISA_X86_64") - tmp := $(call kokkos_append_header,"\#endif") + tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_X86_64") + tmp := $(call kokkos_append_header,"$H""endif") endif ifeq ($(KOKKOS_INTERNAL_USE_ISA_KNC), 1) - tmp := $(call kokkos_append_header,"\#ifndef __CUDA_ARCH__") - tmp := $(call kokkos_append_header,"\#define KOKKOS_USE_ISA_KNC") - tmp := $(call kokkos_append_header,"\#endif") + tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_KNC") + tmp := $(call kokkos_append_header,"$H""endif") endif ifeq ($(KOKKOS_INTERNAL_USE_ISA_POWERPCLE), 1) - tmp := $(call kokkos_append_header,"\#ifndef __CUDA_ARCH__") - tmp := $(call kokkos_append_header,"\#define KOKKOS_USE_ISA_POWERPCLE") - tmp := $(call kokkos_append_header,"\#endif") + tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_POWERPCLE") + tmp := $(call kokkos_append_header,"$H""endif") endif ifeq ($(KOKKOS_INTERNAL_USE_ISA_POWERPCBE), 1) - tmp := $(call kokkos_append_header,"\#ifndef __CUDA_ARCH__") - tmp := $(call kokkos_append_header,"\#define KOKKOS_USE_ISA_POWERPCBE") - tmp := $(call kokkos_append_header,"\#endif") + tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_POWERPCBE") + tmp := $(call kokkos_append_header,"$H""endif") endif #only add the c++ standard flags if this is not CMake @@ -548,34 +546,39 @@ ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX11), 1) ifneq ($(KOKKOS_STANDALONE_CMAKE), yes) KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX11_FLAG) endif - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX11") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX11") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX14), 1) ifneq ($(KOKKOS_STANDALONE_CMAKE), yes) KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX14_FLAG) endif - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX14") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX14") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX1Y), 1) #I cannot make CMake add this in a good way - so add it here KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX1Y_FLAG) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX14") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX14") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX17), 1) ifneq ($(KOKKOS_STANDALONE_CMAKE), yes) KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX17_FLAG) endif - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX17") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX17") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX1Z), 1) #I cannot make CMake add this in a good way - so add it here KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX1Z_FLAG) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX17") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX17") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX2A), 1) #I cannot make CMake add this in a good way - so add it here KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX2A_FLAG) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX20") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX20") +endif +ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX20), 1) + #I cannot make CMake add this in a good way - so add it here + KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX20_FLAG) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX20") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_DEBUG), 1) @@ -585,20 +588,26 @@ ifeq ($(KOKKOS_INTERNAL_ENABLE_DEBUG), 1) KOKKOS_CXXFLAGS += -g KOKKOS_LDFLAGS += -g - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_DEBUG") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_DEBUG") ifeq ($(KOKKOS_INTERNAL_DISABLE_DUALVIEW_MODIFY_CHECK), 0) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK") endif endif ifeq ($(KOKKOS_INTERNAL_DISABLE_COMPLEX_ALIGN), 0) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_COMPLEX_ALIGN") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_COMPLEX_ALIGN") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_PROFILING_LOAD_PRINT), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_PROFILING_LOAD_PRINT") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_PROFILING_LOAD_PRINT") +endif + +ifeq ($(KOKKOS_INTERNAL_ENABLE_TUNING), 1) + tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_TUNING") endif +tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_LIBDL") + ifeq ($(KOKKOS_INTERNAL_USE_HWLOC), 1) ifneq ($(KOKKOS_CMAKE), yes) ifneq ($(HWLOC_PATH),) @@ -611,11 +620,11 @@ ifeq ($(KOKKOS_INTERNAL_USE_HWLOC), 1) KOKKOS_LIBS += -lhwloc KOKKOS_TPL_LIBRARY_NAMES += hwloc endif - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HWLOC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_HWLOC") endif ifeq ($(KOKKOS_INTERNAL_USE_LIBRT), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_USE_LIBRT") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_LIBRT") KOKKOS_LIBS += -lrt KOKKOS_TPL_LIBRARY_NAMES += rt endif @@ -632,50 +641,36 @@ ifeq ($(KOKKOS_INTERNAL_USE_MEMKIND), 1) KOKKOS_LIBS += -lmemkind -lnuma KOKKOS_TPL_LIBRARY_NAMES += memkind numa endif - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HBWSPACE") -endif - -ifeq ($(KOKKOS_INTERNAL_DISABLE_PROFILING), 0) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_PROFILING") -endif - -ifeq ($(KOKKOS_INTERNAL_USE_HPX), 0) - ifeq ($(KOKKOS_INTERNAL_ENABLE_DEPRECATED_CODE), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_DEPRECATED_CODE") - endif -endif - -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_ETI") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_HBWSPACE") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_LARGE_MEM_TESTS), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_LARGE_MEM_TESTS") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_LARGE_MEM_TESTS") endif tmp := $(call kokkos_append_header,"/* Optimization Settings */") ifeq ($(KOKKOS_INTERNAL_OPT_RANGE_AGGRESSIVE_VECTORIZATION), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION") endif tmp := $(call kokkos_append_header,"/* Cuda Settings */") ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) ifeq ($(KOKKOS_INTERNAL_CUDA_USE_LDG), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC") else ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC") endif endif ifeq ($(KOKKOS_INTERNAL_CUDA_USE_UVM), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_UVM") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_UVM") endif ifeq ($(KOKKOS_INTERNAL_CUDA_USE_RELOC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE") ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) KOKKOS_CXXFLAGS += -fcuda-rdc KOKKOS_LDFLAGS += -fcuda-rdc @@ -696,7 +691,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) ifeq ($(KOKKOS_INTERNAL_CUDA_USE_LAMBDA), 1) ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) ifeq ($(shell test $(KOKKOS_INTERNAL_COMPILER_NVCC_VERSION) -gt 70; echo $$?),0) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_LAMBDA") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_LAMBDA") KOKKOS_CXXFLAGS += -expt-extended-lambda else $(warning Warning: Cuda Lambda support was requested but NVCC version is too low. This requires NVCC for Cuda version 7.5 or higher. Disabling Lambda support now.) @@ -704,14 +699,14 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) endif ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_LAMBDA") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_LAMBDA") endif endif ifeq ($(KOKKOS_INTERNAL_CUDA_USE_CONSTEXPR), 1) ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) ifeq ($(shell test $(KOKKOS_INTERNAL_COMPILER_NVCC_VERSION) -ge 80; echo $$?),0) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_CONSTEXPR") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_CONSTEXPR") KOKKOS_CXXFLAGS += -expt-relaxed-constexpr else $(warning Warning: Cuda relaxed constexpr support was requested but NVCC version is too low. This requires NVCC for Cuda version 8.0 or higher. Disabling relaxed constexpr support now.) @@ -719,25 +714,25 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) endif ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_CONSTEXPR") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_CONSTEXPR") endif endif ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_IMPL_CUDA_CLANG_WORKAROUND") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_IMPL_CUDA_CLANG_WORKAROUND") endif endif ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) ifeq ($(KOKKOS_INTERNAL_HPX_ENABLE_ASYNC_DISPATCH), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HPX_ASYNC_DISPATCH") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_HPX_ASYNC_DISPATCH") endif endif # Add Architecture flags. ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV80), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV80") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV80") ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1) KOKKOS_CXXFLAGS += @@ -754,7 +749,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV80), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV81), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV81") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV81") ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1) KOKKOS_CXXFLAGS += @@ -770,9 +765,9 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV81), 1) endif endif -ifeq ($(KOKKOS_INTERNAL_USE_ARCH_EPYC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AMD_EPYC") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AMD_AVX2") +ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ZEN), 1) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_ZEN") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_AVX2") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -mavx2 @@ -783,9 +778,22 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_EPYC), 1) endif endif +ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ZEN2), 1) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_ZEN2") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_AVX2") + + ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) + KOKKOS_CXXFLAGS += -mavx2 + KOKKOS_LDFLAGS += -mavx2 + else + KOKKOS_CXXFLAGS += -march=znver2 -mtune=znver2 + KOKKOS_LDFLAGS += -march=znver2 -mtune=znver2 + endif +endif + ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV80") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV8_THUNDERX") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV80") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV8_THUNDERX") ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1) KOKKOS_CXXFLAGS += @@ -802,8 +810,8 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX2), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV81") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV8_THUNDERX2") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV81") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV8_THUNDERX2") ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1) KOKKOS_CXXFLAGS += @@ -820,7 +828,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX2), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_SSE42), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_SSE42") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_SSE42") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -xSSE4.2 @@ -842,7 +850,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_SSE42), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AVX") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AVX") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -mavx @@ -864,7 +872,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER7), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_POWER7") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_POWER7") ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1) @@ -876,7 +884,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER7), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER8), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_POWER8") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_POWER8") ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1) @@ -897,7 +905,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER8), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER9), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_POWER9") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_POWER9") ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1) @@ -918,7 +926,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER9), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_HSW), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AVX2") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AVX2") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -xCORE-AVX2 @@ -940,7 +948,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_HSW), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_BDW), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AVX2") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AVX2") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -xCORE-AVX2 @@ -962,7 +970,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_BDW), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512MIC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AVX512MIC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AVX512MIC") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -xMIC-AVX512 @@ -983,7 +991,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512MIC), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512XEON), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AVX512XEON") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AVX512XEON") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -xCORE-AVX512 @@ -1004,7 +1012,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512XEON), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KNC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KNC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KNC") KOKKOS_CXXFLAGS += -mmic KOKKOS_LDFLAGS += -mmic endif @@ -1022,8 +1030,8 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA_ARCH), 1) ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) KOKKOS_INTERNAL_CUDA_ARCH_FLAG=-arch else ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - KOKKOS_INTERNAL_CUDA_ARCH_FLAG=--cuda-gpu-arch - KOKKOS_CXXFLAGS += -x cuda + KOKKOS_INTERNAL_CUDA_ARCH_FLAG=--cuda-gpu-arch + KOKKOS_CXXFLAGS += -x cuda else $(error Makefile.kokkos: CUDA is enabled but the compiler is neither NVCC nor Clang (got version string $(KOKKOS_CXX_VERSION)) ) endif @@ -1039,65 +1047,70 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_CUDA_ARCH), 1) ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER30), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER30") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER30") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_30 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER32), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER32") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER32") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_32 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER35), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER35") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER35") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_35 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER37), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER37") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER37") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_37 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL50") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL50") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_50 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL52") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL52") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_52 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL53") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL53") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_53 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_PASCAL60), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_PASCAL") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_PASCAL60") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_PASCAL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_PASCAL60") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_60 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_PASCAL61), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_PASCAL") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_PASCAL61") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_PASCAL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_PASCAL61") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_61 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VOLTA70), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VOLTA") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VOLTA70") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VOLTA") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VOLTA70") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_70 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VOLTA72), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VOLTA") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VOLTA72") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VOLTA") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VOLTA72") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_72 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_TURING75), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_TURING") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_TURING75") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_TURING") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_TURING75") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_75 endif + ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AMPERE80), 1) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMPERE") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMPERE80") + KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_80 + endif ifneq ($(KOKKOS_INTERNAL_USE_ARCH_NVIDIA), 0) KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG) @@ -1121,13 +1134,13 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) # Lets start with adding architecture defines ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VEGA900), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_HIP 900") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VEGA900") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_HIP 900") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VEGA900") KOKKOS_INTERNAL_HIP_ARCH_FLAG := --amdgpu-target=gfx900 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VEGA906), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_HIP 906") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VEGA906") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_HIP 906") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VEGA906") KOKKOS_INTERNAL_HIP_ARCH_FLAG := --amdgpu-target=gfx906 endif @@ -1138,7 +1151,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) KOKKOS_LDFLAGS+=$(KOKKOS_INTERNAL_HIP_ARCH_FLAG) ifeq ($(KOKKOS_INTERNAL_HIP_USE_RELOC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE") KOKKOS_CXXFLAGS+=-fgpu-rdc KOKKOS_LDFLAGS+=-fgpu-rdc else @@ -1171,9 +1184,6 @@ KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/containers/src/impl/*.cpp) ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/Cuda/*.cpp) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - KOKKOS_SRC += $(wildcard $(KOKKOS_ETI_PATH)/Cuda/*.cpp) -endif KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/Cuda/*.hpp) ifneq ($(CUDA_PATH),) KOKKOS_CPPLAGS += -I$(CUDA_PATH)/include @@ -1211,9 +1221,6 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/OpenMP/*.cpp) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - KOKKOS_SRC += $(wildcard $(KOKKOS_ETI_PATH)/OpenMP/*.cpp) -endif KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/OpenMP/*.hpp) ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) @@ -1228,9 +1235,6 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/Threads/*.cpp) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - KOKKOS_SRC += $(wildcard $(KOKKOS_ETI_PATH)/Threads/*.cpp) -endif KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/Threads/*.hpp) KOKKOS_LIBS += -lpthread KOKKOS_TPL_LIBRARY_NAMES += pthread @@ -1279,9 +1283,6 @@ endif # Don't include Kokkos_Serial.cpp or Kokkos_Serial_Task.cpp if not using Serial # device to avoid a link warning. ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - KOKKOS_SRC += $(wildcard $(KOKKOS_ETI_PATH)/Serial/*.cpp) -endif endif ifneq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) KOKKOS_SRC := $(filter-out $(KOKKOS_PATH)/core/src/impl/Kokkos_Serial.cpp,$(KOKKOS_SRC)) diff --git a/lib/kokkos/Makefile.targets b/lib/kokkos/Makefile.targets index 18e37a71f7..525962d2d5 100644 --- a/lib/kokkos/Makefile.targets +++ b/lib/kokkos/Makefile.targets @@ -26,21 +26,17 @@ Kokkos_Spinwait.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_Spi $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_Spinwait.cpp Kokkos_HostBarrier.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_HostBarrier.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_HostBarrier.cpp -Kokkos_Profiling_Interface.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_Profiling_Interface.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_Profiling_Interface.cpp +Kokkos_Profiling.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_Profiling.cpp + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_Profiling.cpp Kokkos_SharedAlloc.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_SharedAlloc.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_SharedAlloc.cpp Kokkos_MemoryPool.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_MemoryPool.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_MemoryPool.cpp +Kokkos_MemorySpace.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_MemorySpace.cpp + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_MemorySpace.cpp Kokkos_HostSpace_deepcopy.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_HostSpace_deepcopy.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_HostSpace_deepcopy.cpp -ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - include $(KOKKOS_ETI_PATH)/Serial/Makefile.eti_Serial -endif -endif - ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) Kokkos_Cuda_Instance.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Instance.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Instance.cpp @@ -50,9 +46,6 @@ Kokkos_Cuda_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cu $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Task.cpp Kokkos_Cuda_Locks.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Locks.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Locks.cpp -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - include $(KOKKOS_ETI_PATH)/Cuda/Makefile.eti_Cuda -endif endif ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) @@ -75,9 +68,6 @@ Kokkos_ROCm_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/ROCm/Kokkos_RO $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Task.cpp Kokkos_ROCm_Impl.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Impl.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Impl.cpp -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - include $(KOKKOS_ETI_PATH)/ROCm/Makefile.eti_ROCm -endif endif ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) @@ -85,9 +75,6 @@ Kokkos_ThreadsExec_base.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Threads $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Threads/Kokkos_ThreadsExec_base.cpp Kokkos_ThreadsExec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Threads/Kokkos_ThreadsExec.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Threads/Kokkos_ThreadsExec.cpp -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - include $(KOKKOS_ETI_PATH)/Threads/Makefile.eti_Threads -endif endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) @@ -95,9 +82,6 @@ Kokkos_OpenMP_Exec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMP/Kokko $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp Kokkos_OpenMP_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Task.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Task.cpp -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - include $(KOKKOS_ETI_PATH)/OpenMP/Makefile.eti_OpenMP -endif endif ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) diff --git a/lib/kokkos/README.md b/lib/kokkos/README.md index a04df9eb9b..a08d238e5d 100644 --- a/lib/kokkos/README.md +++ b/lib/kokkos/README.md @@ -151,7 +151,7 @@ Full details are given in the [build instructions](BUILD.md). Basic setups are s ## CMake The best way to install Kokkos is using the CMake build system. Assuming Kokkos lives in `$srcdir`: -```` +````bash cmake $srcdir \ -DCMAKE_CXX_COMPILER=$path_to_compiler \ -DCMAKE_INSTALL_PREFIX=$path_to_install \ @@ -170,7 +170,7 @@ and run `make test` after completing the build. For your CMake project using Kokkos, code such as the following: -```` +````cmake find_package(Kokkos) ... target_link_libraries(myTarget Kokkos::kokkos) @@ -187,17 +187,15 @@ for the install location given above. ## Spack An alternative to manually building with the CMake is to use the Spack package manager. -To do so, download the `kokkos-spack` git repo and add to the package list: -```` -spack repo add $path-to-kokkos-spack +To get started, download the Spack [repo](https://github.com/spack/spack). ```` A basic installation would be done as: -```` -spack install kokkos +````bash +> spack install kokkos ```` Spack allows options and and compilers to be tuned in the install command. -```` -spack install kokkos@3.0 %gcc@7.3.0 +openmp +````bash +> spack install kokkos@3.0 %gcc@7.3.0 +openmp ```` This example illustrates the three most common parameters to Spack: * Variants: specified with, e.g. `+openmp`, this activates (or deactivates with, e.g. `~openmp`) certain options. @@ -205,33 +203,33 @@ This example illustrates the three most common parameters to Spack: * Compiler: a default compiler will be chosen if not specified, but an exact compiler version can be given with the `%`option. For a complete list of Kokkos options, run: -```` -spack info kokkos +````bash +> spack info kokkos ```` Spack currently installs packages to a location determined by a unique hash. This hash name is not really "human readable". Generally, Spack usage should never really require you to reference the computer-generated unique install folder. More details are given in the [build instructions](BUILD.md). If you must know, you can locate Spack Kokkos installations with: -```` -spack find -p kokkos ... +````bash +> spack find -p kokkos ... ```` where `...` is the unique spec identifying the particular Kokkos configuration and version. - +Some more details can found in the Kokkos spack [documentation](Spack.md) or the Spack [website](https://spack.readthedocs.io/en/latest). ## Raw Makefile A bash script is provided to generate raw makefiles. To install Kokkos as a library create a build directory and run the following -```` -$KOKKOS_PATH/generate_makefile.bash --prefix=$path_to_install +````bash +> $KOKKOS_PATH/generate_makefile.bash --prefix=$path_to_install ```` Once the Makefile is generated, run: -```` -make kokkoslib -make install +````bash +> make kokkoslib +> make install ```` To additionally run the unit tests: -```` -make build-test -make test +````bash +> make build-test +> make test ```` Run `generate_makefile.bash --help` for more detailed options such as changing the device type for which to build. @@ -274,7 +272,7 @@ more than a single GPU is used by a single process. If you publish work which mentions Kokkos, please cite the following paper: -```` +````BibTeX @article{CarterEdwards20143202, title = "Kokkos: Enabling manycore performance portability through polymorphic memory access patterns ", journal = "Journal of Parallel and Distributed Computing ", diff --git a/lib/kokkos/Spack.md b/lib/kokkos/Spack.md new file mode 100644 index 0000000000..31a07deb56 --- /dev/null +++ b/lib/kokkos/Spack.md @@ -0,0 +1,267 @@ +![Kokkos](https://avatars2.githubusercontent.com/u/10199860?s=200&v=4) + +# Kokkos Spack + +This gives instructions for using Spack to install Kokkos and developing packages that depend on Kokkos. + +## Getting Started + +Make sure you have downloaded [Spack](https://github.com/spack/spack). +The easiest way to configure the Spack environment is: +````bash +> source spack/share/spack/setup-env.sh +```` +with other scripts available for other shells. +You can display information about how to install packages with: +````bash +> spack info kokkos +```` +This will print all the information about how to install Kokkos with Spack. +For detailed instructions on how to use Spack, see the [User Manual](https://spack.readthedocs.io). + +## Setting Up Spack: Avoiding the Package Cascade +By default, Spack doesn't 'see' anything on your system - including things like CMake and CUDA. +This can be limited by adding a `packages.yaml` to your `$HOME/.spack` folder that includes CMake (and CUDA, if applicable). For example, your `packages.yaml` file could be: +````yaml +packages: + cuda: + modules: + cuda@10.1.243: [cuda/10.1.243] + paths: + cuda@10.1.243: + /opt/local/ppc64le-pwr8-nvidia/cuda/10.1.243 + buildable: false + cmake: + modules: + cmake: [cmake/3.16.8] + paths: + cmake: + /opt/local/ppc64le/cmake/3.16.8 + buildable: false +```` +The `modules` entry is only necessary on systems that require loading Modules (i.e. most DOE systems). +The `buildable` flag is useful to make sure Spack crashes if there is a path error, +rather than having a type-o and Spack rebuilding everything because `cmake` isn't found. +You can verify your environment is set up correctly by running `spack graph` or `spack spec`. +For example: +````bash +> spack graph kokkos +cuda +o kokkos +|\ +o | cuda + / +o cmake +```` +Without the existing CUDA and CMake being identified in `packages.yaml`, a (subset!) of the output would be: +````bash +o kokkos +|\ +| o cmake +| |\ +| | | |\ +| | | | | |\ +| | | | | | | |\ +| | | | | | | | | |\ +| | | | | | | o | | | libarchive +| | | | | | | |\ \ \ \ +| | | | | | | | | |\ \ \ \ +| | | | | | | | | | | | |_|/ +| | | | | | | | | | | |/| | +| | | | | | | | | | | | | o curl +| | |_|_|_|_|_|_|_|_|_|_|/| +| |/| | | |_|_|_|_|_|_|_|/ +| | | | |/| | | | | | | | +| | | | o | | | | | | | | openssl +| |/| | | | | | | | | | | +| | | | | | | | | | o | | libxml2 +| | |_|_|_|_|_|_|_|/| | | +| | | | | | | | | | |\ \ \ +| o | | | | | | | | | | | | zlib +| / / / / / / / / / / / / +| o | | | | | | | | | | | xz +| / / / / / / / / / / / +| o | | | | | | | | | | rhash +| / / / / / / / / / / +| | | | o | | | | | | nettle +| | | | |\ \ \ \ \ \ \ +| | | o | | | | | | | | libuv +| | | | o | | | | | | | autoconf +| | |_|/| | | | | | | | +| | | | |/ / / / / / / +| o | | | | | | | | | perl +| o | | | | | | | | | gdbm +| o | | | | | | | | | readline +```` + +## Configuring Kokkos as a Project Dependency +Say you have a project "SuperScience" which needs to use Kokkos. +In your `package.py` file, you would generally include something like: +````python +class SuperScience(CMakePackage): + ... + depends_on("kokkos") +```` +Often projects want to tweak behavior when using certain features, e.g. +````python + depends_on("kokkos+cuda", when="+cuda") +```` +if your project needs CUDA-specific logic to configure and build. +This illustrates the general principle in Spack of "flowing-up". +A user requests a feature in the final app: +````bash +> spack install superscience+cuda +```` +This flows upstream to the Kokkos dependency, causing the `kokkos+cuda` variant to build. +The downstream app (SuperScience) tells the upstream app (Kokkos) how to build. + +Because Kokkos is a performance portability library, it somewhat inverts this principle. +Kokkos "flows-down", telling your application how best to configure for performance. +Rather than a downstream app (SuperScience) telling the upstream (Kokkos) what variants to build, +a pre-built Kokkos should be telling the downstream app SuperScience what variants to use. +Kokkos works best when there is an "expert" configuration installed on your system. +Your build should simply request `-DKokkos_ROOT=` and configure appropriately based on the Kokkos it finds. + +Kokkos has many, many build variants. +Where possible, projects should only depend on a general Kokkos, not specific variants. +We recommend instead adding for each system you build on a Kokkos configuration to your `packages.yaml` file (usually found in `~/.spack` for specific users). +For a Xeon + Volta system, this could look like: +````yaml + kokkos: + variants: +cuda +openmp +cuda_lambda +wrapper ^cuda@10.1 cuda_arch=70 + compiler: [gcc@7.2.0] +```` +which gives the "best" Kokkos configuration as CUDA+OpenMP optimized for a Volta 70 architecture using CUDA 10.1. +It also enables support for CUDA Lambdas. +The `+wrapper` option tells Kokkos to build with the special `nvcc_wrapper` (more below). +Note here that we use the built-in `cuda_arch` variant of Spack to specify the archicture. +For a Haswell system, we use +````yaml + kokkos: + variants: +openmp std=14 target=haswell + compiler: [intel@18] +```` +which uses the built-in microarchitecture variants of Spack. +Consult the Spack documentation for more details of Spack microarchitectures +and CUDA architectures. +Spack does not currently provide an AMD GPU microarchitecture option. +If building for HIP or an AMD GPU, Kokkos provides an `amd_gpu_arch` similar to `cuda_arch`. +````yaml + kokkos: + variants: +hip amd_gpu_arch=vega900 +```` + +Without an optimal default in your `packages.yaml` file, it is highly likely that the default Kokkos configuration you get will not be what you want. +For example, CUDA is not enabled by default (there is no easy logic to conditionally activate this for CUDA-enabled systems). +If you don't specify a CUDA build variant in a `packages.yaml` and you build your Kokkos-dependent project: +````bash +> spack install superscience +```` +you may end up just getting the default Kokkos (i.e. Serial). +Some examples are included in the `config/yaml` folder for common platforms. +Before running `spack install ` we recommend running `spack spec ` to confirm your dependency tree is correct. +For example, with Kokkos Kernels: +````bash +kokkos-kernels@3.0%gcc@8.3.0~blas build_type=RelWithDebInfo ~cblas~complex_double~complex_float~cublas~cuda cuda_arch=none ~cusparse~diy+double execspace_cuda=auto execspace_openmp=auto execspace_serial=auto execspace_threads=auto ~float~lapack~lapacke+layoutleft~layoutright memspace_cudaspace=auto memspace_cudauvmspace=auto +memspace_hostspace~mkl+offset_int+offset_size_t~openmp+ordinal_int~ordinal_int64_t~serial~superlu arch=linux-rhel7-skylake_avx512 + ^cmake@3.16.2%gcc@8.3.0~doc+ncurses+openssl+ownlibs~qt arch=linux-rhel7-skylake_avx512 + ^kokkos@3.0%gcc@8.3.0~aggressive_vectorization~amdavx~armv80~armv81~armv8_thunderx~armv8_tx2~bdw~bgq build_type=RelWithDebInfo ~carrizo~compiler_warnings+cuda cuda_arch=none +cuda_lambda~cuda_ldg_intrinsic~cuda_relocatable_device_code~cuda_uvm~debug~debug_bounds_check~debug_dualview_modify_check~deprecated_code~diy~epyc~examples~explicit_instantiation~fiji~gfx901~hpx~hpx_async_dispatch~hsw~hwloc~kaveri~kepler30~kepler32~kepler35~kepler37~knc~knl~maxwell50~maxwell52~maxwell53~memkind~numactl+openmp~pascal60~pascal61~power7~power8~power9+profiling~profiling_load_print~pthread~qthread~rocm~ryzen~serial~skx~snb std=14 ~tests~turing75~vega+volta70~volta72+wrapper~wsm arch=linux-rhel7-skylake_avx512 + ^cuda@10.1%gcc@8.3.0 arch=linux-rhel7-skylake_avx512 + ^kokkos-nvcc-wrapper@old%gcc@8.3.0 build_type=RelWithDebInfo +mpi arch=linux-rhel7-skylake_avx512 + ^openmpi@4.0.2%gcc@8.3.0~cuda+cxx_exceptions fabrics=none ~java~legacylaunchers~memchecker patches=073477a76bba780c67c36e959cd3ee6910743e2735c7e76850ffba6791d498e4 ~pmi schedulers=none ~sqlite3~thread_multiple+vt arch=linux-rhel7-skylake_avx512 +```` +The output can be very verbose, but we can verify the expected `kokkos`: +````bash +kokkos@3.0%gcc@8.3.0~aggressive_vectorization~amdavx~armv80~armv81~armv8_thunderx~armv8_tx2~bdw~bgq build_type=RelWithDebInfo ~carrizo~compiler_warnings+cuda cuda_arch=none +cuda_lambda~cuda_ldg_intrinsic~cuda_relocatable_device_code~cuda_uvm~debug~debug_bounds_check~debug_dualview_modify_check~deprecated_code~diy~epyc~examples~explicit_instantiation~fiji~gfx901~hpx~hpx_async_dispatch~hsw~hwloc~kaveri~kepler30~kepler32~kepler35~kepler37~knc~knl~maxwell50~maxwell52~maxwell53~memkind~numactl+openmp~pascal60~pascal61~power7~power8~power9+profiling~profiling_load_print~pthread~qthread~rocm~ryzen~serial~skx~snb std=11 ~tests~turing75~vega+volta70~volta72+wrapper~wsm arch=linux-rhel7-skylake_avx512 +```` +We see that we do have `+volta70` and `+wrapper`, e.g. + +### Spack Environments +The encouraged way to use Spack is with Spack environments ([more details here](https://spack-tutorial.readthedocs.io/en/latest/tutorial_environments.html#dealing-with-many-specs-at-once)). +Rather than installing packages one-at-a-time, you add packages to an environment. +After adding all packages, you concretize and install them all. +Using environments, one can explicitly add a desired Kokkos for the environment, e.g. +````bash +> spack add kokkos +cuda +cuda_lambda +volta70 +> spack add my_project +my_variant +> ... +> spack install +```` +All packages within the environment will build against the CUDA-enabled Kokkos, +even if they only request a default Kokkos. + +## NVCC Wrapper +Kokkos is a C++ project, but often builds for the CUDA backend. +This is particularly problematic with CMake. At this point, `nvcc` does not accept all the flags that normally get passed to a C++ compiler. +Kokkos provides `nvcc_wrapper` that identifies correctly as a C++ compiler to CMake and accepts C++ flags, but uses `nvcc` as the underlying compiler. +`nvcc` itself also uses an underlying host compiler, e.g. GCC. + +In Spack, the underlying host compiler is specified as below, e.g.: +````bash +> spack install package %gcc@8.0.0 +```` +This is still valid for Kokkos. To use the special wrapper for CUDA builds, request a desired compiler and simply add the `+wrapper` variant. +````bash +> spack install kokkos +cuda +wrapper %gcc@7.2.0 +```` +Downstream projects depending on Kokkos need to override their compiler. +Kokkos provides the compiler in a `kokkos_cxx` variable, +which points to either `nvcc_wrapper` when needed or the regular compiler otherwise. +Spack projects already do this to use MPI compiler wrappers. +````python +def cmake_args(self): + options = [] + ... + options.append("-DCMAKE_CXX_COMPILER=%s" % self.spec["kokkos"].kokkos_cxx) + ... + return options +```` +Note: `nvcc_wrapper` works with the MPI compiler wrappers. +If building your project with MPI, do NOT set your compiler to `nvcc_wrapper`. +Instead set your compiler to `mpicxx` and `nvcc_wrapper` will be used under the hood. +````python +def cmake_args(self): + options = [] + ... + options.append("-DCMAKE_CXX_COMPILER=%s" % self.spec["mpi"].mpicxx) + ... + return options +```` +To accomplish this, `nvcc_wrapper` must depend on MPI (even though it uses no MPI). +This has the unfortunate consequence that Kokkos CUDA projects not using MPI will implicitly depend on MPI anyway. +This behavior is necessary for now, but will hopefully be removed later. +When using environments, if MPI is not needed, you can remove the MPI dependency with: +````bash +> spack add kokkos-nvcc-wrapper ~mpi +```` + +## Developing With Spack + +Spack has historically been much more suited to *deployment* of mature packages than active testing or developing. +However, recent features have improved support for development. +Future releases are likely to make this even easier and incorporate Git integration. +The most common commands will do a full build and install of the packages. +If doing development, you may wish to merely set up a build environment. +This allows you to modify the source and re-build. +In this case, you can stop after configuring. +Suppose you have Kokkos checkout in the folder `kokkos-src`: +````bash +> spack dev-build -d kokkos-src -u cmake kokkos@develop +wrapper +openmp +```` +This sets up a development environment for you in `kokkos-src` which you can use (Bash example shown): +Note: Always specify `develop` as the version when doing `dev-build`, except in rare cases. +You are usually developing a feature branch that will merge into `develop`, +hence you are making a new `develop` branch. + +````bash +> cd kokko-src +> source spack-build-env.txt +> cd spack-build +> make +```` +Before sourcing the Spack development environment, you may wish to save your current environment: +````bash +> declare -px > myenv.sh +```` +When done with Spack, you can then restore your original environment: +````bash +> source myenv.sh +```` diff --git a/lib/kokkos/algorithms/CMakeLists.txt b/lib/kokkos/algorithms/CMakeLists.txt index 38747c152c..fd099054ba 100644 --- a/lib/kokkos/algorithms/CMakeLists.txt +++ b/lib/kokkos/algorithms/CMakeLists.txt @@ -2,7 +2,9 @@ KOKKOS_SUBPACKAGE(Algorithms) -ADD_SUBDIRECTORY(src) +IF (NOT Kokkos_INSTALL_TESTING) + ADD_SUBDIRECTORY(src) +ENDIF() KOKKOS_ADD_TEST_DIRECTORIES(unit_tests) diff --git a/lib/kokkos/algorithms/src/CMakeLists.txt b/lib/kokkos/algorithms/src/CMakeLists.txt index 5afd319fcc..cf5564032c 100644 --- a/lib/kokkos/algorithms/src/CMakeLists.txt +++ b/lib/kokkos/algorithms/src/CMakeLists.txt @@ -7,9 +7,15 @@ KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) #----------------------------------------------------------------------------- -FILE(GLOB HEADERS *.hpp) -FILE(GLOB SOURCES *.cpp) -LIST(APPEND HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_config.h) +FILE(GLOB ALGO_HEADERS *.hpp) +FILE(GLOB ALGO_SOURCES *.cpp) +LIST(APPEND ALGO_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_config.h) + +INSTALL ( + DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" + DESTINATION ${KOKKOS_HEADER_DIR} + FILES_MATCHING PATTERN "*.hpp" +) #----------------------------------------------------------------------------- @@ -17,8 +23,8 @@ LIST(APPEND HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_config.h) # These will get ignored for standalone CMake and a true interface library made KOKKOS_ADD_INTERFACE_LIBRARY( kokkosalgorithms - HEADERS ${HEADERS} - SOURCES ${SOURCES} + HEADERS ${ALGO_HEADERS} + SOURCES ${ALGO_SOURCES} ) KOKKOS_LIB_INCLUDE_DIRECTORIES(kokkosalgorithms ${KOKKOS_TOP_BUILD_DIR} diff --git a/lib/kokkos/algorithms/src/Kokkos_Random.hpp b/lib/kokkos/algorithms/src/Kokkos_Random.hpp index 0a79675236..40d8db2663 100644 --- a/lib/kokkos/algorithms/src/Kokkos_Random.hpp +++ b/lib/kokkos/algorithms/src/Kokkos_Random.hpp @@ -94,9 +94,9 @@ namespace Kokkos { class Pool { public: //The Kokkos device type - typedef Device device_type; + using device_type = Device; //The actual generator type - typedef Generator generator_type; + using generator_type = Generator; //Default constructor: does not initialize a pool Pool(); @@ -124,7 +124,7 @@ namespace Kokkos { class Generator { public: //The Kokkos device type - typedef DeviceType device_type; + using device_type = DeviceType; //Max return values of respective [X]rand[S]() functions enum {MAX_URAND = 0xffffffffU}; @@ -138,75 +138,75 @@ namespace Kokkos { KOKKOS_INLINE_FUNCTION Generator (STATE_ARGUMENTS, int state_idx = 0); - //Draw a equidistributed uint32_t in the range (0,MAX_URAND] + //Draw a equidistributed uint32_t in the range [0,MAX_URAND) KOKKOS_INLINE_FUNCTION uint32_t urand(); - //Draw a equidistributed uint64_t in the range (0,MAX_URAND64] + //Draw a equidistributed uint64_t in the range [0,MAX_URAND64) KOKKOS_INLINE_FUNCTION uint64_t urand64(); - //Draw a equidistributed uint32_t in the range (0,range] + //Draw a equidistributed uint32_t in the range [0,range) KOKKOS_INLINE_FUNCTION uint32_t urand(const uint32_t& range); - //Draw a equidistributed uint32_t in the range (start,end] + //Draw a equidistributed uint32_t in the range [start,end) KOKKOS_INLINE_FUNCTION uint32_t urand(const uint32_t& start, const uint32_t& end ); - //Draw a equidistributed uint64_t in the range (0,range] + //Draw a equidistributed uint64_t in the range [0,range) KOKKOS_INLINE_FUNCTION uint64_t urand64(const uint64_t& range); - //Draw a equidistributed uint64_t in the range (start,end] + //Draw a equidistributed uint64_t in the range [start,end) KOKKOS_INLINE_FUNCTION uint64_t urand64(const uint64_t& start, const uint64_t& end ); - //Draw a equidistributed int in the range (0,MAX_RAND] + //Draw a equidistributed int in the range [0,MAX_RAND) KOKKOS_INLINE_FUNCTION int rand(); - //Draw a equidistributed int in the range (0,range] + //Draw a equidistributed int in the range [0,range) KOKKOS_INLINE_FUNCTION int rand(const int& range); - //Draw a equidistributed int in the range (start,end] + //Draw a equidistributed int in the range [start,end) KOKKOS_INLINE_FUNCTION int rand(const int& start, const int& end ); - //Draw a equidistributed int64_t in the range (0,MAX_RAND64] + //Draw a equidistributed int64_t in the range [0,MAX_RAND64) KOKKOS_INLINE_FUNCTION int64_t rand64(); - //Draw a equidistributed int64_t in the range (0,range] + //Draw a equidistributed int64_t in the range [0,range) KOKKOS_INLINE_FUNCTION int64_t rand64(const int64_t& range); - //Draw a equidistributed int64_t in the range (start,end] + //Draw a equidistributed int64_t in the range [start,end) KOKKOS_INLINE_FUNCTION int64_t rand64(const int64_t& start, const int64_t& end ); - //Draw a equidistributed float in the range (0,1.0] + //Draw a equidistributed float in the range [0,1.0) KOKKOS_INLINE_FUNCTION float frand(); - //Draw a equidistributed float in the range (0,range] + //Draw a equidistributed float in the range [0,range) KOKKOS_INLINE_FUNCTION float frand(const float& range); - //Draw a equidistributed float in the range (start,end] + //Draw a equidistributed float in the range [start,end) KOKKOS_INLINE_FUNCTION float frand(const float& start, const float& end ); - //Draw a equidistributed double in the range (0,1.0] + //Draw a equidistributed double in the range [0,1.0) KOKKOS_INLINE_FUNCTION double drand(); - //Draw a equidistributed double in the range (0,range] + //Draw a equidistributed double in the range [0,range) KOKKOS_INLINE_FUNCTION double drand(const double& range); - //Draw a equidistributed double in the range (start,end] + //Draw a equidistributed double in the range [start,end) KOKKOS_INLINE_FUNCTION double drand(const double& start, const double& end ); @@ -221,11 +221,11 @@ namespace Kokkos { //Additional Functions: - //Fills view with random numbers in the range (0,range] + //Fills view with random numbers in the range [0,range) template void fill_random(ViewType view, PoolType pool, ViewType::value_type range); - //Fills view with random numbers in the range (start,end] + //Fills view with random numbers in the range [start,end) template void fill_random(ViewType view, PoolType pool, ViewType::value_type start, ViewType::value_type end); @@ -381,7 +381,7 @@ struct rand { // NOTE (mfh 26 oct 2014) This is a partial specialization for long // long, a C99 / C++11 signed type which is guaranteed to be at // least 64 bits. Do NOT write a partial specialization for -// int64_t!!! This is just a typedef! It could be either long or +// int64_t!!! This is just an alias! It could be either long or // long long. We don't know which a priori, and I've seen both. // The types long and long long are guaranteed to differ, so it's // always safe to specialize for both. @@ -413,7 +413,7 @@ struct rand { // NOTE (mfh 26 oct 2014) This is a partial specialization for // unsigned long long, a C99 / C++11 unsigned type which is // guaranteed to be at least 64 bits. Do NOT write a partial -// specialization for uint64_t!!! This is just a typedef! It could +// specialization for uint64_t!!! This is just an alias! It could // be either unsigned long or unsigned long long. We don't know // which a priori, and I've seen both. The types unsigned long and // unsigned long long are guaranteed to differ, so it's always safe @@ -604,11 +604,7 @@ struct Random_UniqueIndex { KOKKOS_FUNCTION static int get_state_idx(const locks_view_type) { #ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int i = ExecutionSpace::hardware_thread_id(); -#else const int i = ExecutionSpace::impl_hardware_thread_id(); -#endif return i; #else return 0; @@ -652,15 +648,13 @@ struct Random_UniqueIndex { static int get_state_idx(const locks_view_type& locks_) { #ifdef __HIP_DEVICE_COMPILE__ const int i_offset = - (hipThreadIdx_x * hipBlockDim_y + hipThreadIdx_y) * hipBlockDim_z + - hipThreadIdx_z; - int i = (((hipBlockIdx_x * hipGridDim_y + hipBlockIdx_y) * hipGridDim_z + - hipBlockIdx_z) * - hipBlockDim_x * hipBlockDim_y * hipBlockDim_z + + (threadIdx.x * blockDim.y + threadIdx.y) * blockDim.z + threadIdx.z; + int i = (((blockIdx.x * gridDim.y + blockIdx.y) * gridDim.z + blockIdx.z) * + blockDim.x * blockDim.y * blockDim.z + i_offset) % locks_.extent(0); while (Kokkos::atomic_compare_exchange(&locks_(i), 0, 1)) { - i += hipBlockDim_x * hipBlockDim_y * hipBlockDim_z; + i += blockDim.x * blockDim.y * blockDim.z; if (i >= static_cast(locks_.extent(0))) { i = i_offset; } @@ -687,7 +681,7 @@ class Random_XorShift64 { friend class Random_XorShift64_Pool; public: - typedef DeviceType device_type; + using device_type = DeviceType; constexpr static uint32_t MAX_URAND = std::numeric_limits::max(); constexpr static uint64_t MAX_URAND64 = std::numeric_limits::max(); @@ -805,11 +799,6 @@ class Random_XorShift64 { // number KOKKOS_INLINE_FUNCTION double normal() { -#ifndef __HIP_DEVICE_COMPILE__ // FIXME_HIP - using std::sqrt; -#else - using ::sqrt; -#endif double S = 2.0; double U; while (S >= 1.0) { @@ -817,7 +806,7 @@ class Random_XorShift64 { const double V = 2.0 * drand() - 1.0; S = U * U + V * V; } - return U * sqrt(-2.0 * log(S) / S); + return U * std::sqrt(-2.0 * log(S) / S); } KOKKOS_INLINE_FUNCTION @@ -830,15 +819,15 @@ template class Random_XorShift64_Pool { private: using execution_space = typename DeviceType::execution_space; - typedef View locks_type; - typedef View state_data_type; + using locks_type = View; + using state_data_type = View; locks_type locks_; state_data_type state_; int num_states_; public: - typedef Random_XorShift64 generator_type; - typedef DeviceType device_type; + using generator_type = Random_XorShift64; + using device_type = DeviceType; KOKKOS_INLINE_FUNCTION Random_XorShift64_Pool() { num_states_ = 0; } @@ -923,8 +912,8 @@ class Random_XorShift1024 { friend class Random_XorShift1024_Pool; public: - typedef Random_XorShift1024_Pool pool_type; - typedef DeviceType device_type; + using pool_type = Random_XorShift1024_Pool; + using device_type = DeviceType; constexpr static uint32_t MAX_URAND = std::numeric_limits::max(); constexpr static uint64_t MAX_URAND64 = std::numeric_limits::max(); @@ -1046,11 +1035,6 @@ class Random_XorShift1024 { // number KOKKOS_INLINE_FUNCTION double normal() { -#ifndef KOKKOS_ENABLE_HIP // FIXME_HIP - using std::sqrt; -#else - using ::sqrt; -#endif double S = 2.0; double U; while (S >= 1.0) { @@ -1058,7 +1042,7 @@ class Random_XorShift1024 { const double V = 2.0 * drand() - 1.0; S = U * U + V * V; } - return U * sqrt(-2.0 * log(S) / S); + return U * std::sqrt(-2.0 * log(S) / S); } KOKKOS_INLINE_FUNCTION @@ -1071,9 +1055,9 @@ template class Random_XorShift1024_Pool { private: using execution_space = typename DeviceType::execution_space; - typedef View locks_type; - typedef View int_view_type; - typedef View state_data_type; + using locks_type = View; + using int_view_type = View; + using state_data_type = View; locks_type locks_; state_data_type state_; @@ -1082,9 +1066,9 @@ class Random_XorShift1024_Pool { friend class Random_XorShift1024; public: - typedef Random_XorShift1024 generator_type; + using generator_type = Random_XorShift1024; - typedef DeviceType device_type; + using device_type = DeviceType; KOKKOS_INLINE_FUNCTION Random_XorShift1024_Pool() { num_states_ = 0; } @@ -1176,14 +1160,13 @@ struct fill_random_functor_begin_end; template struct fill_random_functor_range { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand - Rand; + using Rand = rand; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1203,14 +1186,13 @@ struct fill_random_functor_range { template struct fill_random_functor_range { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand - Rand; + using Rand = rand; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1232,14 +1214,13 @@ struct fill_random_functor_range { template struct fill_random_functor_range { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand - Rand; + using Rand = rand; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1262,14 +1243,13 @@ struct fill_random_functor_range { template struct fill_random_functor_range { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand - Rand; + using Rand = rand; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1293,14 +1273,13 @@ struct fill_random_functor_range { template struct fill_random_functor_range { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand - Rand; + using Rand = rand; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1326,14 +1305,13 @@ struct fill_random_functor_range { template struct fill_random_functor_range { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand - Rand; + using Rand = rand; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1361,14 +1339,13 @@ struct fill_random_functor_range { template struct fill_random_functor_range { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand - Rand; + using Rand = rand; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1398,14 +1375,13 @@ struct fill_random_functor_range { template struct fill_random_functor_range { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand - Rand; + using Rand = rand; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1437,14 +1413,13 @@ struct fill_random_functor_range { template struct fill_random_functor_begin_end { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand - Rand; + using Rand = rand; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1466,14 +1441,13 @@ struct fill_random_functor_begin_end struct fill_random_functor_begin_end { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand - Rand; + using Rand = rand; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1497,14 +1471,13 @@ struct fill_random_functor_begin_end struct fill_random_functor_begin_end { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand - Rand; + using Rand = rand; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1529,14 +1502,13 @@ struct fill_random_functor_begin_end struct fill_random_functor_begin_end { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand - Rand; + using Rand = rand; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1562,14 +1534,13 @@ struct fill_random_functor_begin_end struct fill_random_functor_begin_end { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand - Rand; + using Rand = rand; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1597,14 +1568,13 @@ struct fill_random_functor_begin_end struct fill_random_functor_begin_end { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand - Rand; + using Rand = rand; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1634,14 +1604,13 @@ struct fill_random_functor_begin_end struct fill_random_functor_begin_end { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand - Rand; + using Rand = rand; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1673,14 +1642,13 @@ struct fill_random_functor_begin_end struct fill_random_functor_begin_end { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand - Rand; + using Rand = rand; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, diff --git a/lib/kokkos/algorithms/src/Kokkos_Sort.hpp b/lib/kokkos/algorithms/src/Kokkos_Sort.hpp index 1c79a505bb..a95b652eab 100644 --- a/lib/kokkos/algorithms/src/Kokkos_Sort.hpp +++ b/lib/kokkos/algorithms/src/Kokkos_Sort.hpp @@ -95,9 +95,9 @@ class BinSort { public: template struct copy_functor { - typedef typename SrcViewType::const_type src_view_type; + using src_view_type = typename SrcViewType::const_type; - typedef Impl::CopyOp copy_op; + using copy_op = Impl::CopyOp; DstViewType dst_values; src_view_type src_values; @@ -120,17 +120,17 @@ class BinSort { // If a Kokkos::View then can generate constant random access // otherwise can only use the constant type. - typedef typename std::conditional< + using src_view_type = typename std::conditional< Kokkos::is_view::value, Kokkos::View >, - typename SrcViewType::const_type>::type src_view_type; + typename SrcViewType::const_type>::type; - typedef typename PermuteViewType::const_type perm_view_type; + using perm_view_type = typename PermuteViewType::const_type; - typedef Impl::CopyOp copy_op; + using copy_op = Impl::CopyOp; DstViewType dst_values; perm_view_type sort_order; @@ -151,8 +151,8 @@ class BinSort { } }; - typedef typename Space::execution_space execution_space; - typedef BinSortOp bin_op_type; + using execution_space = typename Space::execution_space; + using bin_op_type = BinSortOp; struct bin_count_tag {}; struct bin_offset_tag {}; @@ -160,30 +160,30 @@ class BinSort { struct bin_sort_bins_tag {}; public: - typedef SizeType size_type; - typedef size_type value_type; + using size_type = SizeType; + using value_type = size_type; - typedef Kokkos::View offset_type; - typedef Kokkos::View bin_count_type; + using offset_type = Kokkos::View; + using bin_count_type = Kokkos::View; - typedef typename KeyViewType::const_type const_key_view_type; + using const_key_view_type = typename KeyViewType::const_type; // If a Kokkos::View then can generate constant random access // otherwise can only use the constant type. - typedef typename std::conditional< + using const_rnd_key_view_type = typename std::conditional< Kokkos::is_view::value, Kokkos::View >, - const_key_view_type>::type const_rnd_key_view_type; + const_key_view_type>::type; - typedef typename KeyViewType::non_const_value_type non_const_key_scalar; - typedef typename KeyViewType::const_value_type const_key_scalar; + using non_const_key_scalar = typename KeyViewType::non_const_value_type; + using const_key_scalar = typename KeyViewType::const_value_type; - typedef Kokkos::View > - bin_count_atomic_type; + using bin_count_atomic_type = + Kokkos::View >; private: const_key_view_type keys; @@ -266,10 +266,10 @@ class BinSort { template void sort(ValuesViewType const& values, int values_range_begin, int values_range_end) const { - typedef Kokkos::View - scratch_view_type; + using scratch_view_type = + Kokkos::View; const size_t len = range_end - range_begin; const size_t values_len = values_range_end - values_range_begin; @@ -278,13 +278,6 @@ class BinSort { "BinSort::sort: values range length != permutation vector length"); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - scratch_view_type sorted_values( - ViewAllocateWithoutInitializing( - "Kokkos::SortImpl::BinSortFunctor::sorted_values"), - len, values.extent(1), values.extent(2), values.extent(3), - values.extent(4), values.extent(5), values.extent(6), values.extent(7)); -#else scratch_view_type sorted_values( ViewAllocateWithoutInitializing( "Kokkos::SortImpl::BinSortFunctor::sorted_values"), @@ -303,7 +296,6 @@ class BinSort { : KOKKOS_IMPL_CTOR_DEFAULT_ARG, values.rank_dynamic > 7 ? values.extent(7) : KOKKOS_IMPL_CTOR_DEFAULT_ARG); -#endif { copy_permute_functor struct min_max_functor { - typedef Kokkos::MinMaxScalar - minmax_scalar; + using minmax_scalar = + Kokkos::MinMaxScalar; ViewType view; min_max_functor(const ViewType& view_) : view(view_) {} @@ -531,7 +523,7 @@ void sort(ViewType const& view, bool const always_use_kokkos_sort = false) { if (!always_use_kokkos_sort) { if (Impl::try_std_sort(view)) return; } - typedef BinOp1D CompType; + using CompType = BinOp1D; Kokkos::MinMaxScalar result; Kokkos::MinMax reducer(result); @@ -548,8 +540,8 @@ void sort(ViewType const& view, bool const always_use_kokkos_sort = false) { template void sort(ViewType view, size_t const begin, size_t const end) { - typedef Kokkos::RangePolicy range_policy; - typedef BinOp1D CompType; + using range_policy = Kokkos::RangePolicy; + using CompType = BinOp1D; Kokkos::MinMaxScalar result; Kokkos::MinMax reducer(result); diff --git a/lib/kokkos/algorithms/unit_tests/CMakeLists.txt b/lib/kokkos/algorithms/unit_tests/CMakeLists.txt index e3563a8b98..969e67c41b 100644 --- a/lib/kokkos/algorithms/unit_tests/CMakeLists.txt +++ b/lib/kokkos/algorithms/unit_tests/CMakeLists.txt @@ -20,14 +20,18 @@ KOKKOS_ADD_TEST_LIBRARY( HEADERS ${GTEST_SOURCE_DIR}/gtest/gtest.h SOURCES ${GTEST_SOURCE_DIR}/gtest/gtest-all.cc ) -# WORKAROUND FOR HIPCC -IF(Kokkos_ENABLE_HIP) - TARGET_COMPILE_DEFINITIONS(kokkosalgorithms_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0 --amdgpu-target=gfx906") -ELSE() - TARGET_COMPILE_DEFINITIONS(kokkosalgorithms_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0") -ENDIF() +# avoid deprecation warnings from MSVC +TARGET_COMPILE_DEFINITIONS(kokkosalgorithms_gtest PUBLIC GTEST_HAS_TR1_TUPLE=0 GTEST_HAS_PTHREAD=0) + +IF(NOT (Kokkos_ENABLE_CUDA AND WIN32)) TARGET_COMPILE_FEATURES(kokkosalgorithms_gtest PUBLIC cxx_std_11) +ENDIF() + +# Suppress clang-tidy diagnostics on code that we do not have control over +IF(CMAKE_CXX_CLANG_TIDY) + SET_TARGET_PROPERTIES(kokkosalgorithms_gtest PROPERTIES CXX_CLANG_TIDY "") +ENDIF() SET(SOURCES UnitTestMain.cpp diff --git a/lib/kokkos/algorithms/unit_tests/TestRandom.hpp b/lib/kokkos/algorithms/unit_tests/TestRandom.hpp index 10a496242b..caba92c152 100644 --- a/lib/kokkos/algorithms/unit_tests/TestRandom.hpp +++ b/lib/kokkos/algorithms/unit_tests/TestRandom.hpp @@ -111,10 +111,10 @@ struct RandomProperties { template struct test_random_functor { - typedef typename GeneratorPool::generator_type rnd_type; + using rnd_type = typename GeneratorPool::generator_type; - typedef RandomProperties value_type; - typedef typename GeneratorPool::device_type device_type; + using value_type = RandomProperties; + using device_type = typename GeneratorPool::device_type; GeneratorPool rand_pool; const double mean; @@ -125,12 +125,12 @@ struct test_random_functor { // implementations might violate this upper bound, due to rounding // error. Just in case, we leave an extra space at the end of each // dimension, in the View types below. - typedef Kokkos::View - type_1d; + using type_1d = + Kokkos::View; type_1d density_1d; - typedef Kokkos::View - type_3d; + using type_3d = + Kokkos::View; type_3d density_3d; test_random_functor(GeneratorPool rand_pool_, type_1d d1d, type_3d d3d) @@ -200,9 +200,9 @@ struct test_random_functor { template struct test_histogram1d_functor { - typedef RandomProperties value_type; - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; + using value_type = RandomProperties; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; // NOTE (mfh 03 Nov 2014): Kokkos::rand::max() is supposed to define // an exclusive upper bound on the range of random numbers that @@ -210,7 +210,7 @@ struct test_histogram1d_functor { // implementations might violate this upper bound, due to rounding // error. Just in case, we leave an extra space at the end of each // dimension, in the View type below. - typedef Kokkos::View type_1d; + using type_1d = Kokkos::View; type_1d density_1d; double mean; @@ -219,7 +219,7 @@ struct test_histogram1d_functor { KOKKOS_INLINE_FUNCTION void operator()( const typename memory_space::size_type i, RandomProperties& prop) const { - typedef typename memory_space::size_type size_type; + using size_type = typename memory_space::size_type; const double count = density_1d(i); prop.mean += count; prop.variance += 1.0 * (count - mean) * (count - mean); @@ -234,9 +234,9 @@ struct test_histogram1d_functor { template struct test_histogram3d_functor { - typedef RandomProperties value_type; - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; + using value_type = RandomProperties; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; // NOTE (mfh 03 Nov 2014): Kokkos::rand::max() is supposed to define // an exclusive upper bound on the range of random numbers that @@ -244,9 +244,9 @@ struct test_histogram3d_functor { // implementations might violate this upper bound, due to rounding // error. Just in case, we leave an extra space at the end of each // dimension, in the View type below. - typedef Kokkos::View - type_3d; + using type_3d = + Kokkos::View; type_3d density_3d; double mean; @@ -255,7 +255,7 @@ struct test_histogram3d_functor { KOKKOS_INLINE_FUNCTION void operator()( const typename memory_space::size_type i, RandomProperties& prop) const { - typedef typename memory_space::size_type size_type; + using size_type = typename memory_space::size_type; const double count = density_3d( i / (HIST_DIM3D * HIST_DIM3D), (i % (HIST_DIM3D * HIST_DIM3D)) / HIST_DIM3D, i % HIST_DIM3D); @@ -276,7 +276,7 @@ struct test_histogram3d_functor { // template struct test_random_scalar { - typedef typename RandomGenerator::generator_type rnd_type; + using rnd_type = typename RandomGenerator::generator_type; int pass_mean, pass_var, pass_covar; int pass_hist1d_mean, pass_hist1d_var, pass_hist1d_covar; @@ -294,7 +294,7 @@ struct test_random_scalar { cout << " -- Testing randomness properties" << endl; RandomProperties result; - typedef test_random_functor functor_type; + using functor_type = test_random_functor; parallel_reduce(num_draws / 1024, functor_type(pool, density_1d, density_3d), result); @@ -325,8 +325,8 @@ struct test_random_scalar { cout << " -- Testing 1-D histogram" << endl; RandomProperties result; - typedef test_histogram1d_functor - functor_type; + using functor_type = + test_histogram1d_functor; parallel_reduce(HIST_DIM1D, functor_type(density_1d, num_draws), result); double tolerance = 6 * std::sqrt(1.0 / HIST_DIM1D); @@ -357,8 +357,8 @@ struct test_random_scalar { cout << " -- Testing 3-D histogram" << endl; RandomProperties result; - typedef test_histogram3d_functor - functor_type; + using functor_type = + test_histogram3d_functor; parallel_reduce(HIST_DIM1D, functor_type(density_3d, num_draws), result); double tolerance = 6 * std::sqrt(1.0 / HIST_DIM1D); diff --git a/lib/kokkos/algorithms/unit_tests/TestSort.hpp b/lib/kokkos/algorithms/unit_tests/TestSort.hpp index b6ff91c25f..a3c362ec20 100644 --- a/lib/kokkos/algorithms/unit_tests/TestSort.hpp +++ b/lib/kokkos/algorithms/unit_tests/TestSort.hpp @@ -55,8 +55,8 @@ namespace Impl { template struct is_sorted_struct { - typedef unsigned int value_type; - typedef ExecutionSpace execution_space; + using value_type = unsigned int; + using execution_space = ExecutionSpace; Kokkos::View keys; @@ -69,8 +69,8 @@ struct is_sorted_struct { template struct sum { - typedef double value_type; - typedef ExecutionSpace execution_space; + using value_type = double; + using execution_space = ExecutionSpace; Kokkos::View keys; @@ -81,8 +81,8 @@ struct sum { template struct bin3d_is_sorted_struct { - typedef unsigned int value_type; - typedef ExecutionSpace execution_space; + using value_type = unsigned int; + using execution_space = ExecutionSpace; Kokkos::View keys; @@ -115,8 +115,8 @@ struct bin3d_is_sorted_struct { template struct sum3D { - typedef double value_type; - typedef ExecutionSpace execution_space; + using value_type = double; + using execution_space = ExecutionSpace; Kokkos::View keys; @@ -131,7 +131,7 @@ struct sum3D { template void test_1D_sort_impl(unsigned int n, bool force_kokkos) { - typedef Kokkos::View KeyViewType; + using KeyViewType = Kokkos::View; KeyViewType keys("Keys", n); // Test sorting array with all numbers equal @@ -166,7 +166,7 @@ void test_1D_sort_impl(unsigned int n, bool force_kokkos) { template void test_3D_sort_impl(unsigned int n) { - typedef Kokkos::View KeyViewType; + using KeyViewType = Kokkos::View; KeyViewType keys("Keys", n * n * n); @@ -186,7 +186,7 @@ void test_3D_sort_impl(unsigned int n) { typename KeyViewType::value_type min[3] = {0, 0, 0}; typename KeyViewType::value_type max[3] = {100, 100, 100}; - typedef Kokkos::BinOp3D BinOp; + using BinOp = Kokkos::BinOp3D; BinOp bin_op(bin_max, min, max); Kokkos::BinSort Sorter(keys, bin_op, false); Sorter.create_permute_vector(); @@ -215,9 +215,9 @@ void test_3D_sort_impl(unsigned int n) { template void test_dynamic_view_sort_impl(unsigned int n) { - typedef Kokkos::Experimental::DynamicView - KeyDynamicViewType; - typedef Kokkos::View KeyViewType; + using KeyDynamicViewType = + Kokkos::Experimental::DynamicView; + using KeyViewType = Kokkos::View; const size_t upper_bound = 2 * n; const size_t min_chunk_size = 1024; @@ -305,8 +305,8 @@ void test_issue_1160_impl() { Kokkos::deep_copy(x_, h_x); Kokkos::deep_copy(v_, h_v); - typedef decltype(element_) KeyViewType; - typedef Kokkos::BinOp1D BinOp; + using KeyViewType = decltype(element_); + using BinOp = Kokkos::BinOp1D; int begin = 3; int end = 8; diff --git a/lib/kokkos/appveyor.yml b/lib/kokkos/appveyor.yml index 8f139ba6ab..c40bf066b7 100644 --- a/lib/kokkos/appveyor.yml +++ b/lib/kokkos/appveyor.yml @@ -5,6 +5,6 @@ build_script: - cmd: >- mkdir build && cd build && - cmake c:\projects\source -DKokkos_ENABLE_TESTS=ON -DKokkos_ENABLE_LIBDL=OFF -DKokkos_ENABLE_PROFILING=OFF && + cmake c:\projects\source -DKokkos_ENABLE_TESTS=ON && cmake --build . --target install && ctest -C Debug -V diff --git a/lib/kokkos/benchmarks/atomic/main.cpp b/lib/kokkos/benchmarks/atomic/main.cpp index 5f0977f754..7b5caa1aee 100644 --- a/lib/kokkos/benchmarks/atomic/main.cpp +++ b/lib/kokkos/benchmarks/atomic/main.cpp @@ -69,13 +69,13 @@ int main(int argc, char* argv[]) { return 0; } - int L = atoi(argv[1]); - int N = atoi(argv[2]); - int M = atoi(argv[3]); - int D = atoi(argv[4]); - int K = atoi(argv[5]); - int R = atoi(argv[6]); - int type = atoi(argv[7]); + int L = std::stoi(argv[1]); + int N = std::stoi(argv[2]); + int M = std::stoi(argv[3]); + int D = std::stoi(argv[4]); + int K = std::stoi(argv[5]); + int R = std::stoi(argv[6]); + int type = std::stoi(argv[7]); Kokkos::View offsets("Offsets", L, M); Kokkos::Random_XorShift64_Pool<> pool(12371); diff --git a/lib/kokkos/benchmarks/bytes_and_flops/main.cpp b/lib/kokkos/benchmarks/bytes_and_flops/main.cpp index c21a16200e..6da2407a08 100644 --- a/lib/kokkos/benchmarks/bytes_and_flops/main.cpp +++ b/lib/kokkos/benchmarks/bytes_and_flops/main.cpp @@ -73,15 +73,15 @@ int main(int argc, char* argv[]) { return 0; } - int P = atoi(argv[1]); - int N = atoi(argv[2]); - int K = atoi(argv[3]); - int R = atoi(argv[4]); - int D = atoi(argv[5]); - int U = atoi(argv[6]); - int F = atoi(argv[7]); - int T = atoi(argv[8]); - int S = atoi(argv[9]); + int P = std::stoi(argv[1]); + int N = std::stoi(argv[2]); + int K = std::stoi(argv[3]); + int R = std::stoi(argv[4]); + int D = std::stoi(argv[5]); + int U = std::stoi(argv[6]); + int F = std::stoi(argv[7]); + int T = std::stoi(argv[8]); + int S = std::stoi(argv[9]); if (U > 8) { printf("U must be 1-8\n"); diff --git a/lib/kokkos/benchmarks/gather/main.cpp b/lib/kokkos/benchmarks/gather/main.cpp index 6a2db3e024..5f10e4dcc1 100644 --- a/lib/kokkos/benchmarks/gather/main.cpp +++ b/lib/kokkos/benchmarks/gather/main.cpp @@ -72,13 +72,13 @@ int main(int argc, char* argv[]) { return 0; } - int S = atoi(argv[1]); - int N = atoi(argv[2]); - int K = atoi(argv[3]); - int D = atoi(argv[4]); - int R = atoi(argv[5]); - int U = atoi(argv[6]); - int F = atoi(argv[7]); + int S = std::stoi(argv[1]); + int N = std::stoi(argv[2]); + int K = std::stoi(argv[3]); + int D = std::stoi(argv[4]); + int R = std::stoi(argv[5]); + int U = std::stoi(argv[6]); + int F = std::stoi(argv[7]); if ((S != 1) && (S != 2) && (S != 4)) { printf("S must be one of 1,2,4\n"); diff --git a/lib/kokkos/benchmarks/gups/gups-kokkos.cc b/lib/kokkos/benchmarks/gups/gups-kokkos.cc index 36fc36925b..5a3ad23800 100644 --- a/lib/kokkos/benchmarks/gups/gups-kokkos.cc +++ b/lib/kokkos/benchmarks/gups/gups-kokkos.cc @@ -50,151 +50,152 @@ #define HLINE "-------------------------------------------------------------\n" #if defined(KOKKOS_ENABLE_CUDA) -typedef Kokkos::View::HostMirror GUPSHostArray; -typedef Kokkos::View GUPSDeviceArray; +using GUPSHostArray = Kokkos::View::HostMirror; +using GUPSDeviceArray = Kokkos::View; #else -typedef Kokkos::View::HostMirror GUPSHostArray; -typedef Kokkos::View GUPSDeviceArray; +using GUPSHostArray = Kokkos::View::HostMirror; +using GUPSDeviceArray = Kokkos::View; #endif -typedef int GUPSIndex; +using GUPSIndex = int; double now() { - struct timeval now; - gettimeofday(&now, nullptr); + struct timeval now; + gettimeofday(&now, nullptr); - return (double) now.tv_sec + ((double) now.tv_usec * 1.0e-6); + return (double)now.tv_sec + ((double)now.tv_usec * 1.0e-6); } -void randomize_indices(GUPSHostArray& indices, GUPSDeviceArray& dev_indices, const int64_t dataCount) { - for( GUPSIndex i = 0; i < indices.extent(0); ++i ) { - indices[i] = lrand48() % dataCount; - } +void randomize_indices(GUPSHostArray& indices, GUPSDeviceArray& dev_indices, + const int64_t dataCount) { + for (GUPSIndex i = 0; i < indices.extent(0); ++i) { + indices[i] = lrand48() % dataCount; + } - Kokkos::deep_copy(dev_indices, indices); + Kokkos::deep_copy(dev_indices, indices); } -void run_gups(GUPSDeviceArray& indices, GUPSDeviceArray& data, const int64_t datum, - const bool performAtomics) { - - if( performAtomics ) { - Kokkos::parallel_for("bench-gups-atomic", indices.extent(0), KOKKOS_LAMBDA(const GUPSIndex i) { - Kokkos::atomic_fetch_xor( &data[indices[i]], datum ); - }); - } else { - Kokkos::parallel_for("bench-gups-non-atomic", indices.extent(0), KOKKOS_LAMBDA(const GUPSIndex i) { - data[indices[i]] ^= datum; - }); - } - - Kokkos::fence(); +void run_gups(GUPSDeviceArray& indices, GUPSDeviceArray& data, + const int64_t datum, const bool performAtomics) { + if (performAtomics) { + Kokkos::parallel_for( + "bench-gups-atomic", indices.extent(0), + KOKKOS_LAMBDA(const GUPSIndex i) { + Kokkos::atomic_fetch_xor(&data[indices[i]], datum); + }); + } else { + Kokkos::parallel_for( + "bench-gups-non-atomic", indices.extent(0), + KOKKOS_LAMBDA(const GUPSIndex i) { data[indices[i]] ^= datum; }); + } + + Kokkos::fence(); } -int run_benchmark(const GUPSIndex indicesCount, const GUPSIndex dataCount, const int repeats, - const bool useAtomics) { +int run_benchmark(const GUPSIndex indicesCount, const GUPSIndex dataCount, + const int repeats, const bool useAtomics) { + printf("Reports fastest timing per kernel\n"); + printf("Creating Views...\n"); - printf("Reports fastest timing per kernel\n"); - printf("Creating Views...\n"); + printf("Memory Sizes:\n"); + printf("- Elements: %15" PRIu64 " (%12.4f MB)\n", + static_cast(dataCount), + 1.0e-6 * ((double)dataCount * (double)sizeof(int64_t))); + printf("- Indices: %15" PRIu64 " (%12.4f MB)\n", + static_cast(indicesCount), + 1.0e-6 * ((double)indicesCount * (double)sizeof(int64_t))); + printf(" - Atomics: %15s\n", (useAtomics ? "Yes" : "No")); + printf("Benchmark kernels will be performed for %d iterations.\n", repeats); - printf("Memory Sizes:\n"); - printf("- Elements: %15" PRIu64 " (%12.4f MB)\n", static_cast(dataCount), - 1.0e-6 * ((double) dataCount * (double) sizeof(int64_t))); - printf("- Indices: %15" PRIu64 " (%12.4f MB)\n", static_cast(indicesCount), - 1.0e-6 * ((double) indicesCount * (double) sizeof(int64_t))); - printf(" - Atomics: %15s\n", (useAtomics ? "Yes" : "No") ); - printf("Benchmark kernels will be performed for %d iterations.\n", repeats); + printf(HLINE); - printf(HLINE); + GUPSDeviceArray dev_indices("indices", indicesCount); + GUPSDeviceArray dev_data("data", dataCount); + int64_t datum = -1; - GUPSDeviceArray dev_indices("indices", indicesCount); - GUPSDeviceArray dev_data("data", dataCount); - int64_t datum = -1; + GUPSHostArray indices = Kokkos::create_mirror_view(dev_indices); + GUPSHostArray data = Kokkos::create_mirror_view(dev_data); - GUPSHostArray indices = Kokkos::create_mirror_view(dev_indices); - GUPSHostArray data = Kokkos::create_mirror_view(dev_data); + double gupsTime = 0.0; - double gupsTime = 0.0; - - printf("Initializing Views...\n"); + printf("Initializing Views...\n"); #if defined(KOKKOS_HAVE_OPENMP) - Kokkos::parallel_for("init-data", Kokkos::RangePolicy(0, dataCount), + Kokkos::parallel_for( + "init-data", Kokkos::RangePolicy(0, dataCount), #else - Kokkos::parallel_for("init-data", Kokkos::RangePolicy(0, dataCount), + Kokkos::parallel_for( + "init-data", Kokkos::RangePolicy(0, dataCount), #endif - KOKKOS_LAMBDA(const int i) { - - data[i] = 10101010101; - }); + KOKKOS_LAMBDA(const int i) { data[i] = 10101010101; }); #if defined(KOKKOS_HAVE_OPENMP) - Kokkos::parallel_for("init-indices", Kokkos::RangePolicy(0, indicesCount), + Kokkos::parallel_for( + "init-indices", Kokkos::RangePolicy(0, indicesCount), #else - Kokkos::parallel_for("init-indices", Kokkos::RangePolicy(0, indicesCount), + Kokkos::parallel_for( + "init-indices", Kokkos::RangePolicy(0, indicesCount), #endif - KOKKOS_LAMBDA(const int i) { + KOKKOS_LAMBDA(const int i) { indices[i] = 0; }); - indices[i] = 0; - }); + Kokkos::deep_copy(dev_data, data); + Kokkos::deep_copy(dev_indices, indices); + double start; - Kokkos::deep_copy(dev_data, data); - Kokkos::deep_copy(dev_indices, indices); - double start; + printf("Starting benchmarking...\n"); - printf("Starting benchmarking...\n"); + for (GUPSIndex k = 0; k < repeats; ++k) { + randomize_indices(indices, dev_indices, data.extent(0)); - for( GUPSIndex k = 0; k < repeats; ++k ) { - randomize_indices(indices, dev_indices, data.extent(0)); + start = now(); + run_gups(dev_indices, dev_data, datum, useAtomics); + gupsTime += now() - start; + } - start = now(); - run_gups(dev_indices, dev_data, datum, useAtomics); - gupsTime += now() - start; - } + Kokkos::deep_copy(indices, dev_indices); + Kokkos::deep_copy(data, dev_data); - Kokkos::deep_copy(indices, dev_indices); - Kokkos::deep_copy(data, dev_data); + printf(HLINE); + printf( + "GUP/s Random: %18.6f\n", + (1.0e-9 * ((double)repeats) * (double)dev_indices.extent(0)) / gupsTime); + printf(HLINE); - printf(HLINE); - printf("GUP/s Random: %18.6f\n", - (1.0e-9 * ((double) repeats) * (double) dev_indices.extent(0)) / gupsTime); - printf(HLINE); - - return 0; + return 0; } int main(int argc, char* argv[]) { - - printf(HLINE); - printf("Kokkos GUPS Benchmark\n"); - printf(HLINE); - - srand48(1010101); - - Kokkos::initialize(argc, argv); - - int64_t indices = 8192; - int64_t data = 33554432; - int64_t repeats = 10; - bool useAtomics = false; - - for( int i = 1; i < argc; ++i ) { - if( strcmp( argv[i], "--indices" ) == 0 ) { - indices = std::atoll(argv[i+1]); - ++i; - } else if( strcmp( argv[i], "--data" ) == 0 ) { - data = std::atoll(argv[i+1]); - ++i; - } else if( strcmp( argv[i], "--repeats" ) == 0 ) { - repeats = std::atoll(argv[i+1]); - ++i; - } else if( strcmp( argv[i], "--atomics" ) == 0 ) { - useAtomics = true; - } - } - - const int rc = run_benchmark(indices, data, repeats, useAtomics); - - Kokkos::finalize(); - - return rc; + printf(HLINE); + printf("Kokkos GUPS Benchmark\n"); + printf(HLINE); + + srand48(1010101); + + Kokkos::initialize(argc, argv); + + int64_t indices = 8192; + int64_t data = 33554432; + int64_t repeats = 10; + bool useAtomics = false; + + for (int i = 1; i < argc; ++i) { + if (strcmp(argv[i], "--indices") == 0) { + indices = std::atoll(argv[i + 1]); + ++i; + } else if (strcmp(argv[i], "--data") == 0) { + data = std::atoll(argv[i + 1]); + ++i; + } else if (strcmp(argv[i], "--repeats") == 0) { + repeats = std::atoll(argv[i + 1]); + ++i; + } else if (strcmp(argv[i], "--atomics") == 0) { + useAtomics = true; + } + } + + const int rc = run_benchmark(indices, data, repeats, useAtomics); + + Kokkos::finalize(); + + return rc; } diff --git a/lib/kokkos/benchmarks/policy_performance/main.cpp b/lib/kokkos/benchmarks/policy_performance/main.cpp index 332e5574da..5b04c6ab93 100644 --- a/lib/kokkos/benchmarks/policy_performance/main.cpp +++ b/lib/kokkos/benchmarks/policy_performance/main.cpp @@ -94,22 +94,22 @@ int main(int argc, char* argv[]) { return 0; } - int team_range = atoi(argv[1]); - int thread_range = atoi(argv[2]); - int vector_range = atoi(argv[3]); + int team_range = std::stoi(argv[1]); + int thread_range = std::stoi(argv[2]); + int vector_range = std::stoi(argv[3]); - int outer_repeat = atoi(argv[4]); - int thread_repeat = atoi(argv[5]); - int vector_repeat = atoi(argv[6]); + int outer_repeat = std::stoi(argv[4]); + int thread_repeat = std::stoi(argv[5]); + int vector_repeat = std::stoi(argv[6]); - int team_size = atoi(argv[7]); - int vector_size = atoi(argv[8]); - int schedule = atoi(argv[9]); - int test_type = atoi(argv[10]); + int team_size = std::stoi(argv[7]); + int vector_size = std::stoi(argv[8]); + int schedule = std::stoi(argv[9]); + int test_type = std::stoi(argv[10]); int disable_verbose_output = 0; if (argc > 11) { - disable_verbose_output = atoi(argv[11]); + disable_verbose_output = std::stoi(argv[11]); } if (schedule != 1 && schedule != 2) { @@ -138,9 +138,9 @@ int main(int argc, char* argv[]) { double& lval) { lval += 1; }, result); - typedef Kokkos::View view_type_1d; - typedef Kokkos::View view_type_2d; - typedef Kokkos::View view_type_3d; + using view_type_1d = Kokkos::View; + using view_type_2d = Kokkos::View; + using view_type_3d = Kokkos::View; // Allocate view without initializing // Call a 'warmup' test with 1 repeat - this will initialize the corresponding diff --git a/lib/kokkos/benchmarks/policy_performance/policy_perf_test.hpp b/lib/kokkos/benchmarks/policy_performance/policy_perf_test.hpp index 7a1500891f..8e6cd7447d 100644 --- a/lib/kokkos/benchmarks/policy_performance/policy_perf_test.hpp +++ b/lib/kokkos/benchmarks/policy_performance/policy_perf_test.hpp @@ -68,8 +68,8 @@ void test_policy(int team_range, int thread_range, int vector_range, int team_size, int vector_size, int test_type, ViewType1& v1, ViewType2& v2, ViewType3& v3, double& result, double& result_expect, double& time) { - typedef Kokkos::TeamPolicy t_policy; - typedef typename t_policy::member_type t_team; + using t_policy = Kokkos::TeamPolicy; + using t_team = typename t_policy::member_type; Kokkos::Timer timer; for (int orep = 0; orep < outer_repeat; orep++) { diff --git a/lib/kokkos/benchmarks/stream/stream-kokkos.cc b/lib/kokkos/benchmarks/stream/stream-kokkos.cc index 8d604079d4..e7ef67e080 100644 --- a/lib/kokkos/benchmarks/stream/stream-kokkos.cc +++ b/lib/kokkos/benchmarks/stream/stream-kokkos.cc @@ -48,219 +48,224 @@ #include #define STREAM_ARRAY_SIZE 100000000 -#define STREAM_NTIMES 20 +#define STREAM_NTIMES 20 #define HLINE "-------------------------------------------------------------\n" #if defined(KOKKOS_ENABLE_CUDA) -typedef Kokkos::View::HostMirror StreamHostArray; -typedef Kokkos::View StreamDeviceArray; +using StreamHostArray = Kokkos::View::HostMirror; +using StreamDeviceArray = Kokkos::View; #else -typedef Kokkos::View::HostMirror StreamHostArray; -typedef Kokkos::View StreamDeviceArray; +using StreamHostArray = Kokkos::View::HostMirror; +using StreamDeviceArray = Kokkos::View; #endif -typedef int StreamIndex; +using StreamIndex = int; double now() { - struct timeval now; - gettimeofday(&now, nullptr); + struct timeval now; + gettimeofday(&now, nullptr); - return (double) now.tv_sec + ((double) now.tv_usec * 1.0e-6); + return (double)now.tv_sec + ((double)now.tv_usec * 1.0e-6); } -void perform_copy(StreamDeviceArray& a, StreamDeviceArray& b, StreamDeviceArray& c) { +void perform_copy(StreamDeviceArray& a, StreamDeviceArray& b, + StreamDeviceArray& c) { + Kokkos::parallel_for( + "copy", a.extent(0), KOKKOS_LAMBDA(const StreamIndex i) { c[i] = a[i]; }); - Kokkos::parallel_for("copy", a.extent(0), KOKKOS_LAMBDA(const StreamIndex i) { - c[i] = a[i]; - }); - - Kokkos::fence(); + Kokkos::fence(); } -void perform_scale(StreamDeviceArray& a, StreamDeviceArray& b, StreamDeviceArray& c, - const double scalar) { - - Kokkos::parallel_for("copy", a.extent(0), KOKKOS_LAMBDA(const StreamIndex i) { - b[i] = scalar * c[i]; - }); +void perform_scale(StreamDeviceArray& a, StreamDeviceArray& b, + StreamDeviceArray& c, const double scalar) { + Kokkos::parallel_for( + "copy", a.extent(0), + KOKKOS_LAMBDA(const StreamIndex i) { b[i] = scalar * c[i]; }); - Kokkos::fence(); + Kokkos::fence(); } -void perform_add(StreamDeviceArray& a, StreamDeviceArray& b, StreamDeviceArray& c) { - Kokkos::parallel_for("add", a.extent(0), KOKKOS_LAMBDA(const StreamIndex i) { - c[i] = a[i] + b[i]; - }); +void perform_add(StreamDeviceArray& a, StreamDeviceArray& b, + StreamDeviceArray& c) { + Kokkos::parallel_for( + "add", a.extent(0), + KOKKOS_LAMBDA(const StreamIndex i) { c[i] = a[i] + b[i]; }); - Kokkos::fence(); + Kokkos::fence(); } -void perform_triad(StreamDeviceArray& a, StreamDeviceArray& b, StreamDeviceArray& c, - const double scalar) { - - Kokkos::parallel_for("triad", a.extent(0), KOKKOS_LAMBDA(const StreamIndex i) { - a[i] = b[i] + scalar * c[i]; - }); +void perform_triad(StreamDeviceArray& a, StreamDeviceArray& b, + StreamDeviceArray& c, const double scalar) { + Kokkos::parallel_for( + "triad", a.extent(0), + KOKKOS_LAMBDA(const StreamIndex i) { a[i] = b[i] + scalar * c[i]; }); - Kokkos::fence(); + Kokkos::fence(); } -int perform_validation(StreamHostArray& a, StreamHostArray& b, StreamHostArray& c, - const StreamIndex arraySize, const double scalar) { - - double ai = 1.0; - double bi = 2.0; - double ci = 0.0; - - for( StreamIndex i = 0; i < arraySize; ++i ) { - ci = ai; - bi = scalar * ci; - ci = ai + bi; - ai = bi + scalar * ci; - }; - - double aError = 0.0; - double bError = 0.0; - double cError = 0.0; - - for( StreamIndex i = 0; i < arraySize; ++i ) { - aError = std::abs( a[i] - ai ); - bError = std::abs( b[i] - bi ); - cError = std::abs( c[i] - ci ); - } - - double aAvgError = aError / (double) arraySize; - double bAvgError = bError / (double) arraySize; - double cAvgError = cError / (double) arraySize; - - const double epsilon = 1.0e-13; - int errorCount = 0; - - if( std::abs( aAvgError / ai ) > epsilon ) { - fprintf(stderr, "Error: validation check on View a failed.\n"); - errorCount++; - } - - if( std::abs( bAvgError / bi ) > epsilon ) { - fprintf(stderr, "Error: validation check on View b failed.\n"); - errorCount++; - } - - if( std::abs( cAvgError / ci ) > epsilon ) { - fprintf(stderr, "Error: validation check on View c failed.\n"); - errorCount++; - } - - if( errorCount == 0 ) { - printf("All solutions checked and verified.\n"); - } - - return errorCount; +int perform_validation(StreamHostArray& a, StreamHostArray& b, + StreamHostArray& c, const StreamIndex arraySize, + const double scalar) { + double ai = 1.0; + double bi = 2.0; + double ci = 0.0; + + for (StreamIndex i = 0; i < arraySize; ++i) { + ci = ai; + bi = scalar * ci; + ci = ai + bi; + ai = bi + scalar * ci; + }; + + double aError = 0.0; + double bError = 0.0; + double cError = 0.0; + + for (StreamIndex i = 0; i < arraySize; ++i) { + aError = std::abs(a[i] - ai); + bError = std::abs(b[i] - bi); + cError = std::abs(c[i] - ci); + } + + double aAvgError = aError / (double)arraySize; + double bAvgError = bError / (double)arraySize; + double cAvgError = cError / (double)arraySize; + + const double epsilon = 1.0e-13; + int errorCount = 0; + + if (std::abs(aAvgError / ai) > epsilon) { + fprintf(stderr, "Error: validation check on View a failed.\n"); + errorCount++; + } + + if (std::abs(bAvgError / bi) > epsilon) { + fprintf(stderr, "Error: validation check on View b failed.\n"); + errorCount++; + } + + if (std::abs(cAvgError / ci) > epsilon) { + fprintf(stderr, "Error: validation check on View c failed.\n"); + errorCount++; + } + + if (errorCount == 0) { + printf("All solutions checked and verified.\n"); + } + + return errorCount; } int run_benchmark() { + printf("Reports fastest timing per kernel\n"); + printf("Creating Views...\n"); - printf("Reports fastest timing per kernel\n"); - printf("Creating Views...\n"); + printf("Memory Sizes:\n"); + printf("- Array Size: %" PRIu64 "\n", + static_cast(STREAM_ARRAY_SIZE)); + printf("- Per Array: %12.2f MB\n", + 1.0e-6 * (double)STREAM_ARRAY_SIZE * (double)sizeof(double)); + printf("- Total: %12.2f MB\n", + 3.0e-6 * (double)STREAM_ARRAY_SIZE * (double)sizeof(double)); - printf("Memory Sizes:\n"); - printf("- Array Size: %" PRIu64 "\n", static_cast(STREAM_ARRAY_SIZE)); - printf("- Per Array: %12.2f MB\n", 1.0e-6 * (double) STREAM_ARRAY_SIZE * (double) sizeof(double)); - printf("- Total: %12.2f MB\n", 3.0e-6 * (double) STREAM_ARRAY_SIZE * (double) sizeof(double)); + printf("Benchmark kernels will be performed for %d iterations.\n", + STREAM_NTIMES); - printf("Benchmark kernels will be performed for %d iterations.\n", STREAM_NTIMES); + printf(HLINE); - printf(HLINE); + StreamDeviceArray dev_a("a", STREAM_ARRAY_SIZE); + StreamDeviceArray dev_b("b", STREAM_ARRAY_SIZE); + StreamDeviceArray dev_c("c", STREAM_ARRAY_SIZE); - StreamDeviceArray dev_a("a", STREAM_ARRAY_SIZE); - StreamDeviceArray dev_b("b", STREAM_ARRAY_SIZE); - StreamDeviceArray dev_c("c", STREAM_ARRAY_SIZE); + StreamHostArray a = Kokkos::create_mirror_view(dev_a); + StreamHostArray b = Kokkos::create_mirror_view(dev_b); + StreamHostArray c = Kokkos::create_mirror_view(dev_c); - StreamHostArray a = Kokkos::create_mirror_view(dev_a); - StreamHostArray b = Kokkos::create_mirror_view(dev_b); - StreamHostArray c = Kokkos::create_mirror_view(dev_c); + const double scalar = 3.0; - const double scalar = 3.0; + double copyTime = std::numeric_limits::max(); + double scaleTime = std::numeric_limits::max(); + double addTime = std::numeric_limits::max(); + double triadTime = std::numeric_limits::max(); - double copyTime = std::numeric_limits::max(); - double scaleTime = std::numeric_limits::max(); - double addTime = std::numeric_limits::max(); - double triadTime = std::numeric_limits::max(); - - printf("Initializing Views...\n"); + printf("Initializing Views...\n"); #if defined(KOKKOS_HAVE_OPENMP) - Kokkos::parallel_for("init", Kokkos::RangePolicy(0, STREAM_ARRAY_SIZE), + Kokkos::parallel_for( + "init", Kokkos::RangePolicy(0, STREAM_ARRAY_SIZE), #else - Kokkos::parallel_for("init", Kokkos::RangePolicy(0, STREAM_ARRAY_SIZE), + Kokkos::parallel_for( + "init", Kokkos::RangePolicy(0, STREAM_ARRAY_SIZE), #endif - KOKKOS_LAMBDA(const int i) { - - a[i] = 1.0; - b[i] = 2.0; - c[i] = 0.0; - }); - - // Copy contents of a (from the host) to the dev_a (device) - Kokkos::deep_copy(dev_a, a); - Kokkos::deep_copy(dev_b, b); - Kokkos::deep_copy(dev_c, c); - - double start; - - printf("Starting benchmarking...\n"); - - for( StreamIndex k = 0; k < STREAM_NTIMES; ++k ) { - start = now(); - perform_copy(dev_a, dev_b, dev_c); - copyTime = std::min( copyTime, (now() - start) ); - - start = now(); - perform_scale(dev_a, dev_b, dev_c, scalar); - scaleTime = std::min( scaleTime, (now() - start) ); - - start = now(); - perform_add(dev_a, dev_b, dev_c); - addTime = std::min( addTime, (now() - start) ); - - start = now(); - perform_triad(dev_a, dev_b, dev_c, scalar); - triadTime = std::min( triadTime, (now() - start) ); - } - - Kokkos::deep_copy(a, dev_a); - Kokkos::deep_copy(b, dev_b); - Kokkos::deep_copy(c, dev_c); - - printf("Performing validation...\n"); - int rc = perform_validation(a, b, c, STREAM_ARRAY_SIZE, scalar); - - printf(HLINE); - - printf("Copy %11.2f MB/s\n", - ( 1.0e-06 * 2.0 * (double) sizeof(double) * (double) STREAM_ARRAY_SIZE) / copyTime ); - printf("Scale %11.2f MB/s\n", - ( 1.0e-06 * 2.0 * (double) sizeof(double) * (double) STREAM_ARRAY_SIZE) / scaleTime ); - printf("Add %11.2f MB/s\n", - ( 1.0e-06 * 3.0 * (double) sizeof(double) * (double) STREAM_ARRAY_SIZE) / addTime ); - printf("Triad %11.2f MB/s\n", - ( 1.0e-06 * 3.0 * (double) sizeof(double) * (double) STREAM_ARRAY_SIZE) / triadTime ); - - printf(HLINE); - - return rc; + KOKKOS_LAMBDA(const int i) { + a[i] = 1.0; + b[i] = 2.0; + c[i] = 0.0; + }); + + // Copy contents of a (from the host) to the dev_a (device) + Kokkos::deep_copy(dev_a, a); + Kokkos::deep_copy(dev_b, b); + Kokkos::deep_copy(dev_c, c); + + double start; + + printf("Starting benchmarking...\n"); + + for (StreamIndex k = 0; k < STREAM_NTIMES; ++k) { + start = now(); + perform_copy(dev_a, dev_b, dev_c); + copyTime = std::min(copyTime, (now() - start)); + + start = now(); + perform_scale(dev_a, dev_b, dev_c, scalar); + scaleTime = std::min(scaleTime, (now() - start)); + + start = now(); + perform_add(dev_a, dev_b, dev_c); + addTime = std::min(addTime, (now() - start)); + + start = now(); + perform_triad(dev_a, dev_b, dev_c, scalar); + triadTime = std::min(triadTime, (now() - start)); + } + + Kokkos::deep_copy(a, dev_a); + Kokkos::deep_copy(b, dev_b); + Kokkos::deep_copy(c, dev_c); + + printf("Performing validation...\n"); + int rc = perform_validation(a, b, c, STREAM_ARRAY_SIZE, scalar); + + printf(HLINE); + + printf("Copy %11.2f MB/s\n", + (1.0e-06 * 2.0 * (double)sizeof(double) * (double)STREAM_ARRAY_SIZE) / + copyTime); + printf("Scale %11.2f MB/s\n", + (1.0e-06 * 2.0 * (double)sizeof(double) * (double)STREAM_ARRAY_SIZE) / + scaleTime); + printf("Add %11.2f MB/s\n", + (1.0e-06 * 3.0 * (double)sizeof(double) * (double)STREAM_ARRAY_SIZE) / + addTime); + printf("Triad %11.2f MB/s\n", + (1.0e-06 * 3.0 * (double)sizeof(double) * (double)STREAM_ARRAY_SIZE) / + triadTime); + + printf(HLINE); + + return rc; } int main(int argc, char* argv[]) { + printf(HLINE); + printf("Kokkos STREAM Benchmark\n"); + printf(HLINE); - printf(HLINE); - printf("Kokkos STREAM Benchmark\n"); - printf(HLINE); - - Kokkos::initialize(argc, argv); - const int rc = run_benchmark(); - Kokkos::finalize(); + Kokkos::initialize(argc, argv); + const int rc = run_benchmark(); + Kokkos::finalize(); - return rc; + return rc; } diff --git a/lib/kokkos/bin/nvcc_wrapper b/lib/kokkos/bin/nvcc_wrapper index 8a23d0d620..bc213497bf 100755 --- a/lib/kokkos/bin/nvcc_wrapper +++ b/lib/kokkos/bin/nvcc_wrapper @@ -19,6 +19,13 @@ default_arch="sm_35" # The default C++ compiler. # host_compiler=${NVCC_WRAPPER_DEFAULT_COMPILER:-"g++"} + +# Default to whatever is in the path +nvcc_compiler=nvcc +if [ ! -z $CUDA_ROOT ]; then + nvcc_compiler="$CUDA_ROOT/bin/nvcc" +fi + #host_compiler="icpc" #host_compiler="/usr/local/gcc/4.8.3/bin/g++" #host_compiler="/usr/local/gcc/4.9.1/bin/g++" @@ -58,7 +65,7 @@ object_files_xlinker="" shared_versioned_libraries_host="" shared_versioned_libraries="" -# Does the User set the architecture +# Does the User set the architecture arch_set=0 # Does the user overwrite the host compiler @@ -77,7 +84,7 @@ host_only_args="" # Just run version on host compiler get_host_version=0 -# Enable workaround for CUDA 6.5 for pragma ident +# Enable workaround for CUDA 6.5 for pragma ident replace_pragma_ident=0 # Mark first host compiler argument @@ -179,7 +186,7 @@ do shift ;; #Handle known nvcc args - --dryrun|--verbose|--keep|--keep-dir*|-G|--relocatable-device-code*|-lineinfo|-expt-extended-lambda|--resource-usage|-Xptxas*|--fmad*) + --dryrun|--verbose|--keep|--keep-dir*|-G|--relocatable-device-code*|-lineinfo|-expt-extended-lambda|-expt-relaxed-constexpr|--resource-usage|-Xptxas*|--fmad*|--Wext-lambda-captures-this|-Wext-lambda-captures-this) cuda_args="$cuda_args $1" ;; #Handle more known nvcc args @@ -187,7 +194,7 @@ do cuda_args="$cuda_args $1" ;; #Handle known nvcc args that have an argument - -rdc|-maxrregcount|--default-stream|-Xnvlink|--fmad) + -rdc|-maxrregcount|--default-stream|-Xnvlink|--fmad|-cudart|--cudart) cuda_args="$cuda_args $1 $2" shift ;; @@ -195,11 +202,11 @@ do cuda_args="$cuda_args $1" ;; #Handle unsupported standard flags - --std=c++1y|-std=c++1y|--std=c++1z|-std=c++1z|--std=gnu++1y|-std=gnu++1y|--std=gnu++1z|-std=gnu++1z|--std=c++2a|-std=c++2a|--std=c++17|-std=c++17) + --std=c++1y|-std=c++1y|--std=gnu++1y|-std=gnu++1y|--std=c++1z|-std=c++1z|--std=gnu++1z|-std=gnu++1z|--std=c++2a|-std=c++2a) fallback_std_flag="-std=c++14" # this is hopefully just occurring in a downstream project during CMake feature tests # we really have no choice here but to accept the flag and change to an accepted C++ standard - echo "nvcc_wrapper does not accept standard flags $1 since partial standard flags and standards after C++14 are not supported. nvcc_wrapper will use $fallback_std_flag instead. It is undefined behavior to use this flag. This should only be occurring during CMake configuration." + echo "nvcc_wrapper does not accept standard flags $1 since partial standard flags and standards after C++17 are not supported. nvcc_wrapper will use $fallback_std_flag instead. It is undefined behavior to use this flag. This should only be occurring during CMake configuration." if [ -n "$std_flag" ]; then warn_std_flag shared_args=${shared_args/ $std_flag/} @@ -216,7 +223,25 @@ do fi std_flag=$corrected_std_flag shared_args="$shared_args $std_flag" - ;; + ;; + --std=c++17|-std=c++17) + if [ -n "$std_flag" ]; then + warn_std_flag + shared_args=${shared_args/ $std_flag/} + fi + # NVCC only has C++17 from version 11 on + cuda_main_version=$([[ $(${nvcc_compiler} --version) =~ V([0-9]+) ]] && echo ${BASH_REMATCH[1]}) + if [ ${cuda_main_version} -lt 11 ]; then + fallback_std_flag="-std=c++14" + # this is hopefully just occurring in a downstream project during CMake feature tests + # we really have no choice here but to accept the flag and change to an accepted C++ standard + echo "nvcc_wrapper does not accept standard flags $1 since partial standard flags and standards after C++14 are not supported. nvcc_wrapper will use $fallback_std_flag instead. It is undefined behavior to use this flag. This should only be occurring during CMake configuration." + std_flag=$fallback_std_flag + else + std_flag=$1 + fi + shared_args="$shared_args $std_flag" + ;; --std=c++11|-std=c++11|--std=c++14|-std=c++14) if [ -n "$std_flag" ]; then warn_std_flag @@ -226,6 +251,20 @@ do shared_args="$shared_args $std_flag" ;; + #convert PGI standard flags to something nvcc can handle + --c++11|--c++14|--c++17) + if [ -n "$std_flag" ]; then + warn_std_flag + shared_args=${shared_args/ $std_flag/} + fi + std_flag="-std=${1#--}" + shared_args="$shared_args $std_flag" + ;; + + #ignore PGI forcing ISO C++-conforming code + -A) + ;; + #strip of -std=c++98 due to nvcc warnings and Tribits will place both -std=c++11 and -std=c++98 -std=c++98|--std=c++98) ;; @@ -237,13 +276,17 @@ do ;; #strip -Xcompiler because we add it -Xcompiler) - if [ $first_xcompiler_arg -eq 1 ]; then - xcompiler_args="$2" - first_xcompiler_arg=0 - else - xcompiler_args="$xcompiler_args,$2" + if [[ $2 != "-o" ]]; then + if [ $first_xcompiler_arg -eq 1 ]; then + xcompiler_args="$2" + first_xcompiler_arg=0 + else + xcompiler_args="$xcompiler_args,$2" + fi + shift fi - shift + # else this we have -Xcompiler -o , in this case just drop -Xcompiler and process + # the -o flag with the filename (done above) ;; #strip of "-x cu" because we add that -x) @@ -329,7 +372,7 @@ do if [ $first_xcompiler_arg -eq 1 ]; then xcompiler_args=$1 first_xcompiler_arg=0 - else + else xcompiler_args="$xcompiler_args,$1" fi ;; @@ -387,7 +430,7 @@ if [ $arch_set -ne 1 ]; then fi #Compose compilation command -nvcc_command="nvcc $cuda_args $shared_args $xlinker_args $shared_versioned_libraries" +nvcc_command="$nvcc_compiler $cuda_args $shared_args $xlinker_args $shared_versioned_libraries" if [ $first_xcompiler_arg -eq 0 ]; then nvcc_command="$nvcc_command -Xcompiler $xcompiler_args" fi diff --git a/lib/kokkos/cmake/KokkosConfigCommon.cmake.in b/lib/kokkos/cmake/KokkosConfigCommon.cmake.in index 8c663d01c1..8e664b27a3 100644 --- a/lib/kokkos/cmake/KokkosConfigCommon.cmake.in +++ b/lib/kokkos/cmake/KokkosConfigCommon.cmake.in @@ -2,6 +2,7 @@ SET(Kokkos_DEVICES @KOKKOS_ENABLED_DEVICES@) SET(Kokkos_OPTIONS @KOKKOS_ENABLED_OPTIONS@) SET(Kokkos_TPLS @KOKKOS_ENABLED_TPLS@) SET(Kokkos_ARCH @KOKKOS_ENABLED_ARCH_LIST@) +SET(Kokkos_CXX_COMPILER "@CMAKE_CXX_COMPILER@") # These are needed by KokkosKernels FOREACH(DEV ${Kokkos_DEVICES}) @@ -38,7 +39,7 @@ include(FindPackageHandleStandardArgs) # kokkos_check( # [DEVICES ...] # Set of backends (e.g. "OpenMP" and/or "Cuda") # [ARCH ...] # Target architectures (e.g. "Power9" and/or "Volta70") -# [OPTIONS ...] # Optional settings (e.g. "PROFILING") +# [OPTIONS ...] # Optional settings (e.g. "TUNING") # [TPLS ...] # Third party libraries # [RETURN_VALUE ] # Set a variable that indicates the result of the # # check instead of a fatal error diff --git a/lib/kokkos/cmake/KokkosCore_config.h.in b/lib/kokkos/cmake/KokkosCore_config.h.in index 1d0b58fe02..c0362e4fb0 100644 --- a/lib/kokkos/cmake/KokkosCore_config.h.in +++ b/lib/kokkos/cmake/KokkosCore_config.h.in @@ -1,6 +1,7 @@ #if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." +#error \ + "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." #else #define KOKKOS_CORE_CONFIG_H #endif @@ -10,7 +11,6 @@ // KOKKOS_VERSION / 10000 is the major version #cmakedefine KOKKOS_VERSION @KOKKOS_VERSION@ - /* Execution Spaces */ #cmakedefine KOKKOS_ENABLE_SERIAL #cmakedefine KOKKOS_ENABLE_OPENMP @@ -47,10 +47,9 @@ #cmakedefine KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK #cmakedefine KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK #cmakedefine KOKKOS_ENABLE_COMPILER_WARNINGS -#cmakedefine KOKKOS_ENABLE_PROFILING #cmakedefine KOKKOS_ENABLE_PROFILING_LOAD_PRINT +#cmakedefine KOKKOS_ENABLE_TUNING #cmakedefine KOKKOS_ENABLE_DEPRECATED_CODE -#cmakedefine KOKKOS_ENABLE_ETI #cmakedefine KOKKOS_ENABLE_LARGE_MEM_TESTS #cmakedefine KOKKOS_ENABLE_DUALVIEW_MODIFY_CHECK #cmakedefine KOKKOS_ENABLE_COMPLEX_ALIGN @@ -60,7 +59,7 @@ #cmakedefine KOKKOS_ENABLE_HWLOC #cmakedefine KOKKOS_USE_LIBRT #cmakedefine KOKKOS_ENABLE_HWBSPACE - +#cmakedefine KOKKOS_ENABLE_LIBDL #cmakedefine KOKKOS_IMPL_CUDA_CLANG_WORKAROUND #cmakedefine KOKKOS_COMPILER_CUDA_VERSION @KOKKOS_COMPILER_CUDA_VERSION@ @@ -95,4 +94,6 @@ #cmakedefine KOKKOS_ARCH_VOLTA70 #cmakedefine KOKKOS_ARCH_VOLTA72 #cmakedefine KOKKOS_ARCH_TURING75 -#cmakedefine KOKKOS_ARCH_AMD_EPYC +#cmakedefine KOKKOS_ARCH_AMPERE80 +#cmakedefine KOKKOS_ARCH_AMD_ZEN +#cmakedefine KOKKOS_ARCH_AMD_ZEN2 diff --git a/lib/kokkos/cmake/Modules/CudaToolkit.cmake b/lib/kokkos/cmake/Modules/CudaToolkit.cmake new file mode 100644 index 0000000000..d620a71d36 --- /dev/null +++ b/lib/kokkos/cmake/Modules/CudaToolkit.cmake @@ -0,0 +1,958 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#[=======================================================================[.rst: +FindCUDAToolkit +--------------- + +This script locates the NVIDIA CUDA toolkit and the associated libraries, but +does not require the ``CUDA`` language be enabled for a given project. This +module does not search for the NVIDIA CUDA Samples. + +Search Behavior +^^^^^^^^^^^^^^^ + +Finding the CUDA Toolkit requires finding the ``nvcc`` executable, which is +searched for in the following order: + +1. If the ``CUDA`` language has been enabled we will use the directory + containing the compiler as the first search location for ``nvcc``. + +2. If the ``CUDAToolkit_ROOT`` cmake configuration variable (e.g., + ``-DCUDAToolkit_ROOT=/some/path``) *or* environment variable is defined, it + will be searched. If both an environment variable **and** a + configuration variable are specified, the *configuration* variable takes + precedence. + + The directory specified here must be such that the executable ``nvcc`` can be + found underneath the directory specified by ``CUDAToolkit_ROOT``. If + ``CUDAToolkit_ROOT`` is specified, but no ``nvcc`` is found underneath, this + package is marked as **not** found. No subsequent search attempts are + performed. + +3. If the CUDA_PATH environment variable is defined, it will be searched. + +4. The user's path is searched for ``nvcc`` using :command:`find_program`. If + this is found, no subsequent search attempts are performed. Users are + responsible for ensuring that the first ``nvcc`` to show up in the path is + the desired path in the event that multiple CUDA Toolkits are installed. + +5. On Unix systems, if the symbolic link ``/usr/local/cuda`` exists, this is + used. No subsequent search attempts are performed. No default symbolic link + location exists for the Windows platform. + +6. The platform specific default install locations are searched. If exactly one + candidate is found, this is used. The default CUDA Toolkit install locations + searched are: + + +-------------+-------------------------------------------------------------+ + | Platform | Search Pattern | + +=============+=============================================================+ + | macOS | ``/Developer/NVIDIA/CUDA-X.Y`` | + +-------------+-------------------------------------------------------------+ + | Other Unix | ``/usr/local/cuda-X.Y`` | + +-------------+-------------------------------------------------------------+ + | Windows | ``C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y`` | + +-------------+-------------------------------------------------------------+ + + Where ``X.Y`` would be a specific version of the CUDA Toolkit, such as + ``/usr/local/cuda-9.0`` or + ``C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0`` + + .. note:: + + When multiple CUDA Toolkits are installed in the default location of a + system (e.g., both ``/usr/local/cuda-9.0`` and ``/usr/local/cuda-10.0`` + exist but the ``/usr/local/cuda`` symbolic link does **not** exist), this + package is marked as **not** found. + + There are too many factors involved in making an automatic decision in + the presence of multiple CUDA Toolkits being installed. In this + situation, users are encouraged to either (1) set ``CUDAToolkit_ROOT`` or + (2) ensure that the correct ``nvcc`` executable shows up in ``$PATH`` for + :command:`find_program` to find. + +Options +^^^^^^^ + +``VERSION`` + If specified, describes the version of the CUDA Toolkit to search for. + +``REQUIRED`` + If specified, configuration will error if a suitable CUDA Toolkit is not + found. + +``QUIET`` + If specified, the search for a suitable CUDA Toolkit will not produce any + messages. + +``EXACT`` + If specified, the CUDA Toolkit is considered found only if the exact + ``VERSION`` specified is recovered. + +Imported targets +^^^^^^^^^^^^^^^^ + +An :ref:`imported target ` named ``CUDA::toolkit`` is provided. + +This module defines :prop_tgt:`IMPORTED` targets for each +of the following libraries that are part of the CUDAToolkit: + +- :ref:`CUDA Runtime Library` +- :ref:`CUDA Driver Library` +- :ref:`cuBLAS` +- :ref:`cuFFT` +- :ref:`cuRAND` +- :ref:`cuSOLVER` +- :ref:`cuSPARSE` +- :ref:`cuPTI` +- :ref:`NPP` +- :ref:`nvBLAS` +- :ref:`nvGRAPH` +- :ref:`nvJPEG` +- :ref:`nvidia-ML` +- :ref:`nvRTC` +- :ref:`nvToolsExt` +- :ref:`OpenCL` +- :ref:`cuLIBOS` + +.. _`cuda_toolkit_rt_lib`: + +CUDA Runtime Library +"""""""""""""""""""" + +The CUDA Runtime library (cudart) are what most applications will typically +need to link against to make any calls such as `cudaMalloc`, and `cudaFree`. + +Targets Created: + +- ``CUDA::cudart`` +- ``CUDA::cudart_static`` + +.. _`cuda_toolkit_driver_lib`: + +CUDA Driver Library +"""""""""""""""""""" + +The CUDA Driver library (cuda) are used by applications that use calls +such as `cuMemAlloc`, and `cuMemFree`. This is generally used by advanced + + +Targets Created: + +- ``CUDA::cuda_driver`` +- ``CUDA::cuda_driver`` + +.. _`cuda_toolkit_cuBLAS`: + +cuBLAS +"""""" + +The `cuBLAS `_ library. + +Targets Created: + +- ``CUDA::cublas`` +- ``CUDA::cublas_static`` + +.. _`cuda_toolkit_cuFFT`: + +cuFFT +""""" + +The `cuFFT `_ library. + +Targets Created: + +- ``CUDA::cufft`` +- ``CUDA::cufftw`` +- ``CUDA::cufft_static`` +- ``CUDA::cufftw_static`` + +cuRAND +"""""" + +The `cuRAND `_ library. + +Targets Created: + +- ``CUDA::curand`` +- ``CUDA::curand_static`` + +.. _`cuda_toolkit_cuSOLVER`: + +cuSOLVER +"""""""" + +The `cuSOLVER `_ library. + +Targets Created: + +- ``CUDA::cusolver`` +- ``CUDA::cusolver_static`` + +.. _`cuda_toolkit_cuSPARSE`: + +cuSPARSE +"""""""" + +The `cuSPARSE `_ library. + +Targets Created: + +- ``CUDA::cusparse`` +- ``CUDA::cusparse_static`` + +.. _`cuda_toolkit_cupti`: + +cupti +""""" + +The `NVIDIA CUDA Profiling Tools Interface `_. + +Targets Created: + +- ``CUDA::cupti`` +- ``CUDA::cupti_static`` + +.. _`cuda_toolkit_NPP`: + +NPP +""" + +The `NPP `_ libraries. + +Targets Created: + +- `nppc`: + + - ``CUDA::nppc`` + - ``CUDA::nppc_static`` + +- `nppial`: Arithmetic and logical operation functions in `nppi_arithmetic_and_logical_operations.h` + + - ``CUDA::nppial`` + - ``CUDA::nppial_static`` + +- `nppicc`: Color conversion and sampling functions in `nppi_color_conversion.h` + + - ``CUDA::nppicc`` + - ``CUDA::nppicc_static`` + +- `nppicom`: JPEG compression and decompression functions in `nppi_compression_functions.h` + + - ``CUDA::nppicom`` + - ``CUDA::nppicom_static`` + +- `nppidei`: Data exchange and initialization functions in `nppi_data_exchange_and_initialization.h` + + - ``CUDA::nppidei`` + - ``CUDA::nppidei_static`` + +- `nppif`: Filtering and computer vision functions in `nppi_filter_functions.h` + + - ``CUDA::nppif`` + - ``CUDA::nppif_static`` + +- `nppig`: Geometry transformation functions found in `nppi_geometry_transforms.h` + + - ``CUDA::nppig`` + - ``CUDA::nppig_static`` + +- `nppim`: Morphological operation functions found in `nppi_morphological_operations.h` + + - ``CUDA::nppim`` + - ``CUDA::nppim_static`` + +- `nppist`: Statistics and linear transform in `nppi_statistics_functions.h` and `nppi_linear_transforms.h` + + - ``CUDA::nppist`` + - ``CUDA::nppist_static`` + +- `nppisu`: Memory support functions in `nppi_support_functions.h` + + - ``CUDA::nppisu`` + - ``CUDA::nppisu_static`` + +- `nppitc`: Threshold and compare operation functions in `nppi_threshold_and_compare_operations.h` + + - ``CUDA::nppitc`` + - ``CUDA::nppitc_static`` + +- `npps`: + + - ``CUDA::npps`` + - ``CUDA::npps_static`` + +.. _`cuda_toolkit_nvBLAS`: + +nvBLAS +"""""" + +The `nvBLAS `_ libraries. +This is a shared library only. + +Targets Created: + +- ``CUDA::nvblas`` + +.. _`cuda_toolkit_nvGRAPH`: + +nvGRAPH +""""""" + +The `nvGRAPH `_ library. + +Targets Created: + +- ``CUDA::nvgraph`` +- ``CUDA::nvgraph_static`` + + +.. _`cuda_toolkit_nvJPEG`: + +nvJPEG +"""""" + +The `nvJPEG `_ library. +Introduced in CUDA 10. + +Targets Created: + +- ``CUDA::nvjpeg`` +- ``CUDA::nvjpeg_static`` + +.. _`cuda_toolkit_nvRTC`: + +nvRTC +""""" + +The `nvRTC `_ (Runtime Compilation) library. +This is a shared library only. + +Targets Created: + +- ``CUDA::nvrtc`` + +.. _`cuda_toolkit_nvml`: + +nvidia-ML +""""""""" + +The `NVIDIA Management Library `_. +This is a shared library only. + +Targets Created: + +- ``CUDA::nvml`` + +.. _`cuda_toolkit_nvToolsExt`: + +nvToolsExt +"""""""""" + +The `NVIDIA Tools Extension `_. +This is a shared library only. + +Targets Created: + +- ``CUDA::nvToolsExt`` + +.. _`cuda_toolkit_opencl`: + +OpenCL +"""""" + +The `NVIDIA OpenCL Library `_. +This is a shared library only. + +Targets Created: + +- ``CUDA::OpenCL`` + +.. _`cuda_toolkit_cuLIBOS`: + +cuLIBOS +""""""" + +The cuLIBOS library is a backend thread abstraction layer library which is +static only. The ``CUDA::cublas_static``, ``CUDA::cusparse_static``, +``CUDA::cufft_static``, ``CUDA::curand_static``, and (when implemented) NPP +libraries all automatically have this dependency linked. + +Target Created: + +- ``CUDA::culibos`` + +**Note**: direct usage of this target by consumers should not be necessary. + +.. _`cuda_toolkit_cuRAND`: + + + +Result variables +^^^^^^^^^^^^^^^^ + +``CUDAToolkit_FOUND`` + A boolean specifying whether or not the CUDA Toolkit was found. + +``CUDAToolkit_VERSION`` + The exact version of the CUDA Toolkit found (as reported by + ``nvcc --version``). + +``CUDAToolkit_VERSION_MAJOR`` + The major version of the CUDA Toolkit. + +``CUDAToolkit_VERSION_MAJOR`` + The minor version of the CUDA Toolkit. + +``CUDAToolkit_VERSION_PATCH`` + The patch version of the CUDA Toolkit. + +``CUDAToolkit_BIN_DIR`` + The path to the CUDA Toolkit library directory that contains the CUDA + executable ``nvcc``. + +``CUDAToolkit_INCLUDE_DIRS`` + The path to the CUDA Toolkit ``include`` folder containing the header files + required to compile a project linking against CUDA. + +``CUDAToolkit_LIBRARY_DIR`` + The path to the CUDA Toolkit library directory that contains the CUDA + Runtime library ``cudart``. + +``CUDAToolkit_TARGET_DIR`` + The path to the CUDA Toolkit directory including the target architecture + when cross-compiling. When not cross-compiling this will be equivalant to + ``CUDAToolkit_ROOT_DIR``. + +``CUDAToolkit_NVCC_EXECUTABLE`` + The path to the NVIDIA CUDA compiler ``nvcc``. Note that this path may + **not** be the same as + :variable:`CMAKE_CUDA_COMPILER _COMPILER>`. ``nvcc`` must be + found to determine the CUDA Toolkit version as well as determining other + features of the Toolkit. This variable is set for the convenience of + modules that depend on this one. + + +#]=======================================================================] + +# NOTE: much of this was simply extracted from FindCUDA.cmake. + +# James Bigler, NVIDIA Corp (nvidia.com - jbigler) +# Abe Stephens, SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html +# +# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved. +# +# Copyright (c) 2007-2009 +# Scientific Computing and Imaging Institute, University of Utah +# +# This code is licensed under the MIT License. See the FindCUDA.cmake script +# for the text of the license. + +# The MIT License +# +# License for the specific language governing rights and limitations under +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +############################################################################### + +# For NVCC we can easily deduce the SDK binary directory from the compiler path. +if(CMAKE_CUDA_COMPILER_LOADED AND NOT CUDAToolkit_BIN_DIR AND CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA") + get_filename_component(cuda_dir "${CMAKE_CUDA_COMPILER}" DIRECTORY) + set(CUDAToolkit_BIN_DIR "${cuda_dir}" CACHE PATH "") + mark_as_advanced(CUDAToolkit_BIN_DIR) + unset(cuda_dir) +endif() + +IF(CMAKE_VERSION VERSION_LESS "3.12.0") + function(import_target_link_libraries target) + cmake_parse_arguments(HACK + "SYSTEM;INTERFACE;PUBLIC" + "" + "" + ${ARGN} + ) + get_target_property(LIBS ${target} INTERFACE_LINK_LIBRARIES) + if (LIBS) + list(APPEND LIBS ${HACK_UNPARSED_ARGUMENTS}) + else() + set(LIBS ${HACK_UNPARSED_ARGUMENTS}) + endif() + set_target_properties(${target} PROPERTIES + INTERFACE_LINK_LIBRARIES "${LIBS}") + endfunction() +ELSE() + function(import_target_link_libraries) + target_link_libraries(${ARGN}) + endfunction() +ENDIF() + +IF(CMAKE_VERSION VERSION_LESS "3.13.0") + function(import_target_link_directories target) + cmake_parse_arguments(HACK + "SYSTEM;INTERFACE;PUBLIC" + "" + "" + ${ARGN} + ) + get_target_property(LINK_LIBS ${target} INTERFACE_LINK_LIBRARIES) + if (LINK_LIBS) #could be not-found + set(LINK_LIBS_LIST ${LINK_LIBS}) + endif() + foreach(LIB ${HACK_UNPARSED_ARGUMENTS}) + list(APPEND LINK_LIBS_LIST -L${LIB}) + endforeach() + set_target_properties(${target} PROPERTIES + INTERFACE_LINK_LIBRARIES "${LINK_LIBS_LIST}") + endfunction() +ELSE() + function(import_target_link_directories) + target_link_directories(${ARGN}) + endfunction() +ENDIF() + +IF(CMAKE_VERSION VERSION_LESS "3.12.0") + function(import_target_include_directories target) + cmake_parse_arguments(HACK + "SYSTEM;INTERFACE;PUBLIC" + "" + "" + ${ARGN} + ) + get_target_property(INLUDE_DIRS ${target} INTERFACE_INCLUDE_DIRECTORIES) + if (INCLUDE_DIRS) + list(APPEND INCLUDE_DIRS ${HACK_UNPARSED_ARGUMENTS}) + else() + set(INCLUDE_DIRS ${HACK_UNPARSED_ARGUMENTS}) + endif() + set_target_properties(${target} PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${INCLUDE_DIRS}") + endfunction() +ELSE() + function(import_target_include_directories) + target_include_directories(${ARGN}) + endfunction() +ENDIF() + +# Try language- or user-provided path first. +if(CUDAToolkit_BIN_DIR) + find_program(CUDAToolkit_NVCC_EXECUTABLE + NAMES nvcc nvcc.exe + PATHS ${CUDAToolkit_BIN_DIR} + NO_DEFAULT_PATH + ) +endif() + +# Search using CUDAToolkit_ROOT +find_program(CUDAToolkit_NVCC_EXECUTABLE + NAMES nvcc nvcc.exe + PATHS ENV CUDA_PATH + PATH_SUFFIXES bin +) + +# If the user specified CUDAToolkit_ROOT but nvcc could not be found, this is an error. +if (NOT CUDAToolkit_NVCC_EXECUTABLE AND (DEFINED CUDAToolkit_ROOT OR DEFINED ENV{CUDAToolkit_ROOT})) + # Declare error messages now, print later depending on find_package args. + set(fail_base "Could not find nvcc executable in path specified by") + set(cuda_root_fail "${fail_base} CUDAToolkit_ROOT=${CUDAToolkit_ROOT}") + set(env_cuda_root_fail "${fail_base} environment variable CUDAToolkit_ROOT=$ENV{CUDAToolkit_ROOT}") + + if (CUDAToolkit_FIND_REQUIRED) + if (DEFINED CUDAToolkit_ROOT) + message(FATAL_ERROR ${cuda_root_fail}) + elseif (DEFINED ENV{CUDAToolkit_ROOT}) + message(FATAL_ERROR ${env_cuda_root_fail}) + endif() + else() + if (NOT CUDAToolkit_FIND_QUIETLY) + if (DEFINED CUDAToolkit_ROOT) + message(STATUS ${cuda_root_fail}) + elseif (DEFINED ENV{CUDAToolkit_ROOT}) + message(STATUS ${env_cuda_root_fail}) + endif() + endif() + set(CUDAToolkit_FOUND FALSE) + unset(fail_base) + unset(cuda_root_fail) + unset(env_cuda_root_fail) + return() + endif() +endif() + +# CUDAToolkit_ROOT cmake / env variable not specified, try platform defaults. +# +# - Linux: /usr/local/cuda-X.Y +# - macOS: /Developer/NVIDIA/CUDA-X.Y +# - Windows: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y +# +# We will also search the default symlink location /usr/local/cuda first since +# if CUDAToolkit_ROOT is not specified, it is assumed that the symlinked +# directory is the desired location. +if (NOT CUDAToolkit_NVCC_EXECUTABLE) + if (UNIX) + if (NOT APPLE) + set(platform_base "/usr/local/cuda-") + else() + set(platform_base "/Developer/NVIDIA/CUDA-") + endif() + else() + set(platform_base "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v") + endif() + + # Build out a descending list of possible cuda installations, e.g. + file(GLOB possible_paths "${platform_base}*") + # Iterate the glob results and create a descending list. + set(possible_versions) + foreach (p ${possible_paths}) + # Extract version number from end of string + string(REGEX MATCH "[0-9][0-9]?\\.[0-9]$" p_version ${p}) + if (IS_DIRECTORY ${p} AND p_version) + list(APPEND possible_versions ${p_version}) + endif() + endforeach() + + # Cannot use list(SORT) because that is alphabetical, we need numerical. + # NOTE: this is not an efficient sorting strategy. But even if a user had + # every possible version of CUDA installed, this wouldn't create any + # significant overhead. + set(versions) + foreach (v ${possible_versions}) + list(LENGTH versions num_versions) + # First version, nothing to compare with so just append. + if (num_versions EQUAL 0) + list(APPEND versions ${v}) + else() + # Loop through list. Insert at an index when comparison is + # VERSION_GREATER since we want a descending list. Duplicates will not + # happen since this came from a glob list of directories. + set(i 0) + set(early_terminate FALSE) + while (i LESS num_versions) + list(GET versions ${i} curr) + if (v VERSION_GREATER curr) + list(INSERT versions ${i} ${v}) + set(early_terminate TRUE) + break() + endif() + math(EXPR i "${i} + 1") + endwhile() + # If it did not get inserted, place it at the end. + if (NOT early_terminate) + list(APPEND versions ${v}) + endif() + endif() + endforeach() + + # With a descending list of versions, populate possible paths to search. + set(search_paths) + foreach (v ${versions}) + list(APPEND search_paths "${platform_base}${v}") + endforeach() + + # Force the global default /usr/local/cuda to the front on Unix. + if (UNIX) + list(INSERT search_paths 0 "/usr/local/cuda") + endif() + + # Now search for nvcc again using the platform default search paths. + find_program(CUDAToolkit_NVCC_EXECUTABLE + NAMES nvcc nvcc.exe + PATHS ${search_paths} + PATH_SUFFIXES bin + ) + + # We are done with these variables now, cleanup for caller. + unset(platform_base) + unset(possible_paths) + unset(possible_versions) + unset(versions) + unset(i) + unset(early_terminate) + unset(search_paths) + + if (NOT CUDAToolkit_NVCC_EXECUTABLE) + if (CUDAToolkit_FIND_REQUIRED) + message(FATAL_ERROR "Could not find nvcc, please set CUDAToolkit_ROOT.") + elseif(NOT CUDAToolkit_FIND_QUIETLY) + message(STATUS "Could not find nvcc, please set CUDAToolkit_ROOT.") + endif() + + set(CUDAToolkit_FOUND FALSE) + return() + endif() +endif() + +if(NOT CUDAToolkit_BIN_DIR AND CUDAToolkit_NVCC_EXECUTABLE) + get_filename_component(cuda_dir "${CUDAToolkit_NVCC_EXECUTABLE}" DIRECTORY) + set(CUDAToolkit_BIN_DIR "${cuda_dir}" CACHE PATH "" FORCE) + mark_as_advanced(CUDAToolkit_BIN_DIR) + unset(cuda_dir) +endif() + +if(CUDAToolkit_NVCC_EXECUTABLE AND + CUDAToolkit_NVCC_EXECUTABLE STREQUAL CMAKE_CUDA_COMPILER) + # Need to set these based off the already computed CMAKE_CUDA_COMPILER_VERSION value + # This if statement will always match, but is used to provide variables for MATCH 1,2,3... + if(CMAKE_CUDA_COMPILER_VERSION MATCHES [=[([0-9]+)\.([0-9]+)\.([0-9]+)]=]) + set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}") + set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}") + set(CUDAToolkit_VERSION_PATCH "${CMAKE_MATCH_3}") + set(CUDAToolkit_VERSION "${CMAKE_CUDA_COMPILER_VERSION}") + endif() +else() + # Compute the version by invoking nvcc + execute_process (COMMAND ${CUDAToolkit_NVCC_EXECUTABLE} "--version" OUTPUT_VARIABLE NVCC_OUT) + if(NVCC_OUT MATCHES [=[ V([0-9]+)\.([0-9]+)\.([0-9]+)]=]) + set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}") + set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}") + set(CUDAToolkit_VERSION_PATCH "${CMAKE_MATCH_3}") + set(CUDAToolkit_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}") + endif() + unset(NVCC_OUT) +endif() + + +get_filename_component(CUDAToolkit_ROOT_DIR ${CUDAToolkit_BIN_DIR} DIRECTORY ABSOLUTE) + +# Handle cross compilation +if(CMAKE_CROSSCOMPILING) + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a") + # Support for NVPACK + set (CUDAToolkit_TARGET_NAME "armv7-linux-androideabi") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm") + # Support for arm cross compilation + set(CUDAToolkit_TARGET_NAME "armv7-linux-gnueabihf") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") + # Support for aarch64 cross compilation + if (ANDROID_ARCH_NAME STREQUAL "arm64") + set(CUDAToolkit_TARGET_NAME "aarch64-linux-androideabi") + else() + set(CUDAToolkit_TARGET_NAME "aarch64-linux") + endif (ANDROID_ARCH_NAME STREQUAL "arm64") + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + set(CUDAToolkit_TARGET_NAME "x86_64-linux") + endif() + + if (EXISTS "${CUDAToolkit_ROOT_DIR}/targets/${CUDAToolkit_TARGET_NAME}") + set(CUDAToolkit_TARGET_DIR "${CUDAToolkit_ROOT_DIR}/targets/${CUDAToolkit_TARGET_NAME}") + # add known CUDA target root path to the set of directories we search for programs, libraries and headers + list(PREPEND CMAKE_FIND_ROOT_PATH "${CUDAToolkit_TARGET_DIR}") + + # Mark that we need to pop the root search path changes after we have + # found all cuda libraries so that searches for our cross-compilation + # libraries work when another cuda sdk is in CMAKE_PREFIX_PATH or + # PATh + set(_CUDAToolkit_Pop_ROOT_PATH True) + endif() +else() + # Not cross compiling + set(CUDAToolkit_TARGET_DIR "${CUDAToolkit_ROOT_DIR}") + # Now that we have the real ROOT_DIR, find components inside it. + list(APPEND CMAKE_PREFIX_PATH ${CUDAToolkit_ROOT_DIR}) + + # Mark that we need to pop the prefix path changes after we have + # found the cudart library. + set(_CUDAToolkit_Pop_Prefix True) +endif() + + +# Find the include/ directory +find_path(CUDAToolkit_INCLUDE_DIR + NAMES cuda_runtime.h +) + +# And find the CUDA Runtime Library libcudart +find_library(CUDA_CUDART + NAMES cudart + PATH_SUFFIXES lib64 lib/x64 +) +if (NOT CUDA_CUDART) + find_library(CUDA_CUDART + NAMES cudart + PATH_SUFFIXES lib64/stubs lib/x64/stubs + ) +endif() + +if (NOT CUDA_CUDART AND NOT CUDAToolkit_FIND_QUIETLY) + message(STATUS "Unable to find cudart library.") +endif() + +unset(CUDAToolkit_ROOT_DIR) +if(_CUDAToolkit_Pop_Prefix) + list(REMOVE_AT CMAKE_PREFIX_PATH -1) + unset(_CUDAToolkit_Pop_Prefix) +endif() + +#----------------------------------------------------------------------------- +# Perform version comparison and validate all required variables are set. +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(CUDAToolkit + REQUIRED_VARS + CUDAToolkit_INCLUDE_DIR + CUDA_CUDART + CUDAToolkit_NVCC_EXECUTABLE + VERSION_VAR + CUDAToolkit_VERSION +) +mark_as_advanced(CUDA_CUDART + CUDAToolkit_INCLUDE_DIR + CUDAToolkit_NVCC_EXECUTABLE + ) + +#----------------------------------------------------------------------------- +# Construct result variables +if(CUDAToolkit_FOUND) + set(CUDAToolkit_INCLUDE_DIRS ${CUDAToolkit_INCLUDE_DIR}) + get_filename_component(CUDAToolkit_LIBRARY_DIR ${CUDA_CUDART} DIRECTORY ABSOLUTE) +endif() + +#----------------------------------------------------------------------------- +# Construct import targets +if(CUDAToolkit_FOUND) + + function(_CUDAToolkit_find_and_add_import_lib lib_name) + cmake_parse_arguments(arg "" "" "ALT;DEPS;EXTRA_PATH_SUFFIXES" ${ARGN}) + + set(search_names ${lib_name} ${arg_ALT}) + + find_library(CUDA_${lib_name}_LIBRARY + NAMES ${search_names} + HINTS ${CUDAToolkit_LIBRARY_DIR} + ENV CUDA_PATH + PATH_SUFFIXES nvidia/current lib64 lib/x64 lib + ${arg_EXTRA_PATH_SUFFIXES} + ) + # Don't try any stub directories intil we have exhausted all other + # search locations. + if(NOT CUDA_${lib_name}_LIBRARY) + find_library(CUDA_${lib_name}_LIBRARY + NAMES ${search_names} + HINTS ${CUDAToolkit_LIBRARY_DIR} + ENV CUDA_PATH + PATH_SUFFIXES lib64/stubs lib/x64/stubs lib/stubs stubs + ) + endif() + + mark_as_advanced(CUDA_${lib_name}_LIBRARY) + + if (NOT TARGET CUDA::${lib_name} AND CUDA_${lib_name}_LIBRARY) + add_library(CUDA::${lib_name} IMPORTED INTERFACE) + import_target_include_directories(CUDA::${lib_name} SYSTEM INTERFACE "${CUDAToolkit_INCLUDE_DIRS}") + import_target_link_libraries(CUDA::${lib_name} INTERFACE "${CUDA_${lib_name}_LIBRARY}") + foreach(dep ${arg_DEPS}) + if(TARGET CUDA::${dep}) + import_target_link_libraries(CUDA::${lib_name} INTERFACE CUDA::${dep}) + endif() + endforeach() + endif() + endfunction() + + if(NOT TARGET CUDA::toolkit) + add_library(CUDA::toolkit IMPORTED INTERFACE) + import_target_include_directories(CUDA::toolkit SYSTEM INTERFACE "${CUDAToolkit_INCLUDE_DIRS}") + import_target_link_directories(CUDA::toolkit INTERFACE "${CUDAToolkit_LIBRARY_DIR}") + endif() + + _CUDAToolkit_find_and_add_import_lib(cuda_driver ALT cuda) + + _CUDAToolkit_find_and_add_import_lib(cudart) + _CUDAToolkit_find_and_add_import_lib(cudart_static) + + # setup dependencies that are required for cudart_static when building + # on linux. These are generally only required when using the CUDA toolkit + # when CUDA language is disabled + if(NOT TARGET CUDA::cudart_static_deps + AND TARGET CUDA::cudart_static) + + add_library(CUDA::cudart_static_deps IMPORTED INTERFACE) + import_target_link_libraries(CUDA::cudart_static INTERFACE CUDA::cudart_static_deps) + + if(UNIX AND (CMAKE_C_COMPILER OR CMAKE_CXX_COMPILER)) + find_package(Threads REQUIRED) + import_target_link_libraries(CUDA::cudart_static_deps INTERFACE Threads::Threads ${CMAKE_DL_LIBS}) + endif() + + if(UNIX AND NOT APPLE) + # On Linux, you must link against librt when using the static cuda runtime. + find_library(CUDAToolkit_rt_LIBRARY rt) + mark_as_advanced(CUDAToolkit_rt_LIBRARY) + if(NOT CUDAToolkit_rt_LIBRARY) + message(WARNING "Could not find librt library, needed by CUDA::cudart_static") + else() + import_target_link_libraries(CUDA::cudart_static_deps INTERFACE ${CUDAToolkit_rt_LIBRARY}) + endif() + endif() + endif() + + _CUDAToolkit_find_and_add_import_lib(culibos) # it's a static library + foreach (cuda_lib cublas cufft curand cusparse nppc nvjpeg) + _CUDAToolkit_find_and_add_import_lib(${cuda_lib}) + _CUDAToolkit_find_and_add_import_lib(${cuda_lib}_static DEPS culibos) + endforeach() + + # cuFFTW depends on cuFFT + _CUDAToolkit_find_and_add_import_lib(cufftw DEPS cufft) + _CUDAToolkit_find_and_add_import_lib(cufftw DEPS cufft_static) + + # cuSOLVER depends on cuBLAS, and cuSPARSE + _CUDAToolkit_find_and_add_import_lib(cusolver DEPS cublas cusparse) + _CUDAToolkit_find_and_add_import_lib(cusolver_static DEPS cublas_static cusparse_static culibos) + + # nvGRAPH depends on cuRAND, and cuSOLVER. + _CUDAToolkit_find_and_add_import_lib(nvgraph DEPS curand cusolver) + _CUDAToolkit_find_and_add_import_lib(nvgraph_static DEPS curand_static cusolver_static) + + # Process the majority of the NPP libraries. + foreach (cuda_lib nppial nppicc nppidei nppif nppig nppim nppist nppitc npps nppicom nppisu) + _CUDAToolkit_find_and_add_import_lib(${cuda_lib} DEPS nppc) + _CUDAToolkit_find_and_add_import_lib(${cuda_lib}_static DEPS nppc_static) + endforeach() + + _CUDAToolkit_find_and_add_import_lib(cupti + EXTRA_PATH_SUFFIXES ../extras/CUPTI/lib64/ + ../extras/CUPTI/lib/) + _CUDAToolkit_find_and_add_import_lib(cupti_static + EXTRA_PATH_SUFFIXES ../extras/CUPTI/lib64/ + ../extras/CUPTI/lib/) + + _CUDAToolkit_find_and_add_import_lib(nvrtc DEPS cuda_driver) + + _CUDAToolkit_find_and_add_import_lib(nvml ALT nvidia-ml nvml) + + if(WIN32) + # nvtools can be installed outside the CUDA toolkit directory + # so prefer the NVTOOLSEXT_PATH windows only environment variable + # In addition on windows the most common name is nvToolsExt64_1 + find_library(CUDA_nvToolsExt_LIBRARY + NAMES nvToolsExt64_1 nvToolsExt64 nvToolsExt + PATHS ENV NVTOOLSEXT_PATH + ENV CUDA_PATH + PATH_SUFFIXES lib/x64 lib + ) + endif() + _CUDAToolkit_find_and_add_import_lib(nvToolsExt ALT nvToolsExt64) + + _CUDAToolkit_find_and_add_import_lib(OpenCL) +endif() + +if(_CUDAToolkit_Pop_ROOT_PATH) + list(REMOVE_AT CMAKE_FIND_ROOT_PATH 0) + unset(_CUDAToolkit_Pop_ROOT_PATH) +endif() diff --git a/lib/kokkos/cmake/Modules/FindTPLCUDA.cmake b/lib/kokkos/cmake/Modules/FindTPLCUDA.cmake index 1b36ab819f..a1072a60c6 100644 --- a/lib/kokkos/cmake/Modules/FindTPLCUDA.cmake +++ b/lib/kokkos/cmake/Modules/FindTPLCUDA.cmake @@ -1,17 +1,37 @@ +IF (NOT CUDAToolkit_ROOT) + IF (NOT CUDA_ROOT) + SET(CUDA_ROOT $ENV{CUDA_ROOT}) + ENDIF() + IF(CUDA_ROOT) + SET(CUDAToolkit_ROOT ${CUDA_ROOT}) + ENDIF() +ENDIF() + +IF(CMAKE_VERSION VERSION_GREATER_EQUAL "3.17.0") + find_package(CUDAToolkit) +ELSE() + include(${CMAKE_CURRENT_LIST_DIR}/CudaToolkit.cmake) +ENDIF() + -IF (KOKKOS_CXX_COMPILER_ID STREQUAL Clang) - # Note: "stubs" suffix allows CMake to find the dummy - # libcuda.so provided by the NVIDIA CUDA Toolkit for - # cross-compiling CUDA on a host without a GPU. - KOKKOS_FIND_IMPORTED(CUDA INTERFACE - LIBRARIES cudart cuda - LIBRARY_PATHS ENV LD_LIBRARY_PATH ENV CUDA_PATH /usr/local/cuda - LIBRARY_SUFFIXES lib lib64 lib/stubs lib64/stubs - ALLOW_SYSTEM_PATH_FALLBACK - ) +IF (TARGET CUDA::cudart) + SET(FOUND_CUDART TRUE) + KOKKOS_EXPORT_IMPORTED_TPL(CUDA::cudart) ELSE() - KOKKOS_CREATE_IMPORTED_TPL(CUDA INTERFACE - LINK_LIBRARIES cuda - ) + SET(FOUND_CUDART FALSE) ENDIF() +IF (TARGET CUDA::cuda_driver) + SET(FOUND_CUDA_DRIVER TRUE) + KOKKOS_EXPORT_IMPORTED_TPL(CUDA::cuda_driver) +ELSE() + SET(FOUND_CUDA_DRIVVER FALSE) +ENDIF() + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(TPLCUDA DEFAULT_MSG FOUND_CUDART FOUND_CUDA_DRIVER) +IF (FOUND_CUDA_DRIVER AND FOUND_CUDART) + KOKKOS_CREATE_IMPORTED_TPL(CUDA INTERFACE + LINK_LIBRARIES CUDA::cuda_driver CUDA::cudart + ) +ENDIF() diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/cmake/compile_tests/cuda_compute_capability.cc similarity index 54% rename from lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp rename to lib/kokkos/cmake/compile_tests/cuda_compute_capability.cc index ea2da28f10..48c01c070c 100644 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ b/lib/kokkos/cmake/compile_tests/cuda_compute_capability.cc @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,18 +40,43 @@ // // ************************************************************************ //@HEADER +*/ -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, OpenMP, int64_t) +#include -} // namespace Impl -} // namespace Kokkos +int main() { + cudaDeviceProp device_properties; + const cudaError_t error = cudaGetDeviceProperties(&device_properties, + /*device*/ 0); + if (error != cudaSuccess) { + std::cout << "CUDA error: " << cudaGetErrorString(error) << '\n'; + return error; + } + unsigned int const compute_capability = + device_properties.major * 10 + device_properties.minor; +#ifdef SM_ONLY + std::cout << compute_capability; +#else + switch (compute_capability) { + // clang-format off + case 30: std::cout << "Set -DKokkos_ARCH_KEPLER30=ON ." << std::endl; break; + case 32: std::cout << "Set -DKokkos_ARCH_KEPLER32=ON ." << std::endl; break; + case 35: std::cout << "Set -DKokkos_ARCH_KEPLER35=ON ." << std::endl; break; + case 37: std::cout << "Set -DKokkos_ARCH_KEPLER37=ON ." << std::endl; break; + case 50: std::cout << "Set -DKokkos_ARCH_MAXWELL50=ON ." << std::endl; break; + case 52: std::cout << "Set -DKokkos_ARCH_MAXWELL52=ON ." << std::endl; break; + case 53: std::cout << "Set -DKokkos_ARCH_MAXWELL53=ON ." << std::endl; break; + case 60: std::cout << "Set -DKokkos_ARCH_PASCAL60=ON ." << std::endl; break; + case 61: std::cout << "Set -DKokkos_ARCH_PASCAL61=ON ." << std::endl; break; + case 70: std::cout << "Set -DKokkos_ARCH_VOLTA70=ON ." << std::endl; break; + case 72: std::cout << "Set -DKokkos_ARCH_VOLTA72=ON ." << std::endl; break; + case 75: std::cout << "Set -DKokkos_ARCH_TURING75=ON ." << std::endl; break; + case 80: std::cout << "Set -DKokkos_ARCH_AMPERE80=ON ." << std::endl; break; + default: + std::cout << "Compute capability " << compute_capability + << " is not supported" << std::endl; + // clang-format on + } +#endif + return 0; +} diff --git a/lib/kokkos/cmake/fake_tribits.cmake b/lib/kokkos/cmake/fake_tribits.cmake index acee4a249d..94ec0aa152 100644 --- a/lib/kokkos/cmake/fake_tribits.cmake +++ b/lib/kokkos/cmake/fake_tribits.cmake @@ -88,7 +88,7 @@ FUNCTION(KOKKOS_ADD_TEST) if (KOKKOS_HAS_TRILINOS) CMAKE_PARSE_ARGUMENTS(TEST "" - "EXE;NAME" + "EXE;NAME;TOOL" "" ${ARGN}) IF(TEST_EXE) @@ -104,10 +104,15 @@ FUNCTION(KOKKOS_ADD_TEST) NUM_MPI_PROCS 1 ${TEST_UNPARSED_ARGUMENTS} ) + + if(TEST_TOOL) + add_dependencies(${EXE} ${TEST_TOOL}) #make sure the exe has to build the tool + set_property(TEST ${TEST_NAME} APPEND_STRING PROPERTY ENVIRONMENT "KOKKOS_PROFILE_LIBRARY=$") + endif() else() CMAKE_PARSE_ARGUMENTS(TEST "WILL_FAIL" - "FAIL_REGULAR_EXPRESSION;PASS_REGULAR_EXPRESSION;EXE;NAME" + "FAIL_REGULAR_EXPRESSION;PASS_REGULAR_EXPRESSION;EXE;NAME;TOOL" "CATEGORIES;CMD_ARGS" ${ARGN}) # To match Tribits, we should always be receiving @@ -135,6 +140,10 @@ FUNCTION(KOKKOS_ADD_TEST) IF(TEST_PASS_REGULAR_EXPRESSION) SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES PASS_REGULAR_EXPRESSION ${TEST_PASS_REGULAR_EXPRESSION}) ENDIF() + if(TEST_TOOL) + add_dependencies(${EXE} ${TEST_TOOL}) #make sure the exe has to build the tool + set_property(TEST ${TEST_NAME} APPEND_STRING PROPERTY ENVIRONMENT "KOKKOS_PROFILE_LIBRARY=$") + endif() VERIFY_EMPTY(KOKKOS_ADD_TEST ${TEST_UNPARSED_ARGUMENTS}) endif() ENDFUNCTION() diff --git a/lib/kokkos/cmake/kokkos_arch.cmake b/lib/kokkos/cmake/kokkos_arch.cmake index d73a353981..a63f662d2e 100644 --- a/lib/kokkos/cmake/kokkos_arch.cmake +++ b/lib/kokkos/cmake/kokkos_arch.cmake @@ -2,11 +2,14 @@ FUNCTION(KOKKOS_ARCH_OPTION SUFFIX DEV_TYPE DESCRIPTION) #all optimizations off by default KOKKOS_OPTION(ARCH_${SUFFIX} OFF BOOL "Optimize for ${DESCRIPTION} (${DEV_TYPE})") - IF (KOKKOS_ARCH_${SUFFIX}) + SET(KOKKOS_ARCH_${SUFFIX} ${KOKKOS_ARCH_${SUFFIX}} PARENT_SCOPE) + SET(KOKKOS_OPTION_KEYS ${KOKKOS_OPTION_KEYS} PARENT_SCOPE) + SET(KOKKOS_OPTION_VALUES ${KOKKOS_OPTION_VALUES} PARENT_SCOPE) + SET(KOKKOS_OPTION_TYPES ${KOKKOS_OPTION_TYPES} PARENT_SCOPE) + IF(KOKKOS_ARCH_${SUFFIX}) LIST(APPEND KOKKOS_ENABLED_ARCH_LIST ${SUFFIX}) SET(KOKKOS_ENABLED_ARCH_LIST ${KOKKOS_ENABLED_ARCH_LIST} PARENT_SCOPE) ENDIF() - SET(KOKKOS_ARCH_${SUFFIX} ${KOKKOS_ARCH_${SUFFIX}} PARENT_SCOPE) ENDFUNCTION() @@ -15,6 +18,10 @@ KOKKOS_CFG_DEPENDS(ARCH COMPILER_ID) KOKKOS_CFG_DEPENDS(ARCH DEVICES) KOKKOS_CFG_DEPENDS(ARCH OPTIONS) +KOKKOS_CHECK_DEPRECATED_OPTIONS( + ARCH_EPYC "Please replace EPYC with ZEN or ZEN2, depending on your platform" + ARCH_RYZEN "Please replace RYZEN with ZEN or ZEN2, depending on your platform" +) #------------------------------------------------------------------------------- # List of possible host architectures. @@ -51,9 +58,12 @@ KOKKOS_ARCH_OPTION(PASCAL61 GPU "NVIDIA Pascal generation CC 6.1") KOKKOS_ARCH_OPTION(VOLTA70 GPU "NVIDIA Volta generation CC 7.0") KOKKOS_ARCH_OPTION(VOLTA72 GPU "NVIDIA Volta generation CC 7.2") KOKKOS_ARCH_OPTION(TURING75 GPU "NVIDIA Turing generation CC 7.5") -KOKKOS_ARCH_OPTION(EPYC HOST "AMD Epyc architecture") +KOKKOS_ARCH_OPTION(AMPERE80 GPU "NVIDIA Ampere generation CC 8.0") +KOKKOS_ARCH_OPTION(ZEN HOST "AMD Zen architecture") +KOKKOS_ARCH_OPTION(ZEN2 HOST "AMD Zen2 architecture") KOKKOS_ARCH_OPTION(VEGA900 GPU "AMD GPU MI25 GFX900") KOKKOS_ARCH_OPTION(VEGA906 GPU "AMD GPU MI50/MI60 GFX906") +KOKKOS_ARCH_OPTION(INTEL_GEN GPU "Intel GPUs Gen9+") IF (KOKKOS_ENABLE_CUDA) #Regardless of version, make sure we define the general architecture name @@ -75,6 +85,10 @@ IF (KOKKOS_ENABLE_CUDA) IF (KOKKOS_ARCH_VOLTA70 OR KOKKOS_ARCH_VOLTA72) SET(KOKKOS_ARCH_VOLTA ON) ENDIF() + + IF (KOKKOS_ARCH_AMPERE80) + SET(KOKKOS_ARCH_AMPERE ON) + ENDIF() ENDIF() @@ -88,9 +102,10 @@ IF(KOKKOS_ENABLE_COMPILER_WARNINGS) ${COMMON_WARNINGS}) COMPILER_SPECIFIC_FLAGS( - PGI NO-VALUE-SPECIFIED - GNU ${GNU_WARNINGS} - DEFAULT ${COMMON_WARNINGS} + COMPILER_ID CMAKE_CXX_COMPILER_ID + PGI NO-VALUE-SPECIFIED + GNU ${GNU_WARNINGS} + DEFAULT ${COMMON_WARNINGS} ) ENDIF() @@ -102,6 +117,9 @@ GLOBAL_SET(KOKKOS_CUDA_OPTIONS) IF (KOKKOS_ENABLE_CUDA_LAMBDA) IF(KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS "-expt-extended-lambda") + IF(KOKKOS_COMPILER_CUDA_VERSION GREATER_EQUAL 110) + GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS "-Wext-lambda-captures-this") + ENDIF() ENDIF() ENDIF() @@ -113,7 +131,6 @@ ENDIF() IF (KOKKOS_CXX_COMPILER_ID STREQUAL Clang) SET(CUDA_ARCH_FLAG "--cuda-gpu-arch") - SET(AMDGPU_ARCH_FLAG "--amdgpu-target") GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS -x cuda) IF (KOKKOS_ENABLE_CUDA) SET(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND ON CACHE BOOL "enable CUDA Clang workarounds" FORCE) @@ -133,6 +150,15 @@ IF (KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) ENDIF() ENDIF() + +#------------------------------- KOKKOS_HIP_OPTIONS --------------------------- +#clear anything that might be in the cache +GLOBAL_SET(KOKKOS_AMDGPU_OPTIONS) +IF(KOKKOS_CXX_COMPILER_ID STREQUAL HIP) + SET(AMDGPU_ARCH_FLAG "--amdgpu-target") +ENDIF() + + IF (KOKKOS_ARCH_ARMV80) COMPILER_SPECIFIC_FLAGS( Cray NO-VALUE-SPECIFIED @@ -167,12 +193,21 @@ IF (KOKKOS_ARCH_ARMV8_THUNDERX2) ) ENDIF() -IF (KOKKOS_ARCH_EPYC) +IF (KOKKOS_ARCH_ZEN) COMPILER_SPECIFIC_FLAGS( Intel -mavx2 DEFAULT -march=znver1 -mtune=znver1 ) - SET(KOKKOS_ARCH_AMD_EPYC ON) + SET(KOKKOS_ARCH_AMD_ZEN ON) + SET(KOKKOS_ARCH_AMD_AVX2 ON) +ENDIF() + +IF (KOKKOS_ARCH_ZEN2) + COMPILER_SPECIFIC_FLAGS( + Intel -mavx2 + DEFAULT -march=znver2 -mtune=znver2 + ) + SET(KOKKOS_ARCH_AMD_ZEN2 ON) SET(KOKKOS_ARCH_AMD_AVX2 ON) ENDIF() @@ -216,14 +251,6 @@ IF (KOKKOS_ARCH_BDW) ) ENDIF() -IF (KOKKOS_ARCH_EPYC) - SET(KOKKOS_ARCH_AMD_AVX2 ON) - COMPILER_SPECIFIC_FLAGS( - Intel -mvax2 - DEFAULT -march=znver1 -mtune=znver1 - ) -ENDIF() - IF (KOKKOS_ARCH_KNL) #avx512-mic SET(KOKKOS_ARCH_AVX512MIC ON) #not a cache variable @@ -253,7 +280,7 @@ IF (KOKKOS_ARCH_SKX) ) ENDIF() -IF (KOKKOS_ARCH_WSM OR KOKKOS_ARCH_SNB OR KOKKOS_ARCH_HSW OR KOKKOS_ARCH_BDW OR KOKKOS_ARCH_KNL OR KOKKOS_ARCH_SKX OR KOKKOS_ARCH_EPYC) +IF (KOKKOS_ARCH_WSM OR KOKKOS_ARCH_SNB OR KOKKOS_ARCH_HSW OR KOKKOS_ARCH_BDW OR KOKKOS_ARCH_KNL OR KOKKOS_ARCH_SKX OR KOKKOS_ARCH_ZEN OR KOKKOS_ARCH_ZEN2) SET(KOKKOS_USE_ISA_X86_64 ON) ENDIF() @@ -296,6 +323,21 @@ IF (Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) ) ENDIF() +# Clang needs mcx16 option enabled for Windows atomic functions +IF (CMAKE_CXX_COMPILER_ID STREQUAL Clang AND WIN32) + COMPILER_SPECIFIC_OPTIONS( + Clang -mcx16 + ) +ENDIF() + +# MSVC ABI has many deprecation warnings, so ignore them +IF (CMAKE_CXX_COMPILER_ID STREQUAL MSVC OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") + COMPILER_SPECIFIC_DEFS( + Clang _CRT_SECURE_NO_WARNINGS + ) +ENDIF() + + #Right now we cannot get the compiler ID when cross-compiling, so just check #that HIP is enabled IF (Kokkos_ENABLE_HIP) @@ -324,11 +366,15 @@ FUNCTION(CHECK_CUDA_ARCH ARCH FLAG) ELSE() SET(KOKKOS_CUDA_ARCH_FLAG ${FLAG} PARENT_SCOPE) GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS "${CUDA_ARCH_FLAG}=${FLAG}") - IF(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) + IF(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE OR KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) GLOBAL_APPEND(KOKKOS_LINK_OPTIONS "${CUDA_ARCH_FLAG}=${FLAG}") ENDIF() ENDIF() ENDIF() + LIST(APPEND KOKKOS_CUDA_ARCH_FLAGS ${FLAG}) + SET(KOKKOS_CUDA_ARCH_FLAGS ${KOKKOS_CUDA_ARCH_FLAGS} PARENT_SCOPE) + LIST(APPEND KOKKOS_CUDA_ARCH_LIST ${ARCH}) + SET(KOKKOS_CUDA_ARCH_LIST ${KOKKOS_CUDA_ARCH_LIST} PARENT_SCOPE) ENDFUNCTION() @@ -346,6 +392,7 @@ CHECK_CUDA_ARCH(PASCAL61 sm_61) CHECK_CUDA_ARCH(VOLTA70 sm_70) CHECK_CUDA_ARCH(VOLTA72 sm_72) CHECK_CUDA_ARCH(TURING75 sm_75) +CHECK_CUDA_ARCH(AMPERE80 sm_80) SET(AMDGPU_ARCH_ALREADY_SPECIFIED "") FUNCTION(CHECK_AMDGPU_ARCH ARCH FLAG) @@ -372,12 +419,19 @@ ENDFUNCTION() CHECK_AMDGPU_ARCH(VEGA900 gfx900) # Radeon Instinct MI25 CHECK_AMDGPU_ARCH(VEGA906 gfx906) # Radeon Instinct MI50 and MI60 +IF(KOKKOS_ENABLE_HIP AND NOT AMDGPU_ARCH_ALREADY_SPECIFIED) + MESSAGE(SEND_ERROR "HIP enabled but no AMD GPU architecture currently enabled. " + "Please enable one AMD GPU architecture via -DKokkos_ARCH_{..}=ON'.") +ENDIF() + IF (KOKKOS_ENABLE_OPENMPTARGET) SET(CLANG_CUDA_ARCH ${KOKKOS_CUDA_ARCH_FLAG}) IF (CLANG_CUDA_ARCH) + STRING(REPLACE "sm_" "cc" PGI_CUDA_ARCH ${CLANG_CUDA_ARCH}) COMPILER_SPECIFIC_FLAGS( Clang -Xopenmp-target -march=${CLANG_CUDA_ARCH} -fopenmp-targets=nvptx64-nvidia-cuda XL -qtgtarch=${KOKKOS_CUDA_ARCH_FLAG} + PGI -gpu=${PGI_CUDA_ARCH} ) ENDIF() SET(CLANG_AMDGPU_ARCH ${KOKKOS_AMDGPU_ARCH_FLAG}) @@ -386,10 +440,39 @@ IF (KOKKOS_ENABLE_OPENMPTARGET) Clang -Xopenmp-target=amdgcn-amd-amdhsa -march=${CLANG_AMDGPU_ARCH} -fopenmp-targets=amdgcn-amd-amdhsa ) ENDIF() + IF (KOKKOS_ARCH_INTEL_GEN) + COMPILER_SPECIFIC_FLAGS( + IntelClang -fopenmp-targets=spir64 -D__STRICT_ANSI__ + ) + ENDIF() ENDIF() IF(KOKKOS_ENABLE_CUDA AND NOT CUDA_ARCH_ALREADY_SPECIFIED) - MESSAGE(SEND_ERROR "CUDA enabled but no NVIDIA GPU architecture currently enabled. Please give one -DKokkos_ARCH_{..}=ON' to enable an NVIDIA GPU architecture.") + # Try to autodetect the CUDA Compute Capability by asking the device + SET(_BINARY_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/cmake/compile_tests/CUDAComputeCapabilityWorkdir) + FILE(REMOVE_RECURSE ${_BINARY_TEST_DIR}) + FILE(MAKE_DIRECTORY ${_BINARY_TEST_DIR}) + + TRY_RUN( + _RESULT + _COMPILE_RESULT + ${_BINARY_TEST_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compile_tests/cuda_compute_capability.cc + COMPILE_DEFINITIONS -DSM_ONLY + RUN_OUTPUT_VARIABLE _CUDA_COMPUTE_CAPABILITY) + LIST(FIND KOKKOS_CUDA_ARCH_FLAGS sm_${_CUDA_COMPUTE_CAPABILITY} FLAG_INDEX) + IF(_COMPILE_RESULT AND _RESULT EQUAL 0 AND NOT FLAG_INDEX EQUAL -1) + MESSAGE(STATUS "Detected CUDA Compute Capability ${_CUDA_COMPUTE_CAPABILITY}") + LIST(GET KOKKOS_CUDA_ARCH_LIST ${FLAG_INDEX} ARCHITECTURE) + KOKKOS_SET_OPTION(ARCH_${ARCHITECTURE} ON) + CHECK_CUDA_ARCH(${ARCHITECTURE} sm_${_CUDA_COMPUTE_CAPABILITY}) + LIST(APPEND KOKKOS_ENABLED_ARCH_LIST ${ARCHITECTURE}) + ELSE() + MESSAGE(SEND_ERROR "CUDA enabled but no NVIDIA GPU architecture currently enabled and auto-detection failed. " + "Please give one -DKokkos_ARCH_{..}=ON' to enable an NVIDIA GPU architecture.\n" + "You can yourself try to compile ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compile_tests/cuda_compute_capability.cc and run the executable. " + "If you are cross-compiling, you should try to do this on a compute node.") + ENDIF() ENDIF() #CMake verbose is kind of pointless @@ -453,4 +536,3 @@ MESSAGE(STATUS "Architectures:") FOREACH(Arch ${KOKKOS_ENABLED_ARCH_LIST}) MESSAGE(STATUS " ${Arch}") ENDFOREACH() - diff --git a/lib/kokkos/cmake/kokkos_compiler_id.cmake b/lib/kokkos/cmake/kokkos_compiler_id.cmake index cd5e7c9e4e..4a77a94e07 100644 --- a/lib/kokkos/cmake/kokkos_compiler_id.cmake +++ b/lib/kokkos/cmake/kokkos_compiler_id.cmake @@ -4,34 +4,55 @@ SET(KOKKOS_CXX_COMPILER ${CMAKE_CXX_COMPILER}) SET(KOKKOS_CXX_COMPILER_ID ${CMAKE_CXX_COMPILER_ID}) SET(KOKKOS_CXX_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION}) -# Check if the compiler is nvcc (which really means nvcc_wrapper). -EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version - COMMAND grep nvcc - COMMAND wc -l - OUTPUT_VARIABLE INTERNAL_HAVE_COMPILER_NVCC - OUTPUT_STRIP_TRAILING_WHITESPACE) +IF(Kokkos_ENABLE_CUDA) + # Check if the compiler is nvcc (which really means nvcc_wrapper). + EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version + OUTPUT_VARIABLE INTERNAL_COMPILER_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + + STRING(REPLACE "\n" " - " INTERNAL_COMPILER_VERSION_ONE_LINE ${INTERNAL_COMPILER_VERSION} ) + STRING(FIND ${INTERNAL_COMPILER_VERSION_ONE_LINE} "nvcc" INTERNAL_COMPILER_VERSION_CONTAINS_NVCC) -STRING(REGEX REPLACE "^ +" "" - INTERNAL_HAVE_COMPILER_NVCC "${INTERNAL_HAVE_COMPILER_NVCC}") + STRING(REGEX REPLACE "^ +" "" + INTERNAL_HAVE_COMPILER_NVCC "${INTERNAL_HAVE_COMPILER_NVCC}") + IF(${INTERNAL_COMPILER_VERSION_CONTAINS_NVCC} GREATER -1) + SET(INTERNAL_HAVE_COMPILER_NVCC true) + ELSE() + SET(INTERNAL_HAVE_COMPILER_NVCC false) + ENDIF() +ENDIF() IF(INTERNAL_HAVE_COMPILER_NVCC) + # Save the host compiler id before overwriting it. + SET(KOKKOS_CXX_HOST_COMPILER_ID ${KOKKOS_CXX_COMPILER_ID}) + # SET the compiler id to nvcc. We use the value used by CMake 3.8. SET(KOKKOS_CXX_COMPILER_ID NVIDIA CACHE STRING INTERNAL FORCE) - # SET nvcc's compiler version. + STRING(REGEX MATCH "V[0-9]+\\.[0-9]+\\.[0-9]+" + TEMP_CXX_COMPILER_VERSION ${INTERNAL_COMPILER_VERSION_ONE_LINE}) + STRING(SUBSTRING ${TEMP_CXX_COMPILER_VERSION} 1 -1 TEMP_CXX_COMPILER_VERSION) + SET(KOKKOS_CXX_COMPILER_VERSION ${TEMP_CXX_COMPILER_VERSION} CACHE STRING INTERNAL FORCE) + MESSAGE(STATUS "Compiler Version: ${KOKKOS_CXX_COMPILER_VERSION}") +ENDIF() + +IF(Kokkos_ENABLE_HIP) + # get HIP version EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version - COMMAND grep release - OUTPUT_VARIABLE INTERNAL_CXX_COMPILER_VERSION + OUTPUT_VARIABLE INTERNAL_COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) - STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+$" - TEMP_CXX_COMPILER_VERSION ${INTERNAL_CXX_COMPILER_VERSION}) + STRING(REPLACE "\n" " - " INTERNAL_COMPILER_VERSION_ONE_LINE ${INTERNAL_COMPILER_VERSION} ) + SET(KOKKOS_CXX_COMPILER_ID HIP CACHE STRING INTERNAL FORCE) + + STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" + TEMP_CXX_COMPILER_VERSION ${INTERNAL_COMPILER_VERSION_ONE_LINE}) SET(KOKKOS_CXX_COMPILER_VERSION ${TEMP_CXX_COMPILER_VERSION} CACHE STRING INTERNAL FORCE) + MESSAGE(STATUS "Compiler Version: ${KOKKOS_CXX_COMPILER_VERSION}") ENDIF() - IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang) # The Cray compiler reports as Clang to most versions of CMake EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version @@ -42,6 +63,16 @@ IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang) IF (INTERNAL_HAVE_CRAY_COMPILER) #not actually Clang SET(KOKKOS_CLANG_IS_CRAY TRUE) ENDIF() + # The clang based Intel compiler reports as Clang to most versions of CMake + EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version + COMMAND grep icpx + COMMAND wc -l + OUTPUT_VARIABLE INTERNAL_HAVE_INTEL_COMPILER + OUTPUT_STRIP_TRAILING_WHITESPACE) + IF (INTERNAL_HAVE_INTEL_COMPILER) #not actually Clang + SET(KOKKOS_CLANG_IS_INTEL TRUE) + SET(KOKKOS_CXX_COMPILER_ID IntelClang CACHE STRING INTERNAL FORCE) + ENDIF() ENDIF() IF(KOKKOS_CXX_COMPILER_ID STREQUAL Cray OR KOKKOS_CLANG_IS_CRAY) @@ -65,6 +96,7 @@ SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n Clang 3.5.2 or higher" SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n GCC 4.8.4 or higher") SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n Intel 15.0.2 or higher") SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n NVCC 9.0.69 or higher") +SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n HIPCC 3.5.0 or higher") SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n PGI 17.1 or higher\n") IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang) @@ -84,6 +116,10 @@ ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) MESSAGE(FATAL_ERROR "${KOKKOS_MESSAGE_TEXT}") ENDIF() SET(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Kokkos turns off CXX extensions" FORCE) +ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL HIP) + IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 3.5.0) + MESSAGE(FATAL_ERROR "${KOKKOS_MESSAGE_TEXT}") + ENDIF() ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL PGI) IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 17.1) MESSAGE(FATAL_ERROR "${KOKKOS_MESSAGE_TEXT}") diff --git a/lib/kokkos/cmake/kokkos_corner_cases.cmake b/lib/kokkos/cmake/kokkos_corner_cases.cmake index e30be3c841..a792590bac 100644 --- a/lib/kokkos/cmake/kokkos_corner_cases.cmake +++ b/lib/kokkos/cmake/kokkos_corner_cases.cmake @@ -1,4 +1,4 @@ -IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang AND KOKKOS_ENABLE_OPENMP AND NOT KOKKOS_CLANG_IS_CRAY) +IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang AND KOKKOS_ENABLE_OPENMP AND NOT KOKKOS_CLANG_IS_CRAY AND NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") # The clang "version" doesn't actually tell you what runtimes and tools # were built into Clang. We should therefore make sure that libomp # was actually built into Clang. Otherwise the user will get nonsensical @@ -49,11 +49,11 @@ ENDIF() IF (KOKKOS_CXX_STANDARD STREQUAL 17) IF (KOKKOS_CXX_COMPILER_ID STREQUAL GNU AND KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 7) - MESSAGE(FATAL_ERROR "You have requested c++17 support for GCC ${KOKKOS_CXX_COMPILER_VERSION}. Although CMake has allowed this and GCC accepts -std=c++1z/c++17, GCC <= 6 does not properly support *this capture. Please reduce the C++ standard to 14 or upgrade the compiler if you do need 17 support") + MESSAGE(FATAL_ERROR "You have requested c++17 support for GCC ${KOKKOS_CXX_COMPILER_VERSION}. Although CMake has allowed this and GCC accepts -std=c++1z/c++17, GCC <= 6 does not properly support *this capture. Please reduce the C++ standard to 14 or upgrade the compiler if you do need C++17 support.") ENDIF() - IF (KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) - MESSAGE(FATAL_ERROR "You have requested c++17 support for NVCC. Please reduce the C++ standard to 14. No versions of NVCC currently support 17.") + IF (KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA AND KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 11) + MESSAGE(FATAL_ERROR "You have requested c++17 support for NVCC ${KOKKOS_CXX_COMPILER_VERSION}. NVCC only supports C++17 from version 11 on. Please reduce the C++ standard to 14 or upgrade the compiler if you need C++17 support.") ENDIF() ENDIF() diff --git a/lib/kokkos/cmake/kokkos_enable_devices.cmake b/lib/kokkos/cmake/kokkos_enable_devices.cmake index 7b50cfe458..7d1c375ae6 100644 --- a/lib/kokkos/cmake/kokkos_enable_devices.cmake +++ b/lib/kokkos/cmake/kokkos_enable_devices.cmake @@ -36,25 +36,51 @@ IF(KOKKOS_ENABLE_OPENMP) IF(KOKKOS_CLANG_IS_CRAY) SET(ClangOpenMPFlag -fopenmp) ENDIF() - COMPILER_SPECIFIC_FLAGS( - Clang ${ClangOpenMPFlag} - AppleClang -Xpreprocessor -fopenmp - PGI -mp - NVIDIA -Xcompiler -fopenmp - Cray NO-VALUE-SPECIFIED - XL -qsmp=omp - DEFAULT -fopenmp - ) - COMPILER_SPECIFIC_LIBS( - AppleClang -lomp - ) + IF(KOKKOS_CLANG_IS_INTEL) + SET(ClangOpenMPFlag -fiopenmp) + ENDIF() + IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") + #expression /openmp yields error, so add a specific Clang flag + COMPILER_SPECIFIC_OPTIONS(Clang /clang:-fopenmp) + #link omp library from LLVM lib dir + get_filename_component(LLVM_BIN_DIR ${CMAKE_CXX_COMPILER_AR} DIRECTORY) + COMPILER_SPECIFIC_LIBS(Clang "${LLVM_BIN_DIR}/../lib/libomp.lib") + ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) + COMPILER_SPECIFIC_FLAGS( + COMPILER_ID KOKKOS_CXX_HOST_COMPILER_ID + Clang -Xcompiler ${ClangOpenMPFlag} + PGI -Xcompiler -mp + Cray NO-VALUE-SPECIFIED + XL -Xcompiler -qsmp=omp + DEFAULT -Xcompiler -fopenmp + ) + ELSE() + COMPILER_SPECIFIC_FLAGS( + Clang ${ClangOpenMPFlag} + AppleClang -Xpreprocessor -fopenmp + PGI -mp + Cray NO-VALUE-SPECIFIED + XL -qsmp=omp + DEFAULT -fopenmp + ) + COMPILER_SPECIFIC_LIBS( + AppleClang -lomp + ) + ENDIF() ENDIF() KOKKOS_DEVICE_OPTION(OPENMPTARGET OFF DEVICE "Whether to build the OpenMP target backend") IF (KOKKOS_ENABLE_OPENMPTARGET) +SET(ClangOpenMPFlag -fopenmp=libomp) + IF(KOKKOS_CLANG_IS_CRAY) + SET(ClangOpenMPFlag -fopenmp) + ENDIF() + COMPILER_SPECIFIC_FLAGS( - Clang -fopenmp -fopenmp=libomp + Clang ${ClangOpenMPFlag} -Wno-openmp-mapping + IntelClang -fiopenmp -Wno-openmp-mapping XL -qsmp=omp -qoffload -qnoeh + PGI -mp=gpu DEFAULT -fopenmp ) COMPILER_SPECIFIC_DEFS( @@ -65,6 +91,9 @@ IF (KOKKOS_ENABLE_OPENMPTARGET) # COMPILER_SPECIFIC_LIBS( # Clang -lopenmptarget # ) + IF(KOKKOS_CXX_STANDARD LESS 17) + MESSAGE(FATAL_ERROR "OpenMPTarget backend requires C++17 or newer") + ENDIF() ENDIF() IF(Trilinos_ENABLE_Kokkos AND TPL_ENABLE_CUDA) @@ -76,6 +105,9 @@ KOKKOS_DEVICE_OPTION(CUDA ${CUDA_DEFAULT} DEVICE "Whether to build CUDA backend" IF (KOKKOS_ENABLE_CUDA) GLOBAL_SET(KOKKOS_DONT_ALLOW_EXTENSIONS "CUDA enabled") + IF(WIN32) + GLOBAL_APPEND(KOKKOS_COMPILE_OPTIONS -x cu) + ENDIF() ENDIF() # We want this to default to OFF for cache reasons, but if no diff --git a/lib/kokkos/cmake/kokkos_enable_options.cmake b/lib/kokkos/cmake/kokkos_enable_options.cmake index 4560c3df8f..22ac7a0038 100644 --- a/lib/kokkos/cmake/kokkos_enable_options.cmake +++ b/lib/kokkos/cmake/kokkos_enable_options.cmake @@ -45,10 +45,9 @@ UNSET(_UPPERCASE_CMAKE_BUILD_TYPE) KOKKOS_ENABLE_OPTION(LARGE_MEM_TESTS OFF "Whether to perform extra large memory tests") KOKKOS_ENABLE_OPTION(DEBUG_BOUNDS_CHECK OFF "Whether to use bounds checking - will increase runtime") KOKKOS_ENABLE_OPTION(COMPILER_WARNINGS OFF "Whether to print all compiler warnings") -KOKKOS_ENABLE_OPTION(PROFILING ON "Whether to create bindings for profiling tools") KOKKOS_ENABLE_OPTION(PROFILING_LOAD_PRINT OFF "Whether to print information about which profiling tools got loaded") +KOKKOS_ENABLE_OPTION(TUNING OFF "Whether to create bindings for tuning tools") KOKKOS_ENABLE_OPTION(AGGRESSIVE_VECTORIZATION OFF "Whether to aggressively vectorize loops") -KOKKOS_ENABLE_OPTION(DEPRECATED_CODE OFF "Whether to enable deprecated code") IF (KOKKOS_ENABLE_CUDA) SET(KOKKOS_COMPILER_CUDA_VERSION "${KOKKOS_COMPILER_VERSION_MAJOR}${KOKKOS_COMPILER_VERSION_MINOR}") diff --git a/lib/kokkos/cmake/kokkos_functions.cmake b/lib/kokkos/cmake/kokkos_functions.cmake index fd04966baf..ca537da193 100644 --- a/lib/kokkos/cmake/kokkos_functions.cmake +++ b/lib/kokkos/cmake/kokkos_functions.cmake @@ -47,6 +47,13 @@ FUNCTION(kokkos_option CAMEL_SUFFIX DEFAULT TYPE DOCSTRING) SET(CAMEL_NAME Kokkos_${CAMEL_SUFFIX}) STRING(TOUPPER ${CAMEL_NAME} UC_NAME) + LIST(APPEND KOKKOS_OPTION_KEYS ${CAMEL_SUFFIX}) + SET(KOKKOS_OPTION_KEYS ${KOKKOS_OPTION_KEYS} PARENT_SCOPE) + LIST(APPEND KOKKOS_OPTION_VALUES "${DOCSTRING}") + SET(KOKKOS_OPTION_VALUES ${KOKKOS_OPTION_VALUES} PARENT_SCOPE) + LIST(APPEND KOKKOS_OPTION_TYPES ${TYPE}) + SET(KOKKOS_OPTION_TYPES ${KOKKOS_OPTION_TYPES} PARENT_SCOPE) + # Make sure this appears in the cache with the appropriate DOCSTRING SET(${CAMEL_NAME} ${DEFAULT} CACHE ${TYPE} ${DOCSTRING}) @@ -73,7 +80,21 @@ FUNCTION(kokkos_option CAMEL_SUFFIX DEFAULT TYPE DOCSTRING) ELSE() SET(${UC_NAME} ${DEFAULT} PARENT_SCOPE) ENDIF() +ENDFUNCTION() + +FUNCTION(kokkos_set_option CAMEL_SUFFIX VALUE) + LIST(FIND KOKKOS_OPTION_KEYS ${CAMEL_SUFFIX} OPTION_INDEX) + IF(OPTION_INDEX EQUAL -1) + MESSAGE(FATAL_ERROR "Couldn't set value for Kokkos_${CAMEL_SUFFIX}") + ENDIF() + SET(CAMEL_NAME Kokkos_${CAMEL_SUFFIX}) + STRING(TOUPPER ${CAMEL_NAME} UC_NAME) + LIST(GET KOKKOS_OPTION_VALUES ${OPTION_INDEX} DOCSTRING) + LIST(GET KOKKOS_OPTION_TYPES ${OPTION_INDEX} TYPE) + SET(${CAMEL_NAME} ${VALUE} CACHE ${TYPE} ${DOCSTRING} FORCE) + MESSAGE(STATUS "Setting ${CAMEL_NAME}=${VALUE}") + SET(${UC_NAME} ${VALUE} PARENT_SCOPE) ENDFUNCTION() FUNCTION(kokkos_append_config_line LINE) @@ -109,8 +130,8 @@ ENDMACRO() MACRO(kokkos_export_imported_tpl NAME) IF (NOT KOKKOS_HAS_TRILINOS) - GET_TARGET_PROPERTY(LIB_TYPE ${NAME} TYPE) - IF (${LIB_TYPE} STREQUAL "INTERFACE_LIBRARY") + GET_TARGET_PROPERTY(LIB_IMPORTED ${NAME} IMPORTED) + IF (NOT LIB_IMPORTED) # This is not an imported target # This an interface library that we created INSTALL( @@ -123,12 +144,18 @@ MACRO(kokkos_export_imported_tpl NAME) ELSE() #make sure this also gets "exported" in the config file KOKKOS_APPEND_CONFIG_LINE("IF(NOT TARGET ${NAME})") - KOKKOS_APPEND_CONFIG_LINE("ADD_LIBRARY(${NAME} UNKNOWN IMPORTED)") - KOKKOS_APPEND_CONFIG_LINE("SET_TARGET_PROPERTIES(${NAME} PROPERTIES") - GET_TARGET_PROPERTY(TPL_LIBRARY ${NAME} IMPORTED_LOCATION) - IF(TPL_LIBRARY) - KOKKOS_APPEND_CONFIG_LINE("IMPORTED_LOCATION ${TPL_LIBRARY}") + GET_TARGET_PROPERTY(LIB_TYPE ${NAME} TYPE) + IF (${LIB_TYPE} STREQUAL "INTERFACE_LIBRARY") + KOKKOS_APPEND_CONFIG_LINE("ADD_LIBRARY(${NAME} INTERFACE IMPORTED)") + KOKKOS_APPEND_CONFIG_LINE("SET_TARGET_PROPERTIES(${NAME} PROPERTIES") + ELSE() + KOKKOS_APPEND_CONFIG_LINE("ADD_LIBRARY(${NAME} UNKNOWN IMPORTED)") + KOKKOS_APPEND_CONFIG_LINE("SET_TARGET_PROPERTIES(${NAME} PROPERTIES") + GET_TARGET_PROPERTY(TPL_LIBRARY ${NAME} IMPORTED_LOCATION) + IF(TPL_LIBRARY) + KOKKOS_APPEND_CONFIG_LINE("IMPORTED_LOCATION ${TPL_LIBRARY}") + ENDIF() ENDIF() GET_TARGET_PROPERTY(TPL_INCLUDES ${NAME} INTERFACE_INCLUDE_DIRECTORIES) @@ -737,18 +764,22 @@ FUNCTION(kokkos_link_tpl TARGET) ENDFUNCTION() FUNCTION(COMPILER_SPECIFIC_OPTIONS_HELPER) - SET(COMPILERS NVIDIA PGI XL DEFAULT Cray Intel Clang AppleClang GNU) + SET(COMPILERS NVIDIA PGI XL DEFAULT Cray Intel Clang AppleClang IntelClang GNU HIP) CMAKE_PARSE_ARGUMENTS( PARSE "LINK_OPTIONS;COMPILE_OPTIONS;COMPILE_DEFINITIONS;LINK_LIBRARIES" - "" + "COMPILER_ID" "${COMPILERS}" ${ARGN}) IF(PARSE_UNPARSED_ARGUMENTS) MESSAGE(SEND_ERROR "'${PARSE_UNPARSED_ARGUMENTS}' argument(s) not recognized when providing compiler specific options") ENDIF() - SET(COMPILER ${KOKKOS_CXX_COMPILER_ID}) + IF(PARSE_COMPILER_ID) + SET(COMPILER ${${PARSE_COMPILER_ID}}) + ELSE() + SET(COMPILER ${KOKKOS_CXX_COMPILER_ID}) + ENDIF() SET(COMPILER_SPECIFIC_FLAGS_TMP) FOREACH(COMP ${COMPILERS}) @@ -792,6 +823,14 @@ FUNCTION(COMPILER_SPECIFIC_FLAGS) COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} COMPILE_OPTIONS LINK_OPTIONS) ENDFUNCTION(COMPILER_SPECIFIC_FLAGS) +FUNCTION(COMPILER_SPECIFIC_OPTIONS) + COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} COMPILE_OPTIONS) +ENDFUNCTION(COMPILER_SPECIFIC_OPTIONS) + +FUNCTION(COMPILER_SPECIFIC_LINK_OPTIONS) + COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} LINK_OPTIONS) +ENDFUNCTION(COMPILER_SPECIFIC_LINK_OPTIONS) + FUNCTION(COMPILER_SPECIFIC_DEFS) COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} COMPILE_DEFINITIONS) ENDFUNCTION(COMPILER_SPECIFIC_DEFS) @@ -799,3 +838,36 @@ ENDFUNCTION(COMPILER_SPECIFIC_DEFS) FUNCTION(COMPILER_SPECIFIC_LIBS) COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} LINK_LIBRARIES) ENDFUNCTION(COMPILER_SPECIFIC_LIBS) + +# Given a list of the form +# key1;value1;key2;value2,... +# Create a list of all keys in a variable named ${KEY_LIST_NAME} +# and set the value for each key in a variable ${VAR_PREFIX}key1,... +# kokkos_key_value_map(ARCH ALL_ARCHES key1;value1;key2;value2) +# would produce a list variable ALL_ARCHES=key1;key2 +# and individual variables ARCHkey1=value1 and ARCHkey2=value2 +MACRO(KOKKOS_KEY_VALUE_MAP VAR_PREFIX KEY_LIST_NAME) + SET(PARSE_KEY ON) + SET(${KEY_LIST_NAME}) + FOREACH(ENTRY ${ARGN}) + IF(PARSE_KEY) + SET(CURRENT_KEY ${ENTRY}) + SET(PARSE_KEY OFF) + LIST(APPEND ${KEY_LIST_NAME} ${CURRENT_KEY}) + ELSE() + SET(${VAR_PREFIX}${CURRENT_KEY} ${ENTRY}) + SET(PARSE_KEY ON) + ENDIF() + ENDFOREACH() +ENDMACRO() + +FUNCTION(KOKKOS_CHECK_DEPRECATED_OPTIONS) + KOKKOS_KEY_VALUE_MAP(DEPRECATED_MSG_ DEPRECATED_LIST ${ARGN}) + FOREACH(OPTION_SUFFIX ${DEPRECATED_LIST}) + SET(OPTION_NAME Kokkos_${OPTION_SUFFIX}) + SET(OPTION_MESSAGE ${DEPRECATED_MSG_${OPTION_SUFFIX}}) + IF(DEFINED ${OPTION_NAME}) # This variable has been given by the user as on or off + MESSAGE(SEND_ERROR "Removed option ${OPTION_NAME} has been given with value ${${OPTION_NAME}}. ${OPT_MESSAGE}") + ENDIF() + ENDFOREACH() +ENDFUNCTION() diff --git a/lib/kokkos/cmake/kokkos_install.cmake b/lib/kokkos/cmake/kokkos_install.cmake index 97bb2bd0b0..ff66d015fb 100644 --- a/lib/kokkos/cmake/kokkos_install.cmake +++ b/lib/kokkos/cmake/kokkos_install.cmake @@ -1,5 +1,5 @@ INCLUDE(CMakePackageConfigHelpers) -IF (NOT KOKKOS_HAS_TRILINOS) +IF (NOT KOKKOS_HAS_TRILINOS AND NOT Kokkos_INSTALL_TESTING) INCLUDE(GNUInstallDirs) #Set all the variables needed for KokkosConfig.cmake diff --git a/lib/kokkos/cmake/kokkos_test_cxx_std.cmake b/lib/kokkos/cmake/kokkos_test_cxx_std.cmake index 603b4b3d7a..cb857bc11e 100644 --- a/lib/kokkos/cmake/kokkos_test_cxx_std.cmake +++ b/lib/kokkos/cmake/kokkos_test_cxx_std.cmake @@ -28,19 +28,30 @@ FUNCTION(kokkos_set_cxx_standard_feature standard) GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE ${FEATURE_NAME}) ELSEIF(NOT KOKKOS_USE_CXX_EXTENSIONS AND ${STANDARD_NAME}) MESSAGE(STATUS "Using ${${STANDARD_NAME}} for C++${standard} standard as feature") + IF (KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA AND (KOKKOS_CXX_HOST_COMPILER_ID STREQUAL GNU OR KOKKOS_CXX_HOST_COMPILER_ID STREQUAL Clang)) + SET(SUPPORTED_NVCC_FLAGS "-std=c++11;-std=c++14;-std=c++17") + IF (NOT ${${STANDARD_NAME}} IN_LIST SUPPORTED_NVCC_FLAGS) + MESSAGE(FATAL_ERROR "CMake wants to use ${${STANDARD_NAME}} which is not supported by NVCC. Using a more recent host compiler or a more recent CMake version might help.") + ENDIF() + ENDIF() GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE ${FEATURE_NAME}) - ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") + ELSEIF (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") #MSVC doesn't need a command line flag, that doesn't mean it has no support MESSAGE(STATUS "Using no flag for C++${standard} standard as feature") GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE ${FEATURE_NAME}) + ELSEIF((KOKKOS_CXX_COMPILER_ID STREQUAL "NVIDIA") AND WIN32) + MESSAGE(STATUS "Using no flag for C++${standard} standard as feature") + GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE "") ELSE() #nope, we can't do anything here MESSAGE(WARNING "C++${standard} is not supported as a compiler feature. We will choose custom flags for now, but this behavior has been deprecated. Please open an issue at https://github.com/kokkos/kokkos/issues reporting that ${KOKKOS_CXX_COMPILER_ID} ${KOKKOS_CXX_COMPILER_VERSION} failed for ${KOKKOS_CXX_STANDARD}, preferrably including your CMake command.") GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE "") ENDIF() - IF(NOT ${FEATURE_NAME} IN_LIST CMAKE_CXX_COMPILE_FEATURES) - MESSAGE(FATAL_ERROR "Compiler ${KOKKOS_CXX_COMPILER_ID} should support ${FEATURE_NAME}, but CMake reports feature not supported") + IF(NOT WIN32) + IF(NOT ${FEATURE_NAME} IN_LIST CMAKE_CXX_COMPILE_FEATURES) + MESSAGE(FATAL_ERROR "Compiler ${KOKKOS_CXX_COMPILER_ID} should support ${FEATURE_NAME}, but CMake reports feature not supported") + ENDIF() ENDIF() ENDFUNCTION() @@ -123,7 +134,7 @@ IF (NOT KOKKOS_CXX_STANDARD_FEATURE) ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL Intel) INCLUDE(${KOKKOS_SRC_PATH}/cmake/intel.cmake) kokkos_set_intel_flags(${KOKKOS_CXX_STANDARD} ${KOKKOS_CXX_INTERMEDIATE_STANDARD}) - ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") + ELSEIF((KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") OR ((KOKKOS_CXX_COMPILER_ID STREQUAL "NVIDIA") AND WIN32)) INCLUDE(${KOKKOS_SRC_PATH}/cmake/msvc.cmake) kokkos_set_msvc_flags(${KOKKOS_CXX_STANDARD} ${KOKKOS_CXX_INTERMEDIATE_STANDARD}) ELSE() diff --git a/lib/kokkos/cmake/kokkos_tpls.cmake b/lib/kokkos/cmake/kokkos_tpls.cmake index 76efd42847..861d79727f 100644 --- a/lib/kokkos/cmake/kokkos_tpls.cmake +++ b/lib/kokkos/cmake/kokkos_tpls.cmake @@ -13,10 +13,10 @@ KOKKOS_TPL_OPTION(LIBNUMA Off) KOKKOS_TPL_OPTION(MEMKIND Off) KOKKOS_TPL_OPTION(CUDA Off) KOKKOS_TPL_OPTION(LIBRT Off) -KOKKOS_TPL_OPTION(LIBDL On) - -IF(KOKKOS_ENABLE_PROFILING AND NOT KOKKOS_ENABLE_LIBDL) - MESSAGE(SEND_ERROR "Kokkos_ENABLE_PROFILING requires Kokkos_ENABLE_LIBDL=ON") +IF (WIN32) + KOKKOS_TPL_OPTION(LIBDL Off) +ELSE() + KOKKOS_TPL_OPTION(LIBDL On) ENDIF() IF(Trilinos_ENABLE_Kokkos AND TPL_ENABLE_HPX) diff --git a/lib/kokkos/cmake/kokkos_tribits.cmake b/lib/kokkos/cmake/kokkos_tribits.cmake index 6ee1409aa7..9ba817d2c9 100644 --- a/lib/kokkos/cmake/kokkos_tribits.cmake +++ b/lib/kokkos/cmake/kokkos_tribits.cmake @@ -21,10 +21,6 @@ IF (KOKKOS_HAS_TRILINOS) SET(${PROJECT_NAME}_ENABLE_DEBUG OFF) ENDIF() - IF(NOT DEFINED ${PROJECT_NAME}_ENABLE_CXX11) - SET(${PROJECT_NAME}_ENABLE_CXX11 ON) - ENDIF() - IF(NOT DEFINED ${PROJECT_NAME}_ENABLE_TESTS) SET(${PROJECT_NAME}_ENABLE_TESTS OFF) ENDIF() @@ -134,7 +130,7 @@ FUNCTION(KOKKOS_ADD_EXECUTABLE ROOT_NAME) VERIFY_EMPTY(KOKKOS_ADD_EXECUTABLE ${PARSE_UNPARSED_ARGUMENTS}) #All executables must link to all the kokkos targets #This is just private linkage because exe is final - TARGET_LINK_LIBRARIES(${EXE_NAME} PRIVATE kokkos) + TARGET_LINK_LIBRARIES(${EXE_NAME} PRIVATE Kokkos::kokkos) endif() ENDFUNCTION() @@ -174,16 +170,42 @@ FUNCTION(KOKKOS_SET_EXE_PROPERTY ROOT_NAME) ENDFUNCTION() MACRO(KOKKOS_SETUP_BUILD_ENVIRONMENT) - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_compiler_id.cmake) - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_enable_devices.cmake) - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_enable_options.cmake) - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_test_cxx_std.cmake) - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_arch.cmake) - IF (NOT KOKKOS_HAS_TRILINOS) - SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${Kokkos_SOURCE_DIR}/cmake/Modules/") - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_tpls.cmake) - ENDIF() - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_corner_cases.cmake) + # This is needed for both regular build and install tests + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_compiler_id.cmake) + #set an internal option, if not already set + SET(Kokkos_INSTALL_TESTING OFF CACHE INTERNAL "Whether to build tests and examples against installation") + IF (Kokkos_INSTALL_TESTING) + SET(KOKKOS_ENABLE_TESTS ON) + SET(KOKKOS_ENABLE_EXAMPLES ON) + # This looks a little weird, but what we are doing + # is to NOT build Kokkos but instead look for an + # installed Kokkos - then build examples and tests + # against that installed Kokkos + FIND_PACKAGE(Kokkos REQUIRED) + # Just grab the configuration from the installation + FOREACH(DEV ${Kokkos_DEVICES}) + SET(KOKKOS_ENABLE_${DEV} ON) + ENDFOREACH() + FOREACH(OPT ${Kokkos_OPTIONS}) + SET(KOKKOS_ENABLE_${OPT} ON) + ENDFOREACH() + FOREACH(TPL ${Kokkos_TPLS}) + SET(KOKKOS_ENABLE_${TPL} ON) + ENDFOREACH() + FOREACH(ARCH ${Kokkos_ARCH}) + SET(KOKKOS_ARCH_${ARCH} ON) + ENDFOREACH() + ELSE() + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_enable_devices.cmake) + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_enable_options.cmake) + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_test_cxx_std.cmake) + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_arch.cmake) + IF (NOT KOKKOS_HAS_TRILINOS) + SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${Kokkos_SOURCE_DIR}/cmake/Modules/") + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_tpls.cmake) + ENDIF() + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_corner_cases.cmake) + ENDIF() ENDMACRO() MACRO(KOKKOS_ADD_TEST_EXECUTABLE ROOT_NAME) @@ -310,28 +332,40 @@ FUNCTION(KOKKOS_INTERNAL_ADD_LIBRARY LIBRARY_NAME) LIST(REMOVE_DUPLICATES PARSE_SOURCES) ENDIF() + IF(PARSE_STATIC) + SET(LINK_TYPE STATIC) + ENDIF() + + IF(PARSE_SHARED) + SET(LINK_TYPE SHARED) + ENDIF() + + # MSVC and other platforms want to have + # the headers included as source files + # for better dependency detection ADD_LIBRARY( ${LIBRARY_NAME} + ${LINK_TYPE} ${PARSE_HEADERS} ${PARSE_SOURCES} ) KOKKOS_INTERNAL_ADD_LIBRARY_INSTALL(${LIBRARY_NAME}) - INSTALL( - FILES ${PARSE_HEADERS} - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT ${PACKAGE_NAME} - ) - #In case we are building in-tree, add an alias name #that matches the install Kokkos:: name ADD_LIBRARY(Kokkos::${LIBRARY_NAME} ALIAS ${LIBRARY_NAME}) ENDFUNCTION() FUNCTION(KOKKOS_ADD_LIBRARY LIBRARY_NAME) + CMAKE_PARSE_ARGUMENTS(PARSE + "ADD_BUILD_OPTIONS" + "" + "" + ${ARGN} + ) IF (KOKKOS_HAS_TRILINOS) - TRIBITS_ADD_LIBRARY(${LIBRARY_NAME} ${ARGN}) + TRIBITS_ADD_LIBRARY(${LIBRARY_NAME} ${PARSE_UNPARSED_ARGUMENTS}) #Stolen from Tribits - it can add prefixes SET(TRIBITS_LIBRARY_NAME_PREFIX "${${PROJECT_NAME}_LIBRARY_NAME_PREFIX}") SET(TRIBITS_LIBRARY_NAME ${TRIBITS_LIBRARY_NAME_PREFIX}${LIBRARY_NAME}) @@ -346,8 +380,10 @@ FUNCTION(KOKKOS_ADD_LIBRARY LIBRARY_NAME) #KOKKOS_SET_LIBRARY_PROPERTIES(${TRIBITS_LIBRARY_NAME} PLAIN_STYLE) ELSE() KOKKOS_INTERNAL_ADD_LIBRARY( - ${LIBRARY_NAME} ${ARGN}) - KOKKOS_SET_LIBRARY_PROPERTIES(${LIBRARY_NAME}) + ${LIBRARY_NAME} ${PARSE_UNPARSED_ARGUMENTS}) + IF (PARSE_ADD_BUILD_OPTIONS) + KOKKOS_SET_LIBRARY_PROPERTIES(${LIBRARY_NAME}) + ENDIF() ENDIF() ENDFUNCTION() @@ -364,17 +400,6 @@ ELSE() ADD_LIBRARY(${NAME} INTERFACE) KOKKOS_INTERNAL_ADD_LIBRARY_INSTALL(${NAME}) - - INSTALL( - FILES ${PARSE_HEADERS} - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - ) - - INSTALL( - FILES ${PARSE_HEADERS} - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT ${PACKAGE_NAME} - ) ENDIF() ENDFUNCTION() diff --git a/lib/kokkos/config/yaml/volta.yaml b/lib/kokkos/config/yaml/volta.yaml new file mode 100644 index 0000000000..f67af9c2a4 --- /dev/null +++ b/lib/kokkos/config/yaml/volta.yaml @@ -0,0 +1,4 @@ +packages: + kokkos: + variants: +cuda +openmp +volta70 +cuda_lambda +wrapper ^cuda@10.1 + compiler: [gcc@7.2.0] diff --git a/lib/kokkos/containers/CMakeLists.txt b/lib/kokkos/containers/CMakeLists.txt index 2bfaea7a13..b0e0c4eade 100644 --- a/lib/kokkos/containers/CMakeLists.txt +++ b/lib/kokkos/containers/CMakeLists.txt @@ -2,7 +2,9 @@ KOKKOS_SUBPACKAGE(Containers) -ADD_SUBDIRECTORY(src) +IF (NOT Kokkos_INSTALL_TESTING) + ADD_SUBDIRECTORY(src) +ENDIF() KOKKOS_ADD_TEST_DIRECTORIES(unit_tests) KOKKOS_ADD_TEST_DIRECTORIES(performance_tests) diff --git a/lib/kokkos/containers/performance_tests/Makefile b/lib/kokkos/containers/performance_tests/Makefile index f309a220d0..8ef1dd9938 100644 --- a/lib/kokkos/containers/performance_tests/Makefile +++ b/lib/kokkos/containers/performance_tests/Makefile @@ -31,10 +31,10 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) TEST_TARGETS += test-cuda endif -ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) - OBJ_ROCM = TestROCm.o TestMain.o gtest-all.o - TARGETS += KokkosContainers_PerformanceTest_ROCm - TEST_TARGETS += test-rocm +ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) + OBJ_HIP = TestHIP.o TestMain.o gtest-all.o + TARGETS += KokkosContainers_PerformanceTest_HIP + TEST_TARGETS += test-hip endif ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) diff --git a/lib/kokkos/containers/performance_tests/TestDynRankView.hpp b/lib/kokkos/containers/performance_tests/TestDynRankView.hpp index ee13f7e58b..8c507c7662 100644 --- a/lib/kokkos/containers/performance_tests/TestDynRankView.hpp +++ b/lib/kokkos/containers/performance_tests/TestDynRankView.hpp @@ -58,7 +58,7 @@ namespace Performance { // View functor template struct InitViewFunctor { - typedef Kokkos::View inviewtype; + using inviewtype = Kokkos::View; inviewtype _inview; InitViewFunctor(inviewtype &inview_) : _inview(inview_) {} @@ -73,10 +73,10 @@ struct InitViewFunctor { } struct SumComputationTest { - typedef Kokkos::View inviewtype; + using inviewtype = Kokkos::View; inviewtype _inview; - typedef Kokkos::View outviewtype; + using outviewtype = Kokkos::View; outviewtype _outview; KOKKOS_INLINE_FUNCTION @@ -96,7 +96,7 @@ struct InitViewFunctor { template struct InitStrideViewFunctor { - typedef Kokkos::View inviewtype; + using inviewtype = Kokkos::View; inviewtype _inview; InitStrideViewFunctor(inviewtype &inview_) : _inview(inview_) {} @@ -113,7 +113,7 @@ struct InitStrideViewFunctor { template struct InitViewRank7Functor { - typedef Kokkos::View inviewtype; + using inviewtype = Kokkos::View; inviewtype _inview; InitViewRank7Functor(inviewtype &inview_) : _inview(inview_) {} @@ -131,7 +131,7 @@ struct InitViewRank7Functor { // DynRankView functor template struct InitDynRankViewFunctor { - typedef Kokkos::DynRankView inviewtype; + using inviewtype = Kokkos::DynRankView; inviewtype _inview; InitDynRankViewFunctor(inviewtype &inview_) : _inview(inview_) {} @@ -146,10 +146,10 @@ struct InitDynRankViewFunctor { } struct SumComputationTest { - typedef Kokkos::DynRankView inviewtype; + using inviewtype = Kokkos::DynRankView; inviewtype _inview; - typedef Kokkos::DynRankView outviewtype; + using outviewtype = Kokkos::DynRankView; outviewtype _outview; KOKKOS_INLINE_FUNCTION @@ -169,8 +169,8 @@ struct InitDynRankViewFunctor { template void test_dynrankview_op_perf(const int par_size) { - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; const size_type dim_2 = 90; const size_type dim_3 = 30; @@ -184,7 +184,7 @@ void test_dynrankview_op_perf(const int par_size) { { Kokkos::View testview("testview", par_size, dim_2, dim_3); - typedef InitViewFunctor FunctorType; + using FunctorType = InitViewFunctor; timer.reset(); Kokkos::RangePolicy policy(0, par_size); @@ -204,7 +204,7 @@ void test_dynrankview_op_perf(const int par_size) { Kokkos::View teststrideview = Kokkos::subview(testview, Kokkos::ALL, Kokkos::ALL, Kokkos::ALL); - typedef InitStrideViewFunctor FunctorStrideType; + using FunctorStrideType = InitStrideViewFunctor; timer.reset(); Kokkos::parallel_for(policy, FunctorStrideType(teststrideview)); @@ -216,7 +216,7 @@ void test_dynrankview_op_perf(const int par_size) { { Kokkos::View testview("testview", par_size, dim_2, dim_3, 1, 1, 1, 1); - typedef InitViewRank7Functor FunctorType; + using FunctorType = InitViewRank7Functor; timer.reset(); Kokkos::RangePolicy policy(0, par_size); @@ -229,7 +229,7 @@ void test_dynrankview_op_perf(const int par_size) { { Kokkos::DynRankView testdrview("testdrview", par_size, dim_2, dim_3); - typedef InitDynRankViewFunctor FunctorType; + using FunctorType = InitDynRankViewFunctor; timer.reset(); Kokkos::RangePolicy policy(0, par_size); diff --git a/lib/kokkos/containers/performance_tests/TestGlobal2LocalIds.hpp b/lib/kokkos/containers/performance_tests/TestGlobal2LocalIds.hpp index 0d2ee4bc8d..65de551b27 100644 --- a/lib/kokkos/containers/performance_tests/TestGlobal2LocalIds.hpp +++ b/lib/kokkos/containers/performance_tests/TestGlobal2LocalIds.hpp @@ -65,9 +65,9 @@ union helper { template struct generate_ids { - typedef Device execution_space; - typedef typename execution_space::size_type size_type; - typedef Kokkos::View local_id_view; + using execution_space = Device; + using size_type = typename execution_space::size_type; + using local_id_view = Kokkos::View; local_id_view local_2_global; @@ -96,13 +96,12 @@ struct generate_ids { template struct fill_map { - typedef Device execution_space; - typedef typename execution_space::size_type size_type; - typedef Kokkos::View - local_id_view; - typedef Kokkos::UnorderedMap - global_id_view; + using execution_space = Device; + using size_type = typename execution_space::size_type; + using local_id_view = Kokkos::View; + using global_id_view = + Kokkos::UnorderedMap; global_id_view global_2_local; local_id_view local_2_global; @@ -120,18 +119,17 @@ struct fill_map { template struct find_test { - typedef Device execution_space; - typedef typename execution_space::size_type size_type; - typedef Kokkos::View - local_id_view; - typedef Kokkos::UnorderedMap - global_id_view; + using execution_space = Device; + using size_type = typename execution_space::size_type; + using local_id_view = Kokkos::View; + using global_id_view = + Kokkos::UnorderedMap; global_id_view global_2_local; local_id_view local_2_global; - typedef size_t value_type; + using value_type = size_t; find_test(global_id_view gIds, local_id_view lIds, value_type& num_errors) : global_2_local(gIds), local_2_global(lIds) { @@ -156,12 +154,12 @@ struct find_test { template void test_global_to_local_ids(unsigned num_ids) { - typedef Device execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = Device; + using size_type = typename execution_space::size_type; - typedef Kokkos::View local_id_view; - typedef Kokkos::UnorderedMap - global_id_view; + using local_id_view = Kokkos::View; + using global_id_view = + Kokkos::UnorderedMap; // size std::cout << num_ids << ", "; diff --git a/lib/kokkos/containers/performance_tests/TestScatterView.hpp b/lib/kokkos/containers/performance_tests/TestScatterView.hpp index 3d4c57f3e2..0f3ba103ef 100644 --- a/lib/kokkos/containers/performance_tests/TestScatterView.hpp +++ b/lib/kokkos/containers/performance_tests/TestScatterView.hpp @@ -50,14 +50,14 @@ namespace Perf { -template +template void test_scatter_view(int m, int n) { Kokkos::View original_view("original_view", n); { auto scatter_view = Kokkos::Experimental::create_scatter_view< - Kokkos::Experimental::ScatterSum, duplication, contribution>( + Kokkos::Experimental::ScatterSum, Duplication, Contribution>( original_view); Kokkos::Experimental::UniqueToken< ExecSpace, Kokkos::Experimental::UniqueTokenScope::Global> diff --git a/lib/kokkos/containers/performance_tests/TestUnorderedMapPerformance.hpp b/lib/kokkos/containers/performance_tests/TestUnorderedMapPerformance.hpp index 9057842340..c31412552a 100644 --- a/lib/kokkos/containers/performance_tests/TestUnorderedMapPerformance.hpp +++ b/lib/kokkos/containers/performance_tests/TestUnorderedMapPerformance.hpp @@ -55,9 +55,9 @@ namespace Perf { template struct UnorderedMapTest { - typedef Device execution_space; - typedef Kokkos::UnorderedMap map_type; - typedef typename map_type::histogram_type histogram_type; + using execution_space = Device; + using map_type = Kokkos::UnorderedMap; + using histogram_type = typename map_type::histogram_type; struct value_type { uint32_t failed_count; diff --git a/lib/kokkos/containers/src/CMakeLists.txt b/lib/kokkos/containers/src/CMakeLists.txt index 0c9d24d641..7000624b6b 100644 --- a/lib/kokkos/containers/src/CMakeLists.txt +++ b/lib/kokkos/containers/src/CMakeLists.txt @@ -9,6 +9,10 @@ KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) SET(KOKKOS_CONTAINERS_SRCS) APPEND_GLOB(KOKKOS_CONTAINERS_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/*.cpp) +SET(KOKKOS_CONTAINER_HEADERS) +APPEND_GLOB(KOKKOS_CONTAINERS_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/*.hpp) +APPEND_GLOB(KOKKOS_CONTAINERS_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) + INSTALL ( DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" @@ -19,6 +23,7 @@ INSTALL ( KOKKOS_ADD_LIBRARY( kokkoscontainers SOURCES ${KOKKOS_CONTAINERS_SRCS} + HEADERS ${KOKKOS_CONTAINER_HEADERS} ) SET_TARGET_PROPERTIES(kokkoscontainers PROPERTIES VERSION ${Kokkos_VERSION}) diff --git a/lib/kokkos/containers/src/Kokkos_Bitset.hpp b/lib/kokkos/containers/src/Kokkos_Bitset.hpp index ab75fc1e1d..eedfd5f9ef 100644 --- a/lib/kokkos/containers/src/Kokkos_Bitset.hpp +++ b/lib/kokkos/containers/src/Kokkos_Bitset.hpp @@ -73,8 +73,8 @@ void deep_copy(ConstBitset& dst, ConstBitset const& src); template class Bitset { public: - typedef Device execution_space; - typedef unsigned size_type; + using execution_space = Device; + using size_type = unsigned; enum { BIT_SCAN_REVERSE = 1u }; enum { MOVE_HINT_BACKWARD = 2u }; @@ -137,9 +137,9 @@ class Bitset { if (m_last_block_mask) { // clear the unused bits in the last block - typedef Kokkos::Impl::DeepCopy - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy; raw_deep_copy(m_blocks.data() + (m_blocks.extent(0) - 1u), &m_last_block_mask, sizeof(unsigned)); } @@ -234,6 +234,10 @@ class Bitset { return find_any_helper(block_idx, offset, block, scan_direction); } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return m_blocks.is_allocated(); + } + private: KOKKOS_FORCEINLINE_FUNCTION Kokkos::pair find_any_helper(unsigned block_idx, @@ -304,8 +308,8 @@ class Bitset { template class ConstBitset { public: - typedef Device execution_space; - typedef unsigned size_type; + using execution_space = Device; + using size_type = unsigned; private: enum { block_size = static_cast(sizeof(unsigned) * CHAR_BIT) }; @@ -380,9 +384,9 @@ void deep_copy(Bitset& dst, Bitset const& src) { "Error: Cannot deep_copy bitsets of different sizes!"); } - typedef Kokkos::Impl::DeepCopy - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy; raw_deep_copy(dst.m_blocks.data(), src.m_blocks.data(), sizeof(unsigned) * src.m_blocks.extent(0)); } @@ -394,9 +398,9 @@ void deep_copy(Bitset& dst, ConstBitset const& src) { "Error: Cannot deep_copy bitsets of different sizes!"); } - typedef Kokkos::Impl::DeepCopy - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy; raw_deep_copy(dst.m_blocks.data(), src.m_blocks.data(), sizeof(unsigned) * src.m_blocks.extent(0)); } @@ -408,9 +412,9 @@ void deep_copy(ConstBitset& dst, ConstBitset const& src) { "Error: Cannot deep_copy bitsets of different sizes!"); } - typedef Kokkos::Impl::DeepCopy - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy; raw_deep_copy(dst.m_blocks.data(), src.m_blocks.data(), sizeof(unsigned) * src.m_blocks.extent(0)); } diff --git a/lib/kokkos/containers/src/Kokkos_DualView.hpp b/lib/kokkos/containers/src/Kokkos_DualView.hpp index ede7d9a31f..3fc0371c69 100644 --- a/lib/kokkos/containers/src/Kokkos_DualView.hpp +++ b/lib/kokkos/containers/src/Kokkos_DualView.hpp @@ -100,99 +100,91 @@ class DualView : public ViewTraits { public: //! \name Typedefs for device types and various Kokkos::View specializations. //@{ - typedef ViewTraits traits; + using traits = ViewTraits; //! The Kokkos Host Device type; - typedef typename traits::host_mirror_space host_mirror_space; + using host_mirror_space = typename traits::host_mirror_space; //! The type of a Kokkos::View on the device. - typedef View t_dev; + using t_dev = View; /// \typedef t_host /// \brief The type of a Kokkos::View host mirror of \c t_dev. - typedef typename t_dev::HostMirror t_host; + using t_host = typename t_dev::HostMirror; //! The type of a const View on the device. //! The type of a Kokkos::View on the device. - typedef View - t_dev_const; + using t_dev_const = + View; /// \typedef t_host_const /// \brief The type of a const View host mirror of \c t_dev_const. - typedef typename t_dev_const::HostMirror t_host_const; + using t_host_const = typename t_dev_const::HostMirror; //! The type of a const, random-access View on the device. - typedef View > - t_dev_const_randomread; + using t_dev_const_randomread = + View >; /// \typedef t_host_const_randomread /// \brief The type of a const, random-access View host mirror of /// \c t_dev_const_randomread. - typedef typename t_dev_const_randomread::HostMirror t_host_const_randomread; + using t_host_const_randomread = typename t_dev_const_randomread::HostMirror; //! The type of an unmanaged View on the device. - typedef View - t_dev_um; + using t_dev_um = + View; //! The type of an unmanaged View host mirror of \c t_dev_um. - typedef View - t_host_um; + using t_host_um = + View; //! The type of a const unmanaged View on the device. - typedef View - t_dev_const_um; + using t_dev_const_um = + View; //! The type of a const unmanaged View host mirror of \c t_dev_const_um. - typedef View - t_host_const_um; + using t_host_const_um = + View; //! The type of a const, random-access View on the device. - typedef View > - t_dev_const_randomread_um; + using t_dev_const_randomread_um = + View >; /// \typedef t_host_const_randomread /// \brief The type of a const, random-access View host mirror of /// \c t_dev_const_randomread. - typedef - typename t_dev_const_randomread::HostMirror t_host_const_randomread_um; - - //@} - //! \name The two View instances. - //@{ - - t_dev d_view; - t_host h_view; + using t_host_const_randomread_um = + typename t_dev_const_randomread::HostMirror; //@} //! \name Counters to keep track of changes ("modified" flags) //@{ -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE protected: // modified_flags[0] -> host // modified_flags[1] -> device - typedef View t_modified_flags; + using t_modified_flags = View; t_modified_flags modified_flags; public: -#else - typedef View - t_modified_flags; - typedef View - t_modified_flag; - t_modified_flags modified_flags; - t_modified_flag modified_host, modified_device; -#endif + //@} + // Moved this specifically after modified_flags to resolve an alignment issue + // on MSVC/NVCC + //! \name The two View instances. + //@{ + t_dev d_view; + t_host h_view; //@} + //! \name Constructors //@{ @@ -201,14 +193,7 @@ class DualView : public ViewTraits { /// Both device and host View objects are constructed using their /// default constructors. The "modified" flags are both initialized /// to "unmodified." -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE DualView() = default; -#else - DualView() : modified_flags(t_modified_flags("DualView::modified_flags")) { - modified_host = t_modified_flag(modified_flags, 0); - modified_device = t_modified_flag(modified_flags, 1); - } -#endif /// \brief Constructor that allocates View objects on both host and device. /// @@ -228,15 +213,10 @@ class DualView : public ViewTraits { const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) - : d_view(label, n0, n1, n2, n3, n4, n5, n6, n7), + : modified_flags(t_modified_flags("DualView::modified_flags")), + d_view(label, n0, n1, n2, n3, n4, n5, n6, n7), h_view(create_mirror_view(d_view)) // without UVM, host View mirrors - , - modified_flags(t_modified_flags("DualView::modified_flags")) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - modified_host = t_modified_flag(modified_flags, 0); - modified_device = t_modified_flag(modified_flags, 1); -#endif - } + {} /// \brief Constructor that allocates View objects on both host and device. /// @@ -260,15 +240,10 @@ class DualView : public ViewTraits { const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) - : d_view(arg_prop, n0, n1, n2, n3, n4, n5, n6, n7), + : modified_flags(t_modified_flags("DualView::modified_flags")), + d_view(arg_prop, n0, n1, n2, n3, n4, n5, n6, n7), h_view(create_mirror_view(d_view)) // without UVM, host View mirrors - , - modified_flags(t_modified_flags("DualView::modified_flags")) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - modified_host = t_modified_flag(modified_flags, 0); - modified_device = t_modified_flag(modified_flags, 1); -#endif - } + {} explicit inline DualView(const ViewAllocateWithoutInitializing& arg_prop, const size_t arg_N0 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, @@ -288,30 +263,16 @@ class DualView : public ViewTraits { //! Copy constructor (shallow copy) template DualView(const DualView& src) - : d_view(src.d_view), - h_view(src.h_view), - modified_flags(src.modified_flags) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - , - modified_host(src.modified_host), - modified_device(src.modified_device) -#endif - { - } + : modified_flags(src.modified_flags), + d_view(src.d_view), + h_view(src.h_view) {} //! Subview constructor template DualView(const DualView& src, const Arg0& arg0, Args... args) - : d_view(Kokkos::subview(src.d_view, arg0, args...)), - h_view(Kokkos::subview(src.h_view, arg0, args...)), - modified_flags(src.modified_flags) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - , - modified_host(src.modified_host), - modified_device(src.modified_device) -#endif - { - } + : modified_flags(src.modified_flags), + d_view(Kokkos::subview(src.d_view, arg0, args...)), + h_view(Kokkos::subview(src.h_view, arg0, args...)) {} /// \brief Create DualView from existing device and host View objects. /// @@ -324,9 +285,9 @@ class DualView : public ViewTraits { /// \param d_view_ Device View /// \param h_view_ Host View (must have type t_host = t_dev::HostMirror) DualView(const t_dev& d_view_, const t_host& h_view_) - : d_view(d_view_), - h_view(h_view_), - modified_flags(t_modified_flags("DualView::modified_flags")) { + : modified_flags(t_modified_flags("DualView::modified_flags")), + d_view(d_view_), + h_view(h_view_) { if (int(d_view.rank) != int(h_view.rank) || d_view.extent(0) != h_view.extent(0) || d_view.extent(1) != h_view.extent(1) || @@ -348,10 +309,6 @@ class DualView : public ViewTraits { Kokkos::Impl::throw_runtime_exception( "DualView constructed with incompatible views"); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - modified_host = t_modified_flag(modified_flags, 0); - modified_device = t_modified_flag(modified_flags, 1); -#endif } //@} @@ -367,20 +324,25 @@ class DualView : public ViewTraits { /// /// For example, suppose you create a DualView on Cuda, like this: /// \code - /// typedef Kokkos::DualView - /// dual_view_type; dual_view_type DV ("my dual view", 100); \endcode If you - /// want to get the CUDA device View, do this: \code typename - /// dual_view_type::t_dev cudaView = DV.view (); \endcode and if - /// you want to get the host mirror of that View, do this: \code typedef - /// typename Kokkos::HostSpace::execution_space host_device_type; typename - /// dual_view_type::t_host hostView = DV.view (); \endcode + /// using dual_view_type = + /// Kokkos::DualView; + /// dual_view_type DV ("my dual view", 100); + /// \endcode + /// If you want to get the CUDA device View, do this: + /// \code + /// typename dual_view_type::t_dev cudaView = DV.view (); + /// \endcode + /// and if you want to get the host mirror of that View, do this: + /// \code + /// using host_device_type = typename Kokkos::HostSpace::execution_space; + /// typename dual_view_type::t_host hostView = DV.view (); + /// \endcode template KOKKOS_INLINE_FUNCTION const typename Impl::if_c< std::is_same::value, t_dev, t_host>::type& view() const { -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE constexpr bool device_is_memspace = std::is_same::value; constexpr bool device_is_execspace = @@ -415,7 +377,6 @@ class DualView : public ViewTraits { (device_exec_is_t_dev_exec || device_exec_is_t_host_exec))), "Template parameter to .view() must exactly match one of the " "DualView's device types or one of the execution or memory spaces"); -#endif return Impl::if_c::value, @@ -428,6 +389,10 @@ class DualView : public ViewTraits { KOKKOS_INLINE_FUNCTION t_dev view_device() const { return d_view; } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return (d_view.is_allocated() && h_view.is_allocated()); + } + template static int get_device_side() { constexpr bool device_is_memspace = @@ -453,7 +418,6 @@ class DualView : public ViewTraits { std::is_same::value; -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE static_assert( device_is_t_dev_device || device_is_t_host_device || (device_is_memspace && @@ -465,13 +429,8 @@ class DualView : public ViewTraits { (device_exec_is_t_dev_exec || device_exec_is_t_host_exec))), "Template parameter to .sync() must exactly match one of the " "DualView's device types or one of the execution or memory spaces"); -#endif -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE int dev = -1; -#else - int dev = 0; -#endif if (device_is_t_dev_device) dev = 1; else if (device_is_t_host_device) @@ -822,11 +781,6 @@ class DualView : public ViewTraits { //! \name Methods for getting capacity, stride, or dimension(s). //@{ -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - //! The allocation size (same as Kokkos::View::capacity). - size_t capacity() const { return d_view.span(); } -#endif - //! The allocation size (same as Kokkos::View::span). KOKKOS_INLINE_FUNCTION constexpr size_t span() const { return d_view.span(); } @@ -854,29 +808,6 @@ class DualView : public ViewTraits { return static_cast(d_view.extent(r)); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /* Deprecate all 'dimension' functions in favor of - * ISO/C++ vocabulary 'extent'. - */ - - /* \brief return size of dimension 0 */ - size_t dimension_0() const { return d_view.extent(0); } - /* \brief return size of dimension 1 */ - size_t dimension_1() const { return d_view.extent(1); } - /* \brief return size of dimension 2 */ - size_t dimension_2() const { return d_view.extent(2); } - /* \brief return size of dimension 3 */ - size_t dimension_3() const { return d_view.extent(3); } - /* \brief return size of dimension 4 */ - size_t dimension_4() const { return d_view.extent(4); } - /* \brief return size of dimension 5 */ - size_t dimension_5() const { return d_view.extent(5); } - /* \brief return size of dimension 6 */ - size_t dimension_6() const { return d_view.extent(6); } - /* \brief return size of dimension 7 */ - size_t dimension_7() const { return d_view.extent(7); } -#endif - //@} }; @@ -893,13 +824,12 @@ namespace Impl { template struct DualViewSubview { - typedef typename Kokkos::Impl::ViewMapping< - void, Kokkos::ViewTraits, Args...>::traits_type dst_traits; + using dst_traits = typename Kokkos::Impl::ViewMapping< + void, Kokkos::ViewTraits, Args...>::traits_type; - typedef Kokkos::DualView< + using type = Kokkos::DualView< typename dst_traits::data_type, typename dst_traits::array_layout, - typename dst_traits::device_type, typename dst_traits::memory_traits> - type; + typename dst_traits::device_type, typename dst_traits::memory_traits>; }; } /* namespace Impl */ diff --git a/lib/kokkos/containers/src/Kokkos_DynRankView.hpp b/lib/kokkos/containers/src/Kokkos_DynRankView.hpp index 4ab212d7b9..afb4b682c4 100644 --- a/lib/kokkos/containers/src/Kokkos_DynRankView.hpp +++ b/lib/kokkos/containers/src/Kokkos_DynRankView.hpp @@ -349,8 +349,8 @@ class ViewMapping< public: enum { is_assignable = is_assignable_value_type && is_assignable_layout }; - typedef ViewMapping DstType; - typedef ViewMapping SrcType; + using DstType = ViewMapping; + using SrcType = ViewMapping; template KOKKOS_INLINE_FUNCTION static void assign( @@ -365,13 +365,13 @@ class ViewMapping< // Removed dimension checks... - typedef typename DstType::offset_type dst_offset_type; + using dst_offset_type = typename DstType::offset_type; dst.m_map.m_impl_offset = dst_offset_type( std::integral_constant(), src.layout()); // Check this for integer input1 for padding, etc dst.m_map.m_impl_handle = Kokkos::Impl::ViewDataHandle::assign( - src.m_map.m_impl_handle, src.m_track); - dst.m_track.assign(src.m_track, DstTraits::is_managed); + src.m_map.m_impl_handle, src.m_track.m_tracker); + dst.m_track.assign(src.m_track.m_tracker, DstTraits::is_managed); dst.m_rank = src.Rank; } }; @@ -415,16 +415,16 @@ class DynRankView : public ViewTraits { friend class Kokkos::Impl::ViewMapping; public: - typedef ViewTraits drvtraits; + using drvtraits = ViewTraits; - typedef View view_type; + using view_type = View; - typedef ViewTraits traits; + using traits = ViewTraits; private: - typedef Kokkos::Impl::ViewMapping - map_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using map_type = + Kokkos::Impl::ViewMapping; + using track_type = Kokkos::Impl::SharedAllocationTracker; track_type m_track; map_type m_map; @@ -440,28 +440,24 @@ class DynRankView : public ViewTraits { // 7 data_type of the traits /** \brief Compatible view of array of scalar types */ - typedef DynRankView< + using array_type = DynRankView< typename drvtraits::scalar_array_type, typename drvtraits::array_layout, - typename drvtraits::device_type, typename drvtraits::memory_traits> - array_type; + typename drvtraits::device_type, typename drvtraits::memory_traits>; /** \brief Compatible view of const data type */ - typedef DynRankView< + using const_type = DynRankView< typename drvtraits::const_data_type, typename drvtraits::array_layout, - typename drvtraits::device_type, typename drvtraits::memory_traits> - const_type; + typename drvtraits::device_type, typename drvtraits::memory_traits>; /** \brief Compatible view of non-const data type */ - typedef DynRankView< + using non_const_type = DynRankView< typename drvtraits::non_const_data_type, typename drvtraits::array_layout, - typename drvtraits::device_type, typename drvtraits::memory_traits> - non_const_type; + typename drvtraits::device_type, typename drvtraits::memory_traits>; /** \brief Compatible HostMirror view */ - typedef DynRankView - HostMirror; + using HostMirror = DynRankView; //---------------------------------------- // Domain rank and extents @@ -493,42 +489,6 @@ class DynRankView : public ViewTraits { * ISO/C++ vocabulary 'extent'. */ -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template - KOKKOS_INLINE_FUNCTION constexpr - typename std::enable_if::value, size_t>::type - dimension(const iType& r) const { - return extent(r); - } - - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_0() const { - return m_map.dimension_0(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_1() const { - return m_map.dimension_1(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_2() const { - return m_map.dimension_2(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_3() const { - return m_map.dimension_3(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_4() const { - return m_map.dimension_4(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_5() const { - return m_map.dimension_5(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_6() const { - return m_map.dimension_6(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_7() const { - return m_map.dimension_7(); - } -#endif - - //---------------------------------------- - KOKKOS_INLINE_FUNCTION constexpr size_t size() const { return m_map.extent(0) * m_map.extent(1) * m_map.extent(2) * m_map.extent(3) * m_map.extent(4) * m_map.extent(5) * @@ -568,8 +528,8 @@ class DynRankView : public ViewTraits { //---------------------------------------- // Range span is the span which contains all members. - typedef typename map_type::reference_type reference_type; - typedef typename map_type::pointer_type pointer_type; + using reference_type = typename map_type::reference_type; + using pointer_type = typename map_type::pointer_type; enum { reference_type_is_lvalue_reference = @@ -577,39 +537,18 @@ class DynRankView : public ViewTraits { }; KOKKOS_INLINE_FUNCTION constexpr size_t span() const { return m_map.span(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // Deprecated, use 'span()' instead - KOKKOS_INLINE_FUNCTION constexpr size_t capacity() const { - return m_map.span(); - } -#endif KOKKOS_INLINE_FUNCTION constexpr bool span_is_contiguous() const { return m_map.span_is_contiguous(); } KOKKOS_INLINE_FUNCTION constexpr pointer_type data() const { return m_map.data(); } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // Deprecated, use 'span_is_contigous()' instead - KOKKOS_INLINE_FUNCTION constexpr bool is_contiguous() const { - return m_map.span_is_contiguous(); - } - // Deprecated, use 'data()' instead - KOKKOS_INLINE_FUNCTION constexpr pointer_type ptr_on_device() const { - return m_map.data(); + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return (m_map.data() != nullptr); } -#endif //---------------------------------------- // Allow specializations to query their specialized map -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - KOKKOS_INLINE_FUNCTION - const Kokkos::Impl::ViewMapping& - implementation_map() const { - return m_map; - } -#endif KOKKOS_INLINE_FUNCTION const Kokkos::Impl::ViewMapping& impl_map() const { @@ -709,12 +648,11 @@ class DynRankView : public ViewTraits { const size_t dim_scalar = m_map.dimension_scalar(); const size_t bytes = this->span() / dim_scalar; - typedef Kokkos::View< + using tmp_view_type = Kokkos::View< DataType*, typename traits::array_layout, typename traits::device_type, Kokkos::MemoryTraits > - tmp_view_type; + traits::memory_traits::is_atomic> >; tmp_view_type rankone_view(this->data(), bytes, dim_scalar); return rankone_view(i0); } @@ -1102,10 +1040,9 @@ class DynRankView : public ViewTraits { template KOKKOS_INLINE_FUNCTION DynRankView(const DynRankView& rhs) : m_track(rhs.m_track, traits::is_managed), m_map(), m_rank(rhs.m_rank) { - typedef typename DynRankView::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping - Mapping; + using SrcTraits = typename DynRankView::traits; + using Mapping = Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible DynRankView copy construction"); Mapping::assign(m_map, rhs.m_map, rhs.m_track); @@ -1114,10 +1051,9 @@ class DynRankView : public ViewTraits { template KOKKOS_INLINE_FUNCTION DynRankView& operator=( const DynRankView& rhs) { - typedef typename DynRankView::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping - Mapping; + using SrcTraits = typename DynRankView::traits; + using Mapping = Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible DynRankView copy construction"); Mapping::assign(m_map, rhs.m_map, rhs.m_track); @@ -1130,10 +1066,10 @@ class DynRankView : public ViewTraits { template KOKKOS_INLINE_FUNCTION DynRankView(const View& rhs) : m_track(), m_map(), m_rank(rhs.Rank) { - typedef typename View::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping - Mapping; + using SrcTraits = typename View::traits; + using Mapping = + Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible View to DynRankView copy construction"); Mapping::assign(*this, rhs); @@ -1141,10 +1077,10 @@ class DynRankView : public ViewTraits { template KOKKOS_INLINE_FUNCTION DynRankView& operator=(const View& rhs) { - typedef typename View::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping - Mapping; + using SrcTraits = typename View::traits; + using Mapping = + Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible View to DynRankView copy assignment"); Mapping::assign(*this, rhs); @@ -1177,11 +1113,11 @@ class DynRankView : public ViewTraits { template computeRank( arg_prop, arg_layout)) { // Append layout and spaces if not input - typedef Kokkos::Impl::ViewCtorProp alloc_prop_input; + using alloc_prop_input = Kokkos::Impl::ViewCtorProp; // use 'std::integral_constant' for non-types // to avoid duplicate class error. - typedef Kokkos::Impl::ViewCtorProp< + using alloc_prop = Kokkos::Impl::ViewCtorProp< P..., typename std::conditional, @@ -1193,19 +1129,13 @@ class DynRankView : public ViewTraits { typename std::conditional< alloc_prop_input::has_execution_space, std::integral_constant, - typename traits::device_type::execution_space>::type> - alloc_prop; + typename traits::device_type::execution_space>::type>; static_assert(traits::is_managed, "View allocation constructor requires managed memory"); if (alloc_prop::initialize && -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - !alloc_prop::execution_space::is_initialized() -#else - !alloc_prop::execution_space::impl_is_initialized() -#endif - ) { + !alloc_prop::execution_space::impl_is_initialized()) { // If initializing view data then // the execution space must be initialized. Kokkos::Impl::throw_runtime_exception( @@ -1499,36 +1429,34 @@ struct ViewMapping< unsigned(R4) + unsigned(R5) + unsigned(R6) }; - typedef Kokkos::LayoutStride array_layout; + using array_layout = Kokkos::LayoutStride; - typedef typename SrcTraits::value_type value_type; + using value_type = typename SrcTraits::value_type; - typedef value_type******* data_type; + using data_type = value_type*******; public: - typedef Kokkos::ViewTraits - traits_type; + using traits_type = Kokkos::ViewTraits; - typedef Kokkos::View - type; + using type = + Kokkos::View; template struct apply { static_assert(Kokkos::Impl::is_memory_traits::value, ""); - typedef Kokkos::ViewTraits - traits_type; + using traits_type = + Kokkos::ViewTraits; - typedef Kokkos::View - type; + using type = Kokkos::View; }; - typedef typename SrcTraits::dimension dimension; + using dimension = typename SrcTraits::dimension; template - ret_type; + using ret_type = Kokkos::DynRankView; template KOKKOS_INLINE_FUNCTION static ret_type subview( const unsigned src_rank, Kokkos::DynRankView const& src, Args... args) { - typedef ViewMapping DstType; + using DstType = ViewMapping; - typedef typename std::conditional< + using DstDimType = typename std::conditional< (rank == 0), ViewDimension<>, typename std::conditional< (rank == 1), ViewDimension<0>, @@ -1570,10 +1497,10 @@ struct ViewMapping< typename std::conditional< (rank == 6), ViewDimension<0, 0, 0, 0, 0, 0>, ViewDimension<0, 0, 0, 0, 0, 0, 0> >::type>:: - type>::type>::type>::type>::type>::type DstDimType; + type>::type>::type>::type>::type>::type; - typedef ViewOffset dst_offset_type; - typedef typename DstType::handle_type dst_handle_type; + using dst_offset_type = ViewOffset; + using dst_handle_type = typename DstType::handle_type; ret_type dst; @@ -1636,9 +1563,9 @@ subdynrankview(const Kokkos::DynRankView& src, Args... args) { "DynRankView"); } - typedef Kokkos::Impl::ViewMapping, Args...> - metafcn; + using metafcn = + Kokkos::Impl::ViewMapping, Args...>; return metafcn::subview(src.rank(), src, args...); } @@ -1659,8 +1586,8 @@ template KOKKOS_INLINE_FUNCTION bool operator==(const DynRankView& lhs, const DynRankView& rhs) { // Same data, layout, dimensions - typedef ViewTraits lhs_traits; - typedef ViewTraits rhs_traits; + using lhs_traits = ViewTraits; + using rhs_traits = ViewTraits; return std::is_same::value && @@ -1691,7 +1618,7 @@ namespace Impl { template struct DynRankViewFill { - typedef typename OutputView::traits::const_value_type const_value_type; + using const_value_type = typename OutputView::traits::const_value_type; const OutputView output; const_value_type input; @@ -1722,15 +1649,11 @@ struct DynRankViewFill { DynRankViewFill(const OutputView& arg_out, const_value_type& arg_in) : output(arg_out), input(arg_in) { - typedef typename OutputView::execution_space execution_space; - typedef Kokkos::RangePolicy Policy; - - const Kokkos::Impl::ParallelFor closure( - *this, Policy(0, output.extent(0))); - - closure.execute(); + using execution_space = typename OutputView::execution_space; + using Policy = Kokkos::RangePolicy; - execution_space().fence(); + Kokkos::parallel_for("Kokkos::DynRankViewFill", Policy(0, output.extent(0)), + *this); } }; @@ -1770,11 +1693,9 @@ struct DynRankViewRemap { n5(std::min((size_t)arg_out.extent(5), (size_t)arg_in.extent(5))), n6(std::min((size_t)arg_out.extent(6), (size_t)arg_in.extent(6))), n7(std::min((size_t)arg_out.extent(7), (size_t)arg_in.extent(7))) { - typedef Kokkos::RangePolicy Policy; - const Kokkos::Impl::ParallelFor closure( - *this, Policy(0, n0)); - closure.execute(); - // ExecSpace().fence(); // ?? + using Policy = Kokkos::RangePolicy; + + Kokkos::parallel_for("Kokkos::DynRankViewRemap", Policy(0, n0), *this); } KOKKOS_INLINE_FUNCTION @@ -1814,7 +1735,9 @@ inline void deep_copy( typename ViewTraits::value_type>::value, "deep_copy requires non-const type"); + Kokkos::fence(); Kokkos::Impl::DynRankViewFill >(dst, value); + Kokkos::fence(); } /** \brief Deep copy into a value in Host memory from a view. */ @@ -1828,10 +1751,12 @@ inline void deep_copy( Kokkos::abort(""); } - typedef ViewTraits src_traits; - typedef typename src_traits::memory_space src_memory_space; + using src_traits = ViewTraits; + using src_memory_space = typename src_traits::memory_space; + Kokkos::fence(); Kokkos::Impl::DeepCopy(&dst, src.data(), sizeof(ST)); + Kokkos::fence(); } //---------------------------------------------------------------------------- @@ -1851,13 +1776,13 @@ inline void deep_copy( typename DstType::traits::non_const_value_type>::value, "deep_copy requires non-const destination type"); - typedef DstType dst_type; - typedef SrcType src_type; + using dst_type = DstType; + using src_type = SrcType; - typedef typename dst_type::execution_space dst_execution_space; - typedef typename src_type::execution_space src_execution_space; - typedef typename dst_type::memory_space dst_memory_space; - typedef typename src_type::memory_space src_memory_space; + using dst_execution_space = typename dst_type::execution_space; + using src_execution_space = typename src_type::execution_space; + using dst_memory_space = typename dst_type::memory_space; + using src_memory_space = typename src_type::memory_space; enum { DstExecCanAccessSrc = @@ -1878,9 +1803,11 @@ inline void deep_copy( // If same type, equal layout, equal dimensions, equal span, and contiguous // memory then can byte-wise copy if (rank(src) == 0 && rank(dst) == 0) { - typedef typename dst_type::value_type value_type; + using value_type = typename dst_type::value_type; + Kokkos::fence(); Kokkos::Impl::DeepCopy( dst.data(), src.data(), sizeof(value_type)); + Kokkos::fence(); } else if (std::is_same< typename DstType::traits::value_type, typename SrcType::traits::non_const_value_type>::value && @@ -1902,9 +1829,10 @@ inline void deep_copy( dst.extent(6) == src.extent(6) && dst.extent(7) == src.extent(7)) { const size_t nbytes = sizeof(typename dst_type::value_type) * dst.span(); - + Kokkos::fence(); Kokkos::Impl::DeepCopy( dst.data(), src.data(), nbytes); + Kokkos::fence(); } else if (std::is_same< typename DstType::traits::value_type, typename SrcType::traits::non_const_value_type>::value && @@ -1931,22 +1859,29 @@ inline void deep_copy( dst.stride_6() == src.stride_6() && dst.stride_7() == src.stride_7()) { const size_t nbytes = sizeof(typename dst_type::value_type) * dst.span(); - + Kokkos::fence(); Kokkos::Impl::DeepCopy( dst.data(), src.data(), nbytes); + Kokkos::fence(); } else if (DstExecCanAccessSrc) { // Copying data between views in accessible memory spaces and either // non-contiguous or incompatible shape. + Kokkos::fence(); Kokkos::Impl::DynRankViewRemap(dst, src); + Kokkos::fence(); } else if (SrcExecCanAccessDst) { // Copying data between views in accessible memory spaces and either // non-contiguous or incompatible shape. + Kokkos::fence(); Kokkos::Impl::DynRankViewRemap( dst, src); + Kokkos::fence(); } else { Kokkos::Impl::throw_runtime_exception( "deep_copy given views that would require a temporary allocation"); } + } else { + Kokkos::fence(); } } @@ -1962,45 +1897,45 @@ namespace Impl { template struct MirrorDRViewType { // The incoming view_type - typedef typename Kokkos::DynRankView src_view_type; + using src_view_type = typename Kokkos::DynRankView; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::DynRankView dest_view_type; + using dest_view_type = Kokkos::DynRankView; // If it is the same memory_space return the existsing view_type // This will also keep the unmanaged trait if necessary - typedef typename std::conditional::type view_type; + using view_type = typename std::conditional::type; }; template struct MirrorDRVType { // The incoming view_type - typedef typename Kokkos::DynRankView src_view_type; + using src_view_type = typename Kokkos::DynRankView; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::DynRankView view_type; + using view_type = Kokkos::DynRankView; }; } // namespace Impl @@ -2012,8 +1947,8 @@ inline typename DynRankView::HostMirror create_mirror( std::is_same::specialize, void>::value && !std::is_same::array_layout, Kokkos::LayoutStride>::value>::type* = nullptr) { - typedef DynRankView src_type; - typedef typename src_type::HostMirror dst_type; + using src_type = DynRankView; + using dst_type = typename src_type::HostMirror; return dst_type(std::string(src.label()).append("_mirror"), Impl::reconstructLayout(src.layout(), src.rank())); @@ -2026,8 +1961,8 @@ inline typename DynRankView::HostMirror create_mirror( std::is_same::specialize, void>::value && std::is_same::array_layout, Kokkos::LayoutStride>::value>::type* = 0) { - typedef DynRankView src_type; - typedef typename src_type::HostMirror dst_type; + using src_type = DynRankView; + using dst_type = typename src_type::HostMirror; return dst_type(std::string(src.label()).append("_mirror"), Impl::reconstructLayout(src.layout(), src.rank())); @@ -2066,7 +2001,7 @@ inline typename DynRankView::HostMirror create_mirror_view( typename DynRankView::HostMirror::memory_space>::value && std::is_same::data_type, typename DynRankView::HostMirror::data_type>:: - value)>::type* = 0) { + value)>::type* = nullptr) { return Kokkos::create_mirror(src); } @@ -2085,7 +2020,8 @@ template typename Impl::MirrorDRViewType::view_type create_mirror_view( const Space&, const Kokkos::DynRankView& src, typename std::enable_if< - !Impl::MirrorDRViewType::is_same_memspace>::type* = 0) { + !Impl::MirrorDRViewType::is_same_memspace>::type* = + nullptr) { return typename Impl::MirrorDRViewType::view_type( src.label(), Impl::reconstructLayout(src.layout(), src.rank())); } @@ -2112,7 +2048,8 @@ create_mirror_view_and_copy( const Space&, const Kokkos::DynRankView& src, std::string const& name = "", typename std::enable_if< - !Impl::MirrorDRViewType::is_same_memspace>::type* = 0) { + !Impl::MirrorDRViewType::is_same_memspace>::type* = + nullptr) { using Mirror = typename Impl::MirrorDRViewType::view_type; std::string label = name.empty() ? src.label() : name; auto mirror = Mirror(Kokkos::ViewAllocateWithoutInitializing(label), @@ -2139,7 +2076,7 @@ inline void resize(DynRankView& v, const size_t n5 = KOKKOS_INVALID_INDEX, const size_t n6 = KOKKOS_INVALID_INDEX, const size_t n7 = KOKKOS_INVALID_INDEX) { - typedef DynRankView drview_type; + using drview_type = DynRankView; static_assert(Kokkos::ViewTraits::is_managed, "Can only resize managed views"); @@ -2163,7 +2100,7 @@ inline void realloc(DynRankView& v, const size_t n5 = KOKKOS_INVALID_INDEX, const size_t n6 = KOKKOS_INVALID_INDEX, const size_t n7 = KOKKOS_INVALID_INDEX) { - typedef DynRankView drview_type; + using drview_type = DynRankView; static_assert(Kokkos::ViewTraits::is_managed, "Can only realloc managed views"); diff --git a/lib/kokkos/containers/src/Kokkos_DynamicView.hpp b/lib/kokkos/containers/src/Kokkos_DynamicView.hpp index ebbbcc5e8c..3662acee64 100644 --- a/lib/kokkos/containers/src/Kokkos_DynamicView.hpp +++ b/lib/kokkos/containers/src/Kokkos_DynamicView.hpp @@ -85,13 +85,13 @@ struct ChunkArraySpace { template class DynamicView : public Kokkos::ViewTraits { public: - typedef Kokkos::ViewTraits traits; + using traits = Kokkos::ViewTraits; private: template friend class DynamicView; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using track_type = Kokkos::Impl::SharedAllocationTracker; static_assert(traits::rank == 1 && traits::rank_dynamic == 1, "DynamicView must be rank-one"); @@ -118,8 +118,8 @@ class DynamicView : public Kokkos::ViewTraits { private: track_type m_track; - typename traits::value_type** - m_chunks; // array of pointers to 'chunks' of memory + typename traits::value_type** m_chunks = + nullptr; // array of pointers to 'chunks' of memory unsigned m_chunk_shift; // ceil(log2(m_chunk_size)) unsigned m_chunk_mask; // m_chunk_size - 1 unsigned m_chunk_max; // number of entries in the chunk array - each pointing @@ -130,38 +130,36 @@ class DynamicView : public Kokkos::ViewTraits { //---------------------------------------------------------------------- /** \brief Compatible view of array of scalar types */ - typedef DynamicView - array_type; + using array_type = + DynamicView; /** \brief Compatible view of const data type */ - typedef DynamicView - const_type; + using const_type = DynamicView; /** \brief Compatible view of non-const data type */ - typedef DynamicView - non_const_type; + using non_const_type = DynamicView; /** \brief Must be accessible everywhere */ - typedef DynamicView HostMirror; + using HostMirror = DynamicView; /** \brief Unified types */ - typedef Kokkos::Device - uniform_device; - typedef array_type uniform_type; - typedef const_type uniform_const_type; - typedef array_type uniform_runtime_type; - typedef const_type uniform_runtime_const_type; - typedef DynamicView - uniform_nomemspace_type; - typedef DynamicView - uniform_const_nomemspace_type; - typedef DynamicView - uniform_runtime_nomemspace_type; - typedef DynamicView - uniform_runtime_const_nomemspace_type; + using uniform_device = + Kokkos::Device; + using uniform_type = array_type; + using uniform_const_type = const_type; + using uniform_runtime_type = array_type; + using uniform_runtime_const_type = const_type; + using uniform_nomemspace_type = + DynamicView; + using uniform_const_nomemspace_type = + DynamicView; + using uniform_runtime_nomemspace_type = + DynamicView; + using uniform_runtime_const_nomemspace_type = + DynamicView; //---------------------------------------------------------------------- @@ -193,17 +191,6 @@ class DynamicView : public Kokkos::ViewTraits { return r == 0 ? size() : 1; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - KOKKOS_INLINE_FUNCTION size_t dimension_0() const { return size(); } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_1() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_2() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_3() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_4() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_5() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_6() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_7() const { return 1; } -#endif - KOKKOS_INLINE_FUNCTION constexpr size_t stride_0() const { return 0; } KOKKOS_INLINE_FUNCTION constexpr size_t stride_1() const { return 0; } KOKKOS_INLINE_FUNCTION constexpr size_t stride_2() const { return 0; } @@ -231,8 +218,8 @@ class DynamicView : public Kokkos::ViewTraits { //---------------------------------------------------------------------- // Range span is the span which contains all members. - typedef typename traits::value_type& reference_type; - typedef typename traits::value_type* pointer_type; + using reference_type = typename traits::value_type&; + using pointer_type = typename traits::value_type*; enum { reference_type_is_lvalue_reference = @@ -299,8 +286,8 @@ class DynamicView : public Kokkos::ViewTraits { typename Impl::ChunkArraySpace< typename traits::memory_space>::memory_space>::accessible>::type resize_serial(IntType const& n) { - typedef typename traits::value_type local_value_type; - typedef local_value_type* value_pointer_type; + using local_value_type = typename traits::value_type; + using value_pointer_type = local_value_type*; const uintptr_t NC = (n + m_chunk_mask) >> @@ -332,6 +319,17 @@ class DynamicView : public Kokkos::ViewTraits { *(pc + 1) = n; } + KOKKOS_INLINE_FUNCTION bool is_allocated() const { + if (m_chunks == nullptr) { + return false; + } else { + // *m_chunks[m_chunk_max] stores the current number of chunks being used + uintptr_t* const pc = + reinterpret_cast(m_chunks + m_chunk_max); + return (*(pc + 1) > 0); + } + } + //---------------------------------------------------------------------- ~DynamicView() = default; @@ -349,8 +347,8 @@ class DynamicView : public Kokkos::ViewTraits { m_chunk_mask(rhs.m_chunk_mask), m_chunk_max(rhs.m_chunk_max), m_chunk_size(rhs.m_chunk_size) { - typedef typename DynamicView::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping Mapping; + using SrcTraits = typename DynamicView::traits; + using Mapping = Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible DynamicView copy construction"); } @@ -373,9 +371,7 @@ class DynamicView : public Kokkos::ViewTraits { } void execute(bool arg_destroy) { - typedef Kokkos::RangePolicy Range; - // typedef Kokkos::RangePolicy< typename Impl::ChunkArraySpace< typename - // traits::memory_space >::memory_space::execution_space > Range ; + using Range = Kokkos::RangePolicy; m_destroy = arg_destroy; @@ -431,12 +427,11 @@ class DynamicView : public Kokkos::ViewTraits { m_chunk_shift) // max num pointers-to-chunks in array , m_chunk_size(2 << (m_chunk_shift - 1)) { - typedef typename Impl::ChunkArraySpace< - typename traits::memory_space>::memory_space chunk_array_memory_space; + using chunk_array_memory_space = typename Impl::ChunkArraySpace< + typename traits::memory_space>::memory_space; // A functor to deallocate all of the chunks upon final destruction - typedef Kokkos::Impl::SharedAllocationRecord - record_type; + using record_type = + Kokkos::Impl::SharedAllocationRecord; // Allocate chunk pointers and allocation counter record_type* const record = @@ -471,11 +466,11 @@ create_mirror_view(const Kokkos::Experimental::DynamicView& src) { template inline void deep_copy(const View& dst, const Kokkos::Experimental::DynamicView& src) { - typedef View dst_type; - typedef Kokkos::Experimental::DynamicView src_type; + using dst_type = View; + using src_type = Kokkos::Experimental::DynamicView; - typedef typename ViewTraits::execution_space dst_execution_space; - typedef typename ViewTraits::memory_space src_memory_space; + using dst_execution_space = typename ViewTraits::execution_space; + using src_memory_space = typename ViewTraits::memory_space; enum { DstExecCanAccessSrc = @@ -496,11 +491,11 @@ inline void deep_copy(const View& dst, template inline void deep_copy(const Kokkos::Experimental::DynamicView& dst, const View& src) { - typedef Kokkos::Experimental::DynamicView dst_type; - typedef View src_type; + using dst_type = Kokkos::Experimental::DynamicView; + using src_type = View; - typedef typename ViewTraits::execution_space dst_execution_space; - typedef typename ViewTraits::memory_space src_memory_space; + using dst_execution_space = typename ViewTraits::execution_space; + using src_memory_space = typename ViewTraits::memory_space; enum { DstExecCanAccessSrc = @@ -522,10 +517,10 @@ namespace Impl { template struct CommonSubview, Kokkos::Experimental::DynamicView, 1, Arg0> { - typedef Kokkos::Experimental::DynamicView DstType; - typedef Kokkos::Experimental::DynamicView SrcType; - typedef DstType dst_subview_type; - typedef SrcType src_subview_type; + using DstType = Kokkos::Experimental::DynamicView; + using SrcType = Kokkos::Experimental::DynamicView; + using dst_subview_type = DstType; + using src_subview_type = SrcType; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& /*arg0*/) @@ -535,9 +530,9 @@ struct CommonSubview, template struct CommonSubview, SrcType, 1, Arg0> { - typedef Kokkos::Experimental::DynamicView DstType; - typedef DstType dst_subview_type; - typedef typename Kokkos::Subview src_subview_type; + using DstType = Kokkos::Experimental::DynamicView; + using dst_subview_type = DstType; + using src_subview_type = typename Kokkos::Subview; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0) @@ -547,9 +542,9 @@ struct CommonSubview, SrcType, 1, template struct CommonSubview, 1, Arg0> { - typedef Kokkos::Experimental::DynamicView SrcType; - typedef typename Kokkos::Subview dst_subview_type; - typedef SrcType src_subview_type; + using SrcType = Kokkos::Experimental::DynamicView; + using dst_subview_type = typename Kokkos::Subview; + using src_subview_type = SrcType; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0) @@ -559,11 +554,11 @@ struct CommonSubview, 1, template struct ViewCopy, ViewTypeB, Layout, - ExecSpace, 1, iType, false> { + ExecSpace, 1, iType> { Kokkos::Experimental::DynamicView a; ViewTypeB b; - typedef Kokkos::RangePolicy> policy_type; + using policy_type = Kokkos::RangePolicy>; ViewCopy(const Kokkos::Experimental::DynamicView& a_, const ViewTypeB& b_) @@ -580,11 +575,11 @@ template struct ViewCopy, Kokkos::Experimental::DynamicView, Layout, ExecSpace, 1, - iType, false> { + iType> { Kokkos::Experimental::DynamicView a; Kokkos::Experimental::DynamicView b; - typedef Kokkos::RangePolicy> policy_type; + using policy_type = Kokkos::RangePolicy>; ViewCopy(const Kokkos::Experimental::DynamicView& a_, const Kokkos::Experimental::DynamicView& b_) diff --git a/lib/kokkos/containers/src/Kokkos_ErrorReporter.hpp b/lib/kokkos/containers/src/Kokkos_ErrorReporter.hpp index e07c386b7d..fbfaed9b1b 100644 --- a/lib/kokkos/containers/src/Kokkos_ErrorReporter.hpp +++ b/lib/kokkos/containers/src/Kokkos_ErrorReporter.hpp @@ -56,9 +56,9 @@ namespace Experimental { template class ErrorReporter { public: - typedef ReportType report_type; - typedef DeviceType device_type; - typedef typename device_type::execution_space execution_space; + using report_type = ReportType; + using device_type = DeviceType; + using execution_space = typename device_type::execution_space; ErrorReporter(int max_results) : m_numReportsAttempted(""), @@ -103,10 +103,10 @@ class ErrorReporter { } private: - typedef Kokkos::View reports_view_t; - typedef Kokkos::DualView reports_dualview_t; + using reports_view_t = Kokkos::View; + using reports_dualview_t = Kokkos::DualView; - typedef typename reports_dualview_t::host_mirror_space host_mirror_space; + using host_mirror_space = typename reports_dualview_t::host_mirror_space; Kokkos::View m_numReportsAttempted; reports_dualview_t m_reports; Kokkos::DualView m_reporters; diff --git a/lib/kokkos/containers/src/Kokkos_Functional.hpp b/lib/kokkos/containers/src/Kokkos_Functional.hpp index d908458518..2e1fa336f7 100644 --- a/lib/kokkos/containers/src/Kokkos_Functional.hpp +++ b/lib/kokkos/containers/src/Kokkos_Functional.hpp @@ -52,10 +52,10 @@ namespace Kokkos { template struct pod_hash { - typedef T argument_type; - typedef T first_argument_type; - typedef uint32_t second_argument_type; - typedef uint32_t result_type; + using argument_type = T; + using first_argument_type = T; + using second_argument_type = uint32_t; + using result_type = uint32_t; KOKKOS_FORCEINLINE_FUNCTION uint32_t operator()(T const& t) const { @@ -70,9 +70,9 @@ struct pod_hash { template struct pod_equal_to { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { @@ -82,9 +82,9 @@ struct pod_equal_to { template struct pod_not_equal_to { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { @@ -94,9 +94,9 @@ struct pod_not_equal_to { template struct equal_to { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a == b; } @@ -104,9 +104,9 @@ struct equal_to { template struct not_equal_to { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a != b; } @@ -114,9 +114,9 @@ struct not_equal_to { template struct greater { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a > b; } @@ -124,9 +124,9 @@ struct greater { template struct less { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a < b; } @@ -134,9 +134,9 @@ struct less { template struct greater_equal { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a >= b; } @@ -144,9 +144,9 @@ struct greater_equal { template struct less_equal { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a <= b; } diff --git a/lib/kokkos/containers/src/Kokkos_OffsetView.hpp b/lib/kokkos/containers/src/Kokkos_OffsetView.hpp index c3c66f0d7f..9233499bf4 100644 --- a/lib/kokkos/containers/src/Kokkos_OffsetView.hpp +++ b/lib/kokkos/containers/src/Kokkos_OffsetView.hpp @@ -51,10 +51,10 @@ namespace Impl { template struct GetOffsetViewTypeFromViewType { - typedef OffsetView< - typename ViewType::data_type, typename ViewType::array_layout, - typename ViewType::device_type, typename ViewType::memory_traits> - type; + using type = + OffsetView; }; template @@ -180,7 +180,7 @@ void runtime_check_rank_device(const size_t rank_dynamic, const size_t rank, template class OffsetView : public ViewTraits { public: - typedef ViewTraits traits; + using traits = ViewTraits; private: template @@ -190,12 +190,12 @@ class OffsetView : public ViewTraits { template friend class Kokkos::Impl::ViewMapping; - typedef Kokkos::Impl::ViewMapping map_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using map_type = Kokkos::Impl::ViewMapping; + using track_type = Kokkos::Impl::SharedAllocationTracker; public: enum { Rank = map_type::Rank }; - typedef Kokkos::Array begins_type; + using begins_type = Kokkos::Array; template < typename iType, @@ -223,28 +223,27 @@ class OffsetView : public ViewTraits { public: //---------------------------------------- /** \brief Compatible view of array of scalar types */ - typedef OffsetView< - typename traits::scalar_array_type, typename traits::array_layout, - typename traits::device_type, typename traits::memory_traits> - array_type; + using array_type = + OffsetView; /** \brief Compatible view of const data type */ - typedef OffsetView< - typename traits::const_data_type, typename traits::array_layout, - typename traits::device_type, typename traits::memory_traits> - const_type; + using const_type = + OffsetView; /** \brief Compatible view of non-const data type */ - typedef OffsetView< - typename traits::non_const_data_type, typename traits::array_layout, - typename traits::device_type, typename traits::memory_traits> - non_const_type; + using non_const_type = + OffsetView; /** \brief Compatible HostMirror view */ - typedef OffsetView - HostMirror; + using HostMirror = OffsetView; //---------------------------------------- // Domain rank and extents @@ -335,8 +334,8 @@ class OffsetView : public ViewTraits { //---------------------------------------- // Range span is the span which contains all members. - typedef typename map_type::reference_type reference_type; - typedef typename map_type::pointer_type pointer_type; + using reference_type = typename map_type::reference_type; + using pointer_type = typename map_type::pointer_type; enum { reference_type_is_lvalue_reference = @@ -347,6 +346,9 @@ class OffsetView : public ViewTraits { KOKKOS_INLINE_FUNCTION bool span_is_contiguous() const { return m_map.span_is_contiguous(); } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return m_map.data() != nullptr; + } KOKKOS_INLINE_FUNCTION constexpr pointer_type data() const { return m_map.data(); } @@ -841,10 +843,9 @@ class OffsetView : public ViewTraits { // interoperability with View private: - typedef View - view_type; + using view_type = + View; public: KOKKOS_INLINE_FUNCTION @@ -856,8 +857,8 @@ class OffsetView : public ViewTraits { template KOKKOS_INLINE_FUNCTION OffsetView(const View& aview) : m_track(aview.impl_track()), m_map() { - typedef typename OffsetView::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping Mapping; + using SrcTraits = typename OffsetView::traits; + using Mapping = Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible OffsetView copy construction"); Mapping::assign(m_map, aview.impl_map(), m_track); @@ -871,8 +872,8 @@ class OffsetView : public ViewTraits { KOKKOS_INLINE_FUNCTION OffsetView(const View& aview, const index_list_type& minIndices) : m_track(aview.impl_track()), m_map() { - typedef typename OffsetView::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping Mapping; + using SrcTraits = typename OffsetView::traits; + using Mapping = Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible OffsetView copy construction"); Mapping::assign(m_map, aview.impl_map(), m_track); @@ -894,8 +895,8 @@ class OffsetView : public ViewTraits { KOKKOS_INLINE_FUNCTION OffsetView(const View& aview, const begins_type& beg) : m_track(aview.impl_track()), m_map(), m_begins(beg) { - typedef typename OffsetView::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping Mapping; + using SrcTraits = typename OffsetView::traits; + using Mapping = Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible OffsetView copy construction"); Mapping::assign(m_map, aview.impl_map(), m_track); @@ -917,8 +918,8 @@ class OffsetView : public ViewTraits { : m_track(rhs.m_track, traits::is_managed), m_map(), m_begins(rhs.m_begins) { - typedef typename OffsetView::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping Mapping; + using SrcTraits = typename OffsetView::traits; + using Mapping = Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible OffsetView copy construction"); Mapping::assign(m_map, rhs.m_map, rhs.m_track); // swb what about assign? @@ -1215,11 +1216,11 @@ class OffsetView : public ViewTraits { for (size_t i = 0; i < Rank; ++i) m_begins[i] = minIndices.begin()[i]; // Append layout and spaces if not input - typedef Kokkos::Impl::ViewCtorProp alloc_prop_input; + using alloc_prop_input = Kokkos::Impl::ViewCtorProp; // use 'std::integral_constant' for non-types // to avoid duplicate class error. - typedef Kokkos::Impl::ViewCtorProp< + using alloc_prop = Kokkos::Impl::ViewCtorProp< P..., typename std::conditional, @@ -1231,19 +1232,13 @@ class OffsetView : public ViewTraits { typename std::conditional< alloc_prop_input::has_execution_space, std::integral_constant, - typename traits::device_type::execution_space>::type> - alloc_prop; + typename traits::device_type::execution_space>::type>; static_assert(traits::is_managed, "OffsetView allocation constructor requires managed memory"); if (alloc_prop::initialize && -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - !alloc_prop::execution_space::is_initialized() -#else - !alloc_prop::execution_space::impl_is_initialized() -#endif - ) { + !alloc_prop::execution_space::impl_is_initialized()) { // If initializing view data then // the execution space must be initialized. Kokkos::Impl::throw_runtime_exception( @@ -1764,8 +1759,8 @@ template KOKKOS_INLINE_FUNCTION bool operator==(const OffsetView& lhs, const OffsetView& rhs) { // Same data, layout, dimensions - typedef ViewTraits lhs_traits; - typedef ViewTraits rhs_traits; + using lhs_traits = ViewTraits; + using rhs_traits = ViewTraits; return std::is_same::value && @@ -1795,8 +1790,8 @@ template KOKKOS_INLINE_FUNCTION bool operator==(const View& lhs, const OffsetView& rhs) { // Same data, layout, dimensions - typedef ViewTraits lhs_traits; - typedef ViewTraits rhs_traits; + using lhs_traits = ViewTraits; + using rhs_traits = ViewTraits; return std::is_same::value && @@ -1825,10 +1820,10 @@ KOKKOS_INLINE_FUNCTION bool operator==(const OffsetView& lhs, //---------------------------------------------------------------------------- namespace Kokkos { -namespace Experimental { + template inline void deep_copy( - const OffsetView& dst, + const Experimental::OffsetView& dst, typename ViewTraits::const_value_type& value, typename std::enable_if::specialize, void>::value>::type* = @@ -1844,7 +1839,8 @@ inline void deep_copy( template inline void deep_copy( - const OffsetView& dst, const OffsetView& value, + const Experimental::OffsetView& dst, + const Experimental::OffsetView& value, typename std::enable_if::specialize, void>::value>::type* = nullptr) { @@ -1858,7 +1854,8 @@ inline void deep_copy( } template inline void deep_copy( - const OffsetView& dst, const View& value, + const Experimental::OffsetView& dst, + const View& value, typename std::enable_if::specialize, void>::value>::type* = nullptr) { @@ -1873,7 +1870,8 @@ inline void deep_copy( template inline void deep_copy( - const View& dst, const OffsetView& value, + const View& dst, + const Experimental::OffsetView& value, typename std::enable_if::specialize, void>::value>::type* = nullptr) { @@ -1884,53 +1882,54 @@ inline void deep_copy( Kokkos::deep_copy(dst, value.view()); } + namespace Impl { // Deduce Mirror Types template struct MirrorOffsetViewType { // The incoming view_type - typedef typename Kokkos::Experimental::OffsetView src_view_type; + using src_view_type = typename Kokkos::Experimental::OffsetView; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::Experimental::OffsetView - dest_view_type; + using dest_view_type = + Kokkos::Experimental::OffsetView; // If it is the same memory_space return the existsing view_type // This will also keep the unmanaged trait if necessary - typedef typename std::conditional::type view_type; + using view_type = typename std::conditional::type; }; template struct MirrorOffsetType { // The incoming view_type - typedef typename Kokkos::Experimental::OffsetView src_view_type; + using src_view_type = typename Kokkos::Experimental::OffsetView; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::Experimental::OffsetView - view_type; + using view_type = + Kokkos::Experimental::OffsetView; }; } // namespace Impl @@ -1942,8 +1941,8 @@ create_mirror( typename std::enable_if< !std::is_same::array_layout, Kokkos::LayoutStride>::value>::type* = 0) { - typedef OffsetView src_type; - typedef typename src_type::HostMirror dst_type; + using src_type = Experimental::OffsetView; + using dst_type = typename src_type::HostMirror; return dst_type( Kokkos::Impl::ViewCtorProp( @@ -1962,8 +1961,8 @@ create_mirror( typename std::enable_if< std::is_same::array_layout, Kokkos::LayoutStride>::value>::type* = 0) { - typedef OffsetView src_type; - typedef typename src_type::HostMirror dst_type; + using src_type = Experimental::OffsetView; + using dst_type = typename src_type::HostMirror; Kokkos::LayoutStride layout; @@ -1992,14 +1991,13 @@ create_mirror( // Create a mirror in a new space (specialization for different space) template -typename Kokkos::Experimental::Impl::MirrorOffsetType::view_type +typename Kokkos::Impl::MirrorOffsetType::view_type create_mirror(const Space&, const Kokkos::Experimental::OffsetView& src) { - return typename Kokkos::Experimental::Impl::MirrorOffsetType< - Space, T, P...>::view_type(src.label(), src.layout(), - {src.begin(0), src.begin(1), src.begin(2), - src.begin(3), src.begin(4), src.begin(5), - src.begin(6), src.begin(7)}); + return typename Kokkos::Impl::MirrorOffsetType::view_type( + src.label(), src.layout(), + {src.begin(0), src.begin(1), src.begin(2), src.begin(3), src.begin(4), + src.begin(5), src.begin(6), src.begin(7)}); } template @@ -2031,13 +2029,12 @@ create_mirror_view( typename Kokkos::Experimental::OffsetView::data_type, typename Kokkos::Experimental::OffsetView< T, P...>::HostMirror::data_type>::value)>::type* = 0) { - return Kokkos::Experimental::create_mirror(src); + return Kokkos::create_mirror(src); } // Create a mirror view in a new space (specialization for same space) template -typename Kokkos::Experimental::Impl::MirrorOffsetViewType::view_type +typename Kokkos::Impl::MirrorOffsetViewType::view_type create_mirror_view(const Space&, const Kokkos::Experimental::OffsetView& src, typename std::enable_if -typename Kokkos::Experimental::Impl::MirrorOffsetViewType::view_type +typename Kokkos::Impl::MirrorOffsetViewType::view_type create_mirror_view(const Space&, const Kokkos::Experimental::OffsetView& src, typename std::enable_if::is_same_memspace>::type* = 0) { - return typename Kokkos::Experimental::Impl::MirrorOffsetViewType< - Space, T, P...>::view_type(src.label(), src.layout(), - {src.begin(0), src.begin(1), src.begin(2), - src.begin(3), src.begin(4), src.begin(5), - src.begin(6), src.begin(7)}); + return typename Kokkos::Impl::MirrorOffsetViewType::view_type( + src.label(), src.layout(), + {src.begin(0), src.begin(1), src.begin(2), src.begin(3), src.begin(4), + src.begin(5), src.begin(6), src.begin(7)}); } // // // Create a mirror view and deep_copy in a new space (specialization for @@ -2093,7 +2088,6 @@ create_mirror_view(const Space&, // return mirror; // } -} // namespace Experimental } /* namespace Kokkos */ //---------------------------------------------------------------------------- diff --git a/lib/kokkos/containers/src/Kokkos_ScatterView.hpp b/lib/kokkos/containers/src/Kokkos_ScatterView.hpp index eb3bc1f2bc..3df0dfcd3b 100644 --- a/lib/kokkos/containers/src/Kokkos_ScatterView.hpp +++ b/lib/kokkos/containers/src/Kokkos_ScatterView.hpp @@ -62,16 +62,16 @@ namespace Experimental { * - These corresponds to subset of the reducers in parallel_reduce * - See Implementations of ScatterValue for details. */ -enum : int { - ScatterSum, - ScatterProd, - ScatterMax, - ScatterMin, -}; +struct ScatterSum {}; +struct ScatterProd {}; +struct ScatterMax {}; +struct ScatterMin {}; -enum : int { ScatterNonDuplicated = 0, ScatterDuplicated = 1 }; +struct ScatterNonDuplicated {}; +struct ScatterDuplicated {}; -enum : int { ScatterNonAtomic = 0, ScatterAtomic = 1 }; +struct ScatterNonAtomic {}; +struct ScatterAtomic {}; } // namespace Experimental } // namespace Kokkos @@ -83,159 +83,199 @@ namespace Experimental { template struct DefaultDuplication; -template +template struct DefaultContribution; #ifdef KOKKOS_ENABLE_SERIAL template <> struct DefaultDuplication { - enum : int { value = Kokkos::Experimental::ScatterNonDuplicated }; + using type = Kokkos::Experimental::ScatterNonDuplicated; }; + template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterNonAtomic }; + using type = Kokkos::Experimental::ScatterNonAtomic; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterNonAtomic }; + using type = Kokkos::Experimental::ScatterNonAtomic; }; #endif #ifdef KOKKOS_ENABLE_OPENMP template <> struct DefaultDuplication { - enum : int { value = Kokkos::Experimental::ScatterDuplicated }; + using type = Kokkos::Experimental::ScatterDuplicated; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterNonAtomic }; + using type = Kokkos::Experimental::ScatterNonAtomic; +}; +#endif + +#ifdef KOKKOS_ENABLE_OPENMPTARGET +template <> +struct DefaultDuplication { + using type = Kokkos::Experimental::ScatterNonDuplicated; +}; +template <> +struct DefaultContribution { + using type = Kokkos::Experimental::ScatterAtomic; +}; +template <> +struct DefaultContribution { + using type = Kokkos::Experimental::ScatterNonAtomic; }; #endif #ifdef KOKKOS_ENABLE_HPX template <> struct DefaultDuplication { - enum : int { value = Kokkos::Experimental::ScatterDuplicated }; + using type = Kokkos::Experimental::ScatterDuplicated; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterNonAtomic }; + using type = Kokkos::Experimental::ScatterNonAtomic; }; #endif #ifdef KOKKOS_ENABLE_THREADS template <> struct DefaultDuplication { - enum : int { value = Kokkos::Experimental::ScatterDuplicated }; + using type = Kokkos::Experimental::ScatterDuplicated; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterNonAtomic }; + using type = Kokkos::Experimental::ScatterNonAtomic; }; #endif #ifdef KOKKOS_ENABLE_CUDA template <> struct DefaultDuplication { - enum : int { value = Kokkos::Experimental::ScatterNonDuplicated }; + using type = Kokkos::Experimental::ScatterNonDuplicated; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; #endif #ifdef KOKKOS_ENABLE_HIP template <> struct DefaultDuplication { - enum : int { value = Kokkos::Experimental::ScatterNonDuplicated }; + using type = Kokkos::Experimental::ScatterNonDuplicated; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; template <> struct DefaultContribution { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; #endif -/* ScatterValue is the object - returned by the access operator() of ScatterAccess, This class inherits from - the Sum<> reducer and it wraps join(dest, src) with convenient operator+=, - etc. Note the addition of update(ValueType const& rhs) and reset() so that - all reducers can have common functions See ReduceDuplicates and - ResetDuplicates ) */ -template +// FIXME All these scatter values need overhaul: +// - like should they be copyable at all? +// - what is the internal handle type +// - remove join +// - consistently use the update function in operators +template struct ScatterValue; +/* ScatterValue is + the object returned by the access operator() of ScatterAccess. This class + inherits from the Sum<> reducer and it wraps join(dest, src) with convenient + operator+=, etc. Note the addition of update(ValueType const& rhs) and + reset() so that all reducers can have common functions See ReduceDuplicates + and ResetDuplicates ) */ template struct ScatterValue - : Sum { + Kokkos::Experimental::ScatterNonAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Sum(value_in) {} + : value(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Sum(other.reference()) {} + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void operator+=(ValueType const& rhs) { - this->join(this->reference(), rhs); + update(rhs); } + KOKKOS_FORCEINLINE_FUNCTION void operator++() { update(1); } + KOKKOS_FORCEINLINE_FUNCTION void operator++(int) { update(1); } KOKKOS_FORCEINLINE_FUNCTION void operator-=(ValueType const& rhs) { - this->join(this->reference(), -rhs); + update(ValueType(-rhs)); } + KOKKOS_FORCEINLINE_FUNCTION void operator--() { update(ValueType(-1)); } + KOKKOS_FORCEINLINE_FUNCTION void operator--(int) { update(ValueType(-1)); } KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + value += rhs; + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity::sum(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue is the object - returned by the access operator() - * of ScatterAccess, similar to that returned by an Atomic View, it wraps - Kokkos::atomic_add with convenient operator+=, etc. This version also has the - update(rhs) and reset() functions. */ +/* ScatterValue is the + object returned by the access operator() of ScatterAccess. This class inherits + from the Sum<> reducer, and similar to that returned by an Atomic View, it + wraps Kokkos::atomic_add with convenient operator+=, etc. This version also has + the update(rhs) and reset() functions. */ template struct ScatterValue - : Sum { + Kokkos::Experimental::ScatterAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Sum(value_in) {} + : value(value_in) {} KOKKOS_FORCEINLINE_FUNCTION void operator+=(ValueType const& rhs) { - this->join(this->reference(), rhs); + this->join(value, rhs); } + KOKKOS_FORCEINLINE_FUNCTION void operator++() { this->join(value, 1); } + KOKKOS_FORCEINLINE_FUNCTION void operator++(int) { this->join(value, 1); } KOKKOS_FORCEINLINE_FUNCTION void operator-=(ValueType const& rhs) { - this->join(this->reference(), -rhs); + this->join(value, ValueType(-rhs)); + } + KOKKOS_FORCEINLINE_FUNCTION void operator--() { + this->join(value, ValueType(-1)); + } + KOKKOS_FORCEINLINE_FUNCTION void operator--(int) { + this->join(value, ValueType(-1)); } KOKKOS_INLINE_FUNCTION @@ -249,58 +289,67 @@ struct ScatterValuejoin(this->reference(), rhs); + this->join(value, rhs); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity::sum(); + } }; -/* ScatterValue is the object - returned by the access operator() of ScatterAccess, This class inherits from - the Prod<> reducer and it wraps join(dest, src) with convenient operator*=, - etc. Note the addition of update(ValueType const& rhs) and reset() so that - all reducers can have common functions See ReduceDuplicates and - ResetDuplicates ) */ +/* ScatterValue is + the object returned by the access operator() of ScatterAccess. This class + inherits from the Prod<> reducer, and it wraps join(dest, src) with + convenient operator*=, etc. Note the addition of update(ValueType const& rhs) + and reset() so that all reducers can have common functions See + ReduceDuplicates and ResetDuplicates ) */ template struct ScatterValue - : Prod { + Kokkos::Experimental::ScatterNonAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Prod(value_in) {} + : value(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Prod(other.reference()) {} + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void operator*=(ValueType const& rhs) { - this->join(this->reference(), rhs); + value *= rhs; } KOKKOS_FORCEINLINE_FUNCTION void operator/=(ValueType const& rhs) { - this->join(this->reference(), static_cast(1) / rhs); + value /= rhs; } + KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + value *= rhs; + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity::prod(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue is the object - returned by the access operator() - * of ScatterAccess, similar to that returned by an Atomic View, it wraps and - atomic_prod with convenient operator*=, etc. atomic_prod uses the - atomic_compare_exchange. This version also has the update(rhs) and reset() - functions. */ +/* ScatterValue is the + object returned by the access operator() of ScatterAccess. This class + inherits from the Prod<> reducer, and similar to that returned by an Atomic + View, it wraps and atomic_prod with convenient operator*=, etc. atomic_prod + uses the atomic_compare_exchange. This version also has the update(rhs) + and reset() functions. */ template struct ScatterValue - : Prod { + Kokkos::Experimental::ScatterAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Prod(value_in) {} + : value(value_in) {} + KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void operator*=(ValueType const& rhs) { - this->join(this->reference(), rhs); + Kokkos::atomic_mul(&value, rhs); } KOKKOS_FORCEINLINE_FUNCTION void operator/=(ValueType const& rhs) { - this->join(this->reference(), static_cast(1) / rhs); + Kokkos::atomic_div(&value, rhs); } KOKKOS_FORCEINLINE_FUNCTION @@ -317,53 +366,62 @@ struct ScatterValuejoin(this->reference(), rhs); + atomic_prod(&value, rhs); + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity::prod(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue is the object - returned by the access operator() of ScatterAccess, This class inherits from - the Min<> reducer and it wraps join(dest, src) with convenient update(rhs). - Note the addition of update(ValueType const& rhs) and reset() are so that all - reducers can have a common update function See ReduceDuplicates and - ResetDuplicates ) */ +/* ScatterValue is + the object returned by the access operator() of ScatterAccess. This class + inherits from the Min<> reducer and it wraps join(dest, src) with convenient + update(rhs). Note the addition of update(ValueType const& rhs) and reset() + are so that all reducers can have a common update function See + ReduceDuplicates and ResetDuplicates ) */ template struct ScatterValue - : Min { - public: + Kokkos::Experimental::ScatterNonAtomic> { + ValueType& value; KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Min(value_in) {} + : value(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Min(other.reference()) {} + : value(other.value) {} + + public: KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + value = rhs < value ? rhs : value; + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity::min(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue is the object - returned by the access operator() - * of ScatterAccess, similar to that returned by an Atomic View, it wraps and - atomic_min with the update(rhs) function. atomic_min uses the - atomic_compare_exchange. This version also has the reset() function */ +/* ScatterValue is the + object returned by the access operator() of ScatterAccess. This class + inherits from the Min<> reducer, and similar to that returned by an Atomic + View, it wraps atomic_min with join(), etc. atomic_min uses the + atomic_compare_exchange. This version also has the update(rhs) and reset() + functions. */ template struct ScatterValue - : Min { + Kokkos::Experimental::ScatterAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Min(value_in) {} + : value(value_in) {} + KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void atomic_min(ValueType& dest, const ValueType& src) const { @@ -388,44 +446,53 @@ struct ScatterValuejoin(this->reference(), rhs); + this->join(value, rhs); + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity::min(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue is the object - returned by the access operataor() of ScatterAccess, This class inherits from - the Max<> reducer and it wraps join(dest, src) with convenient update(rhs). - Note the addition of update(ValueType const& rhs) and reset() are so that all - reducers can have a common update function See ReduceDuplicates and - ResetDuplicates ) */ +/* ScatterValue is + the object returned by the access operator() of ScatterAccess. This class + inherits from the Max<> reducer and it wraps join(dest, src) with convenient + update(rhs). Note the addition of update(ValueType const& rhs) and reset() + are so that all reducers can have a common update function See + ReduceDuplicates and ResetDuplicates ) */ template struct ScatterValue - : Max { + Kokkos::Experimental::ScatterNonAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Max(value_in) {} + : value(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Max(other.reference()) {} + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + value = rhs > value ? rhs : value; + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity::max(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue is the object - returned by the access operator() - * of ScatterAccess, similar to that returned by an Atomic View, it wraps and - atomic_max with the update(rhs) function. atomic_max uses the - atomic_compare_exchange. This version also has the reset() function */ +/* ScatterValue is the + object returned by the access operator() of ScatterAccess. This class + inherits from the Max<> reducer, and similar to that returned by an Atomic + View, it wraps atomic_max with join(), etc. atomic_max uses the + atomic_compare_exchange. This version also has the update(rhs) and reset() + functions. */ template struct ScatterValue - : Max { + Kokkos::Experimental::ScatterAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Max(value_in) {} + : value(value_in) {} + KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void atomic_max(ValueType& dest, const ValueType& src) const { @@ -450,9 +517,11 @@ struct ScatterValuejoin(this->reference(), rhs); + this->join(value, rhs); + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity::max(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; /* DuplicatedDataType, given a View DataType, will create a new DataType @@ -465,48 +534,48 @@ struct DuplicatedDataType; template struct DuplicatedDataType { - typedef T* value_type; // For LayoutRight, add a star all the way on the left + using value_type = T*; // For LayoutRight, add a star all the way on the left }; template struct DuplicatedDataType { - typedef typename DuplicatedDataType::value_type - value_type[N]; + using value_type = + typename DuplicatedDataType::value_type[N]; }; template struct DuplicatedDataType { - typedef typename DuplicatedDataType::value_type - value_type[]; + using value_type = + typename DuplicatedDataType::value_type[]; }; template struct DuplicatedDataType { - typedef typename DuplicatedDataType::value_type* - value_type; + using value_type = + typename DuplicatedDataType::value_type*; }; template struct DuplicatedDataType { - typedef T* value_type; + using value_type = T*; }; template struct DuplicatedDataType { - typedef typename DuplicatedDataType::value_type* - value_type; + using value_type = + typename DuplicatedDataType::value_type*; }; template struct DuplicatedDataType { - typedef typename DuplicatedDataType::value_type* - value_type; + using value_type = + typename DuplicatedDataType::value_type*; }; template struct DuplicatedDataType { - typedef typename DuplicatedDataType::value_type* - value_type; + using value_type = + typename DuplicatedDataType::value_type*; }; /* Insert integer argument pack into array */ @@ -526,8 +595,8 @@ void args_to_array(size_t* array, int pos, T dim0, Dims... dims) { subview where the index specified is the largest-stride one. */ template struct Slice { - typedef Slice next; - typedef typename next::value_type value_type; + using next = Slice; + using value_type = typename next::value_type; static value_type get(V const& src, const size_t i, Args... args) { return next::get(src, i, Kokkos::ALL, args...); @@ -536,9 +605,8 @@ struct Slice { template struct Slice { - typedef - typename Kokkos::Impl::ViewMapping::type - value_type; + using value_type = + typename Kokkos::Impl::ViewMapping::type; static value_type get(V const& src, const size_t i, Args... args) { return Kokkos::subview(src, i, args...); } @@ -546,20 +614,19 @@ struct Slice { template struct Slice { - typedef - typename Kokkos::Impl::ViewMapping::type - value_type; + using value_type = + typename Kokkos::Impl::ViewMapping::type; static value_type get(V const& src, const size_t i, Args... args) { return Kokkos::subview(src, args..., i); } }; -template +template struct ReduceDuplicates; -template +template struct ReduceDuplicatesBase { - typedef ReduceDuplicates Derived; + using Derived = ReduceDuplicates; ValueType const* src; ValueType* dst; size_t stride; @@ -569,35 +636,29 @@ struct ReduceDuplicatesBase { size_t stride_in, size_t start_in, size_t n_in, std::string const& name) : src(src_in), dst(dest_in), stride(stride_in), start(start_in), n(n_in) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginParallelFor(std::string("reduce_") + name, 0, &kpID); } -#else - (void)name; -#endif - typedef RangePolicy policy_type; - typedef Kokkos::Impl::ParallelFor closure_type; + using policy_type = RangePolicy; + using closure_type = Kokkos::Impl::ParallelFor; const closure_type closure(*(static_cast(this)), policy_type(0, stride)); closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelFor(kpID); } -#endif } }; /* ReduceDuplicates -- Perform reduction on destination array using strided * source Use ScatterValue<> specific to operation to wrap destination array so * that the reduction operation can be accessed via the update(rhs) function */ -template +template struct ReduceDuplicates : public ReduceDuplicatesBase { - typedef ReduceDuplicatesBase Base; + using Base = ReduceDuplicatesBase; ReduceDuplicates(ValueType const* src_in, ValueType* dst_in, size_t stride_in, size_t start_in, size_t n_in, std::string const& name) : Base(src_in, dst_in, stride_in, start_in, n_in, name) {} @@ -611,44 +672,38 @@ struct ReduceDuplicates } }; -template +template struct ResetDuplicates; -template +template struct ResetDuplicatesBase { - typedef ResetDuplicates Derived; + using Derived = ResetDuplicates; ValueType* data; ResetDuplicatesBase(ValueType* data_in, size_t size_in, std::string const& name) : data(data_in) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginParallelFor(std::string("reduce_") + name, 0, &kpID); } -#else - (void)name; -#endif - typedef RangePolicy policy_type; - typedef Kokkos::Impl::ParallelFor closure_type; + using policy_type = RangePolicy; + using closure_type = Kokkos::Impl::ParallelFor; const closure_type closure(*(static_cast(this)), policy_type(0, size_in)); closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelFor(kpID); } -#endif } }; /* ResetDuplicates -- Perform reset on destination array * Use ScatterValue<> specific to operation to wrap destination array so that * the reset operation can be accessed via the reset() function */ -template +template struct ResetDuplicates : public ResetDuplicatesBase { - typedef ResetDuplicatesBase Base; + using Base = ResetDuplicatesBase; ResetDuplicates(ValueType* data_in, size_t size_in, std::string const& name) : Base(data_in, size_in, name) {} KOKKOS_FORCEINLINE_FUNCTION void operator()(size_t i) const { @@ -667,37 +722,39 @@ namespace Kokkos { namespace Experimental { template ::value, - int contribution = Kokkos::Impl::Experimental::DefaultContribution< - typename DeviceType::execution_space, duplication>::value> + typename Layout = Kokkos::DefaultExecutionSpace::array_layout, + typename DeviceType = Kokkos::DefaultExecutionSpace, + typename Op = Kokkos::Experimental::ScatterSum, + typename Duplication = typename Kokkos::Impl::Experimental:: + DefaultDuplication::type, + typename Contribution = + typename Kokkos::Impl::Experimental::DefaultContribution< + typename DeviceType::execution_space, Duplication>::type> class ScatterView; -template +template class ScatterAccess; // non-duplicated implementation -template +template class ScatterView { + Contribution> { public: - using execution_space = typename DeviceType::execution_space; - using memory_space = typename DeviceType::memory_space; - using device_type = Kokkos::Device; - typedef Kokkos::View original_view_type; - typedef typename original_view_type::value_type original_value_type; - typedef typename original_view_type::reference_type original_reference_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using device_type = Kokkos::Device; + using original_view_type = Kokkos::View; + using original_value_type = typename original_view_type::value_type; + using original_reference_type = typename original_view_type::reference_type; friend class ScatterAccess; friend class ScatterAccess; - template + ScatterNonDuplicated, Contribution, ScatterAtomic>; + template friend class ScatterView; ScatterView() = default; @@ -713,30 +770,34 @@ class ScatterView KOKKOS_FUNCTION ScatterView( const ScatterView& other_view) + ScatterNonDuplicated, Contribution>& other_view) : internal_view(other_view.internal_view) {} template KOKKOS_FUNCTION void operator=( const ScatterView& other_view) { + ScatterNonDuplicated, Contribution>& other_view) { internal_view = other_view.internal_view; } - template + template KOKKOS_FORCEINLINE_FUNCTION ScatterAccess + Contribution, OverrideContribution> access() const { return ScatterAccess(*this); + Contribution, OverrideContribution>(*this); } original_view_type subview() const { return internal_view; } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return internal_view.is_allocated(); + } + template void contribute_into(View const& dest) const { - typedef View dest_type; + using dest_type = View; static_assert(std::is_same::value, "ScatterView contribute destination has different layout"); static_assert( @@ -778,22 +839,20 @@ class ScatterView +template class ScatterAccess { + Contribution, OverrideContribution> { public: - typedef ScatterView - view_type; - typedef typename view_type::original_value_type original_value_type; - typedef Kokkos::Impl::Experimental::ScatterValue< - original_value_type, Op, DeviceType, override_contribution> - value_type; + using view_type = ScatterView; + using original_value_type = typename view_type::original_value_type; + using value_type = Kokkos::Impl::Experimental::ScatterValue< + original_value_type, Op, DeviceType, OverrideContribution>; KOKKOS_INLINE_FUNCTION ScatterAccess() : view(view_type()) {} @@ -825,44 +884,45 @@ class ScatterAccess +template class ScatterView { + ScatterDuplicated, Contribution> { public: using execution_space = typename DeviceType::execution_space; using memory_space = typename DeviceType::memory_space; using device_type = Kokkos::Device; - typedef Kokkos::View - original_view_type; - typedef typename original_view_type::value_type original_value_type; - typedef typename original_view_type::reference_type original_reference_type; + using original_view_type = + Kokkos::View; + using original_value_type = typename original_view_type::value_type; + using original_reference_type = typename original_view_type::reference_type; friend class ScatterAccess; + ScatterDuplicated, Contribution, ScatterNonAtomic>; friend class ScatterAccess; - template + ScatterDuplicated, Contribution, ScatterAtomic>; + template friend class ScatterView; - typedef typename Kokkos::Impl::Experimental::DuplicatedDataType< - DataType, Kokkos::LayoutRight> - data_type_info; - typedef typename data_type_info::value_type internal_data_type; - typedef Kokkos::View - internal_view_type; + using data_type_info = + typename Kokkos::Impl::Experimental::DuplicatedDataType< + DataType, Kokkos::LayoutRight>; + using internal_data_type = typename data_type_info::value_type; + using internal_view_type = + Kokkos::View; ScatterView() = default; template KOKKOS_FUNCTION ScatterView( const ScatterView& other_view) + ScatterDuplicated, Contribution>& other_view) : unique_token(other_view.unique_token), internal_view(other_view.internal_view) {} template KOKKOS_FUNCTION void operator=( const ScatterView& other_view) { + ScatterDuplicated, Contribution>& other_view) { unique_token = other_view.unique_token; internal_view = other_view.internal_view; } @@ -870,38 +930,25 @@ class ScatterView ScatterView(View const& original_view) : unique_token(), - internal_view(Kokkos::ViewAllocateWithoutInitializing( - std::string("duplicated_") + original_view.label()), - unique_token.size(), -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - original_view.extent(0), original_view.extent(1), - original_view.extent(2), original_view.extent(3), - original_view.extent(4), original_view.extent(5), - original_view.extent(6)) -#else - original_view.rank_dynamic > 0 - ? original_view.extent(0) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 1 - ? original_view.extent(1) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 2 - ? original_view.extent(2) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 3 - ? original_view.extent(3) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 4 - ? original_view.extent(4) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 5 - ? original_view.extent(5) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 6 - ? original_view.extent(6) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG) + internal_view( + Kokkos::ViewAllocateWithoutInitializing(std::string("duplicated_") + + original_view.label()), + unique_token.size(), + original_view.rank_dynamic > 0 ? original_view.extent(0) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 1 ? original_view.extent(1) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 2 ? original_view.extent(2) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 3 ? original_view.extent(3) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 4 ? original_view.extent(4) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 5 ? original_view.extent(5) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 6 ? original_view.extent(6) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG) -#endif { reset(); } @@ -913,14 +960,14 @@ class ScatterView + template KOKKOS_FORCEINLINE_FUNCTION ScatterAccess + ScatterDuplicated, Contribution, OverrideContribution> access() const { return ScatterAccess(*this); + ScatterDuplicated, Contribution, OverrideContribution>( + *this); } typename Kokkos::Impl::Experimental::Slice::get(internal_view, 0); } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return internal_view.is_allocated(); + } + template void contribute_into(View const& dest) const { - typedef View dest_type; + using dest_type = View; static_assert(std::is_same::value, "ScatterView deep_copy destination has different layout"); @@ -989,38 +1040,38 @@ class ScatterView - unique_token_type; + using unique_token_type = Kokkos::Experimental::UniqueToken< + execution_space, Kokkos::Experimental::UniqueTokenScope::Global>; unique_token_type unique_token; internal_view_type internal_view; }; -template +template class ScatterView { + ScatterDuplicated, Contribution> { public: using execution_space = typename DeviceType::execution_space; using memory_space = typename DeviceType::memory_space; using device_type = Kokkos::Device; - typedef Kokkos::View - original_view_type; - typedef typename original_view_type::value_type original_value_type; - typedef typename original_view_type::reference_type original_reference_type; + using original_view_type = + Kokkos::View; + using original_value_type = typename original_view_type::value_type; + using original_reference_type = typename original_view_type::reference_type; friend class ScatterAccess; + ScatterDuplicated, Contribution, ScatterNonAtomic>; friend class ScatterAccess; - template + ScatterDuplicated, Contribution, ScatterAtomic>; + template friend class ScatterView; - typedef typename Kokkos::Impl::Experimental::DuplicatedDataType< - DataType, Kokkos::LayoutLeft> - data_type_info; - typedef typename data_type_info::value_type internal_data_type; - typedef Kokkos::View - internal_view_type; + using data_type_info = + typename Kokkos::Impl::Experimental::DuplicatedDataType< + DataType, Kokkos::LayoutLeft>; + using internal_data_type = typename data_type_info::value_type; + using internal_view_type = + Kokkos::View; ScatterView() = default; @@ -1079,26 +1130,26 @@ class ScatterView KOKKOS_FUNCTION ScatterView( const ScatterView& other_view) + ScatterDuplicated, Contribution>& other_view) : unique_token(other_view.unique_token), internal_view(other_view.internal_view) {} template KOKKOS_FUNCTION void operator=( const ScatterView& other_view) { + ScatterDuplicated, Contribution>& other_view) { unique_token = other_view.unique_token; internal_view = other_view.internal_view; } - template + template KOKKOS_FORCEINLINE_FUNCTION ScatterAccess + ScatterDuplicated, Contribution, OverrideContribution> access() const { return ScatterAccess(*this); + ScatterDuplicated, Contribution, OverrideContribution>( + *this); } typename Kokkos::Impl::Experimental::Slice::get(internal_view, 0); } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return internal_view.is_allocated(); + } + template void contribute_into(View const& dest) const { - typedef View dest_type; + using dest_type = View; static_assert( std::is_same::value, @@ -1181,9 +1236,8 @@ class ScatterView - unique_token_type; + using unique_token_type = Kokkos::Experimental::UniqueToken< + execution_space, Kokkos::Experimental::UniqueTokenScope::Global>; unique_token_type unique_token; internal_view_type internal_view; @@ -1199,18 +1253,16 @@ class ScatterView +template class ScatterAccess { + Contribution, OverrideContribution> { public: - typedef ScatterView - view_type; - typedef typename view_type::original_value_type original_value_type; - typedef Kokkos::Impl::Experimental::ScatterValue< - original_value_type, Op, DeviceType, override_contribution> - value_type; + using view_type = ScatterView; + using original_value_type = typename view_type::original_value_type; + using value_type = Kokkos::Impl::Experimental::ScatterValue< + original_value_type, Op, DeviceType, OverrideContribution>; KOKKOS_FORCEINLINE_FUNCTION ScatterAccess(view_type const& view_in) @@ -1254,45 +1306,68 @@ class ScatterAccess +template ScatterView< RT, typename ViewTraits::array_layout, - typename ViewTraits::device_type, - Op - /* just setting defaults if not specified... things got messy because the - view type does not come before the duplication/contribution settings in - the template parameter list */ - , - duplication == -1 - ? Kokkos::Impl::Experimental::DefaultDuplication< - typename ViewTraits::execution_space>::value - : duplication, - contribution == -1 - ? Kokkos::Impl::Experimental::DefaultContribution< - typename ViewTraits::execution_space, - (duplication == -1 - ? Kokkos::Impl::Experimental::DefaultDuplication< - typename ViewTraits::execution_space>::value - : duplication)>::value - : contribution> + typename ViewTraits::device_type, Op, + typename Kokkos::Impl::if_c< + std::is_same::value, + typename Kokkos::Impl::Experimental::DefaultDuplication< + typename ViewTraits::execution_space>::type, + Duplication>::type, + typename Kokkos::Impl::if_c< + std::is_same::value, + typename Kokkos::Impl::Experimental::DefaultContribution< + typename ViewTraits::execution_space, + typename Kokkos::Impl::if_c< + std::is_same::value, + typename Kokkos::Impl::Experimental::DefaultDuplication< + typename ViewTraits::execution_space>::type, + Duplication>::type>::type, + Contribution>::type> create_scatter_view(View const& original_view) { return original_view; // implicit ScatterView constructor call } +template +ScatterView< + RT, typename ViewTraits::array_layout, + typename ViewTraits::device_type, Op, + typename Kokkos::Impl::Experimental::DefaultDuplication< + typename ViewTraits::execution_space>::type, + typename Kokkos::Impl::Experimental::DefaultContribution< + typename ViewTraits::execution_space, + typename Kokkos::Impl::Experimental::DefaultDuplication< + typename ViewTraits::execution_space>::type>::type> +create_scatter_view(Op, View const& original_view) { + return original_view; // implicit ScatterView constructor call +} + +template +ScatterView::array_layout, + typename ViewTraits::device_type, Op, Duplication, + Contribution> +create_scatter_view(Op, Duplication, Contribution, + View const& original_view) { + return original_view; // implicit ScatterView constructor call +} + } // namespace Experimental } // namespace Kokkos namespace Kokkos { namespace Experimental { -template +template void contribute( View& dest, Kokkos::Experimental::ScatterView const& src) { @@ -1304,16 +1379,16 @@ void contribute( namespace Kokkos { -template +template void realloc( Kokkos::Experimental::ScatterView& scatter_view, IS... is) { scatter_view.realloc(is...); } -template +template void resize( Kokkos::Experimental::ScatterView& scatter_view, IS... is) { diff --git a/lib/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp b/lib/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp index c11413d627..81be3ee2d3 100644 --- a/lib/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp +++ b/lib/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp @@ -57,7 +57,7 @@ namespace Kokkos { namespace Impl { template struct StaticCrsGraphBalancerFunctor { - typedef typename RowOffsetsType::non_const_value_type int_type; + using int_type = typename RowOffsetsType::non_const_value_type; RowOffsetsType row_offsets; RowBlockOffsetsType row_block_offsets; @@ -148,7 +148,7 @@ struct StaticCrsGraphBalancerFunctor { /// /// Here is an example loop over the entries in the row: /// \code -/// typedef typename GraphRowViewConst::ordinal_type ordinal_type; +/// using ordinal_type = typename GraphRowViewConst::ordinal_type; /// /// GraphRowView G_i = ...; /// const ordinal_type numEntries = G_i.length; @@ -159,7 +159,7 @@ struct StaticCrsGraphBalancerFunctor { /// \endcode /// /// GraphType must provide the \c data_type -/// typedefs. In addition, it must make sense to use GraphRowViewConst to +/// aliases. In addition, it must make sense to use GraphRowViewConst to /// view a row of GraphType. In particular, column /// indices of a row must be accessible using the entries /// resp. colidx arrays given to the constructor of this @@ -170,7 +170,7 @@ struct StaticCrsGraphBalancerFunctor { template struct GraphRowViewConst { //! The type of the column indices in the row. - typedef const typename GraphType::data_type ordinal_type; + using ordinal_type = const typename GraphType::data_type; private: //! Array of (local) column indices in the row. @@ -279,49 +279,33 @@ struct GraphRowViewConst { ///
  • entries( row_map[i0] + i1 , i2 , i3 , ... );
  • /// template ::size_type, - class Arg3Type = void> -#else class Arg3Type = void, typename SizeType = typename ViewTraits::size_type> -#endif class StaticCrsGraph { private: - typedef ViewTraits traits; + using traits = ViewTraits; public: - typedef DataType data_type; - typedef typename traits::array_layout array_layout; - typedef typename traits::execution_space execution_space; - typedef typename traits::device_type device_type; - typedef typename traits::memory_traits memory_traits; - typedef SizeType size_type; - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - typedef StaticCrsGraph - staticcrsgraph_type; - typedef StaticCrsGraph - HostMirror; -#else - typedef StaticCrsGraph - staticcrsgraph_type; - typedef StaticCrsGraph - HostMirror; -#endif - - typedef View - row_map_type; - typedef View - entries_type; - typedef View - row_block_type; + using data_type = DataType; + using array_layout = typename traits::array_layout; + using execution_space = typename traits::execution_space; + using device_type = typename traits::device_type; + using memory_traits = typename traits::memory_traits; + using size_type = SizeType; + + using staticcrsgraph_type = + StaticCrsGraph; + using HostMirror = StaticCrsGraph; + + using row_map_type = + View; + using entries_type = + View; + using row_block_type = + View; entries_type entries; row_map_type row_map; @@ -370,6 +354,10 @@ class StaticCrsGraph { : static_cast(0); } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return (row_map.is_allocated() && entries.is_allocated()); + } + /// \brief Return a const view of row i of the graph. /// /// If row i does not belong to the graph, return an empty view. @@ -436,35 +424,19 @@ typename StaticCrsGraphType::staticcrsgraph_type create_staticcrsgraph( //---------------------------------------------------------------------------- -template -typename StaticCrsGraph::HostMirror -create_mirror_view(const StaticCrsGraph& input); -#else - class Arg3Type, typename SizeType> +template typename StaticCrsGraph::HostMirror create_mirror_view(const StaticCrsGraph& input); -#endif - -template -typename StaticCrsGraph::HostMirror -create_mirror_view(const StaticCrsGraph& input); -#else - class Arg3Type, typename SizeType> + +template typename StaticCrsGraph::HostMirror create_mirror(const StaticCrsGraph& input); -#endif } // namespace Kokkos @@ -481,8 +453,8 @@ namespace Impl { template struct StaticCrsGraphMaximumEntry { - typedef typename GraphType::execution_space execution_space; - typedef typename GraphType::data_type value_type; + using execution_space = typename GraphType::execution_space; + using value_type = typename GraphType::data_type; const typename GraphType::entries_type entries; @@ -505,22 +477,13 @@ struct StaticCrsGraphMaximumEntry { } // namespace Impl -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -template -DataType maximum_entry(const StaticCrsGraph& graph) { - typedef StaticCrsGraph - GraphType; -#else template DataType maximum_entry(const StaticCrsGraph& graph) { - typedef StaticCrsGraph - GraphType; -#endif - typedef Impl::StaticCrsGraphMaximumEntry FunctorType; + using GraphType = + StaticCrsGraph; + using FunctorType = Impl::StaticCrsGraphMaximumEntry; DataType result = 0; Kokkos::parallel_reduce("Kokkos::maximum_entry", graph.entries.extent(0), diff --git a/lib/kokkos/containers/src/Kokkos_UnorderedMap.hpp b/lib/kokkos/containers/src/Kokkos_UnorderedMap.hpp index 6f0434dd04..e4e9b28914 100644 --- a/lib/kokkos/containers/src/Kokkos_UnorderedMap.hpp +++ b/lib/kokkos/containers/src/Kokkos_UnorderedMap.hpp @@ -66,7 +66,7 @@ namespace Kokkos { -enum { UnorderedMapInvalidIndex = ~0u }; +enum : unsigned { UnorderedMapInvalidIndex = ~0u }; /// \brief First element of the return value of UnorderedMap::insert(). /// @@ -84,7 +84,7 @@ enum { UnorderedMapInvalidIndex = ~0u }; class UnorderedMapInsertResult { private: - enum Status { + enum Status : uint32_t { SUCCESS = 1u << 31, EXISTING = 1u << 30, FREED_EXISTING = 1u << 29, @@ -206,42 +206,40 @@ template ::type> > class UnorderedMap { private: - typedef typename ViewTraits::host_mirror_space - host_mirror_space; + using host_mirror_space = + typename ViewTraits::host_mirror_space; public: //! \name Public types and constants //@{ // key_types - typedef Key declared_key_type; - typedef typename std::remove_const::type key_type; - typedef typename std::add_const::type const_key_type; + using declared_key_type = Key; + using key_type = typename std::remove_const::type; + using const_key_type = typename std::add_const::type; // value_types - typedef Value declared_value_type; - typedef typename std::remove_const::type value_type; - typedef typename std::add_const::type const_value_type; + using declared_value_type = Value; + using value_type = typename std::remove_const::type; + using const_value_type = typename std::add_const::type; - typedef Device device_type; - typedef typename Device::execution_space execution_space; - typedef Hasher hasher_type; - typedef EqualTo equal_to_type; - typedef uint32_t size_type; + using device_type = Device; + using execution_space = typename Device::execution_space; + using hasher_type = Hasher; + using equal_to_type = EqualTo; + using size_type = uint32_t; // map_types - typedef UnorderedMap - declared_map_type; - typedef UnorderedMap - insertable_map_type; - typedef UnorderedMap - modifiable_map_type; - typedef UnorderedMap - const_map_type; + using declared_map_type = + UnorderedMap; + using insertable_map_type = UnorderedMap; + using modifiable_map_type = + UnorderedMap; + using const_map_type = UnorderedMap; static const bool is_set = std::is_same::value; static const bool has_const_key = @@ -254,43 +252,42 @@ class UnorderedMap { static const bool is_modifiable_map = has_const_key && !has_const_value; static const bool is_const_map = has_const_key && has_const_value; - typedef UnorderedMapInsertResult insert_result; + using insert_result = UnorderedMapInsertResult; - typedef UnorderedMap - HostMirror; + using HostMirror = + UnorderedMap; - typedef Impl::UnorderedMapHistogram histogram_type; + using histogram_type = Impl::UnorderedMapHistogram; //@} private: - enum { invalid_index = ~static_cast(0) }; + enum : size_type { invalid_index = ~static_cast(0) }; - typedef typename Impl::if_c::type - impl_value_type; + using impl_value_type = + typename Impl::if_c::type; - typedef typename Impl::if_c< + using key_type_view = typename Impl::if_c< is_insertable_map, View, - View > >::type - key_type_view; + View > >::type; - typedef typename Impl::if_c, - View > >::type - value_type_view; + using value_type_view = + typename Impl::if_c, + View > >::type; - typedef typename Impl::if_c< + using size_type_view = typename Impl::if_c< is_insertable_map, View, - View > >::type - size_type_view; + View > >::type; - typedef typename Impl::if_c, - ConstBitset >::type bitset_type; + using bitset_type = + typename Impl::if_c, + ConstBitset >::type; enum { modified_idx = 0, erasable_idx = 1, failed_insert_idx = 2 }; enum { num_scalars = 3 }; - typedef View scalars_view; + using scalars_view = View; public: //! \name Public member functions @@ -353,6 +350,11 @@ class UnorderedMap { { Kokkos::deep_copy(m_scalars, 0); } } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return (m_keys.is_allocated() && m_values.is_allocated() && + m_scalars.is_allocated()); + } + /// \brief Change the capacity of the the map /// /// If there are no failed inserts the current size of the map will @@ -742,9 +744,9 @@ class UnorderedMap { Kokkos::deep_copy(tmp.m_available_indexes, src.m_available_indexes); - typedef Kokkos::Impl::DeepCopy - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy; raw_deep_copy(tmp.m_hash_lists.data(), src.m_hash_lists.data(), sizeof(size_type) * src.m_hash_lists.extent(0)); @@ -768,25 +770,25 @@ class UnorderedMap { bool modified() const { return get_flag(modified_idx); } void set_flag(int flag) const { - typedef Kokkos::Impl::DeepCopy - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy; const int true_ = true; raw_deep_copy(m_scalars.data() + flag, &true_, sizeof(int)); } void reset_flag(int flag) const { - typedef Kokkos::Impl::DeepCopy - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy; const int false_ = false; raw_deep_copy(m_scalars.data() + flag, &false_, sizeof(int)); } bool get_flag(int flag) const { - typedef Kokkos::Impl::DeepCopy - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy; int result = false; raw_deep_copy(&result, m_scalars.data() + flag, sizeof(int)); return result; diff --git a/lib/kokkos/containers/src/Kokkos_Vector.hpp b/lib/kokkos/containers/src/Kokkos_Vector.hpp index 02c3e44fc4..a1fbba6b21 100644 --- a/lib/kokkos/containers/src/Kokkos_Vector.hpp +++ b/lib/kokkos/containers/src/Kokkos_Vector.hpp @@ -58,19 +58,19 @@ namespace Kokkos { template class vector : public DualView { public: - typedef Scalar value_type; - typedef Scalar* pointer; - typedef const Scalar* const_pointer; - typedef Scalar& reference; - typedef const Scalar& const_reference; - typedef Scalar* iterator; - typedef const Scalar* const_iterator; - typedef size_t size_type; + using value_type = Scalar; + using pointer = Scalar*; + using const_pointer = const Scalar*; + using reference = Scalar&; + using const_reference = const Scalar&; + using iterator = Scalar*; + using const_iterator = const Scalar*; + using size_type = size_t; private: size_t _size; float _extra_storage; - typedef DualView DV; + using DV = DualView; public: #ifdef KOKKOS_ENABLE_CUDA_UVM @@ -212,14 +212,17 @@ class vector : public DualView { return begin() + start; } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return DV::is_allocated(); + } + size_type size() const { return _size; } size_type max_size() const { return 2000000000; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - size_type capacity() const { return DV::capacity(); } -#endif size_type span() const { return DV::span(); } bool empty() const { return _size == 0; } + pointer data() const { return DV::h_view.data(); } + iterator begin() const { return DV::h_view.data(); } iterator end() const { @@ -310,7 +313,7 @@ class vector : public DualView { public: struct set_functor { - typedef typename DV::t_dev::execution_space execution_space; + using execution_space = typename DV::t_dev::execution_space; typename DV::t_dev _data; Scalar _val; @@ -321,7 +324,7 @@ class vector : public DualView { }; struct set_functor_host { - typedef typename DV::t_host::execution_space execution_space; + using execution_space = typename DV::t_host::execution_space; typename DV::t_host _data; Scalar _val; diff --git a/lib/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp b/lib/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp index 6fd4319a82..6e450598d1 100644 --- a/lib/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp +++ b/lib/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp @@ -65,11 +65,11 @@ unsigned rotate_right(unsigned i, int r) { template struct BitsetCount { - typedef Bitset bitset_type; - typedef - typename bitset_type::execution_space::execution_space execution_space; - typedef typename bitset_type::size_type size_type; - typedef size_type value_type; + using bitset_type = Bitset; + using execution_space = + typename bitset_type::execution_space::execution_space; + using size_type = typename bitset_type::size_type; + using value_type = size_type; bitset_type m_bitset; diff --git a/lib/kokkos/containers/src/impl/Kokkos_Functional_impl.hpp b/lib/kokkos/containers/src/impl/Kokkos_Functional_impl.hpp index 6ba67766aa..367ab33857 100644 --- a/lib/kokkos/containers/src/impl/Kokkos_Functional_impl.hpp +++ b/lib/kokkos/containers/src/impl/Kokkos_Functional_impl.hpp @@ -140,10 +140,10 @@ uint32_t MurmurHash3_x86_32(const void* key, int len, uint32_t seed) { template KOKKOS_FORCEINLINE_FUNCTION bool bitwise_equal(T const* const a_ptr, T const* const b_ptr) { - typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; - typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; - typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; - typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; + typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; // NOLINT(modernize-use-using) + typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; // NOLINT(modernize-use-using) + typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; // NOLINT(modernize-use-using) + typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; // NOLINT(modernize-use-using) enum { NUM_8 = sizeof(T), diff --git a/lib/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp b/lib/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp index a5fb9990f6..f22e5d1eca 100644 --- a/lib/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp +++ b/lib/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp @@ -50,19 +50,6 @@ namespace Kokkos { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -template -inline typename StaticCrsGraph::HostMirror -create_mirror_view( - const StaticCrsGraph& - view, - typename std::enable_if::is_hostspace>::type* = 0) { - return view; -} -#else template inline typename StaticCrsGraph::is_hostspace>::type* = 0) { return view; } -#endif - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -template -inline typename StaticCrsGraph::HostMirror -create_mirror(const StaticCrsGraph& view) { - // Force copy: - // typedef Impl::ViewAssignment< Impl::ViewDefault > alloc ; // unused - typedef StaticCrsGraph - staticcrsgraph_type; -#else + template inline typename StaticCrsGraph& view) { // Force copy: - // typedef Impl::ViewAssignment< Impl::ViewDefault > alloc ; // unused - typedef StaticCrsGraph - staticcrsgraph_type; -#endif + // using alloc = Impl::ViewAssignment; // unused + using staticcrsgraph_type = + StaticCrsGraph; typename staticcrsgraph_type::HostMirror tmp; typename staticcrsgraph_type::row_map_type::HostMirror tmp_row_map = @@ -120,17 +93,6 @@ create_mirror(const StaticCrsGraph -inline typename StaticCrsGraph::HostMirror -create_mirror_view( - const StaticCrsGraph& - view, - typename std::enable_if::is_hostspace>::type* = 0) -#else template inline typename StaticCrsGraph& view, typename std::enable_if::is_hostspace>::type* = 0) -#endif -{ + Arg3Type>::is_hostspace>::type* = 0) { return create_mirror(view); } } // namespace Kokkos @@ -154,16 +114,15 @@ namespace Kokkos { template inline typename StaticCrsGraphType::staticcrsgraph_type create_staticcrsgraph( const std::string& label, const std::vector& input) { - typedef StaticCrsGraphType output_type; - // typedef std::vector< InputSizeType > input_type ; // unused + using output_type = StaticCrsGraphType; + // using input_type = std::vector; // unused - typedef typename output_type::entries_type entries_type; + using entries_type = typename output_type::entries_type; - typedef View - work_type; + using work_type = View; output_type output; @@ -197,16 +156,15 @@ template inline typename StaticCrsGraphType::staticcrsgraph_type create_staticcrsgraph( const std::string& label, const std::vector >& input) { - typedef StaticCrsGraphType output_type; - typedef typename output_type::entries_type entries_type; + using output_type = StaticCrsGraphType; + using entries_type = typename output_type::entries_type; static_assert(entries_type::rank == 1, "Graph entries view must be rank one"); - typedef View - work_type; + using work_type = View; output_type output; diff --git a/lib/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp b/lib/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp index 813936575c..b06ab0846c 100644 --- a/lib/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp +++ b/lib/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp @@ -60,10 +60,10 @@ uint32_t find_hash_size(uint32_t size); template struct UnorderedMapRehash { - typedef Map map_type; - typedef typename map_type::const_map_type const_map_type; - typedef typename map_type::execution_space execution_space; - typedef typename map_type::size_type size_type; + using map_type = Map; + using const_map_type = typename map_type::const_map_type; + using execution_space = typename map_type::execution_space; + using size_type = typename map_type::size_type; map_type m_dst; const_map_type m_src; @@ -84,11 +84,11 @@ struct UnorderedMapRehash { template struct UnorderedMapErase { - typedef UMap map_type; - typedef typename map_type::execution_space execution_space; - typedef typename map_type::size_type size_type; - typedef typename map_type::key_type key_type; - typedef typename map_type::impl_value_type value_type; + using map_type = UMap; + using execution_space = typename map_type::execution_space; + using size_type = typename map_type::size_type; + using key_type = typename map_type::key_type; + using value_type = typename map_type::impl_value_type; map_type m_map; @@ -140,12 +140,12 @@ struct UnorderedMapErase { template struct UnorderedMapHistogram { - typedef UMap map_type; - typedef typename map_type::execution_space execution_space; - typedef typename map_type::size_type size_type; + using map_type = UMap; + using execution_space = typename map_type::execution_space; + using size_type = typename map_type::size_type; - typedef View histogram_view; - typedef typename histogram_view::HostMirror host_histogram_view; + using histogram_view = View; + using host_histogram_view = typename histogram_view::HostMirror; map_type m_map; histogram_view m_length; @@ -230,9 +230,9 @@ struct UnorderedMapHistogram { template struct UnorderedMapPrint { - typedef UMap map_type; - typedef typename map_type::execution_space execution_space; - typedef typename map_type::size_type size_type; + using map_type = UMap; + using execution_space = typename map_type::execution_space; + using size_type = typename map_type::size_type; map_type m_map; diff --git a/lib/kokkos/containers/unit_tests/TestBitset.hpp b/lib/kokkos/containers/unit_tests/TestBitset.hpp index 661a1365cb..6810ae101a 100644 --- a/lib/kokkos/containers/unit_tests/TestBitset.hpp +++ b/lib/kokkos/containers/unit_tests/TestBitset.hpp @@ -47,6 +47,7 @@ #include #include #include +#include namespace Test { @@ -54,9 +55,9 @@ namespace Impl { template struct TestBitset { - typedef Bitset bitset_type; - typedef typename bitset_type::execution_space execution_space; - typedef uint32_t value_type; + using bitset_type = Bitset; + using execution_space = typename bitset_type::execution_space; + using value_type = uint32_t; bitset_type m_bitset; @@ -95,9 +96,9 @@ struct TestBitset { template struct TestBitsetTest { - typedef Bitset bitset_type; - typedef typename bitset_type::execution_space execution_space; - typedef uint32_t value_type; + using bitset_type = Bitset; + using execution_space = typename bitset_type::execution_space; + using value_type = uint32_t; bitset_type m_bitset; @@ -127,9 +128,9 @@ struct TestBitsetTest { template struct TestBitsetAny { - typedef Bitset bitset_type; - typedef typename bitset_type::execution_space execution_space; - typedef uint32_t value_type; + using bitset_type = Bitset; + using execution_space = typename bitset_type::execution_space; + using value_type = uint32_t; bitset_type m_bitset; @@ -181,16 +182,30 @@ struct TestBitsetAny { template void test_bitset() { - typedef Kokkos::Bitset bitset_type; - typedef Kokkos::ConstBitset const_bitset_type; + using bitset_type = Kokkos::Bitset; + using const_bitset_type = Kokkos::ConstBitset; - // unsigned test_sizes[] = { 0u, 1000u, 1u<<14, 1u<<16, 10000001 }; - unsigned test_sizes[] = {1000u, 1u << 14, 1u << 16, 10000001}; + { + unsigned ts = 100u; + bitset_type b1; + ASSERT_TRUE(b1.is_allocated()); - for (int i = 0, end = sizeof(test_sizes) / sizeof(unsigned); i < end; ++i) { + b1 = bitset_type(ts); + bitset_type b2(b1); + bitset_type b3(ts); + + ASSERT_TRUE(b1.is_allocated()); + ASSERT_TRUE(b2.is_allocated()); + ASSERT_TRUE(b3.is_allocated()); + } + + std::array test_sizes = { + {0u, 10u, 100u, 1000u, 1u << 14, 1u << 16, 10000001}}; + + for (const auto test_size : test_sizes) { // std::cout << "Bitset " << test_sizes[i] << std::endl; - bitset_type bitset(test_sizes[i]); + bitset_type bitset(test_size); // std::cout << " Check initial count " << std::endl; // nothing should be set @@ -253,10 +268,7 @@ void test_bitset() { } } -// FIXME_HIP deadlock -#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, bitset) { test_bitset(); } -#endif } // namespace Test #endif // KOKKOS_TEST_BITSET_HPP diff --git a/lib/kokkos/containers/unit_tests/TestDualView.hpp b/lib/kokkos/containers/unit_tests/TestDualView.hpp index 665f251158..ae5b746f94 100644 --- a/lib/kokkos/containers/unit_tests/TestDualView.hpp +++ b/lib/kokkos/containers/unit_tests/TestDualView.hpp @@ -55,13 +55,45 @@ namespace Test { namespace Impl { +template +struct test_dualview_alloc { + using scalar_type = Scalar; + using execution_space = Device; + + template + bool run_me(unsigned int n, unsigned int m) { + if (n < 10) n = 10; + if (m < 3) m = 3; + + { + ViewType b1; + if (b1.is_allocated() == true) return false; + + b1 = ViewType("B1", n, m); + ViewType b2(b1); + ViewType b3("B3", n, m); + + if (b1.is_allocated() == false) return false; + if (b2.is_allocated() == false) return false; + if (b3.is_allocated() == false) return false; + } + return true; + } + + bool result = false; + + test_dualview_alloc(unsigned int size) { + result = run_me >( + size, 3); + } +}; template struct test_dualview_combinations { - typedef test_dualview_combinations self_type; + using self_type = test_dualview_combinations; - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; Scalar reference; Scalar result; @@ -110,7 +142,7 @@ struct test_dualview_combinations { template struct SumViewEntriesFunctor { - typedef Scalar value_type; + using value_type = Scalar; ViewType fv; @@ -126,8 +158,8 @@ struct SumViewEntriesFunctor { template struct test_dual_view_deep_copy { - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; template void run_me(int n, const int m, const bool use_templ_sync) { @@ -153,8 +185,8 @@ struct test_dual_view_deep_copy { // Check device view is initialized as expected scalar_type a_d_sum = 0; // Execute on the execution_space associated with t_dev's memory space - typedef typename ViewType::t_dev::memory_space::execution_space - t_dev_exec_space; + using t_dev_exec_space = + typename ViewType::t_dev::memory_space::execution_space; Kokkos::parallel_reduce( Kokkos::RangePolicy(0, n), SumViewEntriesFunctor(a.d_view), @@ -220,8 +252,8 @@ struct test_dual_view_deep_copy { template struct test_dualview_resize { - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; template void run_me() { @@ -244,8 +276,8 @@ struct test_dualview_resize { // Check device view is initialized as expected scalar_type a_d_sum = 0; // Execute on the execution_space associated with t_dev's memory space - typedef typename ViewType::t_dev::memory_space::execution_space - t_dev_exec_space; + using t_dev_exec_space = + typename ViewType::t_dev::memory_space::execution_space; Kokkos::parallel_reduce( Kokkos::RangePolicy(0, a.d_view.extent(0)), SumViewEntriesFunctor(a.d_view), @@ -274,8 +306,8 @@ struct test_dualview_resize { // Check device view is initialized as expected a_d_sum = 0; // Execute on the execution_space associated with t_dev's memory space - typedef typename ViewType::t_dev::memory_space::execution_space - t_dev_exec_space; + using t_dev_exec_space = + typename ViewType::t_dev::memory_space::execution_space; Kokkos::parallel_reduce( Kokkos::RangePolicy(0, a.d_view.extent(0)), SumViewEntriesFunctor(a.d_view), @@ -301,8 +333,8 @@ struct test_dualview_resize { template struct test_dualview_realloc { - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; template void run_me() { @@ -319,8 +351,8 @@ struct test_dualview_realloc { // Check device view is initialized as expected scalar_type a_d_sum = 0; // Execute on the execution_space associated with t_dev's memory space - typedef typename ViewType::t_dev::memory_space::execution_space - t_dev_exec_space; + using t_dev_exec_space = + typename ViewType::t_dev::memory_space::execution_space; Kokkos::parallel_reduce( Kokkos::RangePolicy(0, a.d_view.extent(0)), SumViewEntriesFunctor(a.d_view), @@ -351,6 +383,12 @@ void test_dualview_combinations(unsigned int size, bool with_init) { ASSERT_EQ(test.result, 0); } +template +void test_dualview_alloc(unsigned int size) { + Impl::test_dualview_alloc test(size); + ASSERT_TRUE(test.result); +} + template void test_dualview_deep_copy() { Impl::test_dual_view_deep_copy(); @@ -370,6 +408,10 @@ TEST(TEST_CATEGORY, dualview_combination) { test_dualview_combinations(10, true); } +TEST(TEST_CATEGORY, dualview_alloc) { + test_dualview_alloc(10); +} + TEST(TEST_CATEGORY, dualview_combinations_without_init) { test_dualview_combinations(10, false); } diff --git a/lib/kokkos/containers/unit_tests/TestDynViewAPI.hpp b/lib/kokkos/containers/unit_tests/TestDynViewAPI.hpp index 5c1d0229cb..97155d3047 100644 --- a/lib/kokkos/containers/unit_tests/TestDynViewAPI.hpp +++ b/lib/kokkos/containers/unit_tests/TestDynViewAPI.hpp @@ -68,12 +68,12 @@ size_t allocation_count(const Kokkos::DynRankView& view) { template struct TestViewOperator { - typedef DeviceType execution_space; + using execution_space = DeviceType; static const unsigned N = 100; static const unsigned D = 3; - typedef Kokkos::DynRankView view_type; + using view_type = Kokkos::DynRankView; const view_type v1; const view_type v2; @@ -101,11 +101,11 @@ struct TestViewOperator_LeftAndRight; template struct TestViewOperator_LeftAndRight { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -116,11 +116,11 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView - left_view; + using left_view = + Kokkos::DynRankView; - typedef Kokkos::DynRankView - right_view; + using right_view = + Kokkos::DynRankView; left_view left; right_view right; @@ -186,11 +186,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -201,11 +201,11 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView - left_view; + using left_view = + Kokkos::DynRankView; - typedef Kokkos::DynRankView - right_view; + using right_view = + Kokkos::DynRankView; left_view left; right_view right; @@ -268,11 +268,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -283,14 +283,14 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView - left_view; + using left_view = + Kokkos::DynRankView; - typedef Kokkos::DynRankView - right_view; + using right_view = + Kokkos::DynRankView; - typedef Kokkos::DynRankView - stride_view; + using stride_view = + Kokkos::DynRankView; left_view left; right_view right; @@ -363,11 +363,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -378,11 +378,11 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView - left_view; + using left_view = + Kokkos::DynRankView; - typedef Kokkos::DynRankView - right_view; + using right_view = + Kokkos::DynRankView; left_view left; right_view right; @@ -438,11 +438,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -453,14 +453,14 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView - left_view; + using left_view = + Kokkos::DynRankView; - typedef Kokkos::DynRankView - right_view; + using right_view = + Kokkos::DynRankView; - typedef Kokkos::DynRankView - stride_view; + using stride_view = + Kokkos::DynRankView; left_view left; right_view right; @@ -536,11 +536,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -551,11 +551,11 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView - left_view; + using left_view = + Kokkos::DynRankView; - typedef Kokkos::DynRankView - right_view; + using right_view = + Kokkos::DynRankView; left_view left; right_view right; @@ -616,11 +616,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -631,14 +631,14 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView - left_view; + using left_view = + Kokkos::DynRankView; - typedef Kokkos::DynRankView - right_view; + using right_view = + Kokkos::DynRankView; - typedef Kokkos::DynRankView - stride_view; + using stride_view = + Kokkos::DynRankView; left_view left; right_view right; @@ -689,22 +689,22 @@ struct TestViewOperator_LeftAndRight { template class TestDynViewAPI { public: - typedef DeviceType device; + using device = DeviceType; enum { N0 = 1000, N1 = 3, N2 = 5, N3 = 7 }; - typedef Kokkos::DynRankView dView0; - typedef Kokkos::DynRankView const_dView0; + using dView0 = Kokkos::DynRankView; + using const_dView0 = Kokkos::DynRankView; - typedef Kokkos::DynRankView - dView0_unmanaged; - typedef typename dView0::host_mirror_space host_drv_space; + using dView0_unmanaged = + Kokkos::DynRankView; + using host_drv_space = typename dView0::host_mirror_space; - typedef Kokkos::View View0; - typedef Kokkos::View View1; - typedef Kokkos::View View7; + using View0 = Kokkos::View; + using View1 = Kokkos::View; + using View7 = Kokkos::View; - typedef typename View0::host_mirror_space host_view_space; + using host_view_space = typename View0::host_mirror_space; static void run_tests() { run_test_resize_realloc(); @@ -712,6 +712,7 @@ class TestDynViewAPI { run_test_mirror_and_copy(); run_test_scalar(); run_test(); + run_test_allocated(); run_test_const(); run_test_subview(); run_test_subview_strided(); @@ -750,8 +751,8 @@ class TestDynViewAPI { } static void run_test_mirror() { - typedef Kokkos::DynRankView view_type; - typedef typename view_type::HostMirror mirror_type; + using view_type = Kokkos::DynRankView; + using mirror_type = typename view_type::HostMirror; view_type a("a"); mirror_type am = Kokkos::create_mirror_view(a); mirror_type ax = Kokkos::create_mirror(a); @@ -851,8 +852,8 @@ class TestDynViewAPI { ASSERT_EQ(a_h.rank(), a_d.rank()); } { - typedef Kokkos::DynRankView - view_stride_type; + using view_stride_type = + Kokkos::DynRankView; unsigned order[] = {6, 5, 4, 3, 2, 1, 0}, dimen[] = {N0, N1, N2, 2, 2, 2, 2}; // LayoutRight equivalent view_stride_type a_h( @@ -956,8 +957,8 @@ class TestDynViewAPI { } static void run_test_scalar() { - typedef typename dView0::HostMirror - hView0; // HostMirror of DynRankView is a DynRankView + using hView0 = typename dView0::HostMirror; // HostMirror of DynRankView is + // a DynRankView dView0 dx, dy; hView0 hx, hy; @@ -1050,12 +1051,12 @@ class TestDynViewAPI { static void run_test() { // mfh 14 Feb 2014: This test doesn't actually create instances of - // these types. In order to avoid "declared but unused typedef" + // these types. In order to avoid "unused type alias" // warnings, we declare empty instances of these types, with the // usual "(void)" marker to avoid compiler warnings for unused // variables. - typedef typename dView0::HostMirror hView0; + using hView0 = typename dView0::HostMirror; { hView0 thing; @@ -1361,7 +1362,7 @@ class TestDynViewAPI { } } - typedef T DataType; + using DataType = T; static void check_auto_conversion_to_const( const Kokkos::DynRankView& arg_const, @@ -1369,12 +1370,28 @@ class TestDynViewAPI { ASSERT_TRUE(arg_const == arg); } + static void run_test_allocated() { + using device_type = Kokkos::DynRankView; + + const int N1 = 100; + const int N2 = 10; + + device_type d1; + ASSERT_FALSE(d1.is_allocated()); + + d1 = device_type("d1", N1, N2); + device_type d2(d1); + device_type d3("d3", N1); + ASSERT_TRUE(d1.is_allocated()); + ASSERT_TRUE(d2.is_allocated()); + ASSERT_TRUE(d3.is_allocated()); + } + static void run_test_const() { - typedef Kokkos::DynRankView typeX; - typedef Kokkos::DynRankView const_typeX; - typedef Kokkos::DynRankView - const_typeR; + using typeX = Kokkos::DynRankView; + using const_typeX = Kokkos::DynRankView; + using const_typeR = + Kokkos::DynRankView; typeX x("X", 2); const_typeX xc = x; const_typeR xr = x; @@ -1398,10 +1415,10 @@ class TestDynViewAPI { } static void run_test_subview() { - typedef Kokkos::DynRankView cdView; - typedef Kokkos::DynRankView dView; + using cdView = Kokkos::DynRankView; + using dView = Kokkos::DynRankView; // LayoutStride required for all returned DynRankView subdynrankview's - typedef Kokkos::DynRankView sdView; + using sdView = Kokkos::DynRankView; dView0 d0("d0"); cdView s0 = d0; @@ -1452,7 +1469,7 @@ class TestDynViewAPI { ASSERT_EQ(dv6.rank(), 6); // DynRankView with LayoutRight - typedef Kokkos::DynRankView drView; + using drView = Kokkos::DynRankView; drView dr5("dr5", N0, N1, N2, 2, 2); ASSERT_EQ(dr5.rank(), 5); @@ -1514,7 +1531,8 @@ class TestDynViewAPI { ASSERT_EQ(ds5.extent(4), ds5plus.extent(4)); ASSERT_EQ(ds5.extent(5), ds5plus.extent(5)); -#if !defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_CUDA_UVM) +#if (!defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_CUDA_UVM)) && \ + !defined(KOKKOS_ENABLE_HIP) ASSERT_EQ(&ds5(1, 1, 1, 1, 0) - &ds5plus(1, 1, 1, 1, 0), 0); ASSERT_EQ(&ds5(1, 1, 1, 1, 0, 0) - &ds5plus(1, 1, 1, 1, 0, 0), 0); // passing argument to rank beyond the view's rank is allowed @@ -1538,12 +1556,12 @@ class TestDynViewAPI { } static void run_test_subview_strided() { - typedef Kokkos::DynRankView - drview_left; - typedef Kokkos::DynRankView - drview_right; - typedef Kokkos::DynRankView - drview_stride; + using drview_left = + Kokkos::DynRankView; + using drview_right = + Kokkos::DynRankView; + using drview_stride = + Kokkos::DynRankView; drview_left xl2("xl2", 100, 200); drview_right xr2("xr2", 100, 200); @@ -1588,31 +1606,29 @@ class TestDynViewAPI { static void run_test_vector() { static const unsigned Length = 1000, Count = 8; - typedef typename Kokkos::DynRankView - multivector_type; + using multivector_type = + typename Kokkos::DynRankView; - typedef typename Kokkos::DynRankView - multivector_right_type; + using multivector_right_type = + typename Kokkos::DynRankView; multivector_type mv = multivector_type("mv", Length, Count); multivector_right_type mv_right = multivector_right_type("mv", Length, Count); - typedef - typename Kokkos::DynRankView - svector_type; - typedef - typename Kokkos::DynRankView - smultivector_type; - typedef typename Kokkos::DynRankView - const_svector_right_type; - typedef typename Kokkos::DynRankView - const_svector_type; - typedef typename Kokkos::DynRankView - const_smultivector_type; + using svector_type = + typename Kokkos::DynRankView; + using smultivector_type = + typename Kokkos::DynRankView; + using const_svector_right_type = + typename Kokkos::DynRankView; + using const_svector_type = + typename Kokkos::DynRankView; + using const_smultivector_type = + typename Kokkos::DynRankView; svector_type v1 = Kokkos::subdynrankview(mv, Kokkos::ALL(), 0); svector_type v2 = Kokkos::subdynrankview(mv, Kokkos::ALL(), 1); diff --git a/lib/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp b/lib/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp index b3e2812b44..90ca5df194 100644 --- a/lib/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp +++ b/lib/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp @@ -44,10 +44,7 @@ #include namespace Test { -// FIXME_HIP attempt to access inaccessible memory space -#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, dyn_rank_view_api_generic) { TestDynViewAPI::run_tests(); } -#endif } // namespace Test diff --git a/lib/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp b/lib/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp index 86a2e4e954..050ebbe35c 100644 --- a/lib/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp +++ b/lib/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp @@ -45,10 +45,7 @@ #include namespace Test { -// FIXME_HIP failing with wrong value -#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, dyn_rank_view_api_operator_rank12345) { TestDynViewAPI::run_operator_test_rank12345(); } -#endif } // namespace Test diff --git a/lib/kokkos/containers/unit_tests/TestDynamicView.hpp b/lib/kokkos/containers/unit_tests/TestDynamicView.hpp index 8eabbcb371..f018793dd6 100644 --- a/lib/kokkos/containers/unit_tests/TestDynamicView.hpp +++ b/lib/kokkos/containers/unit_tests/TestDynamicView.hpp @@ -58,12 +58,12 @@ namespace Test { template struct TestDynamicView { - typedef typename Space::execution_space execution_space; - typedef typename Space::memory_space memory_space; + using execution_space = typename Space::execution_space; + using memory_space = typename Space::memory_space; - typedef Kokkos::Experimental::DynamicView view_type; + using view_type = Kokkos::Experimental::DynamicView; - typedef double value_type; + using value_type = double; static void run(unsigned arg_total_size) { // Test: Create DynamicView, initialize size (via resize), run through @@ -71,6 +71,27 @@ struct TestDynamicView { // values and repeat // Case 1: min_chunk_size is a power of 2 { + { + view_type d1; + ASSERT_FALSE(d1.is_allocated()); + + d1 = view_type("d1", 1024, arg_total_size); + view_type d2(d1); + view_type d3("d3", 1024, arg_total_size); + + ASSERT_FALSE(d1.is_allocated()); + ASSERT_FALSE(d2.is_allocated()); + ASSERT_FALSE(d3.is_allocated()); + + unsigned d_size = arg_total_size / 8; + d1.resize_serial(d_size); + d2.resize_serial(d_size); + d3.resize_serial(d_size); + + ASSERT_TRUE(d1.is_allocated()); + ASSERT_TRUE(d2.is_allocated()); + ASSERT_TRUE(d3.is_allocated()); + } view_type da("da", 1024, arg_total_size); ASSERT_EQ(da.size(), 0); // Init @@ -223,7 +244,7 @@ struct TestDynamicView { }; TEST(TEST_CATEGORY, dynamic_view) { - typedef TestDynamicView TestDynView; + using TestDynView = TestDynamicView; for (int i = 0; i < 10; ++i) { TestDynView::run(100000 + 100 * i); diff --git a/lib/kokkos/containers/unit_tests/TestErrorReporter.hpp b/lib/kokkos/containers/unit_tests/TestErrorReporter.hpp index 318132500c..a90885bd33 100644 --- a/lib/kokkos/containers/unit_tests/TestErrorReporter.hpp +++ b/lib/kokkos/containers/unit_tests/TestErrorReporter.hpp @@ -84,9 +84,9 @@ void checkReportersAndReportsAgree(const std::vector &reporters, template struct ErrorReporterDriverBase { - typedef ThreeValReport report_type; - typedef Kokkos::Experimental::ErrorReporter - error_reporter_type; + using report_type = ThreeValReport; + using error_reporter_type = + Kokkos::Experimental::ErrorReporter; error_reporter_type m_errorReporter; ErrorReporterDriverBase(int reporter_capacity, int /*test_size*/) @@ -97,10 +97,11 @@ struct ErrorReporterDriverBase { } void check_expectations(int reporter_capacity, int test_size) { + using namespace std; int num_reported = m_errorReporter.getNumReports(); int num_attempts = m_errorReporter.getNumReportAttempts(); - int expected_num_reports = std::min(reporter_capacity, test_size / 2); + int expected_num_reports = min(reporter_capacity, test_size / 2); EXPECT_EQ(expected_num_reports, num_reported); EXPECT_EQ(test_size / 2, num_attempts); @@ -112,7 +113,7 @@ struct ErrorReporterDriverBase { template void TestErrorReporter() { - typedef ErrorReporterDriverType tester_type; + using tester_type = ErrorReporterDriverType; std::vector reporters; std::vector reports; @@ -147,9 +148,9 @@ void TestErrorReporter() { template struct ErrorReporterDriver : public ErrorReporterDriverBase { - typedef ErrorReporterDriverBase driver_base; - typedef typename driver_base::error_reporter_type::execution_space - execution_space; + using driver_base = ErrorReporterDriverBase; + using execution_space = + typename driver_base::error_reporter_type::execution_space; ErrorReporterDriver(int reporter_capacity, int test_size) : driver_base(reporter_capacity, test_size) { @@ -185,12 +186,16 @@ struct ErrorReporterDriver : public ErrorReporterDriverBase { template struct ErrorReporterDriverUseLambda : public ErrorReporterDriverBase { - typedef ErrorReporterDriverBase driver_base; - typedef typename driver_base::error_reporter_type::execution_space - execution_space; + using driver_base = ErrorReporterDriverBase; + using execution_space = + typename driver_base::error_reporter_type::execution_space; ErrorReporterDriverUseLambda(int reporter_capacity, int test_size) : driver_base(reporter_capacity, test_size) { + execute(reporter_capacity, test_size); + } + + void execute(int reporter_capacity, int test_size) { Kokkos::parallel_for( Kokkos::RangePolicy(0, test_size), KOKKOS_CLASS_LAMBDA(const int work_idx) { @@ -210,9 +215,9 @@ struct ErrorReporterDriverUseLambda #ifdef KOKKOS_ENABLE_OPENMP struct ErrorReporterDriverNativeOpenMP : public ErrorReporterDriverBase { - typedef ErrorReporterDriverBase driver_base; - typedef typename driver_base::error_reporter_type::execution_space - execution_space; + using driver_base = ErrorReporterDriverBase; + using execution_space = + typename driver_base::error_reporter_type::execution_space; ErrorReporterDriverNativeOpenMP(int reporter_capacity, int test_size) : driver_base(reporter_capacity, test_size) { diff --git a/lib/kokkos/containers/unit_tests/TestOffsetView.hpp b/lib/kokkos/containers/unit_tests/TestOffsetView.hpp index 5114b8022f..e5186e3e1e 100644 --- a/lib/kokkos/containers/unit_tests/TestOffsetView.hpp +++ b/lib/kokkos/containers/unit_tests/TestOffsetView.hpp @@ -61,12 +61,25 @@ namespace Test { template void test_offsetview_construction() { - typedef Kokkos::Experimental::OffsetView offset_view_type; - typedef Kokkos::View view_type; + using offset_view_type = Kokkos::Experimental::OffsetView; + using view_type = Kokkos::View; Kokkos::Experimental::index_list_type range0 = {-1, 3}; Kokkos::Experimental::index_list_type range1 = {-2, 2}; + { + offset_view_type o1; + ASSERT_FALSE(o1.is_allocated()); + + o1 = offset_view_type("o1", range0, range1); + offset_view_type o2(o1); + offset_view_type o3("o3", range0, range1); + + ASSERT_TRUE(o1.is_allocated()); + ASSERT_TRUE(o2.is_allocated()); + ASSERT_TRUE(o3.is_allocated()); + } + offset_view_type ov("firstOV", range0, range1); ASSERT_EQ("firstOV", ov.label()); @@ -109,9 +122,9 @@ void test_offsetview_construction() { { // test deep copy of scalar const value into mirro const int constVal = 6; typename offset_view_type::HostMirror hostOffsetView = - Kokkos::Experimental::create_mirror_view(ov); + Kokkos::create_mirror_view(ov); - Kokkos::Experimental::deep_copy(hostOffsetView, constVal); + Kokkos::deep_copy(hostOffsetView, constVal); for (int i = hostOffsetView.begin(0); i < hostOffsetView.end(0); ++i) { for (int j = hostOffsetView.begin(1); j < hostOffsetView.end(1); ++j) { @@ -121,10 +134,9 @@ void test_offsetview_construction() { } } - typedef Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::point_type point_type; + using range_type = + Kokkos::MDRangePolicy, Kokkos::IndexType >; + using point_type = typename range_type::point_type; range_type rangePolicy2D(point_type{{ovmin0, ovmin1}}, point_type{{ovend0, ovend1}}); @@ -136,9 +148,9 @@ void test_offsetview_construction() { // test offsetview to offsetviewmirror deep copy typename offset_view_type::HostMirror hostOffsetView = - Kokkos::Experimental::create_mirror_view(ov); + Kokkos::create_mirror_view(ov); - Kokkos::Experimental::deep_copy(hostOffsetView, ov); + Kokkos::deep_copy(hostOffsetView, ov); for (int i = hostOffsetView.begin(0); i < hostOffsetView.end(0); ++i) { for (int j = hostOffsetView.begin(1); j < hostOffsetView.end(1); ++j) { @@ -185,10 +197,9 @@ void test_offsetview_construction() { Kokkos::deep_copy(view3D, 1); - typedef Kokkos::MDRangePolicy, - Kokkos::IndexType > - range3_type; - typedef typename range3_type::point_type point3_type; + using range3_type = Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using point3_type = typename range3_type::point_type; typename point3_type::value_type begins0 = -10, begins1 = -20, begins2 = -30; @@ -245,7 +256,7 @@ void test_offsetview_construction() { { // test offsetview to view deep copy view_type aView("aView", ov.extent(0), ov.extent(1)); - Kokkos::Experimental::deep_copy(aView, ov); + Kokkos::deep_copy(aView, ov); #if defined(KOKKOS_ENABLE_CUDA_LAMBDA) || !defined(KOKKOS_ENABLE_CUDA) int sum = 0; @@ -264,7 +275,7 @@ void test_offsetview_construction() { view_type aView("aView", ov.extent(0), ov.extent(1)); Kokkos::deep_copy(aView, 99); - Kokkos::Experimental::deep_copy(ov, aView); + Kokkos::deep_copy(ov, aView); #if defined(KOKKOS_ENABLE_CUDA_LAMBDA) || !defined(KOKKOS_ENABLE_CUDA) int sum = 0; @@ -447,10 +458,9 @@ void test_offsetview_subview() { ASSERT_EQ(offsetSubview.end(1), 9); #if defined(KOKKOS_ENABLE_CUDA_LAMBDA) || !defined(KOKKOS_ENABLE_CUDA) - typedef Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::point_type point_type; + using range_type = Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using point_type = typename range_type::point_type; const int b0 = offsetSubview.begin(0); const int b1 = offsetSubview.begin(1); diff --git a/lib/kokkos/containers/unit_tests/TestScatterView.hpp b/lib/kokkos/containers/unit_tests/TestScatterView.hpp index 915d96d321..4ec83baece 100644 --- a/lib/kokkos/containers/unit_tests/TestScatterView.hpp +++ b/lib/kokkos/containers/unit_tests/TestScatterView.hpp @@ -50,21 +50,22 @@ namespace Test { -template +template struct test_scatter_view_impl_cls; -template -struct test_scatter_view_impl_cls { +template +struct test_scatter_view_impl_cls { public: - typedef Kokkos::Experimental::ScatterView - scatter_view_type; + using scatter_view_type = + Kokkos::Experimental::ScatterView; - typedef Kokkos::View orig_view_type; + using orig_view_type = Kokkos::View; scatter_view_type scatter_view; int scatterSize; @@ -80,9 +81,18 @@ struct test_scatter_view_impl_cls(); for (int j = 0; j < 10; ++j) { auto k = (i + j) % scatterSize; - scatter_access(k, 0) += 4.2; - scatter_access_atomic(k, 1) += 2.0; - scatter_access(k, 2) += 1.0; + scatter_access(k, 0) += 4; + ++scatter_access(k, 1); + --scatter_access(k, 2); + scatter_access(k, 3)++; + scatter_access(k, 4)--; + scatter_access(k, 5) -= 5; + scatter_access_atomic(k, 6) += 2; + scatter_access_atomic(k, 7)++; + scatter_access_atomic(k, 8)--; + --scatter_access_atomic(k, 9); + ++scatter_access_atomic(k, 10); + scatter_access(k, 11) -= 3; } } @@ -114,27 +133,46 @@ struct test_scatter_view_impl_cls -struct test_scatter_view_impl_cls { +template +struct test_scatter_view_impl_cls { public: - typedef Kokkos::Experimental::ScatterView - scatter_view_type; + using scatter_view_type = + Kokkos::Experimental::ScatterView; - typedef Kokkos::View orig_view_type; + using orig_view_type = Kokkos::View; scatter_view_type scatter_view; int scatterSize; @@ -194,17 +232,18 @@ struct test_scatter_view_impl_cls -struct test_scatter_view_impl_cls { +template +struct test_scatter_view_impl_cls { public: - typedef Kokkos::Experimental::ScatterView - scatter_view_type; + using scatter_view_type = + Kokkos::Experimental::ScatterView; - typedef Kokkos::View orig_view_type; + using orig_view_type = Kokkos::View; scatter_view_type scatter_view; int scatterSize; @@ -242,9 +281,9 @@ struct test_scatter_view_impl_cls(); for (int j = 0; j < 4; ++j) { auto k = (i + j) % scatterSize; - scatter_access(k, 0).update((double)(j + 1) * 4); - scatter_access_atomic(k, 1).update((double)(j + 1) * 2.0); - scatter_access(k, 2).update((double)(j + 1) * 1.0); + scatter_access(k, 0).update((NumberType)(j + 1) * 4); + scatter_access_atomic(k, 1).update((NumberType)(j + 1) * 2.0); + scatter_access(k, 2).update((NumberType)(j + 1) * 1.0); } } @@ -264,17 +303,18 @@ struct test_scatter_view_impl_cls -struct test_scatter_view_impl_cls { +template +struct test_scatter_view_impl_cls { public: - typedef Kokkos::Experimental::ScatterView - scatter_view_type; + using scatter_view_type = + Kokkos::Experimental::ScatterView; - typedef Kokkos::View orig_view_type; + using orig_view_type = Kokkos::View; scatter_view_type scatter_view; int scatterSize; @@ -311,9 +351,9 @@ struct test_scatter_view_impl_cls(); for (int j = 0; j < 4; ++j) { auto k = (i + j) % scatterSize; - scatter_access(k, 0).update((double)(j + 1) * 4); - scatter_access_atomic(k, 1).update((double)(j + 1) * 2.0); - scatter_access(k, 2).update((double)(j + 1) * 1.0); + scatter_access(k, 0).update((NumberType)(j + 1) * 4); + scatter_access_atomic(k, 1).update((NumberType)(j + 1) * 2.0); + scatter_access(k, 2).update((NumberType)(j + 1) * 1.0); } } @@ -333,27 +373,126 @@ struct test_scatter_view_impl_cls +template +struct test_default_scatter_view { + public: + using default_duplication = Kokkos::Impl::Experimental::DefaultDuplication< + typename DeviceType::execution_space>; + using Duplication = typename default_duplication::type; + using Contribution = typename Kokkos::Impl::Experimental::DefaultContribution< + typename DeviceType::execution_space, Duplication>::type; + using scatter_view_def = + typename test_scatter_view_impl_cls::scatter_view_type; + using orig_view_def = + typename test_scatter_view_impl_cls::orig_view_type; + + void run_test(int n) { + // Test creation via create_scatter_view overload 1 + { + orig_view_def original_view("original_view", n); + scatter_view_def scatter_view = + Kokkos::Experimental::create_scatter_view(Op{}, original_view); + + test_scatter_view_impl_cls + scatter_view_test_impl(scatter_view); + scatter_view_test_impl.initialize(original_view); + scatter_view_test_impl.run_parallel(n); + + Kokkos::Experimental::contribute(original_view, scatter_view); + scatter_view.reset_except(original_view); + + scatter_view_test_impl.run_parallel(n); + + Kokkos::Experimental::contribute(original_view, scatter_view); + Kokkos::fence(); + + scatter_view_test_impl.validateResults(original_view); + + { + scatter_view_def persistent_view("persistent", n); + auto result_view = persistent_view.subview(); + contribute(result_view, persistent_view); + Kokkos::fence(); + } + } + } +}; + +template struct test_scatter_view_config { public: - typedef - typename test_scatter_view_impl_cls::scatter_view_type - scatter_view_def; - typedef typename test_scatter_view_impl_cls::orig_view_type - orig_view_def; + using scatter_view_def = + typename test_scatter_view_impl_cls::scatter_view_type; + using orig_view_def = + typename test_scatter_view_impl_cls::orig_view_type; void run_test(int n) { + // test allocation + { + orig_view_def ov1("ov1", n); + scatter_view_def sv1; + + ASSERT_FALSE(sv1.is_allocated()); + + sv1 = Kokkos::Experimental::create_scatter_view(ov1); + + scatter_view_def sv2(sv1); + scatter_view_def sv3("sv3", n); + + ASSERT_TRUE(sv1.is_allocated()); + ASSERT_TRUE(sv2.is_allocated()); + ASSERT_TRUE(sv3.is_allocated()); + } + // Test creation via create_scatter_view { orig_view_def original_view("original_view", n); scatter_view_def scatter_view = Kokkos::Experimental::create_scatter_view< - op, duplication, contribution>(original_view); + Op, Duplication, Contribution>(original_view); - test_scatter_view_impl_cls + test_scatter_view_impl_cls + scatter_view_test_impl(scatter_view); + scatter_view_test_impl.initialize(original_view); + scatter_view_test_impl.run_parallel(n); + + Kokkos::Experimental::contribute(original_view, scatter_view); + scatter_view.reset_except(original_view); + + scatter_view_test_impl.run_parallel(n); + + Kokkos::Experimental::contribute(original_view, scatter_view); + Kokkos::fence(); + + scatter_view_test_impl.validateResults(original_view); + + { + scatter_view_def persistent_view("persistent", n); + auto result_view = persistent_view.subview(); + contribute(result_view, persistent_view); + Kokkos::fence(); + } + } + // Test creation via create_scatter_view overload 2 + { + orig_view_def original_view("original_view", n); + scatter_view_def scatter_view = Kokkos::Experimental::create_scatter_view( + Op{}, Duplication{}, Contribution{}, original_view); + + test_scatter_view_impl_cls scatter_view_test_impl(scatter_view); scatter_view_test_impl.initialize(original_view); scatter_view_test_impl.run_parallel(n); @@ -380,8 +519,8 @@ struct test_scatter_view_config { orig_view_def original_view("original_view", n); scatter_view_def scatter_view(original_view); - test_scatter_view_impl_cls + test_scatter_view_impl_cls scatter_view_test_impl(scatter_view); scatter_view_test_impl.initialize(original_view); scatter_view_test_impl.run_parallel(n); @@ -406,19 +545,19 @@ struct test_scatter_view_config { } }; -template +template struct TestDuplicatedScatterView { TestDuplicatedScatterView(int n) { // ScatterSum test test_scatter_view_config + ScatterType, NumberType> test_sv_right_config; test_sv_right_config.run_test(n); test_scatter_view_config< DeviceType, Kokkos::LayoutLeft, Kokkos::Experimental::ScatterDuplicated, - Kokkos::Experimental::ScatterNonAtomic, ScatterType> + Kokkos::Experimental::ScatterNonAtomic, ScatterType, NumberType> test_sv_left_config; test_sv_left_config.run_test(n); } @@ -427,18 +566,19 @@ struct TestDuplicatedScatterView { #ifdef KOKKOS_ENABLE_CUDA // disable duplicated instantiation with CUDA until // UniqueToken can support it -template -struct TestDuplicatedScatterView { +template +struct TestDuplicatedScatterView { TestDuplicatedScatterView(int) {} }; -template +template struct TestDuplicatedScatterView< - Kokkos::Device, ScatterType> { + Kokkos::Device, ScatterType, NumberType> { TestDuplicatedScatterView(int) {} }; -template +template struct TestDuplicatedScatterView< - Kokkos::Device, ScatterType> { + Kokkos::Device, ScatterType, + NumberType> { TestDuplicatedScatterView(int) {} }; #endif @@ -446,13 +586,14 @@ struct TestDuplicatedScatterView< #ifdef KOKKOS_ENABLE_ROCM // disable duplicated instantiation with ROCm until // UniqueToken can support it -template +template struct TestDuplicatedScatterView { TestDuplicatedScatterView(int) {} }; #endif -template +template void test_scatter_view(int n) { using execution_space = typename DeviceType::execution_space; @@ -463,7 +604,7 @@ void test_scatter_view(int n) { test_scatter_view_config + ScatterType, NumberType> test_sv_config; test_sv_config.run_test(n); } @@ -472,30 +613,40 @@ void test_scatter_view(int n) { #endif test_scatter_view_config + Kokkos::Experimental::ScatterAtomic, ScatterType, + NumberType> test_sv_config; test_sv_config.run_test(n); #ifdef KOKKOS_ENABLE_SERIAL } #endif // with hundreds of threads we were running out of memory. - // limit (n) so that duplication doesn't exceed 8GB + // limit (n) so that duplication doesn't exceed 4GB constexpr std::size_t maximum_allowed_total_bytes = - 8ull * 1024ull * 1024ull * 1024ull; + 4ull * 1024ull * 1024ull * 1024ull; std::size_t const maximum_allowed_copy_bytes = maximum_allowed_total_bytes / std::size_t(execution_space().concurrency()); - constexpr std::size_t bytes_per_value = sizeof(double) * 3; + constexpr std::size_t bytes_per_value = sizeof(NumberType) * 12; std::size_t const maximum_allowed_copy_values = maximum_allowed_copy_bytes / bytes_per_value; n = std::min(n, int(maximum_allowed_copy_values)); - TestDuplicatedScatterView duptest(n); + + // if the default is duplicated, this needs to follow the limit + { + test_default_scatter_view + test_default_sv; + test_default_sv.run_test(n); + } + TestDuplicatedScatterView duptest(n); } -// FIXME_HIP ScatterView requires UniqueToken -#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, scatterview) { - test_scatter_view(10); + test_scatter_view( + 10); + test_scatter_view(10); test_scatter_view(10); test_scatter_view(10); test_scatter_view(10); @@ -512,7 +663,10 @@ TEST(TEST_CATEGORY, scatterview) { #endif #endif - test_scatter_view(big_n); + test_scatter_view( + big_n); + test_scatter_view(big_n); test_scatter_view(big_n); test_scatter_view(big_n); test_scatter_view(big_n); @@ -522,7 +676,9 @@ TEST(TEST_CATEGORY, scatterview_devicetype) { using device_type = Kokkos::Device; - test_scatter_view(10); + test_scatter_view(10); + test_scatter_view(10); test_scatter_view(10); test_scatter_view(10); test_scatter_view(10); @@ -530,14 +686,19 @@ TEST(TEST_CATEGORY, scatterview_devicetype) { #ifdef KOKKOS_ENABLE_CUDA if (std::is_same::value) { using cuda_device_type = Kokkos::Device; - test_scatter_view(10); + test_scatter_view(10); + test_scatter_view(10); test_scatter_view(10); test_scatter_view(10); test_scatter_view(10); using cudauvm_device_type = Kokkos::Device; - test_scatter_view( - 10); + test_scatter_view(10); + test_scatter_view(10); test_scatter_view( 10); test_scatter_view( @@ -547,7 +708,6 @@ TEST(TEST_CATEGORY, scatterview_devicetype) { } #endif } -#endif } // namespace Test diff --git a/lib/kokkos/containers/unit_tests/TestStaticCrsGraph.hpp b/lib/kokkos/containers/unit_tests/TestStaticCrsGraph.hpp index 15c190242c..89c69756d8 100644 --- a/lib/kokkos/containers/unit_tests/TestStaticCrsGraph.hpp +++ b/lib/kokkos/containers/unit_tests/TestStaticCrsGraph.hpp @@ -55,12 +55,10 @@ namespace TestStaticCrsGraph { template void run_test_graph() { - typedef Kokkos::StaticCrsGraph dView; - typedef typename dView::HostMirror hView; + using dView = Kokkos::StaticCrsGraph; + using hView = typename dView::HostMirror; const unsigned LENGTH = 1000; - dView dx; - hView hx; std::vector > graph(LENGTH); @@ -71,6 +69,23 @@ void run_test_graph() { } } + { + dView d1; + ASSERT_FALSE(d1.is_allocated()); + + d1 = Kokkos::create_staticcrsgraph("d1", graph); + + dView d2(d1); + dView d3(d1.entries, d1.row_map); + + ASSERT_TRUE(d1.is_allocated()); + ASSERT_TRUE(d2.is_allocated()); + ASSERT_TRUE(d3.is_allocated()); + } + + dView dx; + hView hx; + dx = Kokkos::create_staticcrsgraph("dx", graph); hx = Kokkos::create_mirror(dx); @@ -98,8 +113,8 @@ void run_test_graph() { template void run_test_graph2() { - typedef Kokkos::StaticCrsGraph dView; - typedef typename dView::HostMirror hView; + using dView = Kokkos::StaticCrsGraph; + using hView = typename dView::HostMirror; const unsigned LENGTH = 10; @@ -158,8 +173,8 @@ template void run_test_graph3(size_t B, size_t N) { srand(10310); - typedef Kokkos::StaticCrsGraph dView; - typedef typename dView::HostMirror hView; + using dView = Kokkos::StaticCrsGraph; + using hView = typename dView::HostMirror; const unsigned LENGTH = 2000; @@ -197,20 +212,13 @@ void run_test_graph3(size_t B, size_t N) { template void run_test_graph4() { - typedef unsigned ordinal_type; - typedef Kokkos::LayoutRight layout_type; - typedef Space space_type; - typedef Kokkos::MemoryUnmanaged memory_traits_type; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - typedef Kokkos::StaticCrsGraph - dView; -#else - typedef Kokkos::StaticCrsGraph - dView; -#endif - typedef typename dView::HostMirror hView; + using ordinal_type = unsigned; + using layout_type = Kokkos::LayoutRight; + using space_type = Space; + using memory_traits_type = Kokkos::MemoryUnmanaged; + using dView = Kokkos::StaticCrsGraph; + using hView = typename dView::HostMirror; dView dx; @@ -227,8 +235,8 @@ void run_test_graph4() { // of the unmanaged StaticCrsGraph // Data types for raw pointers storing StaticCrsGraph info - typedef typename dView::size_type ptr_row_map_type; - typedef typename dView::data_type ptr_entries_type; + using ptr_row_map_type = typename dView::size_type; + using ptr_entries_type = typename dView::data_type; const ordinal_type numRows = 8; const ordinal_type nnz = 24; @@ -237,8 +245,8 @@ void run_test_graph4() { 4, 5, 4, 5, 2, 3, 6, 7, 2, 3, 6, 7}; // Wrap pointers in unmanaged host views - typedef typename hView::row_map_type local_row_map_type; - typedef typename hView::entries_type local_entries_type; + using local_row_map_type = typename hView::row_map_type; + using local_entries_type = typename hView::entries_type; local_row_map_type unman_row_map(&(ptrRaw[0]), numRows + 1); local_entries_type unman_entries(&(indRaw[0]), nnz); @@ -248,10 +256,10 @@ void run_test_graph4() { // Create the device Views for copying the host arrays into // An allocation is needed on the device for the unmanaged StaticCrsGraph to // wrap the pointer - typedef typename Kokkos::View - d_row_map_view_type; - typedef typename Kokkos::View - d_entries_view_type; + using d_row_map_view_type = + typename Kokkos::View; + using d_entries_view_type = + typename Kokkos::View; d_row_map_view_type tmp_row_map("tmp_row_map", numRows + 1); d_entries_view_type tmp_entries("tmp_entries", nnz); diff --git a/lib/kokkos/containers/unit_tests/TestUnorderedMap.hpp b/lib/kokkos/containers/unit_tests/TestUnorderedMap.hpp index 3ec3a4e5ec..d39e0061c7 100644 --- a/lib/kokkos/containers/unit_tests/TestUnorderedMap.hpp +++ b/lib/kokkos/containers/unit_tests/TestUnorderedMap.hpp @@ -53,9 +53,9 @@ namespace Impl { template struct TestInsert { - typedef MapType map_type; - typedef typename map_type::execution_space execution_space; - typedef uint32_t value_type; + using map_type = MapType; + using execution_space = typename map_type::execution_space; + using value_type = uint32_t; map_type map; uint32_t inserts; @@ -101,10 +101,10 @@ struct TestInsert { template struct TestErase { - typedef TestErase self_type; + using self_type = TestErase; - typedef MapType map_type; - typedef typename MapType::execution_space execution_space; + using map_type = MapType; + using execution_space = typename MapType::execution_space; map_type m_map; uint32_t m_num_erase; @@ -131,9 +131,9 @@ struct TestErase { template struct TestFind { - typedef MapType map_type; - typedef typename MapType::execution_space::execution_space execution_space; - typedef uint32_t value_type; + using map_type = MapType; + using execution_space = typename MapType::execution_space::execution_space; + using value_type = uint32_t; map_type m_map; uint32_t m_num_insert; @@ -180,9 +180,9 @@ struct TestFind { template void test_insert(uint32_t num_nodes, uint32_t num_inserts, uint32_t num_duplicates, bool near) { - typedef Kokkos::UnorderedMap map_type; - typedef Kokkos::UnorderedMap - const_map_type; + using map_type = Kokkos::UnorderedMap; + using const_map_type = + Kokkos::UnorderedMap; const uint32_t expected_inserts = (num_inserts + num_duplicates - 1u) / num_duplicates; @@ -232,7 +232,7 @@ void test_insert(uint32_t num_nodes, uint32_t num_inserts, template void test_failed_insert(uint32_t num_nodes) { - typedef Kokkos::UnorderedMap map_type; + using map_type = Kokkos::UnorderedMap; map_type map(num_nodes); Impl::TestInsert test_insert(map, 2u * num_nodes, 1u); @@ -244,13 +244,11 @@ void test_failed_insert(uint32_t num_nodes) { template void test_deep_copy(uint32_t num_nodes) { - typedef Kokkos::UnorderedMap map_type; - typedef Kokkos::UnorderedMap - const_map_type; + using map_type = Kokkos::UnorderedMap; + using const_map_type = + Kokkos::UnorderedMap; - typedef typename map_type::HostMirror host_map_type; - // typedef Kokkos::UnorderedMap host_map_type; + using host_map_type = typename map_type::HostMirror; map_type map; map.rehash(num_nodes, false); @@ -295,7 +293,7 @@ void test_deep_copy(uint32_t num_nodes) { } } -// FIXME_HIP deadlock +// FIXME_HIP wrong result in CI but works locally #ifndef KOKKOS_ENABLE_HIP // WORKAROUND MSVC #ifndef _WIN32 @@ -306,6 +304,7 @@ TEST(TEST_CATEGORY, UnorderedMap_insert) { } } #endif +#endif TEST(TEST_CATEGORY, UnorderedMap_failed_insert) { for (int i = 0; i < 1000; ++i) test_failed_insert(10000); @@ -314,7 +313,6 @@ TEST(TEST_CATEGORY, UnorderedMap_failed_insert) { TEST(TEST_CATEGORY, UnorderedMap_deep_copy) { for (int i = 0; i < 2; ++i) test_deep_copy(10000); } -#endif TEST(TEST_CATEGORY, UnorderedMap_valid_empty) { using Key = int; @@ -326,6 +324,8 @@ TEST(TEST_CATEGORY, UnorderedMap_valid_empty) { n = Map{m.capacity()}; n.rehash(m.capacity()); Kokkos::deep_copy(n, m); + ASSERT_TRUE(m.is_allocated()); + ASSERT_TRUE(n.is_allocated()); } } // namespace Test diff --git a/lib/kokkos/containers/unit_tests/TestVector.hpp b/lib/kokkos/containers/unit_tests/TestVector.hpp index 4174a477c4..296b9a7e64 100644 --- a/lib/kokkos/containers/unit_tests/TestVector.hpp +++ b/lib/kokkos/containers/unit_tests/TestVector.hpp @@ -55,14 +55,17 @@ namespace Impl { template struct test_vector_insert { - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; template void run_test(Vector& a) { int n = a.size(); auto it = a.begin(); + if (n > 0) { + ASSERT_EQ(a.data(), &a[0]); + } it += 15; ASSERT_EQ(*it, scalar_type(1)); @@ -172,12 +175,43 @@ struct test_vector_insert { } }; +template +struct test_vector_allocate { + using self_type = test_vector_allocate; + + using scalar_type = Scalar; + using execution_space = Device; + + bool result = false; + + template + Scalar run_me(unsigned int n) { + { + Vector v1; + if (v1.is_allocated() == true) return false; + + v1 = Vector(n, 1); + Vector v2(v1); + Vector v3(n, 1); + + if (v1.is_allocated() == false) return false; + if (v2.is_allocated() == false) return false; + if (v3.is_allocated() == false) return false; + } + return true; + } + + test_vector_allocate(unsigned int size) { + result = run_me >(size); + } +}; + template struct test_vector_combinations { - typedef test_vector_combinations self_type; + using self_type = test_vector_combinations; - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; Scalar reference; Scalar result; @@ -231,7 +265,14 @@ void test_vector_combinations(unsigned int size) { ASSERT_EQ(test.reference, test.result); } +template +void test_vector_allocate(unsigned int size) { + Impl::test_vector_allocate test(size); + ASSERT_TRUE(test.result); +} + TEST(TEST_CATEGORY, vector_combination) { + test_vector_allocate(10); test_vector_combinations(10); test_vector_combinations(3057); } diff --git a/lib/kokkos/containers/unit_tests/TestViewCtorPropEmbeddedDim.hpp b/lib/kokkos/containers/unit_tests/TestViewCtorPropEmbeddedDim.hpp index 3f7d4101f7..d402160ef4 100644 --- a/lib/kokkos/containers/unit_tests/TestViewCtorPropEmbeddedDim.hpp +++ b/lib/kokkos/containers/unit_tests/TestViewCtorPropEmbeddedDim.hpp @@ -91,10 +91,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Two views auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1, vd1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg @@ -128,10 +128,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Single view auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg @@ -161,10 +161,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Two views auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1, vd1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg @@ -182,10 +182,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Single views auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg diff --git a/lib/kokkos/core/CMakeLists.txt b/lib/kokkos/core/CMakeLists.txt index 8df72dfc90..68d3f83319 100644 --- a/lib/kokkos/core/CMakeLists.txt +++ b/lib/kokkos/core/CMakeLists.txt @@ -2,7 +2,9 @@ KOKKOS_SUBPACKAGE(Core) -ADD_SUBDIRECTORY(src) +IF (NOT Kokkos_INSTALL_TESTING) + ADD_SUBDIRECTORY(src) +ENDIF() KOKKOS_ADD_TEST_DIRECTORIES(unit_test) KOKKOS_ADD_TEST_DIRECTORIES(perf_test) diff --git a/lib/kokkos/core/cmake/KokkosCore_config.h.in b/lib/kokkos/core/cmake/KokkosCore_config.h.in index 095c869a32..e930f6a05e 100644 --- a/lib/kokkos/core/cmake/KokkosCore_config.h.in +++ b/lib/kokkos/core/cmake/KokkosCore_config.h.in @@ -6,7 +6,8 @@ #if !defined(KOKKOS_FOR_SIERRA) #if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Don't include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." +#error \ + "Don't include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." #else #define KOKKOS_CORE_CONFIG_H #endif @@ -25,8 +26,8 @@ #cmakedefine KOKKOS_ENABLE_DEBUG #cmakedefine KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK #cmakedefine KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK -#cmakedefine KOKKOS_ENABLE_PROFILING #cmakedefine KOKKOS_ENABLE_PROFILING_LOAD_PRINT +#cmakedefine KOKKOS_ENABLE_TUNING #cmakedefine KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION @@ -38,7 +39,8 @@ // any value of KOKKOS_USE_CUDA_UVM here. Doing this should prevent build // warnings like this one: // -// packages/kokkos/core/src/KokkosCore_config.h:13:1: warning: "KOKKOS_USE_CUDA_UVM" redefined +// packages/kokkos/core/src/KokkosCore_config.h:13:1: warning: +// "KOKKOS_USE_CUDA_UVM" redefined // // At some point, we should edit the test-build scripts in // Trilinos/cmake/ctest/drivers/perseus/, and take @@ -100,4 +102,4 @@ #cmakedefine KOKKOS_USING_DEPRECATED_VIEW #cmakedefine KOKKOS_ENABLE_CXX11 -#endif // !defined(KOKKOS_FOR_SIERRA) +#endif // !defined(KOKKOS_FOR_SIERRA) diff --git a/lib/kokkos/core/perf_test/CMakeLists.txt b/lib/kokkos/core/perf_test/CMakeLists.txt index ca695e2700..f55721e04a 100644 --- a/lib/kokkos/core/perf_test/CMakeLists.txt +++ b/lib/kokkos/core/perf_test/CMakeLists.txt @@ -49,11 +49,19 @@ SET(SOURCES ) IF(Kokkos_ENABLE_HIP) -# FIXME requires TeamPolicy +# FIXME HIP requires TeamPolicy LIST(REMOVE_ITEM SOURCES PerfTest_CustomReduction.cpp PerfTest_ExecSpacePartitioning.cpp - ) + ) +ENDIF() + +IF(Kokkos_ENABLE_OPENMPTARGET) +# FIXME OPENMPTARGET requires TeamPolicy Reductions and Custom Reduction + LIST(REMOVE_ITEM SOURCES + PerfTest_CustomReduction.cpp + PerfTest_ExecSpacePartitioning.cpp + ) ENDIF() # Per #374, we always want to build this test, but we only want to run @@ -76,7 +84,22 @@ IF(NOT KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") ENDIF() KOKKOS_ADD_EXECUTABLE_AND_TEST( - PerformanceTest_TaskDag - SOURCES test_taskdag.cpp + PerformanceTest_Atomic + SOURCES test_atomic.cpp + CATEGORIES PERFORMANCE +) + +KOKKOS_ADD_EXECUTABLE_AND_TEST( + PerformanceTest_Mempool + SOURCES test_mempool.cpp CATEGORIES PERFORMANCE ) + +IF(NOT Kokkos_ENABLE_OPENMPTARGET) +# FIXME OPENMPTARGET needs tasking + KOKKOS_ADD_EXECUTABLE_AND_TEST( + PerformanceTest_TaskDag + SOURCES test_taskdag.cpp + CATEGORIES PERFORMANCE + ) +ENDIF() diff --git a/lib/kokkos/core/perf_test/Makefile b/lib/kokkos/core/perf_test/Makefile index ca98ca6dde..6d619dc573 100644 --- a/lib/kokkos/core/perf_test/Makefile +++ b/lib/kokkos/core/perf_test/Makefile @@ -53,7 +53,6 @@ TEST_TARGETS += test-atomic # -ifneq ($(KOKKOS_INTERNAL_USE_ROCM), 1) OBJ_MEMPOOL = test_mempool.o TARGETS += KokkosCore_PerformanceTest_Mempool TEST_TARGETS += test-mempool @@ -63,7 +62,6 @@ TEST_TARGETS += test-mempool OBJ_TASKDAG = test_taskdag.o TARGETS += KokkosCore_PerformanceTest_TaskDAG TEST_TARGETS += test-taskdag -endif # diff --git a/lib/kokkos/core/perf_test/PerfTestBlasKernels.hpp b/lib/kokkos/core/perf_test/PerfTestBlasKernels.hpp index 2717b133bd..e133dafa36 100644 --- a/lib/kokkos/core/perf_test/PerfTestBlasKernels.hpp +++ b/lib/kokkos/core/perf_test/PerfTestBlasKernels.hpp @@ -51,12 +51,12 @@ namespace Kokkos { template struct Dot { - typedef typename Type::execution_space execution_space; + using execution_space = typename Type::execution_space; static_assert(static_cast(Type::Rank) == static_cast(1), "Dot static_assert Fail: Rank != 1"); - typedef double value_type; + using value_type = double; #if 1 typename Type::const_type X; @@ -83,12 +83,12 @@ struct Dot { template struct DotSingle { - typedef typename Type::execution_space execution_space; + using execution_space = typename Type::execution_space; static_assert(static_cast(Type::Rank) == static_cast(1), "DotSingle static_assert Fail: Rank != 1"); - typedef double value_type; + using value_type = double; #if 1 typename Type::const_type X; @@ -116,7 +116,7 @@ struct DotSingle { template struct Scale { - typedef typename VectorType::execution_space execution_space; + using execution_space = typename VectorType::execution_space; static_assert(static_cast(ScalarType::Rank) == static_cast(0), @@ -143,7 +143,7 @@ struct Scale { template struct AXPBY { - typedef typename VectorType::execution_space execution_space; + using execution_space = typename VectorType::execution_space; static_assert(static_cast(ScalarType::Rank) == static_cast(0), @@ -185,7 +185,7 @@ namespace Kokkos { template void axpby(const ConstScalarType& alpha, const ConstVectorType& X, const ConstScalarType& beta, const VectorType& Y) { - typedef AXPBY functor; + using functor = AXPBY; parallel_for(Y.extent(0), functor(alpha, X, beta, Y)); } @@ -193,7 +193,7 @@ void axpby(const ConstScalarType& alpha, const ConstVectorType& X, /** \brief Y *= alpha */ template void scale(const ConstScalarType& alpha, const VectorType& Y) { - typedef Scale functor; + using functor = Scale; parallel_for(Y.extent(0), functor(alpha, Y)); } @@ -201,14 +201,14 @@ void scale(const ConstScalarType& alpha, const VectorType& Y) { template void dot(const ConstVectorType& X, const ConstVectorType& Y, const Finalize& finalize) { - typedef Dot functor; + using functor = Dot; parallel_reduce(X.extent(0), functor(X, Y), finalize); } template void dot(const ConstVectorType& X, const Finalize& finalize) { - typedef DotSingle functor; + using functor = DotSingle; parallel_reduce(X.extent(0), functor(X), finalize); } diff --git a/lib/kokkos/core/perf_test/PerfTestGramSchmidt.cpp b/lib/kokkos/core/perf_test/PerfTestGramSchmidt.cpp index 0916b230ec..70186283c1 100644 --- a/lib/kokkos/core/perf_test/PerfTestGramSchmidt.cpp +++ b/lib/kokkos/core/perf_test/PerfTestGramSchmidt.cpp @@ -58,7 +58,7 @@ namespace Test { // PostProcess : R(j,j) = result ; inv = 1 / result ; template struct InvNorm2 : public Kokkos::DotSingle { - typedef typename Kokkos::DotSingle::value_type value_type; + using value_type = typename Kokkos::DotSingle::value_type; ValueView Rjj; ValueView inv; @@ -69,10 +69,7 @@ struct InvNorm2 : public Kokkos::DotSingle { KOKKOS_INLINE_FUNCTION void final(value_type& result) const { -#ifndef KOKKOS_ENABLE_HIP // FIXME_HIP - using std::sqrt; -#endif - result = sqrt(result); + result = std::sqrt(result); Rjj() = result; inv() = (0 < result) ? 1.0 / result : 0; } @@ -88,7 +85,7 @@ inline void invnorm2(const VectorView& x, const ValueView& r, // PostProcess : tmp = - ( R(j,k) = result ); template struct DotM : public Kokkos::Dot { - typedef typename Kokkos::Dot::value_type value_type; + using value_type = typename Kokkos::Dot::value_type; ValueView Rjk; ValueView tmp; @@ -113,16 +110,16 @@ inline void dot_neg(const VectorView& x, const VectorView& y, template struct ModifiedGramSchmidt { - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; - typedef Kokkos::View - multivector_type; + using multivector_type = + Kokkos::View; - typedef Kokkos::View - vector_type; + using vector_type = + Kokkos::View; - typedef Kokkos::View value_view; + using value_view = Kokkos::View; multivector_type Q; multivector_type R; @@ -243,9 +240,9 @@ TEST(default_exec, gramschmidt) { int exp_end = 20; int num_trials = 5; - if (command_line_num_args() > 1) exp_beg = atoi(command_line_arg(1)); - if (command_line_num_args() > 2) exp_end = atoi(command_line_arg(2)); - if (command_line_num_args() > 3) num_trials = atoi(command_line_arg(3)); + if (command_line_num_args() > 1) exp_beg = std::stoi(command_line_arg(1)); + if (command_line_num_args() > 2) exp_end = std::stoi(command_line_arg(2)); + if (command_line_num_args() > 3) num_trials = std::stoi(command_line_arg(3)); EXPECT_NO_THROW(run_test_gramschmidt( exp_beg, exp_end, num_trials, Kokkos::DefaultExecutionSpace::name())); diff --git a/lib/kokkos/core/perf_test/PerfTestHexGrad.cpp b/lib/kokkos/core/perf_test/PerfTestHexGrad.cpp index d879282867..c431c2b0c8 100644 --- a/lib/kokkos/core/perf_test/PerfTestHexGrad.cpp +++ b/lib/kokkos/core/perf_test/PerfTestHexGrad.cpp @@ -51,20 +51,20 @@ namespace Test { template struct HexGrad { - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; - typedef HexGrad self_type; + using self_type = HexGrad; // 3D array : ( ParallelWork , Space , Node ) enum { NSpace = 3, NNode = 8 }; - typedef Kokkos::View - elem_coord_type; + using elem_coord_type = + Kokkos::View; - typedef Kokkos::View - elem_grad_type; + using elem_grad_type = + Kokkos::View; elem_coord_type coords; elem_grad_type grad_op; @@ -179,7 +179,7 @@ struct HexGrad { //-------------------------------------------------------------------------- struct Init { - typedef typename self_type::execution_space execution_space; + using execution_space = typename self_type::execution_space; elem_coord_type coords; @@ -289,9 +289,9 @@ TEST(default_exec, hexgrad) { int exp_end = 20; int num_trials = 5; - if (command_line_num_args() > 1) exp_beg = atoi(command_line_arg(1)); - if (command_line_num_args() > 2) exp_end = atoi(command_line_arg(2)); - if (command_line_num_args() > 3) num_trials = atoi(command_line_arg(3)); + if (command_line_num_args() > 1) exp_beg = std::stoi(command_line_arg(1)); + if (command_line_num_args() > 2) exp_end = std::stoi(command_line_arg(2)); + if (command_line_num_args() > 3) num_trials = std::stoi(command_line_arg(3)); EXPECT_NO_THROW(run_test_hexgrad( exp_beg, exp_end, num_trials, Kokkos::DefaultExecutionSpace::name())); diff --git a/lib/kokkos/core/perf_test/PerfTestMDRange.hpp b/lib/kokkos/core/perf_test/PerfTestMDRange.hpp index 3afff96ff3..ec0452d5f1 100644 --- a/lib/kokkos/core/perf_test/PerfTestMDRange.hpp +++ b/lib/kokkos/core/perf_test/PerfTestMDRange.hpp @@ -46,13 +46,13 @@ namespace Test { template struct MultiDimRangePerf3D { - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; using iterate_type = Kokkos::Iterate; - typedef Kokkos::View view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View; + using host_view_type = typename view_type::HostMirror; view_type A; view_type B; @@ -108,8 +108,8 @@ struct MultiDimRangePerf3D { // This test performs multidim range over all dims view_type Atest("Atest", icount, jcount, kcount); view_type Btest("Btest", icount + 2, jcount + 2, kcount + 2); - typedef MultiDimRangePerf3D - FunctorType; + using FunctorType = + MultiDimRangePerf3D; double dt_min = 0; @@ -125,10 +125,9 @@ struct MultiDimRangePerf3D { policy_initB({{0, 0, 0}}, {{icount + 2, jcount + 2, kcount + 2}}, {{Ti, Tj, Tk}}); - typedef typename Kokkos::MDRangePolicy< + using MDRangeType = typename Kokkos::MDRangePolicy< Kokkos::Rank<3, iterate_type::Right, iterate_type::Right>, - execution_space> - MDRangeType; + execution_space>; using tile_type = typename MDRangeType::tile_type; using point_type = typename MDRangeType::point_type; @@ -216,14 +215,15 @@ struct MultiDimRangePerf3D { policy_initB({{0, 0, 0}}, {{icount + 2, jcount + 2, kcount + 2}}, {{Ti, Tj, Tk}}); - // typedef typename Kokkos::MDRangePolicy, execution_space > MDRangeType; + // using MDRangeType = + // typename Kokkos::MDRangePolicy< + // Kokkos::Rank<3, iterate_type::Left, iterate_type::Left>, + // execution_space >; // using tile_type = typename MDRangeType::tile_type; // using point_type = typename MDRangeType::point_type; - // Kokkos::MDRangePolicy, execution_space > - // policy(point_type{{0,0,0}},point_type{{icount,jcount,kcount}},tile_type{{Ti,Tj,Tk}} - // ); + // MDRangeType policy(point_type{{0,0,0}}, + // point_type{{icount,jcount,kcount}}, + // tile_type{{Ti,Tj,Tk}}); Kokkos::MDRangePolicy< Kokkos::Rank<3, iterate_type::Left, iterate_type::Left>, execution_space> @@ -306,14 +306,14 @@ struct RangePolicyCollapseTwo { // RangePolicy for 3D range, but will collapse only 2 dims => like Rank<2> for // multi-dim; unroll 2 dims in one-dim - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; - typedef TestLayout layout; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; + using layout = TestLayout; using iterate_type = Kokkos::Iterate; - typedef Kokkos::View view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View; + using host_view_type = typename view_type::HostMirror; view_type A; view_type B; @@ -388,8 +388,8 @@ struct RangePolicyCollapseTwo { // This test refers to collapsing two dims while using the RangePolicy view_type Atest("Atest", icount, jcount, kcount); view_type Btest("Btest", icount + 2, jcount + 2, kcount + 2); - typedef RangePolicyCollapseTwo - FunctorType; + using FunctorType = + RangePolicyCollapseTwo; long collapse_index_rangeA = 0; long collapse_index_rangeB = 0; @@ -480,12 +480,12 @@ template view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View; + using host_view_type = typename view_type::HostMirror; view_type A; view_type B; @@ -552,8 +552,8 @@ struct RangePolicyCollapseAll { // This test refers to collapsing all dims using the RangePolicy view_type Atest("Atest", icount, jcount, kcount); view_type Btest("Btest", icount + 2, jcount + 2, kcount + 2); - typedef RangePolicyCollapseAll - FunctorType; + using FunctorType = + RangePolicyCollapseAll; const long flat_index_range = icount * jcount * kcount; Kokkos::RangePolicy policy(0, flat_index_range); diff --git a/lib/kokkos/core/perf_test/PerfTest_CustomReduction.cpp b/lib/kokkos/core/perf_test/PerfTest_CustomReduction.cpp index 75ca4a0d5a..1ab76d6e54 100644 --- a/lib/kokkos/core/perf_test/PerfTest_CustomReduction.cpp +++ b/lib/kokkos/core/perf_test/PerfTest_CustomReduction.cpp @@ -129,9 +129,9 @@ TEST(default_exec, custom_reduction) { int R = 1000; int num_trials = 1; - if (command_line_num_args() > 1) N = atoi(command_line_arg(1)); - if (command_line_num_args() > 2) R = atoi(command_line_arg(2)); - if (command_line_num_args() > 3) num_trials = atoi(command_line_arg(3)); + if (command_line_num_args() > 1) N = std::stoi(command_line_arg(1)); + if (command_line_num_args() > 2) R = std::stoi(command_line_arg(2)); + if (command_line_num_args() > 3) num_trials = std::stoi(command_line_arg(3)); custom_reduction_test(N, R, num_trials); } } // namespace Test diff --git a/lib/kokkos/core/perf_test/PerfTest_ExecSpacePartitioning.cpp b/lib/kokkos/core/perf_test/PerfTest_ExecSpacePartitioning.cpp index c6d5b2b8d6..50bbc78a6b 100644 --- a/lib/kokkos/core/perf_test/PerfTest_ExecSpacePartitioning.cpp +++ b/lib/kokkos/core/perf_test/PerfTest_ExecSpacePartitioning.cpp @@ -29,7 +29,7 @@ struct SpaceInstance { bool value = true; auto local_rank_str = std::getenv("CUDA_LAUNCH_BLOCKING"); if (local_rank_str) { - value = (std::atoi(local_rank_str) == 0); + value = (std::stoi(local_rank_str) == 0); } return value; } diff --git a/lib/kokkos/core/perf_test/test_atomic.cpp b/lib/kokkos/core/perf_test/test_atomic.cpp index 7699d7b91c..59820f3bdd 100644 --- a/lib/kokkos/core/perf_test/test_atomic.cpp +++ b/lib/kokkos/core/perf_test/test_atomic.cpp @@ -49,7 +49,7 @@ #include #include -typedef Kokkos::DefaultExecutionSpace exec_space; +using exec_space = Kokkos::DefaultExecutionSpace; #define RESET 0 #define BRIGHT 1 @@ -80,9 +80,9 @@ void textcolor_standard() { textcolor(RESET, BLACK, WHITE); } template struct ZeroFunctor { - typedef DEVICE_TYPE execution_space; - typedef typename Kokkos::View type; - typedef typename Kokkos::View::HostMirror h_type; + using execution_space = DEVICE_TYPE; + using type = typename Kokkos::View; + using h_type = typename Kokkos::View::HostMirror; type data; KOKKOS_INLINE_FUNCTION void operator()(int) const { data() = 0; } @@ -94,8 +94,8 @@ struct ZeroFunctor { template struct AddFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; KOKKOS_INLINE_FUNCTION @@ -123,8 +123,8 @@ T AddLoop(int loop) { template struct AddNonAtomicFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; KOKKOS_INLINE_FUNCTION @@ -166,8 +166,8 @@ T AddLoopSerial(int loop) { template struct CASFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; KOKKOS_INLINE_FUNCTION @@ -204,8 +204,8 @@ T CASLoop(int loop) { template struct CASNonAtomicFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; KOKKOS_INLINE_FUNCTION @@ -268,8 +268,8 @@ T CASLoopSerial(int loop) { template struct ExchFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data, data2; KOKKOS_INLINE_FUNCTION @@ -309,8 +309,8 @@ T ExchLoop(int loop) { template struct ExchNonAtomicFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data, data2; KOKKOS_INLINE_FUNCTION @@ -448,15 +448,15 @@ int main(int argc, char* argv[]) { for (int i = 0; i < argc; i++) { if ((strcmp(argv[i], "--test") == 0)) { - test = atoi(argv[++i]); + test = std::stoi(argv[++i]); continue; } if ((strcmp(argv[i], "--type") == 0)) { - type = atoi(argv[++i]); + type = std::stoi(argv[++i]); continue; } if ((strcmp(argv[i], "-l") == 0) || (strcmp(argv[i], "--loop") == 0)) { - loop = atoi(argv[++i]); + loop = std::stoi(argv[++i]); continue; } } diff --git a/lib/kokkos/core/perf_test/test_mempool.cpp b/lib/kokkos/core/perf_test/test_mempool.cpp index ad8622e7a6..9aab119774 100644 --- a/lib/kokkos/core/perf_test/test_mempool.cpp +++ b/lib/kokkos/core/perf_test/test_mempool.cpp @@ -56,7 +56,7 @@ using MemorySpace = Kokkos::DefaultExecutionSpace::memory_space; using MemoryPool = Kokkos::MemoryPool; struct TestFunctor { - typedef Kokkos::View ptrs_type; + using ptrs_type = Kokkos::View; enum : unsigned { chunk = 32 }; @@ -87,7 +87,7 @@ struct TestFunctor { //---------------------------------------- - typedef long value_type; + using value_type = long; //---------------------------------------- @@ -107,7 +107,7 @@ struct TestFunctor { } bool test_fill() { - typedef Kokkos::RangePolicy policy; + using policy = Kokkos::RangePolicy; long result = 0; @@ -134,7 +134,7 @@ struct TestFunctor { } void test_del() { - typedef Kokkos::RangePolicy policy; + using policy = Kokkos::RangePolicy; Kokkos::parallel_for(policy(0, range_iter), *this); Kokkos::fence(); @@ -164,7 +164,7 @@ struct TestFunctor { } bool test_alloc_dealloc() { - typedef Kokkos::RangePolicy policy; + using policy = Kokkos::RangePolicy; long error_count = 0; @@ -203,22 +203,22 @@ int main(int argc, char* argv[]) { total_alloc_size = atol(a + strlen(alloc_size_flag)); if (!strncmp(a, super_size_flag, strlen(super_size_flag))) - min_superblock_size = atoi(a + strlen(super_size_flag)); + min_superblock_size = std::stoi(a + strlen(super_size_flag)); if (!strncmp(a, fill_stride_flag, strlen(fill_stride_flag))) - fill_stride = atoi(a + strlen(fill_stride_flag)); + fill_stride = std::stoi(a + strlen(fill_stride_flag)); if (!strncmp(a, fill_level_flag, strlen(fill_level_flag))) - fill_level = atoi(a + strlen(fill_level_flag)); + fill_level = std::stoi(a + strlen(fill_level_flag)); if (!strncmp(a, chunk_span_flag, strlen(chunk_span_flag))) - chunk_span = atoi(a + strlen(chunk_span_flag)); + chunk_span = std::stoi(a + strlen(chunk_span_flag)); if (!strncmp(a, repeat_outer_flag, strlen(repeat_outer_flag))) - repeat_outer = atoi(a + strlen(repeat_outer_flag)); + repeat_outer = std::stoi(a + strlen(repeat_outer_flag)); if (!strncmp(a, repeat_inner_flag, strlen(repeat_inner_flag))) - repeat_inner = atoi(a + strlen(repeat_inner_flag)); + repeat_inner = std::stoi(a + strlen(repeat_inner_flag)); } int chunk_span_bytes = 0; diff --git a/lib/kokkos/core/perf_test/test_taskdag.cpp b/lib/kokkos/core/perf_test/test_taskdag.cpp index a97edc59e8..b2f936a955 100644 --- a/lib/kokkos/core/perf_test/test_taskdag.cpp +++ b/lib/kokkos/core/perf_test/test_taskdag.cpp @@ -91,7 +91,7 @@ struct TestFib { using MemberType = typename Scheduler::member_type; using FutureType = Kokkos::BasicFuture; - typedef long value_type; + using value_type = long; FutureType dep[2]; const value_type n; @@ -152,13 +152,13 @@ int main(int argc, char* argv[]) { total_alloc_size = atol(a + strlen(alloc_size)); if (!strncmp(a, super_size, strlen(super_size))) - min_superblock_size = atoi(a + strlen(super_size)); + min_superblock_size = std::stoi(a + strlen(super_size)); if (!strncmp(a, repeat_outer, strlen(repeat_outer))) - test_repeat_outer = atoi(a + strlen(repeat_outer)); + test_repeat_outer = std::stoi(a + strlen(repeat_outer)); if (!strncmp(a, input_value, strlen(input_value))) - fib_input = atoi(a + strlen(input_value)); + fib_input = std::stoi(a + strlen(input_value)); } const long fib_output = eval_fib(fib_input); @@ -182,7 +182,7 @@ int main(int argc, char* argv[]) { using Scheduler = Kokkos::TaskSchedulerMultiple; - typedef TestFib Functor; + using Functor = TestFib; Kokkos::initialize(argc, argv); diff --git a/lib/kokkos/core/src/CMakeLists.txt b/lib/kokkos/core/src/CMakeLists.txt index 5b91b30787..b4051dc57f 100644 --- a/lib/kokkos/core/src/CMakeLists.txt +++ b/lib/kokkos/core/src/CMakeLists.txt @@ -8,50 +8,49 @@ KOKKOS_INCLUDE_DIRECTORIES( INSTALL (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" DESTINATION ${KOKKOS_HEADER_DIR} - FILES_MATCHING PATTERN "*.hpp" + FILES_MATCHING + PATTERN "*.hpp" + PATTERN "*.h" ) SET(KOKKOS_CORE_SRCS) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/*.cpp) +SET(KOKKOS_CORE_HEADERS) +APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) +APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/impl/*.hpp) IF (KOKKOS_ENABLE_ROCM) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/ROCm/*.cpp) - IF (KOKKOS_ENABLE_ETI) - APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/eti/ROCm/*.cpp) - ENDIF() ENDIF() IF (KOKKOS_ENABLE_CUDA) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/Cuda/*.cpp) - IF (KOKKOS_ENABLE_ETI) - APPEND_GLOB(KOKKOS_CORE_SRC ${CMAKE_CURRENT_SOURCE_DIR/eti/Cuda/*.cpp) - ENDIF() + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/Cuda/*.hpp) ENDIF() IF (KOKKOS_ENABLE_OPENMP) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/OpenMP/*.cpp) - IF (KOKKOS_ENABLE_ETI) - APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/eti/OpenMP/*.cpp) - ENDIF() + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/OpenMP/*.hpp) ENDIF() IF (KOKKOS_ENABLE_OPENMPTARGET) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/OpenMPTarget/*.cpp) + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/OpenMPTarget/*.hpp) ENDIF() IF (KOKKOS_ENABLE_PTHREAD) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/Threads/*.cpp) - IF (KOKKOS_ENABLE_ETI) - APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/eti/Threads/*.cpp) - ENDIF() + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/Threads/*.hpp) ENDIF() IF (KOKKOS_ENABLE_HIP) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/HIP/*.cpp) + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/HIP/*.hpp) ENDIF() IF (KOKKOS_ENABLE_HPX) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/HPX/*.cpp) + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/HPX/*.hpp) ENDIF() IF (NOT KOKKOS_ENABLE_MEMKIND) @@ -59,9 +58,7 @@ IF (NOT KOKKOS_ENABLE_MEMKIND) ENDIF() IF (KOKKOS_ENABLE_SERIAL) - IF (KOKKOS_ENABLE_ETI) - APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/eti/Serial/*.cpp) - ENDIF() + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/Serial/*.hpp) ELSE() LIST(REMOVE_ITEM KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/Kokkos_Serial.cpp) LIST(REMOVE_ITEM KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/Kokkos_Serial_task.cpp) @@ -70,6 +67,8 @@ ENDIF() KOKKOS_ADD_LIBRARY( kokkoscore SOURCES ${KOKKOS_CORE_SRCS} + HEADERS ${KOKKOS_CORE_HEADERS} + ADD_BUILD_OPTIONS # core should be given all the necessary compiler/linker flags ) SET_TARGET_PROPERTIES(kokkoscore PROPERTIES VERSION ${Kokkos_VERSION}) diff --git a/lib/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile.hpp b/lib/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile.hpp index 3706263921..6feaed80e1 100644 --- a/lib/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile.hpp +++ b/lib/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile.hpp @@ -48,7 +48,6 @@ #include #if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) -#include #include #include @@ -60,10 +59,8 @@ // type is not allowed As a result, recreate cuda_parallel_launch and associated // code -#if defined(KOKKOS_ENABLE_PROFILING) -#include +#include #include -#endif namespace Kokkos { namespace Impl { @@ -1291,8 +1288,8 @@ struct DeviceIterateTile { using point_type = typename RP::point_type; struct VoidDummy {}; - typedef typename std::conditional::value, VoidDummy, - Tag>::type usable_tag; + using usable_tag = typename std::conditional::value, + VoidDummy, Tag>::type; DeviceIterateTile(const RP& rp, const Functor& func) : m_rp{rp}, m_func{func} {} @@ -1310,6 +1307,8 @@ struct DeviceIterateTile { 65535; // not true for blockIdx.x for newer archs if (RP::rank == 2) { const dim3 block(m_rp.m_tile[0], m_rp.m_tile[1], 1); + KOKKOS_ASSERT(block.x > 0); + KOKKOS_ASSERT(block.y > 0); const dim3 grid( std::min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, maxblocks), @@ -1319,6 +1318,9 @@ struct DeviceIterateTile { CudaLaunch(*this, grid, block); } else if (RP::rank == 3) { const dim3 block(m_rp.m_tile[0], m_rp.m_tile[1], m_rp.m_tile[2]); + KOKKOS_ASSERT(block.x > 0); + KOKKOS_ASSERT(block.y > 0); + KOKKOS_ASSERT(block.z > 0); const dim3 grid( std::min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, maxblocks), @@ -1332,6 +1334,8 @@ struct DeviceIterateTile { // threadIdx.z const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], m_rp.m_tile[2], m_rp.m_tile[3]); + KOKKOS_ASSERT(block.y > 0); + KOKKOS_ASSERT(block.z > 0); const dim3 grid( std::min( static_cast(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), @@ -1346,6 +1350,7 @@ struct DeviceIterateTile { // threadIdx.z const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], m_rp.m_tile[2] * m_rp.m_tile[3], m_rp.m_tile[4]); + KOKKOS_ASSERT(block.z > 0); const dim3 grid( std::min( static_cast(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), diff --git a/lib/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile_Refactor.hpp b/lib/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile_Refactor.hpp index cb7f5971ae..0425fe6ed5 100644 --- a/lib/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile_Refactor.hpp +++ b/lib/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile_Refactor.hpp @@ -48,9 +48,7 @@ #include #if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) -#include #include -#include #include @@ -60,10 +58,8 @@ // type is not allowed use existing Kokkos functionality, e.g. max blocks, once // resolved -#if defined(KOKKOS_ENABLE_PROFILING) -#include +#include #include -#endif namespace Kokkos { namespace Impl { diff --git a/lib/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp b/lib/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp index e11961d763..91feb8b727 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp @@ -60,9 +60,7 @@ #include #include -#if defined(KOKKOS_ENABLE_PROFILING) -#include -#endif +#include /*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/ @@ -75,8 +73,8 @@ namespace { static std::atomic num_uvm_allocations(0); cudaStream_t get_deep_copy_stream() { - static cudaStream_t s = 0; - if (s == 0) { + static cudaStream_t s = nullptr; + if (s == nullptr) { cudaStreamCreate(&s); } return s; @@ -201,6 +199,10 @@ CudaHostPinnedSpace::CudaHostPinnedSpace() {} // {{{1 void *CudaSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void *CudaSpace::allocate(const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size) const { void *ptr = nullptr; auto error_code = cudaMalloc(&ptr, arg_alloc_size); @@ -213,10 +215,22 @@ void *CudaSpace::allocate(const size_t arg_alloc_size) const { Experimental::RawMemoryAllocationFailure::AllocationMechanism:: CudaMalloc); } + + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, ptr, + reported_size); + } return ptr; } void *CudaUVMSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void *CudaUVMSpace::allocate(const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size) const { void *ptr = nullptr; Cuda::impl_static_fence(); @@ -243,11 +257,22 @@ void *CudaUVMSpace::allocate(const size_t arg_alloc_size) const { } } Cuda::impl_static_fence(); - + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, ptr, + reported_size); + } return ptr; } void *CudaHostPinnedSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void *CudaHostPinnedSpace::allocate(const char *arg_label, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { void *ptr = nullptr; auto error_code = cudaHostAlloc(&ptr, arg_alloc_size, cudaHostAllocDefault); @@ -260,24 +285,56 @@ void *CudaHostPinnedSpace::allocate(const size_t arg_alloc_size) const { Experimental::RawMemoryAllocationFailure::AllocationMechanism:: CudaHostAlloc); } - + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, ptr, + reported_size); + } return ptr; } // end allocate() }}}1 //============================================================================== - void CudaSpace::deallocate(void *const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} +void CudaSpace::deallocate(const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, arg_alloc_ptr, + reported_size); + } + try { CUDA_SAFE_CALL(cudaFree(arg_alloc_ptr)); } catch (...) { } } - void CudaUVMSpace::deallocate(void *const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} + +void CudaUVMSpace::deallocate(const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size + + , + const size_t arg_logical_size) const { Cuda::impl_static_fence(); + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, arg_alloc_ptr, + reported_size); + } try { if (arg_alloc_ptr != nullptr) { Kokkos::Impl::num_uvm_allocations--; @@ -289,7 +346,21 @@ void CudaUVMSpace::deallocate(void *const arg_alloc_ptr, } void CudaHostPinnedSpace::deallocate(void *const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} + +void CudaHostPinnedSpace::deallocate(const char *arg_label, + void *const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, arg_alloc_ptr, + reported_size); + } try { CUDA_SAFE_CALL(cudaFreeHost(arg_alloc_ptr)); } catch (...) { @@ -321,7 +392,8 @@ SharedAllocationRecord::attach_texture_object( size_t const alloc_size) { enum { TEXTURE_BOUND_1D = 1u << 27 }; - if ((alloc_ptr == 0) || (sizeof_alias * TEXTURE_BOUND_1D <= alloc_size)) { + if ((alloc_ptr == nullptr) || + (sizeof_alias * TEXTURE_BOUND_1D <= alloc_size)) { std::ostringstream msg; msg << "Kokkos::CudaSpace ERROR: Cannot attach texture object to" << " alloc_ptr(" << alloc_ptr << ")" @@ -434,48 +506,36 @@ void SharedAllocationRecord::deallocate( // {{{1 SharedAllocationRecord::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) + const char *label = nullptr; if (Kokkos::Profiling::profileLibraryLoaded()) { SharedAllocationHeader header; - Kokkos::Impl::DeepCopy( + Kokkos::Impl::DeepCopy( &header, RecordBase::m_alloc_ptr, sizeof(SharedAllocationHeader)); - - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::CudaSpace::name()), - header.m_label, data(), size()); + label = header.label(); } -#endif - - m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, - SharedAllocationRecord::m_alloc_size); + auto alloc_size = SharedAllocationRecord::m_alloc_size; + m_space.deallocate(label, SharedAllocationRecord::m_alloc_ptr, + alloc_size, (alloc_size - sizeof(SharedAllocationHeader))); } SharedAllocationRecord::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) + const char *label = nullptr; if (Kokkos::Profiling::profileLibraryLoaded()) { - Cuda::impl_static_fence(); // Make sure I can access the label ... - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::CudaUVMSpace::name()), - RecordBase::m_alloc_ptr->m_label, data(), size()); + label = RecordBase::m_alloc_ptr->m_label; } -#endif - - m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, - SharedAllocationRecord::m_alloc_size); + m_space.deallocate(label, SharedAllocationRecord::m_alloc_ptr, + SharedAllocationRecord::m_alloc_size, + (SharedAllocationRecord::m_alloc_size - + sizeof(SharedAllocationHeader))); } SharedAllocationRecord::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::CudaHostPinnedSpace::name()), - RecordBase::m_alloc_ptr->m_label, data(), size()); - } -#endif - - m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, - SharedAllocationRecord::m_alloc_size); + m_space.deallocate(RecordBase::m_alloc_ptr->m_label, + SharedAllocationRecord::m_alloc_ptr, + SharedAllocationRecord::m_alloc_size, + (SharedAllocationRecord::m_alloc_size - + sizeof(SharedAllocationHeader))); } // end SharedAllocationRecord destructors }}}1 @@ -499,13 +559,6 @@ SharedAllocationRecord::SharedAllocationRecord( sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_tex_obj(0), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif SharedAllocationHeader header; @@ -537,13 +590,6 @@ SharedAllocationRecord::SharedAllocationRecord( sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_tex_obj(0), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif // Fill in the Header information, directly accessible via UVM RecordBase::m_alloc_ptr->m_record = this; @@ -572,13 +618,6 @@ SharedAllocationRecord:: arg_alloc_size), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif // Fill in the Header information, directly accessible on the host RecordBase::m_alloc_ptr->m_record = this; @@ -599,7 +638,7 @@ SharedAllocationRecord:: void *SharedAllocationRecord::allocate_tracked( const Kokkos::CudaSpace &arg_space, const std::string &arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void *)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord *const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -611,7 +650,7 @@ void *SharedAllocationRecord::allocate_tracked( void SharedAllocationRecord::deallocate_tracked( void *const arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { + if (arg_alloc_ptr != nullptr) { SharedAllocationRecord *const r = get_record(arg_alloc_ptr); RecordBase::decrement(r); @@ -636,7 +675,7 @@ void *SharedAllocationRecord::reallocate_tracked( void *SharedAllocationRecord::allocate_tracked( const Kokkos::CudaUVMSpace &arg_space, const std::string &arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void *)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord *const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -648,7 +687,7 @@ void *SharedAllocationRecord::allocate_tracked( void SharedAllocationRecord::deallocate_tracked( void *const arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { + if (arg_alloc_ptr != nullptr) { SharedAllocationRecord *const r = get_record(arg_alloc_ptr); RecordBase::decrement(r); @@ -674,7 +713,7 @@ void * SharedAllocationRecord::allocate_tracked( const Kokkos::CudaHostPinnedSpace &arg_space, const std::string &arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void *)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord *const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -687,7 +726,7 @@ SharedAllocationRecord::allocate_tracked( void SharedAllocationRecord::deallocate_tracked(void *const arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { + if (arg_alloc_ptr != nullptr) { SharedAllocationRecord *const r = get_record(arg_alloc_ptr); RecordBase::decrement(r); @@ -726,7 +765,7 @@ SharedAllocationRecord::get_record(void *alloc_ptr) { Header head; Header const *const head_cuda = - alloc_ptr ? Header::get_header(alloc_ptr) : (Header *)0; + alloc_ptr ? Header::get_header(alloc_ptr) : nullptr; if (alloc_ptr) { Kokkos::Impl::DeepCopy( @@ -734,7 +773,7 @@ SharedAllocationRecord::get_record(void *alloc_ptr) { } RecordCuda *const record = - alloc_ptr ? static_cast(head.m_record) : (RecordCuda *)0; + alloc_ptr ? static_cast(head.m_record) : nullptr; if (!alloc_ptr || record->m_alloc_ptr != head_cuda) { Kokkos::Impl::throw_runtime_exception( @@ -751,7 +790,7 @@ SharedAllocationRecord *SharedAllocationRecord< using RecordCuda = SharedAllocationRecord; Header *const h = - alloc_ptr ? reinterpret_cast
    (alloc_ptr) - 1 : (Header *)0; + alloc_ptr ? reinterpret_cast
    (alloc_ptr) - 1 : nullptr; if (!alloc_ptr || h->m_record->m_alloc_ptr != h) { Kokkos::Impl::throw_runtime_exception( @@ -769,7 +808,7 @@ SharedAllocationRecord using RecordCuda = SharedAllocationRecord; Header *const h = - alloc_ptr ? reinterpret_cast
    (alloc_ptr) - 1 : (Header *)0; + alloc_ptr ? reinterpret_cast
    (alloc_ptr) - 1 : nullptr; if (!alloc_ptr || h->m_record->m_alloc_ptr != h) { Kokkos::Impl::throw_runtime_exception( diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp index 34b681be15..5a143fd267 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp @@ -48,319 +48,128 @@ #include #ifdef KOKKOS_ENABLE_CUDA -#include #include namespace Kokkos { namespace Impl { -template -struct CudaGetMaxBlockSize; +inline int cuda_max_active_blocks_per_sm(cudaDeviceProp const& properties, + cudaFuncAttributes const& attributes, + int block_size, size_t dynamic_shmem) { + // Limits due do registers/SM + int const regs_per_sm = properties.regsPerMultiprocessor; + int const regs_per_thread = attributes.numRegs; + int const max_blocks_regs = regs_per_sm / (regs_per_thread * block_size); + + // Limits due to shared memory/SM + size_t const shmem_per_sm = properties.sharedMemPerMultiprocessor; + size_t const shmem_per_block = properties.sharedMemPerBlock; + size_t const static_shmem = attributes.sharedSizeBytes; + size_t const dynamic_shmem_per_block = attributes.maxDynamicSharedSizeBytes; + size_t const total_shmem = static_shmem + dynamic_shmem; + + int const max_blocks_shmem = + total_shmem > shmem_per_block || dynamic_shmem > dynamic_shmem_per_block + ? 0 + : (total_shmem > 0 ? (int)shmem_per_sm / total_shmem + : max_blocks_regs); + + // Limits due to blocks/SM +#if CUDA_VERSION >= 11000 + int const max_blocks_per_sm = properties.maxBlocksPerMultiProcessor; +#else + int const max_blocks_per_sm = [&properties]() { + switch (properties.major) { + case 3: return 16; + case 5: + case 6: return 32; + case 7: { + int isTuring = properties.minor == 5; + return (isTuring) ? 16 : 32; + } + default: + throw_runtime_exception("Unknown device in cuda block size deduction"); + return 0; + } + }(); +#endif -template -int cuda_get_max_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - return CudaGetMaxBlockSize::get_block_size( - f, vector_length, shmem_extra_block, shmem_extra_thread); + // Overall occupancy in blocks + return std::min({max_blocks_regs, max_blocks_shmem, max_blocks_per_sm}); } -template -int cuda_get_max_block_size(const CudaInternal* cuda_instance, - const cudaFuncAttributes& attr, - const FunctorType& f, const size_t vector_length, - const size_t shmem_block, - const size_t shmem_thread) { - const int min_blocks_per_sm = +template +inline int cuda_deduce_block_size(bool early_termination, + cudaDeviceProp const& properties, + cudaFuncAttributes const& attributes, + UnaryFunction block_size_to_dynamic_shmem, + LaunchBounds) { + // Limits + int const max_threads_per_sm = properties.maxThreadsPerMultiProcessor; + // unsure if I need to do that or if this is already accounted for in the + // functor attributes + int const max_threads_per_block = + std::min(LaunchBounds::maxTperB == 0 ? (int)properties.maxThreadsPerBlock + : (int)LaunchBounds::maxTperB, + attributes.maxThreadsPerBlock); + int const min_blocks_per_sm = LaunchBounds::minBperSM == 0 ? 1 : LaunchBounds::minBperSM; - const int max_threads_per_block = LaunchBounds::maxTperB == 0 - ? cuda_instance->m_maxThreadsPerBlock - : LaunchBounds::maxTperB; - const int regs_per_thread = attr.numRegs; - const int regs_per_sm = cuda_instance->m_regsPerSM; - const int shmem_per_sm = cuda_instance->m_shmemPerSM; - const int max_shmem_per_block = cuda_instance->m_maxShmemPerBlock; - const int max_blocks_per_sm = cuda_instance->m_maxBlocksPerSM; - const int max_threads_per_sm = cuda_instance->m_maxThreadsPerSM; + // Recorded maximum + int opt_block_size = 0; + int opt_threads_per_sm = 0; - int block_size = std::min(attr.maxThreadsPerBlock, max_threads_per_block); + for (int block_size = max_threads_per_block; block_size > 0; + block_size -= 32) { + size_t const dynamic_shmem = block_size_to_dynamic_shmem(block_size); + + int blocks_per_sm = cuda_max_active_blocks_per_sm( + properties, attributes, block_size, dynamic_shmem); + + int threads_per_sm = blocks_per_sm * block_size; - int functor_shmem = - FunctorTeamShmemSize::value(f, block_size / vector_length); - int total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + - functor_shmem + attr.sharedSizeBytes; - int max_blocks_regs = regs_per_sm / (regs_per_thread * block_size); - int max_blocks_shmem = - (total_shmem < max_shmem_per_block) - ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) - : 0; - int blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); - int threads_per_sm = blocks_per_sm * block_size; - if (threads_per_sm > max_threads_per_sm) { - blocks_per_sm = max_threads_per_sm / block_size; - threads_per_sm = blocks_per_sm * block_size; - } - int opt_block_size = (blocks_per_sm >= min_blocks_per_sm) ? block_size : 0; - int opt_threads_per_sm = threads_per_sm; - // printf("BlockSizeMax: %i Shmem: %i %i %i %i Regs: %i %i Blocks: %i %i - // Achieved: %i %i Opt: %i %i\n",block_size, - // shmem_per_sm,max_shmem_per_block,functor_shmem,total_shmem, - // regs_per_sm,regs_per_thread,max_blocks_shmem,max_blocks_regs,blocks_per_sm,threads_per_sm,opt_block_size,opt_threads_per_sm); - block_size -= 32; - while ((blocks_per_sm == 0) && (block_size >= 32)) { - functor_shmem = - FunctorTeamShmemSize::value(f, block_size / vector_length); - total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + - functor_shmem + attr.sharedSizeBytes; - max_blocks_regs = regs_per_sm / (regs_per_thread * block_size); - max_blocks_shmem = - (total_shmem < max_shmem_per_block) - ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) - : 0; - blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); - threads_per_sm = blocks_per_sm * block_size; if (threads_per_sm > max_threads_per_sm) { blocks_per_sm = max_threads_per_sm / block_size; threads_per_sm = blocks_per_sm * block_size; } - if ((blocks_per_sm >= min_blocks_per_sm) && - (blocks_per_sm <= max_blocks_per_sm)) { + + if (blocks_per_sm >= min_blocks_per_sm) { if (threads_per_sm >= opt_threads_per_sm) { opt_block_size = block_size; opt_threads_per_sm = threads_per_sm; } } - // printf("BlockSizeMax: %i Shmem: %i %i %i %i Regs: %i %i Blocks: %i %i - // Achieved: %i %i Opt: %i %i\n",block_size, - // shmem_per_sm,max_shmem_per_block,functor_shmem,total_shmem, - // regs_per_sm,regs_per_thread,max_blocks_shmem,max_blocks_regs,blocks_per_sm,threads_per_sm,opt_block_size,opt_threads_per_sm); - block_size -= 32; - } - return opt_block_size; -} - -template -struct CudaGetMaxBlockSize, true> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int numBlocks; - int blockSize = 1024; - int sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory, blockSize, - sharedmem); - - if (numBlocks > 0) return blockSize; - while (blockSize > 32 && numBlocks == 0) { - blockSize /= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory, - blockSize, sharedmem); - } - int blockSizeUpperBound = blockSize * 2; - while (blockSize < blockSizeUpperBound && numBlocks > 0) { - blockSize += 32; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory, - blockSize, sharedmem); - } - return blockSize - 32; - } -}; - -template -struct CudaGetMaxBlockSize, false> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int numBlocks; - - unsigned int blockSize = 1024; - unsigned int sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory, blockSize, - sharedmem); - - if (numBlocks > 0) return blockSize; - while (blockSize > 32 && numBlocks == 0) { - blockSize /= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory, blockSize, - sharedmem); - } - unsigned int blockSizeUpperBound = blockSize * 2; - while (blockSize < blockSizeUpperBound && numBlocks > 0) { - blockSize += 32; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory, blockSize, - sharedmem); - } - return blockSize - 32; + if (early_termination && blocks_per_sm != 0) break; } -}; - -template -struct CudaGetMaxBlockSize< - DriverType, Kokkos::LaunchBounds, - true> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int numBlocks = 0, oldNumBlocks = 0; - unsigned int blockSize = MaxThreadsPerBlock; - unsigned int sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, - cuda_parallel_launch_constant_memory, - blockSize, sharedmem); - if (static_cast(numBlocks) >= MinBlocksPerSM) - return blockSize; + return opt_block_size; +} - while (blockSize > 32 && - static_cast(numBlocks) < MinBlocksPerSM) { - blockSize /= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); +template +int cuda_get_max_block_size(const CudaInternal* cuda_instance, + const cudaFuncAttributes& attr, + const FunctorType& f, const size_t vector_length, + const size_t shmem_block, + const size_t shmem_thread) { + (void)cuda_instance; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory, - blockSize, sharedmem); - } - unsigned int blockSizeUpperBound = - (blockSize * 2 < MaxThreadsPerBlock ? blockSize * 2 - : MaxThreadsPerBlock); - while (blockSize(numBlocks)> - MinBlocksPerSM) { - blockSize += 32; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - oldNumBlocks = numBlocks; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory, - blockSize, sharedmem); - } - if (static_cast(oldNumBlocks) >= MinBlocksPerSM) - return blockSize - 32; - return -1; - } -}; + auto const& prop = Kokkos::Cuda().cuda_device_prop(); -template -struct CudaGetMaxBlockSize< - DriverType, Kokkos::LaunchBounds, - false> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int numBlocks = 0, oldNumBlocks = 0; - unsigned int blockSize = MaxThreadsPerBlock; - int sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, - cuda_parallel_launch_local_memory, - blockSize, sharedmem); - if (static_cast(numBlocks) >= MinBlocksPerSM) - return blockSize; + auto const block_size_to_dynamic_shmem = [&f, vector_length, shmem_block, + shmem_thread](int block_size) { + size_t const functor_shmem = + Kokkos::Impl::FunctorTeamShmemSize::value( + f, block_size / vector_length); - while (blockSize > 32 && - static_cast(numBlocks) < MinBlocksPerSM) { - blockSize /= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); + size_t const dynamic_shmem = shmem_block + + shmem_thread * (block_size / vector_length) + + functor_shmem; + return dynamic_shmem; + }; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory, blockSize, - sharedmem); - } - unsigned int blockSizeUpperBound = - (blockSize * 2 < MaxThreadsPerBlock ? blockSize * 2 - : MaxThreadsPerBlock); - while (blockSize < blockSizeUpperBound && - static_cast(numBlocks) >= MinBlocksPerSM) { - blockSize += 32; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - oldNumBlocks = numBlocks; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory, blockSize, - sharedmem); - } - if (static_cast(oldNumBlocks) >= MinBlocksPerSM) - return blockSize - 32; - return -1; - } -}; - -template -struct CudaGetOptBlockSize; - -template -int cuda_get_opt_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - return CudaGetOptBlockSize< - DriverType, LaunchBounds, - // LaunchBounds::launch_mechanism == Kokkos::Experimental::LaunchDefault ? - // (( CudaTraits::ConstantMemoryUseThreshold < - // sizeof(DriverType) )? - // Kokkos::Experimental::CudaLaunchConstantMemory:Kokkos::Experimental::CudaLaunchLocalMemory): - // LaunchBounds::launch_mechanism - (CudaTraits::ConstantMemoryUseThreshold < - sizeof(DriverType))>::get_block_size(f, vector_length, shmem_extra_block, - shmem_extra_thread); + return cuda_deduce_block_size(true, prop, attr, block_size_to_dynamic_shmem, + LaunchBounds{}); } template @@ -369,221 +178,26 @@ int cuda_get_opt_block_size(const CudaInternal* cuda_instance, const FunctorType& f, const size_t vector_length, const size_t shmem_block, const size_t shmem_thread) { - const int min_blocks_per_sm = - LaunchBounds::minBperSM == 0 ? 1 : LaunchBounds::minBperSM; - const int max_threads_per_block = LaunchBounds::maxTperB == 0 - ? cuda_instance->m_maxThreadsPerBlock - : LaunchBounds::maxTperB; + (void)cuda_instance; - const int regs_per_thread = attr.numRegs; - const int regs_per_sm = cuda_instance->m_regsPerSM; - const int shmem_per_sm = cuda_instance->m_shmemPerSM; - const int max_shmem_per_block = cuda_instance->m_maxShmemPerBlock; - const int max_blocks_per_sm = cuda_instance->m_maxBlocksPerSM; - const int max_threads_per_sm = cuda_instance->m_maxThreadsPerSM; + auto const& prop = Kokkos::Cuda().cuda_device_prop(); - int block_size = std::min(attr.maxThreadsPerBlock, max_threads_per_block); + auto const block_size_to_dynamic_shmem = [&f, vector_length, shmem_block, + shmem_thread](int block_size) { + size_t const functor_shmem = + Kokkos::Impl::FunctorTeamShmemSize::value( + f, block_size / vector_length); - int functor_shmem = - FunctorTeamShmemSize::value(f, block_size / vector_length); - int total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + - functor_shmem + attr.sharedSizeBytes; - int max_blocks_regs = regs_per_sm / (regs_per_thread * block_size); - int max_blocks_shmem = - (total_shmem < max_shmem_per_block) - ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) - : 0; - int blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); - int threads_per_sm = blocks_per_sm * block_size; - if (threads_per_sm > max_threads_per_sm) { - blocks_per_sm = max_threads_per_sm / block_size; - threads_per_sm = blocks_per_sm * block_size; - } - int opt_block_size = (blocks_per_sm >= min_blocks_per_sm) ? block_size : 0; - int opt_threads_per_sm = threads_per_sm; + size_t const dynamic_shmem = shmem_block + + shmem_thread * (block_size / vector_length) + + functor_shmem; + return dynamic_shmem; + }; - block_size -= 32; - while ((block_size >= 32)) { - functor_shmem = - FunctorTeamShmemSize::value(f, block_size / vector_length); - total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + - functor_shmem + attr.sharedSizeBytes; - max_blocks_regs = regs_per_sm / (regs_per_thread * block_size); - max_blocks_shmem = - (total_shmem < max_shmem_per_block) - ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) - : 0; - blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); - threads_per_sm = blocks_per_sm * block_size; - if (threads_per_sm > max_threads_per_sm) { - blocks_per_sm = max_threads_per_sm / block_size; - threads_per_sm = blocks_per_sm * block_size; - } - if ((blocks_per_sm >= min_blocks_per_sm) && - (blocks_per_sm <= max_blocks_per_sm)) { - if (threads_per_sm >= opt_threads_per_sm) { - opt_block_size = block_size; - opt_threads_per_sm = threads_per_sm; - } - } - block_size -= 32; - } - return opt_block_size; + return cuda_deduce_block_size(false, prop, attr, block_size_to_dynamic_shmem, + LaunchBounds{}); } -template -struct CudaGetOptBlockSize, true> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int blockSize = 16; - int numBlocks; - int sharedmem; - int maxOccupancy = 0; - int bestBlockSize = 0; - - while (blockSize < 1024) { - blockSize *= 2; - - // calculate the occupancy with that optBlockSize and check whether its - // larger than the largest one found so far - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory, - blockSize, sharedmem); - if (maxOccupancy < numBlocks * blockSize) { - maxOccupancy = numBlocks * blockSize; - bestBlockSize = blockSize; - } - } - return bestBlockSize; - } -}; - -template -struct CudaGetOptBlockSize, false> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int blockSize = 16; - int numBlocks; - int sharedmem; - int maxOccupancy = 0; - int bestBlockSize = 0; - - while (blockSize < 1024) { - blockSize *= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory, blockSize, - sharedmem); - - if (maxOccupancy < numBlocks * blockSize) { - maxOccupancy = numBlocks * blockSize; - bestBlockSize = blockSize; - } - } - return bestBlockSize; - } -}; - -template -struct CudaGetOptBlockSize< - DriverType, Kokkos::LaunchBounds, - true> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int blockSize = 16; - int numBlocks; - int sharedmem; - int maxOccupancy = 0; - int bestBlockSize = 0; - int max_threads_per_block = - std::min(MaxThreadsPerBlock, - cuda_internal_maximum_warp_count() * CudaTraits::WarpSize); - - while (blockSize < max_threads_per_block) { - blockSize *= 2; - - // calculate the occupancy with that optBlockSize and check whether its - // larger than the largest one found so far - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, - cuda_parallel_launch_constant_memory, - blockSize, sharedmem); - if (numBlocks >= int(MinBlocksPerSM) && - blockSize <= int(MaxThreadsPerBlock)) { - if (maxOccupancy < numBlocks * blockSize) { - maxOccupancy = numBlocks * blockSize; - bestBlockSize = blockSize; - } - } - } - if (maxOccupancy > 0) return bestBlockSize; - return -1; - } -}; - -template -struct CudaGetOptBlockSize< - DriverType, Kokkos::LaunchBounds, - false> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int blockSize = 16; - int numBlocks; - int sharedmem; - int maxOccupancy = 0; - int bestBlockSize = 0; - int max_threads_per_block = - std::min(MaxThreadsPerBlock, - cuda_internal_maximum_warp_count() * CudaTraits::WarpSize); - - while (blockSize < max_threads_per_block) { - blockSize *= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, - cuda_parallel_launch_local_memory, - blockSize, sharedmem); - if (numBlocks >= int(MinBlocksPerSM) && - blockSize <= int(MaxThreadsPerBlock)) { - if (maxOccupancy < numBlocks * blockSize) { - maxOccupancy = numBlocks * blockSize; - bestBlockSize = blockSize; - } - } - } - if (maxOccupancy > 0) return bestBlockSize; - return -1; - } -}; - } // namespace Impl } // namespace Kokkos diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp index 01e60315ee..4759001d81 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp @@ -50,7 +50,7 @@ #include -#include +#include namespace Kokkos { namespace Impl { @@ -113,12 +113,7 @@ class CudaRawMemoryAllocationFailure : public RawMemoryAllocationFailure { get_failure_mode(arg_error_code), arg_mechanism), m_error_code(arg_error_code) {} - void append_additional_error_information(std::ostream& o) const override { - if (m_error_code != cudaSuccess) { - o << " The Cuda allocation returned the error code \"\"" - << cudaGetErrorName(m_error_code) << "\"."; - } - } + void append_additional_error_information(std::ostream& o) const override; }; } // end namespace Experimental diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp index 37d0ffb687..e4bb7d3c52 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp @@ -55,7 +55,7 @@ #include #include #include -#include +#include /*--------------------------------------------------------------------------*/ /* Standard 'C' libraries */ @@ -134,7 +134,7 @@ bool cuda_launch_blocking() { if (env == 0) return false; - return atoi(env); + return std::stoi(env); } #endif @@ -239,8 +239,9 @@ const CudaInternalDevices &CudaInternalDevices::singleton() { } // namespace -int CudaInternal::was_initialized = 0; -int CudaInternal::was_finalized = 0; +unsigned long *CudaInternal::constantMemHostStaging = nullptr; +cudaEvent_t CudaInternal::constantMemReusable = nullptr; + //---------------------------------------------------------------------------- void CudaInternal::print_configuration(std::ostream &s) const { @@ -288,11 +289,11 @@ CudaInternal::~CudaInternal() { m_scratchUnifiedCount = 0; m_scratchUnifiedSupported = 0; m_streamCount = 0; - m_scratchSpace = 0; - m_scratchFlags = 0; - m_scratchUnified = 0; - m_scratchConcurrentBitset = 0; - m_stream = 0; + m_scratchSpace = nullptr; + m_scratchFlags = nullptr; + m_scratchUnified = nullptr; + m_scratchConcurrentBitset = nullptr; + m_stream = nullptr; } int CudaInternal::verify_is_initialized(const char *const label) const { @@ -307,22 +308,20 @@ CudaInternal &CudaInternal::singleton() { static CudaInternal self; return self; } -void CudaInternal::fence() const { cudaStreamSynchronize(m_stream); } +void CudaInternal::fence() const { + CUDA_SAFE_CALL(cudaStreamSynchronize(m_stream)); +} void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { if (was_finalized) Kokkos::abort("Calling Cuda::initialize after Cuda::finalize is illegal\n"); - was_initialized = 1; + was_initialized = true; if (is_initialized()) return; enum { WordSize = sizeof(size_type) }; #ifndef KOKKOS_IMPL_TURN_OFF_CUDA_HOST_INIT_CHECK -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (!HostSpace::execution_space::is_initialized()) { -#else if (!HostSpace::execution_space::impl_is_initialized()) { -#endif const std::string msg( "Cuda::initialize ERROR : HostSpace::execution_space is not " "initialized"); @@ -332,7 +331,7 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { const CudaInternalDevices &dev_info = CudaInternalDevices::singleton(); - const bool ok_init = 0 == m_scratchSpace || 0 == m_scratchFlags; + const bool ok_init = nullptr == m_scratchSpace || nullptr == m_scratchFlags; const bool ok_id = 0 <= cuda_device_id && cuda_device_id < dev_info.m_cudaDevCount; @@ -366,7 +365,7 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { int compiled_major = m_cudaArch / 100; int compiled_minor = (m_cudaArch % 100) / 10; - if (compiled_major != cudaProp.major || compiled_minor < cudaProp.minor) { + if (compiled_major != cudaProp.major || compiled_minor > cudaProp.minor) { std::stringstream ss; ss << "Kokkos::Cuda::initialize ERROR: running kernels compiled for " "compute capability " @@ -453,8 +452,8 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { // Allocate and initialize uint32_t[ buffer_bound ] - typedef Kokkos::Impl::SharedAllocationRecord - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord; Record *const r = Record::allocate(Kokkos::CudaSpace(), "InternalScratchBitset", @@ -511,7 +510,7 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { if (env_force_device_alloc == 0) force_device_alloc = false; else - force_device_alloc = atoi(env_force_device_alloc) != 0; + force_device_alloc = std::stoi(env_force_device_alloc) != 0; const char *env_visible_devices = getenv("CUDA_VISIBLE_DEVICES"); bool visible_devices_one = true; @@ -542,14 +541,23 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { #endif // Init the array for used for arbitrarily sized atomics - if (stream == 0) Impl::initialize_host_cuda_lock_arrays(); + if (stream == nullptr) Impl::initialize_host_cuda_lock_arrays(); + + // Allocate a staging buffer for constant mem in pinned host memory + // and an event to avoid overwriting driver for previous kernel launches + if (stream == nullptr) { + CUDA_SAFE_CALL(cudaMallocHost((void **)&constantMemHostStaging, + CudaTraits::ConstantMemoryUsage)); + + CUDA_SAFE_CALL(cudaEventCreate(&constantMemReusable)); + } m_stream = stream; } //---------------------------------------------------------------------------- -typedef Cuda::size_type ScratchGrain[Impl::CudaTraits::WarpSize]; +using ScratchGrain = Cuda::size_type[Impl::CudaTraits::WarpSize]; enum { sizeScratchGrain = sizeof(ScratchGrain) }; Cuda::size_type *CudaInternal::scratch_flags(const Cuda::size_type size) const { @@ -557,8 +565,8 @@ Cuda::size_type *CudaInternal::scratch_flags(const Cuda::size_type size) const { m_scratchFlagsCount * sizeScratchGrain < size) { m_scratchFlagsCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord; if (m_scratchFlags) Record::decrement(Record::get_record(m_scratchFlags)); @@ -582,8 +590,8 @@ Cuda::size_type *CudaInternal::scratch_space(const Cuda::size_type size) const { m_scratchSpaceCount * sizeScratchGrain < size) { m_scratchSpaceCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord; if (m_scratchSpace) Record::decrement(Record::get_record(m_scratchSpace)); @@ -605,9 +613,8 @@ Cuda::size_type *CudaInternal::scratch_unified( m_scratchUnifiedCount * sizeScratchGrain < size) { m_scratchUnifiedCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord; if (m_scratchUnified) Record::decrement(Record::get_record(m_scratchUnified)); @@ -629,8 +636,8 @@ Cuda::size_type *CudaInternal::scratch_functor( if (verify_is_initialized("scratch_functor") && m_scratchFunctorSize < size) { m_scratchFunctorSize = size; - typedef Kokkos::Impl::SharedAllocationRecord - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord; if (m_scratchFunctor) Record::decrement(Record::get_record(m_scratchFunctor)); @@ -649,15 +656,13 @@ Cuda::size_type *CudaInternal::scratch_functor( //---------------------------------------------------------------------------- void CudaInternal::finalize() { - was_finalized = 1; - if (0 != m_scratchSpace || 0 != m_scratchFlags) { + was_finalized = true; + if (nullptr != m_scratchSpace || nullptr != m_scratchFlags) { Impl::finalize_host_cuda_lock_arrays(); - if (m_stream != 0) cudaStreamDestroy(m_stream); - - typedef Kokkos::Impl::SharedAllocationRecord RecordCuda; - typedef Kokkos::Impl::SharedAllocationRecord - RecordHost; + using RecordCuda = Kokkos::Impl::SharedAllocationRecord; + using RecordHost = + Kokkos::Impl::SharedAllocationRecord; RecordCuda::decrement(RecordCuda::get_record(m_scratchFlags)); RecordCuda::decrement(RecordCuda::get_record(m_scratchSpace)); @@ -675,11 +680,17 @@ void CudaInternal::finalize() { m_scratchFlagsCount = 0; m_scratchUnifiedCount = 0; m_streamCount = 0; - m_scratchSpace = 0; - m_scratchFlags = 0; - m_scratchUnified = 0; - m_scratchConcurrentBitset = 0; - m_stream = 0; + m_scratchSpace = nullptr; + m_scratchFlags = nullptr; + m_scratchUnified = nullptr; + m_scratchConcurrentBitset = nullptr; + m_stream = nullptr; + } + + // only destroy these if we're finalizing the singleton + if (this == &singleton()) { + cudaFreeHost(constantMemHostStaging); + cudaEventDestroy(constantMemReusable); } } @@ -743,27 +754,13 @@ int Cuda::concurrency() { return Impl::CudaInternal::singleton().m_maxConcurrency; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int Cuda::is_initialized() -#else -int Cuda::impl_is_initialized() -#endif -{ +int Cuda::impl_is_initialized() { return Impl::CudaInternal::singleton().is_initialized(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void Cuda::initialize(const Cuda::SelectDevice config, size_t num_instances) -#else void Cuda::impl_initialize(const Cuda::SelectDevice config, - size_t /*num_instances*/) -#endif -{ - Impl::CudaInternal::singleton().initialize(config.cuda_device_id, 0); - -#if defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif + size_t /*num_instances*/) { + Impl::CudaInternal::singleton().initialize(config.cuda_device_id, nullptr); } std::vector Cuda::detect_device_arch() { @@ -793,48 +790,72 @@ Cuda::size_type Cuda::device_arch() { return dev_arch; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void Cuda::finalize() -#else -void Cuda::impl_finalize() -#endif -{ - Impl::CudaInternal::singleton().finalize(); - -#if defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::finalize(); -#endif -} +void Cuda::impl_finalize() { Impl::CudaInternal::singleton().finalize(); } -Cuda::Cuda() : m_space_instance(&Impl::CudaInternal::singleton()) { +Cuda::Cuda() + : m_space_instance(&Impl::CudaInternal::singleton()), m_counter(nullptr) { Impl::CudaInternal::singleton().verify_is_initialized( "Cuda instance constructor"); } -Cuda::Cuda(cudaStream_t stream) : m_space_instance(new Impl::CudaInternal) { +Cuda::Cuda(cudaStream_t stream) + : m_space_instance(new Impl::CudaInternal), m_counter(new int(1)) { Impl::CudaInternal::singleton().verify_is_initialized( "Cuda instance constructor"); m_space_instance->initialize(Impl::CudaInternal::singleton().m_cudaDev, stream); } -void Cuda::print_configuration(std::ostream &s, const bool) { - Impl::CudaInternal::singleton().print_configuration(s); +KOKKOS_FUNCTION Cuda::Cuda(Cuda &&other) noexcept { + m_space_instance = other.m_space_instance; + other.m_space_instance = nullptr; + m_counter = other.m_counter; + other.m_counter = nullptr; +} + +KOKKOS_FUNCTION Cuda::Cuda(const Cuda &other) + : m_space_instance(other.m_space_instance), m_counter(other.m_counter) { +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA + if (m_counter) Kokkos::atomic_add(m_counter, 1); +#endif } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -bool Cuda::sleep() { return false; } +KOKKOS_FUNCTION Cuda &Cuda::operator=(Cuda &&other) noexcept { + m_space_instance = other.m_space_instance; + other.m_space_instance = nullptr; + m_counter = other.m_counter; + other.m_counter = nullptr; + return *this; +} -bool Cuda::wake() { return true; } +KOKKOS_FUNCTION Cuda &Cuda::operator=(const Cuda &other) { + m_space_instance = other.m_space_instance; + m_counter = other.m_counter; +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA + if (m_counter) Kokkos::atomic_add(m_counter, 1); #endif + return *this; +} + +KOKKOS_FUNCTION Cuda::~Cuda() noexcept { +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA + if (m_counter == nullptr) return; + int const count = Kokkos::atomic_fetch_sub(m_counter, 1); + if (count == 1) { + delete m_counter; + m_space_instance->finalize(); + delete m_space_instance; + } +#endif +} + +void Cuda::print_configuration(std::ostream &s, const bool) { + Impl::CudaInternal::singleton().print_configuration(s); +} void Cuda::impl_static_fence() { Kokkos::Impl::cuda_device_synchronize(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void Cuda::fence() { impl_static_fence(); } -#else void Cuda::fence() const { m_space_instance->fence(); } -#endif const char *Cuda::name() { return "Cuda"; } diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp index 2158f03dd5..6e9118e156 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp @@ -1,6 +1,8 @@ #ifndef KOKKOS_CUDA_INSTANCE_HPP_ #define KOKKOS_CUDA_INSTANCE_HPP_ +#include +#include //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // These functions fulfill the purpose of allowing to work around @@ -15,25 +17,28 @@ namespace Kokkos { namespace Impl { struct CudaTraits { - enum { WarpSize = 32 /* 0x0020 */ }; - enum { WarpIndexMask = 0x001f /* Mask for warpindex */ }; - enum { WarpIndexShift = 5 /* WarpSize == 1 << WarpShift */ }; + enum : CudaSpace::size_type { WarpSize = 32 /* 0x0020 */ }; + enum : CudaSpace::size_type { + WarpIndexMask = 0x001f /* Mask for warpindex */ + }; + enum : CudaSpace::size_type { + WarpIndexShift = 5 /* WarpSize == 1 << WarpShift */ + }; - enum { ConstantMemoryUsage = 0x008000 /* 32k bytes */ }; - enum { ConstantMemoryCache = 0x002000 /* 8k bytes */ }; - enum { KernelArgumentLimit = 0x001000 /* 4k bytes */ }; + enum : CudaSpace::size_type { + ConstantMemoryUsage = 0x008000 /* 32k bytes */ + }; + enum : CudaSpace::size_type { + ConstantMemoryCache = 0x002000 /* 8k bytes */ + }; + enum : CudaSpace::size_type { + KernelArgumentLimit = 0x001000 /* 4k bytes */ + }; - typedef unsigned long - ConstantGlobalBufferType[ConstantMemoryUsage / sizeof(unsigned long)]; + using ConstantGlobalBufferType = + unsigned long[ConstantMemoryUsage / sizeof(unsigned long)]; -#if defined(KOKKOS_ARCH_VOLTA) || defined(KOKKOS_ARCH_PASCAL) - enum { - ConstantMemoryUseThreshold = - 0x000200 /* 0 bytes -> always use constant (or global)*/ - }; -#else enum { ConstantMemoryUseThreshold = 0x000200 /* 512 bytes */ }; -#endif KOKKOS_INLINE_FUNCTION static CudaSpace::size_type warp_count( CudaSpace::size_type i) { @@ -42,7 +47,7 @@ struct CudaTraits { KOKKOS_INLINE_FUNCTION static CudaSpace::size_type warp_align( CudaSpace::size_type i) { - enum { Mask = ~CudaSpace::size_type(WarpIndexMask) }; + constexpr CudaSpace::size_type Mask = ~WarpIndexMask; return (i + WarpIndexMask) & Mask; } }; @@ -79,7 +84,7 @@ class CudaInternal { #endif public: - typedef Cuda::size_type size_type; + using size_type = Cuda::size_type; int m_cudaDev; @@ -112,18 +117,23 @@ class CudaInternal { uint32_t* m_scratchConcurrentBitset; cudaStream_t m_stream; - static int was_initialized; - static int was_finalized; + bool was_initialized = false; + bool was_finalized = false; + + // FIXME_CUDA: these want to be per-device, not per-stream... use of 'static' + // here will break once there are multiple devices though + static unsigned long* constantMemHostStaging; + static cudaEvent_t constantMemReusable; static CudaInternal& singleton(); int verify_is_initialized(const char* const label) const; int is_initialized() const { - return 0 != m_scratchSpace && 0 != m_scratchFlags; + return nullptr != m_scratchSpace && nullptr != m_scratchFlags; } - void initialize(int cuda_device_id, cudaStream_t stream = 0); + void initialize(int cuda_device_id, cudaStream_t stream = nullptr); void finalize(); void print_configuration(std::ostream&) const; @@ -157,12 +167,12 @@ class CudaInternal { m_scratchFunctorSize(0), m_scratchUnifiedSupported(0), m_streamCount(0), - m_scratchSpace(0), - m_scratchFlags(0), - m_scratchUnified(0), - m_scratchFunctor(0), - m_scratchConcurrentBitset(0), - m_stream(0) {} + m_scratchSpace(nullptr), + m_scratchFlags(nullptr), + m_scratchUnified(nullptr), + m_scratchFunctor(nullptr), + m_scratchConcurrentBitset(nullptr), + m_stream(nullptr) {} size_type* scratch_space(const size_type size) const; size_type* scratch_flags(const size_type size) const; diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp index ca72b3b302..c30e142558 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp @@ -244,9 +244,6 @@ struct CudaParallelLaunch< const CudaInternal* cuda_instance, const bool prefer_shmem) { if ((grid.x != 0) && ((block.x * block.y * block.z) != 0)) { - // Fence before changing settings and copying closure - Kokkos::Cuda().fence(); - if (cuda_instance->m_maxShmemPerBlock < shmem) { Kokkos::Impl::throw_runtime_exception(std::string( "CudaParallelLaunch FAILED: shared memory request is too large")); @@ -254,28 +251,43 @@ struct CudaParallelLaunch< #ifndef KOKKOS_ARCH_KEPLER // On Kepler the L1 has no benefit since it doesn't cache reads else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_constant_memory, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); + static bool cache_config_set = false; + if (!cache_config_set) { + CUDA_SAFE_CALL(cudaFuncSetCacheConfig( + cuda_parallel_launch_constant_memory< + DriverType, MaxThreadsPerBlock, MinBlocksPerSM>, + (prefer_shmem ? cudaFuncCachePreferShared + : cudaFuncCachePreferL1))); + cache_config_set = true; + } } #else (void)prefer_shmem; #endif - // Copy functor to constant memory on the device - cudaMemcpyToSymbolAsync(kokkos_impl_cuda_constant_memory_buffer, &driver, + KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); + + // Wait until the previous kernel that uses the constant buffer is done + CUDA_SAFE_CALL(cudaEventSynchronize(cuda_instance->constantMemReusable)); + + // Copy functor (synchronously) to staging buffer in pinned host memory + unsigned long* staging = cuda_instance->constantMemHostStaging; + memcpy(staging, &driver, sizeof(DriverType)); + + // Copy functor asynchronously from there to constant memory on the device + cudaMemcpyToSymbolAsync(kokkos_impl_cuda_constant_memory_buffer, staging, sizeof(DriverType), 0, cudaMemcpyHostToDevice, cudaStream_t(cuda_instance->m_stream)); - KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); - // Invoke the driver function on the device cuda_parallel_launch_constant_memory <<m_stream>>>(); + // Record an event that says when the constant buffer can be reused + CUDA_SAFE_CALL(cudaEventRecord(cuda_instance->constantMemReusable, + cudaStream_t(cuda_instance->m_stream))); + #if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) CUDA_SAFE_CALL(cudaGetLastError()); Kokkos::Cuda().fence(); @@ -284,11 +296,15 @@ struct CudaParallelLaunch< } static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, - cuda_parallel_launch_constant_memory)); + static cudaFuncAttributes attr; + static bool attr_set = false; + if (!attr_set) { + CUDA_SAFE_CALL(cudaFuncGetAttributes( + &attr, + cuda_parallel_launch_constant_memory)); + attr_set = true; + } return attr; } }; @@ -304,9 +320,6 @@ struct CudaParallelLaunch, const CudaInternal* cuda_instance, const bool prefer_shmem) { if ((grid.x != 0) && ((block.x * block.y * block.z) != 0)) { - // Fence before changing settings and copying closure - Kokkos::Cuda().fence(); - if (cuda_instance->m_maxShmemPerBlock < shmem) { Kokkos::Impl::throw_runtime_exception(std::string( "CudaParallelLaunch FAILED: shared memory request is too large")); @@ -314,26 +327,41 @@ struct CudaParallelLaunch, #ifndef KOKKOS_ARCH_KEPLER // On Kepler the L1 has no benefit since it doesn't cache reads else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_constant_memory, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); + static bool cache_config_set = false; + if (!cache_config_set) { + CUDA_SAFE_CALL(cudaFuncSetCacheConfig( + cuda_parallel_launch_constant_memory, + (prefer_shmem ? cudaFuncCachePreferShared + : cudaFuncCachePreferL1))); + cache_config_set = true; + } } #else (void)prefer_shmem; #endif - // Copy functor to constant memory on the device - cudaMemcpyToSymbolAsync(kokkos_impl_cuda_constant_memory_buffer, &driver, + KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); + + // Wait until the previous kernel that uses the constant buffer is done + CUDA_SAFE_CALL(cudaEventSynchronize(cuda_instance->constantMemReusable)); + + // Copy functor (synchronously) to staging buffer in pinned host memory + unsigned long* staging = cuda_instance->constantMemHostStaging; + memcpy(staging, &driver, sizeof(DriverType)); + + // Copy functor asynchronously from there to constant memory on the device + cudaMemcpyToSymbolAsync(kokkos_impl_cuda_constant_memory_buffer, staging, sizeof(DriverType), 0, cudaMemcpyHostToDevice, cudaStream_t(cuda_instance->m_stream)); - KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); - // Invoke the driver function on the device cuda_parallel_launch_constant_memory <<m_stream>>>(); + // Record an event that says when the constant buffer can be reused + CUDA_SAFE_CALL(cudaEventRecord(cuda_instance->constantMemReusable, + cudaStream_t(cuda_instance->m_stream))); + #if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) CUDA_SAFE_CALL(cudaGetLastError()); Kokkos::Cuda().fence(); @@ -342,9 +370,13 @@ struct CudaParallelLaunch, } static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, cuda_parallel_launch_constant_memory)); + static cudaFuncAttributes attr; + static bool attr_set = false; + if (!attr_set) { + CUDA_SAFE_CALL(cudaFuncGetAttributes( + &attr, cuda_parallel_launch_constant_memory)); + attr_set = true; + } return attr; } }; @@ -369,11 +401,15 @@ struct CudaParallelLaunch< #ifndef KOKKOS_ARCH_KEPLER // On Kepler the L1 has no benefit since it doesn't cache reads else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_local_memory, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); + static bool cache_config_set = false; + if (!cache_config_set) { + CUDA_SAFE_CALL(cudaFuncSetCacheConfig( + cuda_parallel_launch_local_memory, + (prefer_shmem ? cudaFuncCachePreferShared + : cudaFuncCachePreferL1))); + cache_config_set = true; + } } #else (void)prefer_shmem; @@ -394,10 +430,15 @@ struct CudaParallelLaunch< } static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, cuda_parallel_launch_local_memory)); + static cudaFuncAttributes attr; + static bool attr_set = false; + if (!attr_set) { + CUDA_SAFE_CALL(cudaFuncGetAttributes( + &attr, + cuda_parallel_launch_local_memory)); + attr_set = true; + } return attr; } }; @@ -420,10 +461,14 @@ struct CudaParallelLaunch, #ifndef KOKKOS_ARCH_KEPLER // On Kepler the L1 has no benefit since it doesn't cache reads else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_local_memory, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); + static bool cache_config_set = false; + if (!cache_config_set) { + CUDA_SAFE_CALL(cudaFuncSetCacheConfig( + cuda_parallel_launch_local_memory, + (prefer_shmem ? cudaFuncCachePreferShared + : cudaFuncCachePreferL1))); + cache_config_set = true; + } } #else (void)prefer_shmem; @@ -443,9 +488,13 @@ struct CudaParallelLaunch, } static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, cuda_parallel_launch_local_memory)); + static cudaFuncAttributes attr; + static bool attr_set = false; + if (!attr_set) { + CUDA_SAFE_CALL(cudaFuncGetAttributes( + &attr, cuda_parallel_launch_local_memory)); + attr_set = true; + } return attr; } }; @@ -467,11 +516,15 @@ struct CudaParallelLaunch< #ifndef KOKKOS_ARCH_KEPLER // On Kepler the L1 has no benefit since it doesn't cache reads else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_global_memory, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); + static bool cache_config_set = false; + if (!cache_config_set) { + CUDA_SAFE_CALL(cudaFuncSetCacheConfig( + cuda_parallel_launch_global_memory, + (prefer_shmem ? cudaFuncCachePreferShared + : cudaFuncCachePreferL1))); + cache_config_set = true; + } } #else (void)prefer_shmem; @@ -497,11 +550,15 @@ struct CudaParallelLaunch< } } static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, - cuda_parallel_launch_global_memory)); + static cudaFuncAttributes attr; + static bool attr_set = false; + if (!attr_set) { + CUDA_SAFE_CALL(cudaFuncGetAttributes( + &attr, + cuda_parallel_launch_global_memory)); + attr_set = true; + } return attr; } }; @@ -521,10 +578,14 @@ struct CudaParallelLaunch, #ifndef KOKKOS_ARCH_KEPLER // On Kepler the L1 has no benefit since it doesn't cache reads else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_global_memory, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); + static bool cache_config_set = false; + if (!cache_config_set) { + CUDA_SAFE_CALL(cudaFuncSetCacheConfig( + cuda_parallel_launch_global_memory, + (prefer_shmem ? cudaFuncCachePreferShared + : cudaFuncCachePreferL1))); + cache_config_set = true; + } } #else (void)prefer_shmem; @@ -549,9 +610,13 @@ struct CudaParallelLaunch, } static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, cuda_parallel_launch_global_memory)); + static cudaFuncAttributes attr; + static bool attr_set = false; + if (!attr_set) { + CUDA_SAFE_CALL(cudaFuncGetAttributes( + &attr, cuda_parallel_launch_global_memory)); + attr_set = true; + } return attr; } }; diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp index 71ddadf74e..c252fbfec3 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp @@ -48,8 +48,8 @@ #include #if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) -#include #include +#include #include #include @@ -63,10 +63,8 @@ #include #include -#if defined(KOKKOS_ENABLE_PROFILING) -#include +#include #include -#endif #include @@ -84,9 +82,9 @@ class TeamPolicyInternal : public PolicyTraits { public: //! Tag this class as a kokkos execution policy - typedef TeamPolicyInternal execution_policy; + using execution_policy = TeamPolicyInternal; - typedef PolicyTraits traits; + using traits = PolicyTraits; template friend class TeamPolicyInternal; @@ -104,7 +102,7 @@ class TeamPolicyInternal public: //! Execution space of this execution policy - typedef Kokkos::Cuda execution_space; + using execution_space = Kokkos::Cuda; template TeamPolicyInternal(const TeamPolicyInternal& p) { @@ -119,50 +117,12 @@ class TeamPolicyInternal m_space = p.m_space; } - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_vector_length = p.m_vector_length; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - m_space = p.m_space; - return *this; - } - //---------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template - static inline int team_size_max(const FunctorType& functor) { - int n = MAX_WARP * Impl::CudaTraits::WarpSize; - - for (; n; n >>= 1) { - const int shmem_size = - /* for global reduce */ Impl:: - cuda_single_inter_block_reduce_scan_shmem< - false, FunctorType, typename traits::work_tag>(functor, n) - /* for team reduce */ - + (n + 2) * sizeof(double) - /* for team shared */ - + Impl::FunctorTeamShmemSize::value(functor, n); - - if (shmem_size < typename traits::execution_space() - .impl_internal_space_instance() - ->m_maxShmemPerBlock) - break; - } - - return n; - } -#endif - template int team_size_max(const FunctorType& f, const ParallelForTag&) const { - typedef Impl::ParallelFor> - closure_type; + using closure_type = + Impl::ParallelFor>; cudaFuncAttributes attr = CudaParallelLaunch:: get_cuda_func_attributes(); @@ -179,15 +139,15 @@ class TeamPolicyInternal template inline int team_size_max(const FunctorType& f, const ParallelReduceTag&) const { - typedef Impl::FunctorAnalysis - functor_analysis_type; - typedef typename Impl::ParallelReduceReturnValue< + using functor_analysis_type = + Impl::FunctorAnalysis; + using reducer_type = typename Impl::ParallelReduceReturnValue< void, typename functor_analysis_type::value_type, - FunctorType>::reducer_type reducer_type; - typedef Impl::ParallelReduce, - reducer_type> - closure_type; + FunctorType>::reducer_type; + using closure_type = + Impl::ParallelReduce, + reducer_type>; return internal_team_size_max(f); } @@ -200,25 +160,10 @@ class TeamPolicyInternal return internal_team_size_max(f); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template - static int team_size_recommended(const FunctorType& functor) { - return team_size_max(functor); - } - - template - static int team_size_recommended(const FunctorType& functor, - const int vector_length) { - int max = team_size_max(functor) / vector_length; - if (max < 1) max = 1; - return max; - } -#endif - template int team_size_recommended(const FunctorType& f, const ParallelForTag&) const { - typedef Impl::ParallelFor> - closure_type; + using closure_type = + Impl::ParallelFor>; cudaFuncAttributes attr = CudaParallelLaunch:: get_cuda_func_attributes(); @@ -235,24 +180,24 @@ class TeamPolicyInternal template inline int team_size_recommended(const FunctorType& f, const ParallelReduceTag&) const { - typedef Impl::FunctorAnalysis - functor_analysis_type; - typedef typename Impl::ParallelReduceReturnValue< + using functor_analysis_type = + Impl::FunctorAnalysis; + using reducer_type = typename Impl::ParallelReduceReturnValue< void, typename functor_analysis_type::value_type, - FunctorType>::reducer_type reducer_type; - typedef Impl::ParallelReduce, - reducer_type> - closure_type; + FunctorType>::reducer_type; + using closure_type = + Impl::ParallelReduce, + reducer_type>; return internal_team_size_recommended(f); } template int team_size_recommended(const FunctorType& f, const ReducerType&, const ParallelReduceTag&) const { - typedef Impl::ParallelReduce, - ReducerType> - closure_type; + using closure_type = + Impl::ParallelReduce, + ReducerType>; return internal_team_size_recommended(f); } @@ -401,44 +346,6 @@ class TeamPolicyInternal inline int chunk_size() const { return m_chunk_size; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - }; - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - }; - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - }; -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -471,46 +378,10 @@ class TeamPolicyInternal m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif - typedef Kokkos::Impl::CudaTeamMember member_type; + using member_type = Kokkos::Impl::CudaTeamMember; protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif - template int internal_team_size_common(const FunctorType& f, BlockSizeCallable&& block_size_callable) const { @@ -567,12 +438,12 @@ namespace Impl { template class ParallelFor, Kokkos::Cuda> { public: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; private: - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::launch_bounds LaunchBounds; + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using LaunchBounds = typename Policy::launch_bounds; const FunctorType m_functor; const Policy m_policy; @@ -595,7 +466,7 @@ class ParallelFor, Kokkos::Cuda> { } public: - typedef FunctorType functor_type; + using functor_type = FunctorType; inline __device__ void operator()(void) const { const Member work_stride = blockDim.y * gridDim.x; @@ -620,6 +491,7 @@ class ParallelFor, Kokkos::Cuda> { Kokkos::Impl::cuda_get_opt_block_size( m_policy.space().impl_internal_space_instance(), attr, m_functor, 1, 0, 0); + KOKKOS_ASSERT(block_size > 0); dim3 block(1, block_size, 1); dim3 grid( std::min( @@ -646,13 +518,13 @@ class ParallelFor, Kokkos::Cuda> { template class ParallelFor, Kokkos::Cuda> { public: - typedef Kokkos::MDRangePolicy Policy; + using Policy = Kokkos::MDRangePolicy; private: - using RP = Policy; - typedef typename Policy::array_index_type array_index_type; - typedef typename Policy::index_type index_type; - typedef typename Policy::launch_bounds LaunchBounds; + using RP = Policy; + using array_index_type = typename Policy::array_index_type; + using index_type = typename Policy::index_type; + using LaunchBounds = typename Policy::launch_bounds; const FunctorType m_functor; const Policy m_rp; @@ -666,29 +538,36 @@ class ParallelFor, Kokkos::Cuda> { } inline void execute() const { + using namespace std; + if (m_rp.m_num_tiles == 0) return; const array_index_type maxblocks = static_cast( m_rp.space().impl_internal_space_instance()->m_maxBlock); if (RP::rank == 2) { const dim3 block(m_rp.m_tile[0], m_rp.m_tile[1], 1); + KOKKOS_ASSERT(block.x > 0); + KOKKOS_ASSERT(block.y > 0); const dim3 grid( - std::min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, - maxblocks), - std::min((m_rp.m_upper[1] - m_rp.m_lower[1] + block.y - 1) / block.y, - maxblocks), + min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, + maxblocks), + min((m_rp.m_upper[1] - m_rp.m_lower[1] + block.y - 1) / block.y, + maxblocks), 1); CudaParallelLaunch( *this, grid, block, 0, m_rp.space().impl_internal_space_instance(), false); } else if (RP::rank == 3) { const dim3 block(m_rp.m_tile[0], m_rp.m_tile[1], m_rp.m_tile[2]); + KOKKOS_ASSERT(block.x > 0); + KOKKOS_ASSERT(block.y > 0); + KOKKOS_ASSERT(block.z > 0); const dim3 grid( - std::min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, - maxblocks), - std::min((m_rp.m_upper[1] - m_rp.m_lower[1] + block.y - 1) / block.y, - maxblocks), - std::min((m_rp.m_upper[2] - m_rp.m_lower[2] + block.z - 1) / block.z, - maxblocks)); + min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, + maxblocks), + min((m_rp.m_upper[1] - m_rp.m_lower[1] + block.y - 1) / block.y, + maxblocks), + min((m_rp.m_upper[2] - m_rp.m_lower[2] + block.z - 1) / block.z, + maxblocks)); CudaParallelLaunch( *this, grid, block, 0, m_rp.space().impl_internal_space_instance(), false); @@ -697,14 +576,15 @@ class ParallelFor, Kokkos::Cuda> { // threadIdx.z const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], m_rp.m_tile[2], m_rp.m_tile[3]); + KOKKOS_ASSERT(block.y > 0); + KOKKOS_ASSERT(block.z > 0); const dim3 grid( - std::min( - static_cast(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), + min(static_cast(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), static_cast(maxblocks)), - std::min((m_rp.m_upper[2] - m_rp.m_lower[2] + block.y - 1) / block.y, - maxblocks), - std::min((m_rp.m_upper[3] - m_rp.m_lower[3] + block.z - 1) / block.z, - maxblocks)); + min((m_rp.m_upper[2] - m_rp.m_lower[2] + block.y - 1) / block.y, + maxblocks), + min((m_rp.m_upper[3] - m_rp.m_lower[3] + block.z - 1) / block.z, + maxblocks)); CudaParallelLaunch( *this, grid, block, 0, m_rp.space().impl_internal_space_instance(), false); @@ -713,15 +593,14 @@ class ParallelFor, Kokkos::Cuda> { // threadIdx.z const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], m_rp.m_tile[2] * m_rp.m_tile[3], m_rp.m_tile[4]); + KOKKOS_ASSERT(block.z > 0); const dim3 grid( - std::min( - static_cast(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), + min(static_cast(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), static_cast(maxblocks)), - std::min( - static_cast(m_rp.m_tile_end[2] * m_rp.m_tile_end[3]), + min(static_cast(m_rp.m_tile_end[2] * m_rp.m_tile_end[3]), static_cast(maxblocks)), - std::min((m_rp.m_upper[4] - m_rp.m_lower[4] + block.z - 1) / block.z, - maxblocks)); + min((m_rp.m_upper[4] - m_rp.m_lower[4] + block.z - 1) / block.z, + maxblocks)); CudaParallelLaunch( *this, grid, block, 0, m_rp.space().impl_internal_space_instance(), false); @@ -732,14 +611,11 @@ class ParallelFor, Kokkos::Cuda> { m_rp.m_tile[2] * m_rp.m_tile[3], m_rp.m_tile[4] * m_rp.m_tile[5]); const dim3 grid( - std::min( - static_cast(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), + min(static_cast(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), static_cast(maxblocks)), - std::min( - static_cast(m_rp.m_tile_end[2] * m_rp.m_tile_end[3]), + min(static_cast(m_rp.m_tile_end[2] * m_rp.m_tile_end[3]), static_cast(maxblocks)), - std::min( - static_cast(m_rp.m_tile_end[4] * m_rp.m_tile_end[5]), + min(static_cast(m_rp.m_tile_end[4] * m_rp.m_tile_end[5]), static_cast(maxblocks))); CudaParallelLaunch( *this, grid, block, 0, m_rp.space().impl_internal_space_instance(), @@ -760,16 +636,16 @@ template class ParallelFor, Kokkos::Cuda> { public: - typedef TeamPolicyInternal Policy; + using Policy = TeamPolicyInternal; private: - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::launch_bounds LaunchBounds; + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using LaunchBounds = typename Policy::launch_bounds; public: - typedef FunctorType functor_type; - typedef Cuda::size_type size_type; + using functor_type = FunctorType; + using size_type = Cuda::size_type; private: // Algorithmic constraints: blockDim.y is a power of two AND blockDim.y == @@ -941,34 +817,34 @@ template class ParallelReduce, ReducerType, Kokkos::Cuda> { public: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; private: - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef typename Policy::launch_bounds LaunchBounds; - - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using WorkRange = typename Policy::WorkRange; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using LaunchBounds = typename Policy::launch_bounds; + + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; public: - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::reference_type reference_type; - typedef FunctorType functor_type; - typedef Kokkos::Cuda::size_type size_type; - typedef typename Policy::index_type index_type; + using pointer_type = typename ValueTraits::pointer_type; + using value_type = typename ValueTraits::value_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Kokkos::Cuda::size_type; + using index_type = typename Policy::index_type; // Algorithmic constraints: blockSize is a power of two AND blockDim.y == // blockDim.z == 1 @@ -990,8 +866,8 @@ class ParallelReduce, ReducerType, //}; // Some crutch to do function overloading private: - typedef double DummyShflReductionType; - typedef int DummySHMEMReductionType; + using DummyShflReductionType = double; + using DummySHMEMReductionType = int; public: // Make the exec_range calls call to Reduce::DeviceIterateTile @@ -1124,13 +1000,19 @@ class ParallelReduce, ReducerType, int shmem_size = cuda_single_inter_block_reduce_scan_shmem( f, n); + using closure_type = Impl::ParallelReduce; + cudaFuncAttributes attr = + CudaParallelLaunch::get_cuda_func_attributes(); while ( (n && (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < shmem_size)) || - (n > static_cast( - Kokkos::Impl::cuda_get_max_block_size< - ParallelReduce, LaunchBounds>(f, 1, shmem_size, 0)))) { + (n > + static_cast( + Kokkos::Impl::cuda_get_max_block_size( + m_policy.space().impl_internal_space_instance(), attr, f, 1, + shmem_size, 0)))) { n >>= 1; shmem_size = cuda_single_inter_block_reduce_scan_shmem(f, n); @@ -1142,6 +1024,7 @@ class ParallelReduce, ReducerType, const index_type nwork = m_policy.end() - m_policy.begin(); if (nwork) { const int block_size = local_block_size(m_functor); + KOKKOS_ASSERT(block_size > 0); m_scratch_space = cuda_internal_scratch_space( m_policy.space(), ValueTraits::value_size(ReducerConditional::select( @@ -1215,9 +1098,9 @@ class ParallelReduce, ReducerType, m_result_ptr_device_accessible( MemorySpaceAccess::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0) {} + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr) {} ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const ReducerType& reducer) @@ -1229,9 +1112,9 @@ class ParallelReduce, ReducerType, MemorySpaceAccess::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0) {} + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr) {} }; // MDRangePolicy impl @@ -1239,35 +1122,35 @@ template class ParallelReduce, ReducerType, Kokkos::Cuda> { public: - typedef Kokkos::MDRangePolicy Policy; + using Policy = Kokkos::MDRangePolicy; private: - typedef typename Policy::array_index_type array_index_type; - typedef typename Policy::index_type index_type; - - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef typename Policy::launch_bounds LaunchBounds; - - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using array_index_type = typename Policy::array_index_type; + using index_type = typename Policy::index_type; + + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using LaunchBounds = typename Policy::launch_bounds; + + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; public: - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::reference_type reference_type; - typedef FunctorType functor_type; - typedef Cuda::size_type size_type; + using pointer_type = typename ValueTraits::pointer_type; + using value_type = typename ValueTraits::value_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Cuda::size_type; // Algorithmic constraints: blockSize is a power of two AND blockDim.y == // blockDim.z == 1 @@ -1281,10 +1164,9 @@ class ParallelReduce, ReducerType, size_type* m_scratch_flags; size_type* m_unified_space; - typedef typename Kokkos::Impl::Reduce::DeviceIterateTile< + using DeviceIteratePattern = typename Kokkos::Impl::Reduce::DeviceIterateTile< Policy::rank, Policy, FunctorType, typename Policy::work_tag, - reference_type> - DeviceIteratePattern; + reference_type>; // Shall we use the shfl based reduction or not (only use it for static sized // types of more than 128bit @@ -1294,8 +1176,8 @@ class ParallelReduce, ReducerType, }; // Some crutch to do function overloading private: - typedef double DummyShflReductionType; - typedef int DummySHMEMReductionType; + using DummyShflReductionType = double; + using DummySHMEMReductionType = int; public: inline __device__ void exec_range(reference_type update) const { @@ -1414,13 +1296,19 @@ class ParallelReduce, ReducerType, int shmem_size = cuda_single_inter_block_reduce_scan_shmem( f, n); + using closure_type = Impl::ParallelReduce; + cudaFuncAttributes attr = + CudaParallelLaunch::get_cuda_func_attributes(); while ( (n && (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < shmem_size)) || - (n > static_cast( - Kokkos::Impl::cuda_get_max_block_size< - ParallelReduce, LaunchBounds>(f, 1, shmem_size, 0)))) { + (n > + static_cast( + Kokkos::Impl::cuda_get_max_block_size( + m_policy.space().impl_internal_space_instance(), attr, f, 1, + shmem_size, 0)))) { n >>= 1; shmem_size = cuda_single_inter_block_reduce_scan_shmem(f, n); @@ -1507,9 +1395,9 @@ class ParallelReduce, ReducerType, m_result_ptr_device_accessible( MemorySpaceAccess::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0) {} + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr) {} ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const ReducerType& reducer) @@ -1521,9 +1409,9 @@ class ParallelReduce, ReducerType, MemorySpaceAccess::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0) {} + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr) {} }; //---------------------------------------------------------------------------- @@ -1532,39 +1420,39 @@ template class ParallelReduce, ReducerType, Kokkos::Cuda> { public: - typedef TeamPolicyInternal Policy; + using Policy = TeamPolicyInternal; private: - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::launch_bounds LaunchBounds; - - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using LaunchBounds = typename Policy::launch_bounds; + + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - typedef typename ValueTraits::value_type value_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; + using value_type = typename ValueTraits::value_type; public: - typedef FunctorType functor_type; - typedef Cuda::size_type size_type; + using functor_type = FunctorType; + using size_type = Cuda::size_type; enum { UseShflReduction = (true && (ValueTraits::StaticValueSize != 0)) }; private: - typedef double DummyShflReductionType; - typedef int DummySHMEMReductionType; + using DummyShflReductionType = double; + using DummySHMEMReductionType = int; // Algorithmic constraints: blockDim.y is a power of two AND blockDim.y == // blockDim.z == 1 shared memory utilization: @@ -1818,9 +1706,9 @@ class ParallelReduce, m_result_ptr_device_accessible( MemorySpaceAccess::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr), m_team_begin(0), m_shmem_begin(0), m_shmem_size(0), @@ -1917,9 +1805,9 @@ class ParallelReduce, MemorySpaceAccess::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr), m_team_begin(0), m_shmem_begin(0), m_shmem_size(0), @@ -2013,23 +1901,23 @@ namespace Impl { template class ParallelScan, Kokkos::Cuda> { public: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; private: - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::launch_bounds LaunchBounds; + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using LaunchBounds = typename Policy::launch_bounds; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueOps ValueOps; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueOps = Kokkos::Impl::FunctorValueOps; public: - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - typedef FunctorType functor_type; - typedef Cuda::size_type size_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Cuda::size_type; private: // Algorithmic constraints: @@ -2233,6 +2121,7 @@ class ParallelScan, Kokkos::Cuda> { enum { GridMaxComputeCapability_2x = 0x0ffff }; const int block_size = local_block_size(m_functor); + KOKKOS_ASSERT(block_size > 0); const int grid_max = (block_size * block_size) < GridMaxComputeCapability_2x @@ -2283,8 +2172,8 @@ class ParallelScan, Kokkos::Cuda> { ParallelScan(const FunctorType& arg_functor, const Policy& arg_policy) : m_functor(arg_functor), m_policy(arg_policy), - m_scratch_space(0), - m_scratch_flags(0), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), m_final(false) #ifdef KOKKOS_IMPL_DEBUG_CUDA_SERIAL_EXECUTION , @@ -2299,23 +2188,23 @@ template class ParallelScanWithTotal, ReturnType, Kokkos::Cuda> { public: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; private: - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::launch_bounds LaunchBounds; + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using LaunchBounds = typename Policy::launch_bounds; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueOps ValueOps; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueOps = Kokkos::Impl::FunctorValueOps; public: - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - typedef FunctorType functor_type; - typedef Cuda::size_type size_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Cuda::size_type; private: // Algorithmic constraints: @@ -2523,6 +2412,7 @@ class ParallelScanWithTotal, enum { GridMaxComputeCapability_2x = 0x0ffff }; const int block_size = local_block_size(m_functor); + KOKKOS_ASSERT(block_size > 0); const int grid_max = (block_size * block_size) < GridMaxComputeCapability_2x @@ -2585,8 +2475,8 @@ class ParallelScanWithTotal, const Policy& arg_policy, ReturnType& arg_returnvalue) : m_functor(arg_functor), m_policy(arg_policy), - m_scratch_space(0), - m_scratch_flags(0), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), m_final(false), m_returnvalue(arg_returnvalue) #ifdef KOKKOS_IMPL_DEBUG_CUDA_SERIAL_EXECUTION @@ -2610,7 +2500,7 @@ template struct CudaFunctorAdapter { const FunctorType f; - typedef ValueType value_type; + using value_type = ValueType; CudaFunctorAdapter(const FunctorType& f_) : f(f_) {} __device__ inline void operator()(typename ExecPolicy::work_tag, @@ -2680,7 +2570,7 @@ struct CudaFunctorAdapter { template struct CudaFunctorAdapter { const FunctorType f; - typedef ValueType value_type; + using value_type = ValueType; CudaFunctorAdapter(const FunctorType& f_) : f(f_) {} __device__ inline void operator()(const typename ExecPolicy::member_type& i, @@ -2801,13 +2691,14 @@ struct CudaFunctorAdapter { template ::value> struct FunctorReferenceType { - typedef ResultType& reference_type; + using reference_type = ResultType&; }; template struct FunctorReferenceType { - typedef typename Kokkos::Impl::FunctorValueTraits< - FunctorType, Tag>::reference_type reference_type; + using reference_type = + typename Kokkos::Impl::FunctorValueTraits::reference_type; }; template @@ -2815,10 +2706,9 @@ struct ParallelReduceFunctorType { enum { FunctorHasValueType = IsNonTrivialReduceFunctor::value }; - typedef typename Kokkos::Impl::if_c< + using functor_type = typename Kokkos::Impl::if_c< FunctorHasValueType, FunctorTypeIn, - Impl::CudaFunctorAdapter>::type - functor_type; + Impl::CudaFunctorAdapter>::type; static functor_type functor(const FunctorTypeIn& functor_in) { return Impl::if_c::select( functor_in, functor_type(functor_in)); diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp index 8795eb5a38..6989431907 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp @@ -140,10 +140,10 @@ __device__ bool cuda_inter_block_reduction( Cuda::size_type* const m_scratch_flags, const int max_active_thread = blockDim.y) { #ifdef __CUDA_ARCH__ - typedef typename FunctorValueTraits::pointer_type - pointer_type; - typedef - typename FunctorValueTraits::value_type value_type; + using pointer_type = + typename FunctorValueTraits::pointer_type; + using value_type = + typename FunctorValueTraits::value_type; // Do the intra-block reduction with shfl operations and static shared memory cuda_intra_block_reduction(value, join, max_active_thread); @@ -255,7 +255,7 @@ __device__ inline cuda_intra_warp_reduction(const ReducerType& reducer, typename ReducerType::value_type& result, const uint32_t max_active_thread = blockDim.y) { - typedef typename ReducerType::value_type ValueType; + using ValueType = typename ReducerType::value_type; unsigned int shift = 1; @@ -278,7 +278,7 @@ __device__ inline cuda_inter_warp_reduction(const ReducerType& reducer, typename ReducerType::value_type value, const int max_active_thread = blockDim.y) { - typedef typename ReducerType::value_type ValueType; + using ValueType = typename ReducerType::value_type; #define STEP_WIDTH 4 // Depending on the ValueType _shared__ memory must be aligned up to 8byte @@ -336,8 +336,8 @@ __device__ inline Cuda::size_type* const m_scratch_flags, const int max_active_thread = blockDim.y) { #ifdef __CUDA_ARCH__ - typedef typename ReducerType::value_type* pointer_type; - typedef typename ReducerType::value_type value_type; + using pointer_type = typename ReducerType::value_type*; + using value_type = typename ReducerType::value_type; // Do the intra-block reduction with shfl operations and static shared memory cuda_intra_block_reduction(reducer, max_active_thread); @@ -450,12 +450,12 @@ struct CudaReductionsFunctor; template struct CudaReductionsFunctor { - typedef FunctorValueTraits ValueTraits; - typedef FunctorValueJoin ValueJoin; - typedef FunctorValueInit ValueInit; - typedef FunctorValueOps ValueOps; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type Scalar; + using ValueTraits = FunctorValueTraits; + using ValueJoin = FunctorValueJoin; + using ValueInit = FunctorValueInit; + using ValueOps = FunctorValueOps; + using pointer_type = typename ValueTraits::pointer_type; + using Scalar = typename ValueTraits::value_type; __device__ static inline void scalar_intra_warp_reduction( const FunctorType& functor, @@ -533,8 +533,12 @@ struct CudaReductionsFunctor { __threadfence(); __syncthreads(); unsigned int num_teams_done = 0; + // The cast in the atomic call is necessary to find matching call with + // MSVC/NVCC if (threadIdx.x + threadIdx.y == 0) { - num_teams_done = Kokkos::atomic_fetch_add(global_flags, 1) + 1; + num_teams_done = + Kokkos::atomic_fetch_add(global_flags, static_cast(1)) + + 1; } bool is_last_block = false; if (__syncthreads_or(num_teams_done == gridDim.x)) { @@ -555,12 +559,12 @@ struct CudaReductionsFunctor { template struct CudaReductionsFunctor { - typedef FunctorValueTraits ValueTraits; - typedef FunctorValueJoin ValueJoin; - typedef FunctorValueInit ValueInit; - typedef FunctorValueOps ValueOps; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type Scalar; + using ValueTraits = FunctorValueTraits; + using ValueJoin = FunctorValueJoin; + using ValueInit = FunctorValueInit; + using ValueOps = FunctorValueOps; + using pointer_type = typename ValueTraits::pointer_type; + using Scalar = typename ValueTraits::value_type; __device__ static inline void scalar_intra_warp_reduction( const FunctorType& functor, @@ -635,8 +639,12 @@ struct CudaReductionsFunctor { __syncthreads(); unsigned int num_teams_done = 0; + // The cast in the atomic call is necessary to find matching call with + // MSVC/NVCC if (threadIdx.x + threadIdx.y == 0) { - num_teams_done = Kokkos::atomic_fetch_add(global_flags, 1) + 1; + num_teams_done = + Kokkos::atomic_fetch_add(global_flags, static_cast(1)) + + 1; } bool is_last_block = false; if (__syncthreads_or(num_teams_done == gridDim.x)) { @@ -677,10 +685,10 @@ __device__ void cuda_intra_block_reduce_scan( const FunctorType& functor, const typename FunctorValueTraits::pointer_type base_data) { - typedef FunctorValueTraits ValueTraits; - typedef FunctorValueJoin ValueJoin; + using ValueTraits = FunctorValueTraits; + using ValueJoin = FunctorValueJoin; - typedef typename ValueTraits::pointer_type pointer_type; + using pointer_type = typename ValueTraits::pointer_type; const unsigned value_count = ValueTraits::value_count(functor); const unsigned BlockSizeMask = blockDim.y - 1; @@ -855,13 +863,13 @@ __device__ bool cuda_single_inter_block_reduce_scan2( const FunctorType& functor, const Cuda::size_type block_id, const Cuda::size_type block_count, Cuda::size_type* const shared_data, Cuda::size_type* const global_data, Cuda::size_type* const global_flags) { - typedef Cuda::size_type size_type; - typedef FunctorValueTraits ValueTraits; - typedef FunctorValueJoin ValueJoin; - typedef FunctorValueInit ValueInit; - typedef FunctorValueOps ValueOps; + using size_type = Cuda::size_type; + using ValueTraits = FunctorValueTraits; + using ValueJoin = FunctorValueJoin; + using ValueInit = FunctorValueInit; + using ValueOps = FunctorValueOps; - typedef typename ValueTraits::pointer_type pointer_type; + using pointer_type = typename ValueTraits::pointer_type; // '__ffs' = position of the least significant bit set to 1. // 'blockDim.y' is guaranteed to be a power of two so this @@ -950,8 +958,8 @@ __device__ bool cuda_single_inter_block_reduce_scan( const FunctorType& functor, const Cuda::size_type block_id, const Cuda::size_type block_count, Cuda::size_type* const shared_data, Cuda::size_type* const global_data, Cuda::size_type* const global_flags) { - typedef FunctorValueTraits ValueTraits; - if (!DoScan && ValueTraits::StaticValueSize) + using ValueTraits = FunctorValueTraits; + if (!DoScan && ValueTraits::StaticValueSize > 0) return Kokkos::Impl::CudaReductionsFunctor< FunctorType, ArgTag, false, (ValueTraits::StaticValueSize > 16)>:: scalar_inter_block_reduction(functor, block_id, block_count, diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp index decbecc5e6..6ead5197ee 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp @@ -754,7 +754,7 @@ namespace Kokkos { // TeamThreadRange( const Impl::TaskExec< Kokkos::Cuda > & thread // , const iType1 & begin, const iType2 & end ) //{ -// typedef typename std::common_type< iType1, iType2 >::type iType; +// using iType = typename std::common_type< iType1, iType2 >::type; // return Impl::TeamThreadRangeBoundariesStruct< iType, Impl::TaskExec< // Kokkos::Cuda > >( // thread, iType(begin), iType(end) ); @@ -921,7 +921,7 @@ KOKKOS_INLINE_FUNCTION void parallel_reduce( const Impl::TeamThreadRangeBoundariesStruct< iType, Impl::TaskExec>& loop_boundaries, const Lambda& lambda, const ReducerType& reducer) { - typedef typename ReducerType::value_type ValueType; + using ValueType = typename ReducerType::value_type; // TODO @internal_documentation what is the point of creating this temporary? ValueType result = ValueType(); reducer.init(result); @@ -1005,7 +1005,7 @@ KOKKOS_INLINE_FUNCTION void parallel_reduce( const Impl::ThreadVectorRangeBoundariesStruct< iType, Impl::TaskExec>& loop_boundaries, const Lambda& lambda, const ReducerType& reducer) { - typedef typename ReducerType::value_type ValueType; + using ValueType = typename ReducerType::value_type; ValueType result = ValueType(); reducer.init(result); diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp index d9d5ed0bf3..1160336519 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp @@ -45,9 +45,7 @@ #ifndef KOKKOS_CUDA_TEAM_HPP #define KOKKOS_CUDA_TEAM_HPP -#include #include -#include #include @@ -62,10 +60,8 @@ #include #include -#if defined(KOKKOS_ENABLE_PROFILING) -#include +#include #include -#endif //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -75,7 +71,7 @@ namespace Impl { template struct CudaJoinFunctor { - typedef Type value_type; + using value_type = Type; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -104,8 +100,8 @@ struct CudaJoinFunctor { */ class CudaTeamMember { public: - typedef Kokkos::Cuda execution_space; - typedef execution_space::scratch_memory_space scratch_memory_space; + using execution_space = Kokkos::Cuda; + using scratch_memory_space = execution_space::scratch_memory_space; private: mutable void* m_team_reduce; @@ -357,8 +353,8 @@ class CudaTeamMember { int const shmem_size) { #ifdef __CUDA_ARCH__ - typedef typename ReducerType::value_type value_type; - typedef value_type volatile* pointer_type; + using value_type = typename ReducerType::value_type; + using pointer_type = value_type volatile*; // Number of shared memory entries for the reduction: const int nsh = shmem_size / sizeof(value_type); @@ -563,7 +559,7 @@ namespace Impl { template struct TeamThreadRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const CudaTeamMember& member; const iType start; const iType end; @@ -580,7 +576,7 @@ struct TeamThreadRangeBoundariesStruct { template struct TeamVectorRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const CudaTeamMember& member; const iType start; const iType end; @@ -598,7 +594,7 @@ struct TeamVectorRangeBoundariesStruct { template struct ThreadVectorRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const index_type start; const index_type end; @@ -634,7 +630,7 @@ template KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< typename std::common_type::type, Impl::CudaTeamMember> TeamThreadRange(const Impl::CudaTeamMember& thread, iType1 begin, iType2 end) { - typedef typename std::common_type::type iType; + using iType = typename std::common_type::type; return Impl::TeamThreadRangeBoundariesStruct( thread, iType(begin), iType(end)); } @@ -652,7 +648,7 @@ KOKKOS_INLINE_FUNCTION Impl::TeamVectorRangeBoundariesStruct< typename std::common_type::type, Impl::CudaTeamMember> TeamVectorRange(const Impl::CudaTeamMember& thread, const iType1& begin, const iType2& end) { - typedef typename std::common_type::type iType; + using iType = typename std::common_type::type; return Impl::TeamVectorRangeBoundariesStruct( thread, iType(begin), iType(end)); } diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp index 3b470edbc3..f846c06ce5 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp @@ -59,7 +59,7 @@ namespace Experimental { // both global and instance Unique Tokens are implemented in the same way template <> class UniqueToken { - private: + protected: uint32_t volatile* m_buffer; uint32_t m_count; @@ -67,14 +67,7 @@ class UniqueToken { using execution_space = Cuda; using size_type = int32_t; -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) - explicit UniqueToken(execution_space const&); - - KOKKOS_INLINE_FUNCTION - UniqueToken() : m_buffer(0), m_count(0) {} -#else explicit UniqueToken(execution_space const& = execution_space()); -#endif KOKKOS_DEFAULTED_FUNCTION UniqueToken(const UniqueToken&) = default; @@ -101,7 +94,7 @@ class UniqueToken { if (result.first < 0) { Kokkos::abort( - "UniqueToken failure to release tokens, no tokens available"); + "UniqueToken failure to acquire tokens, no tokens available"); } return result.first; @@ -117,14 +110,20 @@ class UniqueToken { template <> class UniqueToken : public UniqueToken { + private: + Kokkos::View m_buffer_view; + public: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - explicit UniqueToken(execution_space const& arg) - : UniqueToken(arg) {} -#else explicit UniqueToken(execution_space const& arg = execution_space()) : UniqueToken(arg) {} -#endif + + UniqueToken(size_type max_size, execution_space const& = execution_space()) + : m_buffer_view( + "UniqueToken::m_buffer_view", + ::Kokkos::Impl::concurrent_bitset::buffer_bound(max_size)) { + m_buffer = m_buffer_view.data(); + m_count = max_size; + } }; } // namespace Experimental diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp index 62966f859d..7f7b7b6e78 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp @@ -47,7 +47,7 @@ #include #ifdef KOKKOS_ENABLE_CUDA -#include +#include #include namespace Kokkos { diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp index 364f334a4c..f24abb377d 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp @@ -257,8 +257,8 @@ class ViewDataHandle< // which can only occur on the host. In addition, 'get_record' is only // valid if called in a host execution space - typedef typename Traits::memory_space memory_space; - typedef typename Impl::SharedAllocationRecord record; + using memory_space = typename Traits::memory_space; + using record = typename Impl::SharedAllocationRecord; record* const r = arg_tracker.template get_record(); diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp index 0753e383a1..b7c81b92f8 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp @@ -45,6 +45,8 @@ #ifndef KOKKOS_CUDA_WORKGRAPHPOLICY_HPP #define KOKKOS_CUDA_WORKGRAPHPOLICY_HPP +#include + namespace Kokkos { namespace Impl { @@ -52,8 +54,8 @@ template class ParallelFor, Kokkos::Cuda> { public: - typedef Kokkos::WorkGraphPolicy Policy; - typedef ParallelFor Self; + using Policy = Kokkos::WorkGraphPolicy; + using Self = ParallelFor; private: Policy m_policy; diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_abort.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_abort.hpp index 698695dbdb..f3cf25efef 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_abort.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_abort.hpp @@ -64,14 +64,34 @@ extern __device__ void __assertfail(const void *message, const void *file, namespace Kokkos { namespace Impl { +#if !defined(__APPLE__) +// required to workaround failures in random number generator unit tests with +// pre-volta architectures +#if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) __device__ inline void cuda_abort(const char *const message) { -#ifndef __APPLE__ +#else +[[noreturn]] __device__ inline void cuda_abort(const char *const message) { +#endif const char empty[] = ""; __assertfail((const void *)message, (const void *)empty, (unsigned int)0, (const void *)empty, sizeof(char)); + + // This loop is never executed. It's intended to suppress warnings that the + // function returns, even though it does not. This is necessary because + // __assertfail is not marked as [[noreturn]], even though it does not return. + // Disable with KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK to workaround failures + // in random number generator unit tests with pre-volta architectures +#if !defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) + while (true) + ; #endif } +#else +__device__ inline void cuda_abort(const char *const message) { + // __assertfail is not supported on MAC +} +#endif } // namespace Impl } // namespace Kokkos diff --git a/lib/kokkos/core/src/HIP/KokkosExp_HIP_IterateTile.hpp b/lib/kokkos/core/src/HIP/KokkosExp_HIP_IterateTile.hpp index e2525d70c1..1e8a550313 100644 --- a/lib/kokkos/core/src/HIP/KokkosExp_HIP_IterateTile.hpp +++ b/lib/kokkos/core/src/HIP/KokkosExp_HIP_IterateTile.hpp @@ -48,16 +48,12 @@ #include #if defined(__HIPCC__) -#include #include -#include #include -#if defined(KOKKOS_ENABLE_PROFILING) #include #include -#endif namespace Kokkos { namespace Impl { @@ -80,22 +76,22 @@ struct DeviceIterateTile<2, PolicyType, Functor, void> { void exec_range() const { // LL if (PolicyType::inner_direction == PolicyType::Left) { - for (index_type tile_id1 = static_cast(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + for (index_type tile_id1 = static_cast(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id0 = static_cast(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + static_cast(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast(hipThreadIdx_x) + + static_cast(threadIdx.x) + static_cast(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { + static_cast(threadIdx.x) < m_policy.m_tile[0]) { m_func(offset_0, offset_1); } } @@ -104,22 +100,22 @@ struct DeviceIterateTile<2, PolicyType, Functor, void> { } // LR else { - for (index_type tile_id0 = static_cast(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + for (index_type tile_id0 = static_cast(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast(hipThreadIdx_x) + + static_cast(threadIdx.x) + static_cast(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { - for (index_type tile_id1 = static_cast(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast(threadIdx.x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { + static_cast(threadIdx.y) < m_policy.m_tile[1]) { m_func(offset_0, offset_1); } } @@ -146,44 +142,44 @@ struct DeviceIterateTile<2, PolicyType, Functor, Tag> { void exec_range() const { if (PolicyType::inner_direction == PolicyType::Left) { // Loop over size maxnumblocks until full range covered - for (index_type tile_id1 = static_cast(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + for (index_type tile_id1 = static_cast(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id0 = static_cast(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + static_cast(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast(hipThreadIdx_x) + + static_cast(threadIdx.x) + static_cast(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { + static_cast(threadIdx.x) < m_policy.m_tile[0]) { m_func(Tag(), offset_0, offset_1); } } } } } else { - for (index_type tile_id0 = static_cast(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + for (index_type tile_id0 = static_cast(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast(hipThreadIdx_x) + + static_cast(threadIdx.x) + static_cast(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { - for (index_type tile_id1 = static_cast(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast(threadIdx.x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { + static_cast(threadIdx.y) < m_policy.m_tile[1]) { m_func(Tag(), offset_0, offset_1); } } @@ -210,32 +206,30 @@ struct DeviceIterateTile<3, PolicyType, Functor, void> { void exec_range() const { // LL if (PolicyType::inner_direction == PolicyType::Left) { - for (index_type tile_id2 = static_cast(hipBlockIdx_z); - tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_z) { + for (index_type tile_id2 = static_cast(blockIdx.z); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.z) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast(hipThreadIdx_z) < m_policy.m_tile[2]) { - for (index_type tile_id1 = static_cast(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast(threadIdx.z) < m_policy.m_tile[2]) { + for (index_type tile_id1 = static_cast(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id0 = static_cast(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; - tile_id0 += hipGridDim_x) { + static_cast(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast(hipThreadIdx_x) + + static_cast(threadIdx.x) + static_cast(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast(hipThreadIdx_x) < - m_policy.m_tile[0]) { + static_cast(threadIdx.x) < m_policy.m_tile[0]) { m_func(offset_0, offset_1, offset_2); } } @@ -246,32 +240,30 @@ struct DeviceIterateTile<3, PolicyType, Functor, void> { } // LR else { - for (index_type tile_id0 = static_cast(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + for (index_type tile_id0 = static_cast(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast(hipThreadIdx_x) + + static_cast(threadIdx.x) + static_cast(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { - for (index_type tile_id1 = static_cast(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast(threadIdx.x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id2 = static_cast(hipBlockIdx_z); - tile_id2 < m_policy.m_tile_end[2]; - tile_id2 += hipGridDim_z) { + static_cast(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id2 = static_cast(blockIdx.z); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.z) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast(hipThreadIdx_z) < - m_policy.m_tile[2]) { + static_cast(threadIdx.z) < m_policy.m_tile[2]) { m_func(offset_0, offset_1, offset_2); } } @@ -299,32 +291,30 @@ struct DeviceIterateTile<3, PolicyType, Functor, Tag> { KOKKOS_INLINE_FUNCTION void exec_range() const { if (PolicyType::inner_direction == PolicyType::Left) { - for (index_type tile_id2 = static_cast(hipBlockIdx_z); - tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_z) { + for (index_type tile_id2 = static_cast(blockIdx.z); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.z) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast(hipThreadIdx_z) < m_policy.m_tile[2]) { - for (index_type tile_id1 = static_cast(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast(threadIdx.z) < m_policy.m_tile[2]) { + for (index_type tile_id1 = static_cast(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id0 = static_cast(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; - tile_id0 += hipGridDim_x) { + static_cast(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast(hipThreadIdx_x) + + static_cast(threadIdx.x) + static_cast(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast(hipThreadIdx_x) < - m_policy.m_tile[0]) { + static_cast(threadIdx.x) < m_policy.m_tile[0]) { m_func(Tag(), offset_0, offset_1, offset_2); } } @@ -333,32 +323,30 @@ struct DeviceIterateTile<3, PolicyType, Functor, Tag> { } } } else { - for (index_type tile_id0 = static_cast(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + for (index_type tile_id0 = static_cast(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast(hipThreadIdx_x) + + static_cast(threadIdx.x) + static_cast(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { - for (index_type tile_id1 = static_cast(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast(threadIdx.x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id2 = static_cast(hipBlockIdx_z); - tile_id2 < m_policy.m_tile_end[2]; - tile_id2 += hipGridDim_z) { + static_cast(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id2 = static_cast(blockIdx.z); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.z) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast(hipThreadIdx_z) < - m_policy.m_tile[2]) { + static_cast(threadIdx.z) < m_policy.m_tile[2]) { m_func(Tag(), offset_0, offset_1, offset_2); } } @@ -397,31 +385,29 @@ struct DeviceIterateTile<4, PolicyType, Functor, void> { ? index_type(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast(threadIdx.x) / m_policy.m_tile[0]; - for (index_type tile_id3 = static_cast(hipBlockIdx_z); - tile_id3 < m_policy.m_tile_end[3]; tile_id3 += hipGridDim_z) { + for (index_type tile_id3 = static_cast(blockIdx.z); + tile_id3 < m_policy.m_tile_end[3]; tile_id3 += gridDim.z) { const index_type offset_3 = tile_id3 * m_policy.m_tile[3] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[3]); if (offset_3 < m_policy.m_upper[3] && - static_cast(hipThreadIdx_z) < m_policy.m_tile[3]) { - for (index_type tile_id2 = static_cast(hipBlockIdx_y); - tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_y) { + static_cast(threadIdx.z) < m_policy.m_tile[3]) { + for (index_type tile_id2 = static_cast(blockIdx.y); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.y) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast(hipThreadIdx_y) < m_policy.m_tile[2]) { + static_cast(threadIdx.y) < m_policy.m_tile[2]) { for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; j += numbl1) { const index_type offset_1 = @@ -456,14 +442,12 @@ struct DeviceIterateTile<4, PolicyType, Functor, void> { ? index_type(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast(threadIdx.x) % m_policy.m_tile[1]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -477,26 +461,24 @@ struct DeviceIterateTile<4, PolicyType, Functor, void> { static_cast(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && thr_id1 < m_policy.m_tile[1]) { - for (index_type tile_id2 = static_cast(hipBlockIdx_y); - tile_id2 < m_policy.m_tile_end[2]; - tile_id2 += hipGridDim_y) { + for (index_type tile_id2 = static_cast(blockIdx.y); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.y) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast(hipThreadIdx_y) < - m_policy.m_tile[2]) { + static_cast(threadIdx.y) < m_policy.m_tile[2]) { for (index_type tile_id3 = - static_cast(hipBlockIdx_z); + static_cast(blockIdx.z); tile_id3 < m_policy.m_tile_end[3]; - tile_id3 += hipGridDim_z) { + tile_id3 += gridDim.z) { const index_type offset_3 = tile_id3 * m_policy.m_tile[3] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[3]); if (offset_3 < m_policy.m_upper[3] && - static_cast(hipThreadIdx_z) < + static_cast(threadIdx.z) < m_policy.m_tile[3]) { m_func(offset_0, offset_1, offset_2, offset_3); } @@ -537,31 +519,29 @@ struct DeviceIterateTile<4, PolicyType, Functor, Tag> { ? static_cast(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast(threadIdx.x) / m_policy.m_tile[0]; - for (index_type tile_id3 = static_cast(hipBlockIdx_z); - tile_id3 < m_policy.m_tile_end[3]; tile_id3 += hipGridDim_z) { + for (index_type tile_id3 = static_cast(blockIdx.z); + tile_id3 < m_policy.m_tile_end[3]; tile_id3 += gridDim.z) { const index_type offset_3 = tile_id3 * m_policy.m_tile[3] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[3]); if (offset_3 < m_policy.m_upper[3] && - static_cast(hipThreadIdx_z) < m_policy.m_tile[3]) { - for (index_type tile_id2 = static_cast(hipBlockIdx_y); - tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_y) { + static_cast(threadIdx.z) < m_policy.m_tile[3]) { + for (index_type tile_id2 = static_cast(blockIdx.y); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.y) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast(hipThreadIdx_y) < m_policy.m_tile[2]) { + static_cast(threadIdx.y) < m_policy.m_tile[2]) { for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; j += numbl1) { const index_type offset_1 = @@ -594,14 +574,12 @@ struct DeviceIterateTile<4, PolicyType, Functor, Tag> { ? index_type(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast(threadIdx.x) % m_policy.m_tile[1]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -615,26 +593,24 @@ struct DeviceIterateTile<4, PolicyType, Functor, Tag> { static_cast(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && thr_id1 < m_policy.m_tile[1]) { - for (index_type tile_id2 = static_cast(hipBlockIdx_y); - tile_id2 < m_policy.m_tile_end[2]; - tile_id2 += hipGridDim_y) { + for (index_type tile_id2 = static_cast(blockIdx.y); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.y) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast(hipThreadIdx_y) + + static_cast(threadIdx.y) + static_cast(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast(hipThreadIdx_y) < - m_policy.m_tile[2]) { + static_cast(threadIdx.y) < m_policy.m_tile[2]) { for (index_type tile_id3 = - static_cast(hipBlockIdx_z); + static_cast(blockIdx.z); tile_id3 < m_policy.m_tile_end[3]; - tile_id3 += hipGridDim_z) { + tile_id3 += gridDim.z) { const index_type offset_3 = tile_id3 * m_policy.m_tile[3] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[3]); if (offset_3 < m_policy.m_upper[3] && - static_cast(hipThreadIdx_z) < + static_cast(threadIdx.z) < m_policy.m_tile[3]) { m_func(Tag(), offset_0, offset_1, offset_2, offset_3); } @@ -676,14 +652,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, void> { ? index_type(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast(threadIdx.x) / m_policy.m_tile[0]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -693,23 +667,21 @@ struct DeviceIterateTile<5, PolicyType, Functor, void> { ? index_type(max_blocks / numbl2) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id2 = - static_cast(hipBlockIdx_y) % numbl2; - const index_type tile_id3 = - static_cast(hipBlockIdx_y) / numbl2; + const index_type tile_id2 = static_cast(blockIdx.y) % numbl2; + const index_type tile_id3 = static_cast(blockIdx.y) / numbl2; const index_type thr_id2 = - static_cast(hipThreadIdx_y) % m_policy.m_tile[2]; + static_cast(threadIdx.y) % m_policy.m_tile[2]; const index_type thr_id3 = - static_cast(hipThreadIdx_y) / m_policy.m_tile[2]; + static_cast(threadIdx.y) / m_policy.m_tile[2]; - for (index_type tile_id4 = static_cast(hipBlockIdx_z); - tile_id4 < m_policy.m_tile_end[4]; tile_id4 += hipGridDim_z) { + for (index_type tile_id4 = static_cast(blockIdx.z); + tile_id4 < m_policy.m_tile_end[4]; tile_id4 += gridDim.z) { const index_type offset_4 = tile_id4 * m_policy.m_tile[4] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[4]); if (offset_4 < m_policy.m_upper[4] && - static_cast(hipThreadIdx_z) < m_policy.m_tile[4]) { + static_cast(threadIdx.z) < m_policy.m_tile[4]) { for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; l += numbl3) { const index_type offset_3 = @@ -761,14 +733,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, void> { ? index_type(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast(threadIdx.x) % m_policy.m_tile[1]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -778,14 +748,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, void> { ? index_type(max_blocks / numbl3) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id2 = - static_cast(hipBlockIdx_y) / numbl3; - const index_type tile_id3 = - static_cast(hipBlockIdx_y) % numbl3; + const index_type tile_id2 = static_cast(blockIdx.y) / numbl3; + const index_type tile_id3 = static_cast(blockIdx.y) % numbl3; const index_type thr_id2 = - static_cast(hipThreadIdx_y) / m_policy.m_tile[3]; + static_cast(threadIdx.y) / m_policy.m_tile[3]; const index_type thr_id3 = - static_cast(hipThreadIdx_y) % m_policy.m_tile[3]; + static_cast(threadIdx.y) % m_policy.m_tile[3]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -814,15 +782,15 @@ struct DeviceIterateTile<5, PolicyType, Functor, void> { if (offset_3 < m_policy.m_upper[3] && thr_id3 < m_policy.m_tile[3]) { for (index_type tile_id4 = - static_cast(hipBlockIdx_z); + static_cast(blockIdx.z); tile_id4 < m_policy.m_tile_end[4]; - tile_id4 += hipGridDim_z) { + tile_id4 += gridDim.z) { const index_type offset_4 = tile_id4 * m_policy.m_tile[4] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[4]); if (offset_4 < m_policy.m_upper[4] && - static_cast(hipThreadIdx_z) < + static_cast(threadIdx.z) < m_policy.m_tile[4]) { m_func(offset_0, offset_1, offset_2, offset_3, offset_4); @@ -867,14 +835,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, Tag> { ? index_type(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast(threadIdx.x) / m_policy.m_tile[0]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -884,23 +850,21 @@ struct DeviceIterateTile<5, PolicyType, Functor, Tag> { ? index_type(max_blocks / numbl2) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id2 = - static_cast(hipBlockIdx_y) % numbl2; - const index_type tile_id3 = - static_cast(hipBlockIdx_y) / numbl2; + const index_type tile_id2 = static_cast(blockIdx.y) % numbl2; + const index_type tile_id3 = static_cast(blockIdx.y) / numbl2; const index_type thr_id2 = - static_cast(hipThreadIdx_y) % m_policy.m_tile[2]; + static_cast(threadIdx.y) % m_policy.m_tile[2]; const index_type thr_id3 = - static_cast(hipThreadIdx_y) / m_policy.m_tile[2]; + static_cast(threadIdx.y) / m_policy.m_tile[2]; - for (index_type tile_id4 = static_cast(hipBlockIdx_z); - tile_id4 < m_policy.m_tile_end[4]; tile_id4 += hipGridDim_z) { + for (index_type tile_id4 = static_cast(blockIdx.z); + tile_id4 < m_policy.m_tile_end[4]; tile_id4 += gridDim.z) { const index_type offset_4 = tile_id4 * m_policy.m_tile[4] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[4]); if (offset_4 < m_policy.m_upper[4] && - static_cast(hipThreadIdx_z) < m_policy.m_tile[4]) { + static_cast(threadIdx.z) < m_policy.m_tile[4]) { for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; l += numbl3) { const index_type offset_3 = @@ -952,14 +916,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, Tag> { ? static_cast(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast(threadIdx.x) % m_policy.m_tile[1]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -969,14 +931,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, Tag> { ? index_type(max_blocks / numbl3) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id2 = - static_cast(hipBlockIdx_y) / numbl3; - const index_type tile_id3 = - static_cast(hipBlockIdx_y) % numbl3; + const index_type tile_id2 = static_cast(blockIdx.y) / numbl3; + const index_type tile_id3 = static_cast(blockIdx.y) % numbl3; const index_type thr_id2 = - static_cast(hipThreadIdx_y) / m_policy.m_tile[3]; + static_cast(threadIdx.y) / m_policy.m_tile[3]; const index_type thr_id3 = - static_cast(hipThreadIdx_y) % m_policy.m_tile[3]; + static_cast(threadIdx.y) % m_policy.m_tile[3]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -1005,15 +965,15 @@ struct DeviceIterateTile<5, PolicyType, Functor, Tag> { if (offset_3 < m_policy.m_upper[3] && thr_id3 < m_policy.m_tile[3]) { for (index_type tile_id4 = - static_cast(hipBlockIdx_z); + static_cast(blockIdx.z); tile_id4 < m_policy.m_tile_end[4]; - tile_id4 += hipGridDim_z) { + tile_id4 += gridDim.z) { const index_type offset_4 = tile_id4 * m_policy.m_tile[4] + - static_cast(hipThreadIdx_z) + + static_cast(threadIdx.z) + static_cast(m_policy.m_lower[4]); if (offset_4 < m_policy.m_upper[4] && - static_cast(hipThreadIdx_z) < + static_cast(threadIdx.z) < m_policy.m_tile[4]) { m_func(Tag(), offset_0, offset_1, offset_2, offset_3, offset_4); @@ -1058,14 +1018,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? static_cast(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast(threadIdx.x) / m_policy.m_tile[0]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -1075,14 +1033,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? index_type(max_blocks / numbl2) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id2 = - static_cast(hipBlockIdx_y) % numbl2; - const index_type tile_id3 = - static_cast(hipBlockIdx_y) / numbl2; + const index_type tile_id2 = static_cast(blockIdx.y) % numbl2; + const index_type tile_id3 = static_cast(blockIdx.y) / numbl2; const index_type thr_id2 = - static_cast(hipThreadIdx_y) % m_policy.m_tile[2]; + static_cast(threadIdx.y) % m_policy.m_tile[2]; const index_type thr_id3 = - static_cast(hipThreadIdx_y) / m_policy.m_tile[2]; + static_cast(threadIdx.y) / m_policy.m_tile[2]; temp0 = m_policy.m_tile_end[4]; temp1 = m_policy.m_tile_end[5]; @@ -1092,14 +1048,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? static_cast(max_blocks / numbl4) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id4 = - static_cast(hipBlockIdx_z) % numbl4; - const index_type tile_id5 = - static_cast(hipBlockIdx_z) / numbl4; + const index_type tile_id4 = static_cast(blockIdx.z) % numbl4; + const index_type tile_id5 = static_cast(blockIdx.z) / numbl4; const index_type thr_id4 = - static_cast(hipThreadIdx_z) % m_policy.m_tile[4]; + static_cast(threadIdx.z) % m_policy.m_tile[4]; const index_type thr_id5 = - static_cast(hipThreadIdx_z) / m_policy.m_tile[4]; + static_cast(threadIdx.z) / m_policy.m_tile[4]; for (index_type n = tile_id5; n < m_policy.m_tile_end[5]; n += numbl5) { const index_type offset_5 = @@ -1166,14 +1120,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? static_cast(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast(threadIdx.x) % m_policy.m_tile[1]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -1183,14 +1135,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? index_type(max_blocks / numbl3) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id2 = - static_cast(hipBlockIdx_y) / numbl3; - const index_type tile_id3 = - static_cast(hipBlockIdx_y) % numbl3; + const index_type tile_id2 = static_cast(blockIdx.y) / numbl3; + const index_type tile_id3 = static_cast(blockIdx.y) % numbl3; const index_type thr_id2 = - static_cast(hipThreadIdx_y) / m_policy.m_tile[3]; + static_cast(threadIdx.y) / m_policy.m_tile[3]; const index_type thr_id3 = - static_cast(hipThreadIdx_y) % m_policy.m_tile[3]; + static_cast(threadIdx.y) % m_policy.m_tile[3]; temp0 = m_policy.m_tile_end[4]; temp1 = m_policy.m_tile_end[5]; @@ -1200,14 +1150,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? index_type(max_blocks / numbl5) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id4 = - static_cast(hipBlockIdx_z) / numbl5; - const index_type tile_id5 = - static_cast(hipBlockIdx_z) % numbl5; + const index_type tile_id4 = static_cast(blockIdx.z) / numbl5; + const index_type tile_id5 = static_cast(blockIdx.z) % numbl5; const index_type thr_id4 = - static_cast(hipThreadIdx_z) / m_policy.m_tile[5]; + static_cast(threadIdx.z) / m_policy.m_tile[5]; const index_type thr_id5 = - static_cast(hipThreadIdx_z) % m_policy.m_tile[5]; + static_cast(threadIdx.z) % m_policy.m_tile[5]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -1294,14 +1242,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast(threadIdx.x) / m_policy.m_tile[0]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -1311,14 +1257,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast(max_blocks / numbl2) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id2 = - static_cast(hipBlockIdx_y) % numbl2; - const index_type tile_id3 = - static_cast(hipBlockIdx_y) / numbl2; + const index_type tile_id2 = static_cast(blockIdx.y) % numbl2; + const index_type tile_id3 = static_cast(blockIdx.y) / numbl2; const index_type thr_id2 = - static_cast(hipThreadIdx_y) % m_policy.m_tile[2]; + static_cast(threadIdx.y) % m_policy.m_tile[2]; const index_type thr_id3 = - static_cast(hipThreadIdx_y) / m_policy.m_tile[2]; + static_cast(threadIdx.y) / m_policy.m_tile[2]; temp0 = m_policy.m_tile_end[4]; temp1 = m_policy.m_tile_end[5]; @@ -1328,14 +1272,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast(max_blocks / numbl4) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id4 = - static_cast(hipBlockIdx_z) % numbl4; - const index_type tile_id5 = - static_cast(hipBlockIdx_z) / numbl4; + const index_type tile_id4 = static_cast(blockIdx.z) % numbl4; + const index_type tile_id5 = static_cast(blockIdx.z) / numbl4; const index_type thr_id4 = - static_cast(hipThreadIdx_z) % m_policy.m_tile[4]; + static_cast(threadIdx.z) % m_policy.m_tile[4]; const index_type thr_id5 = - static_cast(hipThreadIdx_z) / m_policy.m_tile[4]; + static_cast(threadIdx.z) / m_policy.m_tile[4]; for (index_type n = tile_id5; n < m_policy.m_tile_end[5]; n += numbl5) { const index_type offset_5 = @@ -1402,14 +1344,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast(threadIdx.x) % m_policy.m_tile[1]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -1419,14 +1359,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast(max_blocks / numbl3) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id2 = - static_cast(hipBlockIdx_y) / numbl3; - const index_type tile_id3 = - static_cast(hipBlockIdx_y) % numbl3; + const index_type tile_id2 = static_cast(blockIdx.y) / numbl3; + const index_type tile_id3 = static_cast(blockIdx.y) % numbl3; const index_type thr_id2 = - static_cast(hipThreadIdx_y) / m_policy.m_tile[3]; + static_cast(threadIdx.y) / m_policy.m_tile[3]; const index_type thr_id3 = - static_cast(hipThreadIdx_y) % m_policy.m_tile[3]; + static_cast(threadIdx.y) % m_policy.m_tile[3]; temp0 = m_policy.m_tile_end[4]; temp1 = m_policy.m_tile_end[5]; @@ -1436,14 +1374,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast(max_blocks / numbl5) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id4 = - static_cast(hipBlockIdx_z) / numbl5; - const index_type tile_id5 = - static_cast(hipBlockIdx_z) % numbl5; + const index_type tile_id4 = static_cast(blockIdx.z) / numbl5; + const index_type tile_id5 = static_cast(blockIdx.z) % numbl5; const index_type thr_id4 = - static_cast(hipThreadIdx_z) / m_policy.m_tile[5]; + static_cast(threadIdx.z) / m_policy.m_tile[5]; const index_type thr_id5 = - static_cast(hipThreadIdx_z) % m_policy.m_tile[5]; + static_cast(threadIdx.z) % m_policy.m_tile[5]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -1573,18 +1509,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -1656,18 +1592,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -1741,18 +1677,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -1827,18 +1763,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -1914,18 +1850,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -1936,7 +1872,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with (index_type)hipThreadIdx_y + // tile-local indices identified with (index_type)threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -1999,18 +1935,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2021,7 +1957,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2044,7 +1980,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2085,18 +2021,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2130,7 +2066,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2172,18 +2108,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2194,7 +2130,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2217,7 +2153,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2258,18 +2194,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2280,7 +2216,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2303,7 +2239,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2345,18 +2281,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2431,18 +2367,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2517,18 +2453,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2601,18 +2537,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2692,18 +2628,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2714,7 +2650,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2778,18 +2714,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2800,7 +2736,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2822,7 +2758,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2865,18 +2801,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2953,18 +2889,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -2975,7 +2911,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2998,7 +2934,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3042,18 +2978,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -3064,7 +3000,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3087,7 +3023,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3130,18 +3066,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -3152,7 +3088,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3175,7 +3111,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3219,18 +3155,18 @@ struct DeviceIterateTile< KOKKOS_INLINE_FUNCTION void exec_range() const { - if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast(blockIdx.x) < m_policy.m_num_tiles && + static_cast(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast(hipThreadIdx_y); + index_type thrd_idx = static_cast(threadIdx.y); bool in_bounds = true; // LL @@ -3241,7 +3177,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3264,7 +3200,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp index 1eaae38302..98b457d8cf 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp @@ -53,12 +53,21 @@ namespace Kokkos { namespace Impl { -__device__ inline void hip_abort(char const *msg) { - printf("%s", msg); - // FIXME_HIP both abort and the __assertfail system call are currently - // implemented with __builtin_trap which causes the program to exit abnormally - // without printing the error message. - // abort(); +[[noreturn]] __device__ __attribute__((noinline)) void hip_abort( + char const *msg) { +#ifdef NDEBUG + (void)msg; +#else + // disable printf on release builds, as it has a non-trivial performance + // impact + printf("Aborting with message `%s'.\n", msg); +#endif + abort(); + // This loop is never executed. It's intended to suppress warnings that the + // function returns, even though it does not. This is necessary because + // abort() is not marked as [[noreturn]], even though it does not return. + while (true) + ; } } // namespace Impl diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp index c09e09f500..fea5a55f64 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp @@ -45,8 +45,7 @@ #ifndef KOKKOS_HIP_ATOMIC_HPP #define KOKKOS_HIP_ATOMIC_HPP -#ifdef KOKKOS_ENABLE_HIP_ATOMICS - +#if defined(KOKKOS_ENABLE_HIP_ATOMICS) namespace Kokkos { // HIP can do: // Types int/unsigned int @@ -91,7 +90,7 @@ __inline__ __device__ T atomic_exchange( typename std::enable_if::type val) { - typedef unsigned long long int type; + using type = unsigned long long int; type tmp = atomicExch(reinterpret_cast(const_cast(dest)), *reinterpret_cast(const_cast(&val))); @@ -141,7 +140,7 @@ __inline__ __device__ void atomic_assign( typename std::enable_if::type val) { - typedef unsigned long long int type; + using type = unsigned long long int; atomicExch(reinterpret_cast(const_cast(dest)), *reinterpret_cast(const_cast(&val))); } diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp index 8799d359ff..fc4716d2a8 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp @@ -67,34 +67,116 @@ int hip_get_max_block_size(typename DriverType::functor_type const &f, f, vector_length, shmem_extra_block, shmem_extra_thread); } -template -int hip_get_max_block_size(const HIPInternal * /*hip_instance*/, - const hipFuncAttributes &attr, - const FunctorType & /*f*/, - const size_t /*vector_length*/, - const size_t /*shmem_block*/, - const size_t /*shmem_thread*/) { - // FIXME_HIP find a better algorithm. Be aware that - // maxThreadsPerMultiProcessor, regsPerBlock, and l2CacheSize are bugged and - // always return zero - // https://github.com/ROCm-Developer-Tools/HIP/blob/6c5fa32815650cc20a4f783d09b013610348a4d5/include/hip/hcc_detail/hip_runtime_api.h#L438-L440 - // and we don't have access to the same information than we do for CUDA - - int const max_threads_per_block_mi60 = 1024; - int const max_threads_per_block = LaunchBounds::maxTperB == 0 - ? max_threads_per_block_mi60 +template +int hip_internal_get_block_size(const F &condition_check, + const HIPInternal *hip_instance, + const hipFuncAttributes &attr, + const FunctorType &f, + const size_t vector_length, + const size_t shmem_block, + const size_t shmem_thread) { + const int min_blocks_per_sm = + LaunchBounds::minBperSM == 0 ? 1 : LaunchBounds::minBperSM; + const int max_threads_per_block = LaunchBounds::maxTperB == 0 + ? hip_instance->m_maxThreadsPerBlock : LaunchBounds::maxTperB; - return std::min(attr.maxThreadsPerBlock, max_threads_per_block); + + const int regs_per_wavefront = attr.numRegs; + const int regs_per_sm = hip_instance->m_regsPerSM; + const int shmem_per_sm = hip_instance->m_shmemPerSM; + const int max_shmem_per_block = hip_instance->m_maxShmemPerBlock; + const int max_blocks_per_sm = hip_instance->m_maxBlocksPerSM; + const int max_threads_per_sm = hip_instance->m_maxThreadsPerSM; + +// FIXME_HIP this is broken in 3.5, but should be in 3.6 +#if (HIP_VERSION_MAJOR > 3 || HIP_VERSION_MINOR > 5 || \ + HIP_VERSION_PATCH >= 20226) + int block_size = std::min(attr.maxThreadsPerBlock, max_threads_per_block); +#else + int block_size = max_threads_per_block; +#endif + KOKKOS_ASSERT(block_size > 0); + + int functor_shmem = ::Kokkos::Impl::FunctorTeamShmemSize::value( + f, block_size / vector_length); + int total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + + functor_shmem + attr.sharedSizeBytes; + int max_blocks_regs = + regs_per_sm / (regs_per_wavefront * (block_size / HIPTraits::WarpSize)); + int max_blocks_shmem = + (total_shmem < max_shmem_per_block) + ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) + : 0; + int blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); + int threads_per_sm = blocks_per_sm * block_size; + if (threads_per_sm > max_threads_per_sm) { + blocks_per_sm = max_threads_per_sm / block_size; + threads_per_sm = blocks_per_sm * block_size; + } + int opt_block_size = (blocks_per_sm >= min_blocks_per_sm) ? block_size : 0; + int opt_threads_per_sm = threads_per_sm; + // printf("BlockSizeMax: %i Shmem: %i %i %i %i Regs: %i %i Blocks: %i %i + // Achieved: %i %i Opt: %i %i\n",block_size, + // shmem_per_sm,max_shmem_per_block,functor_shmem,total_shmem, + // regs_per_sm,regs_per_wavefront,max_blocks_shmem,max_blocks_regs,blocks_per_sm,threads_per_sm,opt_block_size,opt_threads_per_sm); + block_size -= HIPTraits::WarpSize; + while (condition_check(blocks_per_sm) && + (block_size >= HIPTraits::WarpSize)) { + functor_shmem = ::Kokkos::Impl::FunctorTeamShmemSize::value( + f, block_size / vector_length); + total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + + functor_shmem + attr.sharedSizeBytes; + max_blocks_regs = + regs_per_sm / (regs_per_wavefront * (block_size / HIPTraits::WarpSize)); + max_blocks_shmem = + (total_shmem < max_shmem_per_block) + ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) + : 0; + blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); + threads_per_sm = blocks_per_sm * block_size; + if (threads_per_sm > max_threads_per_sm) { + blocks_per_sm = max_threads_per_sm / block_size; + threads_per_sm = blocks_per_sm * block_size; + } + if ((blocks_per_sm >= min_blocks_per_sm) && + (blocks_per_sm <= max_blocks_per_sm)) { + if (threads_per_sm >= opt_threads_per_sm) { + opt_block_size = block_size; + opt_threads_per_sm = threads_per_sm; + } + } + // printf("BlockSizeMax: %i Shmem: %i %i %i %i Regs: %i %i Blocks: %i %i + // Achieved: %i %i Opt: %i %i\n",block_size, + // shmem_per_sm,max_shmem_per_block,functor_shmem,total_shmem, + // regs_per_sm,regs_per_wavefront,max_blocks_shmem,max_blocks_regs,blocks_per_sm,threads_per_sm,opt_block_size,opt_threads_per_sm); + block_size -= HIPTraits::WarpSize; + } + return opt_block_size; } +template +int hip_get_max_block_size(const HIPInternal *hip_instance, + const hipFuncAttributes &attr, const FunctorType &f, + const size_t vector_length, const size_t shmem_block, + const size_t shmem_thread) { + return hip_internal_get_block_size( + [](int x) { return x == 0; }, hip_instance, attr, f, vector_length, + shmem_block, shmem_thread); +} template struct HIPGetMaxBlockSize, true> { static int get_block_size(typename DriverType::functor_type const &f, size_t const vector_length, size_t const shmem_extra_block, size_t const shmem_extra_thread) { - unsigned int numBlocks = 0; - int blockSize = 1024; +// FIXME_HIP -- remove this once the API change becomes mature +#if !defined(__HIP__) + using blocktype = unsigned int; +#else + using blocktype = int; +#endif + blocktype numBlocks = 0; + int blockSize = 1024; int sharedmem = shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + ::Kokkos::Impl::FunctorTeamShmemSize< @@ -150,23 +232,13 @@ int hip_get_opt_block_size(typename DriverType::functor_type const &f, } template -int hip_get_opt_block_size(HIPInternal const * /*hip_instance*/, - hipFuncAttributes const &attr, - FunctorType const & /*f*/, - size_t const /*vector_length*/, - size_t const /*shmem_block*/, - size_t const /*shmem_thread*/) { - // FIXME_HIP find a better algorithm. Be aware that - // maxThreadsPerMultiProcessor, regsPerBlock, and l2CacheSize are bugged and - // always return zero - // https://github.com/ROCm-Developer-Tools/HIP/blob/6c5fa32815650cc20a4f783d09b013610348a4d5/include/hip/hcc_detail/hip_runtime_api.h#L438-L440 - // and we don't have access to the same information than we do for CUDA - - int const max_threads_per_block_mi60 = 1024; - int const max_threads_per_block = LaunchBounds::maxTperB == 0 - ? max_threads_per_block_mi60 - : LaunchBounds::maxTperB; - return std::min(attr.maxThreadsPerBlock, max_threads_per_block); +int hip_get_opt_block_size(HIPInternal const *hip_instance, + hipFuncAttributes const &attr, FunctorType const &f, + size_t const vector_length, size_t const shmem_block, + size_t const shmem_thread) { + return hip_internal_get_block_size( + [](int) { return true; }, hip_instance, attr, f, vector_length, + shmem_block, shmem_thread); } // FIXME_HIP the code is identical to the false struct except for diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp index 1dcba0ff3e..20af48bf6f 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp @@ -97,56 +97,53 @@ const HIPInternalDevices &HIPInternalDevices::singleton() { namespace Impl { -int HIPInternal::was_initialized = 0; -int HIPInternal::was_finalized = 0; //---------------------------------------------------------------------------- -void HIPInternal::print_configuration(std::ostream & /*s*/) const { - // FIXME_HIP - Kokkos::abort("print_configuration not implemented!\n"); - /*const HIPInternalDevices & dev_info = HIPInternalDevices::singleton(); +void HIPInternal::print_configuration(std::ostream &s) const { + const HIPInternalDevices &dev_info = HIPInternalDevices::singleton(); -#if defined( KOKKOS_ENABLE_HIP ) - s << "macro KOKKOS_ENABLE_HIP : defined" << std::endl ; -#endif -#if defined( __hcc_version__ ) - s << "macro __hcc_version__ = " << __hcc_version__ - << std::endl ; + s << "macro KOKKOS_ENABLE_HIP : defined" << '\n'; +#if defined(HIP_VERSION) + s << "macro HIP_VERSION = " << HIP_VERSION << " = version " + << HIP_VERSION / 100 << "." << HIP_VERSION % 100 << '\n'; #endif - for ( int i = 0 ; i < dev_info.m_hipDevCount ; ++i ) { + for (int i = 0; i < dev_info.m_hipDevCount; ++i) { s << "Kokkos::Experimental::HIP[ " << i << " ] " - << dev_info.m_hipProp[i].name - << " version " << (dev_info.m_hipProp[i].major) << "." << -dev_info.m_hipProp[i].minor - << ", Total Global Memory: " << -human_memory_size(dev_info.m_hipProp[i].totalGlobalMem) - << ", Shared Memory per Wavefront: " << -human_memory_size(dev_info.m_hipProp[i].sharedMemPerWavefront); if ( m_hipDev == -i ) s << " : Selected" ; s << std::endl ; - }*/ + << dev_info.m_hipProp[i].name << " version " + << (dev_info.m_hipProp[i].major) << "." << dev_info.m_hipProp[i].minor + << ", Total Global Memory: " + << ::Kokkos::Impl::human_memory_size(dev_info.m_hipProp[i].totalGlobalMem) + << ", Shared Memory per Wavefront: " + << ::Kokkos::Impl::human_memory_size( + dev_info.m_hipProp[i].sharedMemPerBlock); + if (m_hipDev == i) s << " : Selected"; + s << '\n'; + } } //---------------------------------------------------------------------------- HIPInternal::~HIPInternal() { - if (m_scratchSpace || m_scratchFlags) { + if (m_scratchSpace || m_scratchFlags || m_scratchConcurrentBitset) { std::cerr << "Kokkos::Experimental::HIP ERROR: Failed to call " "Kokkos::Experimental::HIP::finalize()" << std::endl; std::cerr.flush(); } - m_hipDev = -1; - m_hipArch = -1; - m_multiProcCount = 0; - m_maxWarpCount = 0; - m_maxSharedWords = 0; - m_maxShmemPerBlock = 0; - m_scratchSpaceCount = 0; - m_scratchFlagsCount = 0; - m_scratchSpace = 0; - m_scratchFlags = 0; + m_hipDev = -1; + m_hipArch = -1; + m_multiProcCount = 0; + m_maxWarpCount = 0; + m_maxSharedWords = 0; + m_maxShmemPerBlock = 0; + m_scratchSpaceCount = 0; + m_scratchFlagsCount = 0; + m_scratchSpace = 0; + m_scratchFlags = 0; + m_scratchConcurrentBitset = nullptr; + m_stream = 0; } int HIPInternal::verify_is_initialized(const char *const label) const { @@ -165,13 +162,17 @@ HIPInternal &HIPInternal::singleton() { return *self; } -void HIPInternal::initialize(int hip_device_id) { +void HIPInternal::fence() const { + HIP_SAFE_CALL(hipStreamSynchronize(m_stream)); +} + +void HIPInternal::initialize(int hip_device_id, hipStream_t stream) { if (was_finalized) Kokkos::abort("Calling HIP::initialize after HIP::finalize is illegal\n"); if (is_initialized()) return; - enum { WordSize = sizeof(size_type) }; + int constexpr WordSize = sizeof(size_type); if (!HostSpace::execution_space::impl_is_initialized()) { const std::string msg( @@ -191,12 +192,12 @@ void HIPInternal::initialize(int hip_device_id) { if (ok_init && ok_id) { const struct hipDeviceProp_t &hipProp = dev_info.m_hipProp[hip_device_id]; - m_hipDev = hip_device_id; + m_hipDev = hip_device_id; + m_deviceProp = hipProp; hipSetDevice(m_hipDev); - // FIXME_HIP for now always uses default stream - m_stream = 0; + m_stream = stream; // number of multiprocessors m_multiProcCount = hipProp.multiProcessorCount; @@ -214,9 +215,13 @@ void HIPInternal::initialize(int hip_device_id) { // Maximum number of blocks m_maxBlock = hipProp.maxGridSize[0]; + // theoretically, we can get 40 WF's / CU, but only can sustain 32 + m_maxBlocksPerSM = 32; + // FIXME_HIP - Nick to implement this upstream + m_regsPerSM = 262144 / 32; m_shmemPerSM = hipProp.maxSharedMemoryPerMultiProcessor; m_maxShmemPerBlock = hipProp.sharedMemPerBlock; - m_maxThreadsPerSM = hipProp.maxThreadsPerMultiProcessor; + m_maxThreadsPerSM = m_maxBlocksPerSM * HIPTraits::WarpSize; m_maxThreadsPerBlock = hipProp.maxThreadsPerBlock; //---------------------------------- @@ -231,6 +236,31 @@ void HIPInternal::initialize(int hip_device_id) { (void)scratch_space(reduce_block_count * 16 * sizeof(size_type)); } //---------------------------------- + // Concurrent bitset for obtaining unique tokens from within + // an executing kernel. + { + const int32_t buffer_bound = + Kokkos::Impl::concurrent_bitset::buffer_bound(HIP::concurrency()); + + // Allocate and initialize uint32_t[ buffer_bound ] + + using Record = + Kokkos::Impl::SharedAllocationRecord; + + Record *const r = Record::allocate(Kokkos::Experimental::HIPSpace(), + "InternalScratchBitset", + sizeof(uint32_t) * buffer_bound); + + Record::increment(r); + + m_scratchConcurrentBitset = reinterpret_cast(r->data()); + + HIP_SAFE_CALL(hipMemset(m_scratchConcurrentBitset, 0, + sizeof(uint32_t) * buffer_bound)); + } + //---------------------------------- + } else { std::ostringstream msg; msg << "Kokkos::Experimental::HIP::initialize(" << hip_device_id @@ -253,8 +283,8 @@ void HIPInternal::initialize(int hip_device_id) { //---------------------------------------------------------------------------- -typedef Kokkos::Experimental::HIP::size_type - ScratchGrain[Impl::HIPTraits::WarpSize]; +using ScratchGrain = + Kokkos::Experimental::HIP::size_type[Impl::HIPTraits::WarpSize]; enum { sizeScratchGrain = sizeof(ScratchGrain) }; Kokkos::Experimental::HIP::size_type *HIPInternal::scratch_space( @@ -263,9 +293,9 @@ Kokkos::Experimental::HIP::size_type *HIPInternal::scratch_space( m_scratchSpaceCount * sizeScratchGrain < size) { m_scratchSpaceCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord; static Record *const r = Record::allocate( Kokkos::Experimental::HIPSpace(), "InternalScratchSpace", @@ -285,9 +315,9 @@ Kokkos::Experimental::HIP::size_type *HIPInternal::scratch_flags( m_scratchFlagsCount * sizeScratchGrain < size) { m_scratchFlagsCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord; Record *const r = Record::allocate( Kokkos::Experimental::HIPSpace(), "InternalScratchFlags", @@ -307,30 +337,37 @@ Kokkos::Experimental::HIP::size_type *HIPInternal::scratch_flags( void HIPInternal::finalize() { HIP().fence(); - was_finalized = 1; + was_finalized = true; if (0 != m_scratchSpace || 0 != m_scratchFlags) { - typedef Kokkos::Impl::SharedAllocationRecord - RecordHIP; + using RecordHIP = + Kokkos::Impl::SharedAllocationRecord; RecordHIP::decrement(RecordHIP::get_record(m_scratchFlags)); RecordHIP::decrement(RecordHIP::get_record(m_scratchSpace)); - - m_hipDev = -1; - m_hipArch = -1; - m_multiProcCount = 0; - m_maxWarpCount = 0; - m_maxBlock = 0; - m_maxSharedWords = 0; - m_maxShmemPerBlock = 0; - m_scratchSpaceCount = 0; - m_scratchFlagsCount = 0; - m_scratchSpace = 0; - m_scratchFlags = 0; + RecordHIP::decrement(RecordHIP::get_record(m_scratchConcurrentBitset)); + + m_hipDev = -1; + m_hipArch = -1; + m_multiProcCount = 0; + m_maxWarpCount = 0; + m_maxBlock = 0; + m_maxSharedWords = 0; + m_maxShmemPerBlock = 0; + m_scratchSpaceCount = 0; + m_scratchFlagsCount = 0; + m_scratchSpace = 0; + m_scratchFlags = 0; + m_scratchConcurrentBitset = nullptr; + m_stream = 0; } } //---------------------------------------------------------------------------- +Kokkos::Experimental::HIP::size_type hip_internal_multiprocessor_count() { + return HIPInternal::singleton().m_multiProcCount; +} + Kokkos::Experimental::HIP::size_type hip_internal_maximum_warp_count() { return HIPInternal::singleton().m_maxWarpCount; } @@ -371,3 +408,13 @@ void hip_internal_error_throw(hipError_t e, const char *name, const char *file, } } // namespace Impl } // namespace Kokkos + +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Experimental { +HIP::size_type HIP::detect_device_count() { + return HIPInternalDevices::singleton().m_hipDevCount; +} +} // namespace Experimental +} // namespace Kokkos diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp index c66fb2776f..9688aef350 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp @@ -55,7 +55,8 @@ namespace Impl { struct HIPTraits { static int constexpr WarpSize = 64; - static int constexpr WarpIndexShift = 6; /* WarpSize == 1 << WarpShift*/ + static int constexpr WarpIndexMask = 0x003f; /* hexadecimal for 63 */ + static int constexpr WarpIndexShift = 6; /* WarpSize == 1 << WarpShift*/ static int constexpr ConstantMemoryUsage = 0x008000; /* 32k bytes */ static int constexpr ConstantMemoryUseThreshold = 0x000200; /* 512 bytes */ @@ -65,6 +66,7 @@ struct HIPTraits { HIP::size_type hip_internal_maximum_warp_count(); HIP::size_type hip_internal_maximum_grid_count(); +HIP::size_type hip_internal_multiprocessor_count(); HIP::size_type *hip_internal_scratch_space(const HIP::size_type size); HIP::size_type *hip_internal_scratch_flags(const HIP::size_type size); @@ -84,7 +86,9 @@ class HIPInternal { unsigned m_multiProcCount; unsigned m_maxWarpCount; unsigned m_maxBlock; + unsigned m_maxBlocksPerSM; unsigned m_maxSharedWords; + int m_regsPerSM; int m_shmemPerSM; int m_maxShmemPerBlock; int m_maxThreadsPerSM; @@ -93,11 +97,13 @@ class HIPInternal { size_type m_scratchFlagsCount; size_type *m_scratchSpace; size_type *m_scratchFlags; + uint32_t *m_scratchConcurrentBitset = nullptr; + + hipDeviceProp_t m_deviceProp; hipStream_t m_stream; - static int was_initialized; - static int was_finalized; + bool was_finalized = false; static HIPInternal &singleton(); @@ -107,11 +113,13 @@ class HIPInternal { return m_hipDev >= 0; } // 0 != m_scratchSpace && 0 != m_scratchFlags ; } - void initialize(int hip_device_id); + void initialize(int hip_device_id, hipStream_t stream = 0); void finalize(); void print_configuration(std::ostream &) const; + void fence() const; + ~HIPInternal(); HIPInternal() @@ -128,7 +136,8 @@ class HIPInternal { m_scratchSpaceCount(0), m_scratchFlagsCount(0), m_scratchSpace(0), - m_scratchFlags(0) {} + m_scratchFlags(0), + m_stream(0) {} size_type *scratch_space(const size_type size); size_type *scratch_flags(const size_type size); diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp index 5c19a3e0da..34ccd899c3 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp @@ -53,10 +53,12 @@ #include #include -// FIXME_HIP cannot use global variable on the device with ROCm 2.9 -//__device__ __constant__ unsigned long kokkos_impl_hip_constant_memory_buffer -// [Kokkos::Experimental::Impl::HIPTraits::ConstantMemoryUsage / -// sizeof(unsigned long)]; +// Must use global variable on the device with HIP-Clang +#ifdef __HIP__ +__device__ __constant__ unsigned long kokkos_impl_hip_constant_memory_buffer + [Kokkos::Experimental::Impl::HIPTraits::ConstantMemoryUsage / + sizeof(unsigned long)]; +#endif namespace Kokkos { namespace Experimental { @@ -76,28 +78,31 @@ void *hip_resize_scratch_space(std::int64_t bytes, bool force_shrink = false); template __global__ static void hip_parallel_launch_constant_memory() { +// cannot use global constants in HCC +#ifdef __HCC__ __device__ __constant__ unsigned long kokkos_impl_hip_constant_memory_buffer [Kokkos::Experimental::Impl::HIPTraits::ConstantMemoryUsage / sizeof(unsigned long)]; +#endif - const DriverType &driver = *(reinterpret_cast( + const DriverType *const driver = (reinterpret_cast( kokkos_impl_hip_constant_memory_buffer)); - driver(); + driver->operator()(); } template __global__ static void hip_parallel_launch_local_memory( - const DriverType driver) { - driver(); + const DriverType *driver) { + driver->operator()(); } template __global__ __launch_bounds__( maxTperB, minBperSM) static void hip_parallel_launch_local_memory(const DriverType - driver) { - driver(); + *driver) { + driver->operator()(); } enum class HIPLaunchMechanism : unsigned { @@ -142,30 +147,34 @@ struct HIPParallelLaunch< "HIPParallelLaunch FAILED: shared memory request is too large"); } - // Invoke the driver function on the device - printf("%i %i %i | %i %i %i | %i\n", grid.x, grid.y, grid.z, block.x, - block.y, block.z, shmem); - printf("Pre Launch Error: %s\n", hipGetErrorName(hipGetLastError())); - - hipLaunchKernelGGL( - (hip_parallel_launch_local_memory), - grid, block, shmem, hip_instance->m_stream, driver); + // FIXME_HIP -- there is currently an error copying (some) structs + // by value to the device in HIP-Clang / VDI + // As a workaround, we can malloc the DriverType and explictly copy over. + // To remove once solved in HIP + DriverType *d_driver; + HIP_SAFE_CALL(hipMalloc(&d_driver, sizeof(DriverType))); + HIP_SAFE_CALL(hipMemcpyAsync(d_driver, &driver, sizeof(DriverType), + hipMemcpyHostToDevice, + hip_instance->m_stream)); + hip_parallel_launch_local_memory + <<m_stream>>>(d_driver); - Kokkos::Experimental::HIP().fence(); - printf("Post Launch Error: %s\n", hipGetErrorName(hipGetLastError())); #if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) HIP_SAFE_CALL(hipGetLastError()); - Kokkos::Experimental::HIP().fence(); + hip_instance->fence(); #endif + HIP_SAFE_CALL(hipFree(d_driver)); } } static hipFuncAttributes get_hip_func_attributes() { hipFuncAttributes attr; hipFuncGetAttributes( - &attr, hip_parallel_launch_local_memory); + &attr, + reinterpret_cast( + hip_parallel_launch_local_memory)); return attr; } }; @@ -184,22 +193,29 @@ struct HIPParallelLaunch, } // Invoke the driver function on the device - hipLaunchKernelGGL(hip_parallel_launch_local_memory, grid, - block, shmem, hip_instance->m_stream, driver); - Kokkos::Experimental::HIP().fence(); + // FIXME_HIP -- see note about struct copy by value above + DriverType *d_driver; + HIP_SAFE_CALL(hipMalloc(&d_driver, sizeof(DriverType))); + HIP_SAFE_CALL(hipMemcpyAsync(d_driver, &driver, sizeof(DriverType), + hipMemcpyHostToDevice, + hip_instance->m_stream)); + hip_parallel_launch_local_memory + <<m_stream>>>(d_driver); + #if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) HIP_SAFE_CALL(hipGetLastError()); - Kokkos::Experimental::HIP().fence(); + hip_instance->fence(); #endif + HIP_SAFE_CALL(hipFree(d_driver)); } } static hipFuncAttributes get_hip_func_attributes() { hipFuncAttributes attr; - hipFuncGetAttributes(&attr, - reinterpret_cast( - &hip_parallel_launch_local_memory)); + hipFuncGetAttributes( + &attr, reinterpret_cast( + &hip_parallel_launch_local_memory)); return attr; } }; diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp index 0a34ed505b..3426caafda 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp @@ -62,14 +62,14 @@ namespace Kokkos { namespace { __global__ void init_lock_array_kernel_atomic() { - unsigned i = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x; + unsigned i = blockIdx.x * blockDim.x + threadIdx.x; if (i < KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1) { g_device_hip_lock_arrays.atomic[i] = 0; } } __global__ void init_lock_array_kernel_threadid(int N) { - unsigned i = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x; + unsigned i = blockIdx.x * blockDim.x + threadIdx.x; if (i < static_cast(N)) { g_device_hip_lock_arrays.scratch[i] = 0; } @@ -93,12 +93,11 @@ void initialize_host_hip_lock_arrays() { g_host_hip_lock_arrays.n = ::Kokkos::Experimental::HIP::concurrency(); KOKKOS_COPY_HIP_LOCK_ARRAYS_TO_DEVICE(); - hipLaunchKernelGGL(init_lock_array_kernel_atomic, - (KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1 + 255) / 256, 256, - 0, 0); - hipLaunchKernelGGL(init_lock_array_kernel_threadid, - (::Kokkos::Experimental::HIP::concurrency() + 255) / 256, - 256, 0, 0, ::Kokkos::Experimental::HIP::concurrency()); + init_lock_array_kernel_atomic<<< + (KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1 + 255) / 256, 256, 0, 0>>>(); + init_lock_array_kernel_threadid<<< + (::Kokkos::Experimental::HIP::concurrency() + 255) / 256, 256, 0, 0>>>( + ::Kokkos::Experimental::HIP::concurrency()); } void finalize_host_hip_lock_arrays() { diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp index 7a6161346c..c3acc0622d 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp @@ -113,8 +113,8 @@ class ParallelFor, *this, grid, block, 0, m_policy.space().impl_internal_space_instance(), false); } else if (Policy::rank == 4) { - // id0,id1 encoded within hipThreadIdx_x; id2 to hipThreadIdx_y; id3 to - // hipThreadIdx_z + // id0,id1 encoded within threadIdx.x; id2 to threadIdx.y; id3 to + // threadIdx.z dim3 const block(m_policy.m_tile[0] * m_policy.m_tile[1], m_policy.m_tile[2], m_policy.m_tile[3]); dim3 const grid( @@ -131,8 +131,8 @@ class ParallelFor, *this, grid, block, 0, m_policy.space().impl_internal_space_instance(), false); } else if (Policy::rank == 5) { - // id0,id1 encoded within hipThreadIdx_x; id2,id3 to hipThreadIdx_y; id4 - // to hipThreadIdx_z + // id0,id1 encoded within threadIdx.x; id2,id3 to threadIdx.y; id4 + // to threadIdx.z dim3 const block(m_policy.m_tile[0] * m_policy.m_tile[1], m_policy.m_tile[2] * m_policy.m_tile[3], m_policy.m_tile[4]); @@ -150,8 +150,8 @@ class ParallelFor, *this, grid, block, 0, m_policy.space().impl_internal_space_instance(), false); } else if (Policy::rank == 6) { - // id0,id1 encoded within hipThreadIdx_x; id2,id3 to hipThreadIdx_y; - // id4,id5 to hipThreadIdx_z + // id0,id1 encoded within threadIdx.x; id2,id3 to threadIdx.y; + // id4,id5 to threadIdx.z dim3 const block(m_policy.m_tile[0] * m_policy.m_tile[1], m_policy.m_tile[2] * m_policy.m_tile[3], m_policy.m_tile[4] * m_policy.m_tile[5]); @@ -213,8 +213,8 @@ class ParallelReduce, ReducerType, using functor_type = FunctorType; using size_type = Experimental::HIP::size_type; - // Algorithmic constraints: blockSize is a power of two AND hipBlockDim_y == - // hipBlockDim_z == 1 + // Algorithmic constraints: blockSize is a power of two AND blockDim.y == + // blockDim.z == 1 const FunctorType m_functor; const Policy m_policy; // used for workrange and nwork @@ -254,7 +254,7 @@ class ParallelReduce, ReducerType, reference_type value = ValueInit::init( ReducerConditional::select(m_functor, m_reducer), Experimental::kokkos_impl_hip_shared_memory() + - hipThreadIdx_y * word_count.value); + threadIdx.y * word_count.value); // Number of blocks is bounded so that the reduction can be limited to two // passes. Each thread block is given an approximately equal amount of @@ -265,24 +265,23 @@ class ParallelReduce, ReducerType, this->exec_range(value); } - // Reduce with final value at hipBlockDim_y - 1 location. + // Reduce with final value at blockDim.y - 1 location. // Problem: non power-of-two blockDim if (::Kokkos::Impl::hip_single_inter_block_reduce_scan< false, ReducerTypeFwd, WorkTagFwd>( - ReducerConditional::select(m_functor, m_reducer), hipBlockIdx_x, - hipGridDim_x, - Experimental::kokkos_impl_hip_shared_memory(), + ReducerConditional::select(m_functor, m_reducer), blockIdx.x, + gridDim.x, Experimental::kokkos_impl_hip_shared_memory(), m_scratch_space, m_scratch_flags)) { // This is the final block with the final result at the final threads' // location size_type* const shared = Experimental::kokkos_impl_hip_shared_memory() + - (hipBlockDim_y - 1) * word_count.value; + (blockDim.y - 1) * word_count.value; size_type* const global = m_result_ptr_device_accessible ? reinterpret_cast(m_result_ptr) : m_scratch_space; - if (hipThreadIdx_y == 0) { + if (threadIdx.y == 0) { Kokkos::Impl::FunctorFinal::final( ReducerConditional::select(m_functor, m_reducer), shared); } @@ -291,8 +290,7 @@ class ParallelReduce, ReducerType, __syncthreads(); } - for (unsigned i = hipThreadIdx_y; i < word_count.value; - i += hipBlockDim_y) { + for (unsigned i = threadIdx.y; i < word_count.value; i += blockDim.y) { global[i] = shared[i]; } } diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp index a9c44606e4..11434a5b25 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp @@ -52,6 +52,8 @@ #include #include #include +#include +#include namespace Kokkos { namespace Impl { @@ -91,11 +93,11 @@ class ParallelFor, using functor_type = FunctorType; inline __device__ void operator()(void) const { - const Member work_stride = hipBlockDim_y * hipGridDim_x; + const Member work_stride = blockDim.y * gridDim.x; const Member work_end = m_policy.end(); for (Member iwork = - m_policy.begin() + hipThreadIdx_y + hipBlockDim_y * hipBlockIdx_x; + m_policy.begin() + threadIdx.y + blockDim.y * blockIdx.x; iwork < work_end; iwork = iwork < work_end - work_stride ? iwork + work_stride : work_end) { @@ -156,8 +158,8 @@ class ParallelReduce, ReducerType, using size_type = Kokkos::Experimental::HIP::size_type; using index_type = typename Policy::index_type; - // Algorithmic constraints: blockSize is a power of two AND hipBlockDim_y == - // hipBlockDim_z == 1 + // Algorithmic constraints: blockSize is a power of two AND blockDim.y == + // blockDim.z == 1 const FunctorType m_functor; const Policy m_policy; @@ -167,18 +169,16 @@ class ParallelReduce, ReducerType, size_type* m_scratch_space = nullptr; size_type* m_scratch_flags = nullptr; - // Shall we use the shfl based reduction or not (only use it for static sized - // types of more than 128bit) - enum { - UseShflReduction = false - }; //((sizeof(value_type)>2*sizeof(double)) && ValueTraits::StaticValueSize) - //}; - // Some crutch to do function overloading + // FIXME_HIP_PERFORMANCE Need a rule to choose when to use shared memory and + // when to use shuffle + static bool constexpr UseShflReduction = + ((sizeof(value_type) > 2 * sizeof(double)) && + static_cast(ValueTraits::StaticValueSize)); + private: - using DummyShflReductionType = double; - using DummySHMEMReductionType = int; + struct ShflReductionTag {}; + struct SHMEMReductionTag {}; - public: // Make the exec_range calls call to Reduce::DeviceIterateTile template __device__ inline @@ -194,7 +194,15 @@ class ParallelReduce, ReducerType, m_functor(TagType(), i, update); } + public: __device__ inline void operator()() const { + using ReductionTag = + typename std::conditional::type; + run(ReductionTag{}); + } + + __device__ inline void run(SHMEMReductionTag) const { const integral_nonzero_constant word_count(ValueTraits::value_size( @@ -205,7 +213,7 @@ class ParallelReduce, ReducerType, reference_type value = ValueInit::init( ReducerConditional::select(m_functor, m_reducer), ::Kokkos::Experimental::kokkos_impl_hip_shared_memory() + - hipThreadIdx_y * word_count.value); + threadIdx.y * word_count.value); // Number of blocks is bounded so that the reduction can be limited to two // passes. Each thread block is given an approximately equal amount of @@ -213,19 +221,18 @@ class ParallelReduce, ReducerType, // ordering does not match the final pass, but is arithmetically // equivalent. - const WorkRange range(m_policy, hipBlockIdx_x, hipGridDim_x); + const WorkRange range(m_policy, blockIdx.x, gridDim.x); - for (Member iwork = range.begin() + hipThreadIdx_y, - iwork_end = range.end(); - iwork < iwork_end; iwork += hipBlockDim_y) { + for (Member iwork = range.begin() + threadIdx.y, iwork_end = range.end(); + iwork < iwork_end; iwork += blockDim.y) { this->template exec_range(iwork, value); } } - // Reduce with final value at hipBlockDim_y - 1 location. + // Reduce with final value at blockDim.y - 1 location. if (hip_single_inter_block_reduce_scan( - ReducerConditional::select(m_functor, m_reducer), hipBlockIdx_x, - hipGridDim_x, + ReducerConditional::select(m_functor, m_reducer), blockIdx.x, + gridDim.x, ::Kokkos::Experimental::kokkos_impl_hip_shared_memory(), m_scratch_space, m_scratch_flags)) { // This is the final block with the final result at the final threads' @@ -233,12 +240,12 @@ class ParallelReduce, ReducerType, size_type* const shared = ::Kokkos::Experimental::kokkos_impl_hip_shared_memory() + - (hipBlockDim_y - 1) * word_count.value; + (blockDim.y - 1) * word_count.value; size_type* const global = m_result_ptr_device_accessible ? reinterpret_cast(m_result_ptr) : m_scratch_space; - if (hipThreadIdx_y == 0) { + if (threadIdx.y == 0) { Kokkos::Impl::FunctorFinal::final( ReducerConditional::select(m_functor, m_reducer), shared); } @@ -248,13 +255,56 @@ class ParallelReduce, ReducerType, __syncthreads(); } - for (unsigned i = hipThreadIdx_y; i < word_count.value; - i += hipBlockDim_y) { + for (unsigned i = threadIdx.y; i < word_count.value; i += blockDim.y) { global[i] = shared[i]; } } } + __device__ inline void run(ShflReductionTag) const { + value_type value; + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), &value); + // Number of blocks is bounded so that the reduction can be limited to two + // passes. Each thread block is given an approximately equal amount of work + // to perform. Accumulate the values for this block. The accumulation + // ordering does not match the final pass, but is arithmetically equivalent. + + WorkRange const range(m_policy, blockIdx.x, gridDim.x); + + for (Member iwork = range.begin() + threadIdx.y, iwork_end = range.end(); + iwork < iwork_end; iwork += blockDim.y) { + this->template exec_range(iwork, value); + } + + pointer_type const result = reinterpret_cast(m_scratch_space); + + int max_active_thread = static_cast(range.end() - range.begin()) < + static_cast(blockDim.y) + ? range.end() - range.begin() + : blockDim.y; + + max_active_thread = + (max_active_thread == 0) ? blockDim.y : max_active_thread; + + value_type init; + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), &init); + if (Impl::hip_inter_block_shuffle_reduction( + value, init, + ValueJoin(ReducerConditional::select(m_functor, m_reducer)), + m_scratch_space, result, m_scratch_flags, max_active_thread)) { + unsigned int const id = threadIdx.y * blockDim.x + threadIdx.x; + if (id == 0) { + Kokkos::Impl::FunctorFinal::final( + ReducerConditional::select(m_functor, m_reducer), + reinterpret_cast(&value)); + pointer_type const final_result = + m_result_ptr_device_accessible ? m_result_ptr : result; + *final_result = value; + } + } + } + // Determine block size constrained by shared memory: inline unsigned local_block_size(const FunctorType& f) { // FIXME_HIP I don't know where 8 comes from @@ -281,6 +331,7 @@ class ParallelReduce, ReducerType, const index_type nwork = m_policy.end() - m_policy.begin(); if (nwork) { const int block_size = local_block_size(m_functor); + KOKKOS_ASSERT(block_size > 0); m_scratch_space = ::Kokkos::Experimental::Impl::hip_internal_scratch_space( @@ -294,8 +345,7 @@ class ParallelReduce, ReducerType, // REQUIRED ( 1 , N , 1 ) const dim3 block(1, block_size, 1); // Required grid.x <= block.y - const dim3 grid( - std::min(int(block.y), int((nwork + block.y - 1) / block.y)), 1, 1); + const dim3 grid(std::min(block.y, (nwork + block.y - 1) / block.y), 1, 1); const int shmem = UseShflReduction @@ -311,7 +361,7 @@ class ParallelReduce, ReducerType, false); // copy to device and execute if (!m_result_ptr_device_accessible) { - ::Kokkos::Experimental::HIP().fence(); + m_policy.space().impl_internal_space_instance()->fence(); if (m_result_ptr) { const int size = ValueTraits::value_size( @@ -377,10 +427,10 @@ class ParallelScanHIPBase { protected: // Algorithmic constraints: - // (a) hipBlockDim_y is a power of two - // (b) hipBlockDim_x == hipBlockDim_z == 1 - // (c) hipGridDim_x <= hipBlockDim_y * hipBlockDim_y - // (d) hipGridDim_y == hipGridDim_z == 1 + // (a) blockDim.y is a power of two + // (b) blockDim.x == blockDim.z == 1 + // (c) gridDim.x <= blockDim.y * blockDim.y + // (d) gridDim.y == gridDim.z == 1 const FunctorType m_functor; const Policy m_policy; @@ -415,7 +465,7 @@ class ParallelScanHIPBase { size_type* const shared_value = Kokkos::Experimental::kokkos_impl_hip_shared_memory() + - word_count.value * hipThreadIdx_y; + word_count.value * threadIdx.y; ValueInit::init(m_functor, shared_value); @@ -424,20 +474,20 @@ class ParallelScanHIPBase { // to perform. Accumulate the values for this block. The accumulation // ordering does not match the final pass, but is arithmetically equivalent. - const WorkRange range(m_policy, hipBlockIdx_x, hipGridDim_x); + const WorkRange range(m_policy, blockIdx.x, gridDim.x); - for (Member iwork = range.begin() + hipThreadIdx_y, iwork_end = range.end(); - iwork < iwork_end; iwork += hipBlockDim_y) { + for (Member iwork = range.begin() + threadIdx.y, iwork_end = range.end(); + iwork < iwork_end; iwork += blockDim.y) { this->template exec_range( iwork, ValueOps::reference(shared_value), false); } // Reduce and scan, writing out scan of blocks' totals and block-groups' - // totals. Blocks' scan values are written to 'hipBlockIdx_x' location. - // Block-groups' scan values are at: i = ( j * hipBlockDim_y - 1 ) for i < - // hipGridDim_x + // totals. Blocks' scan values are written to 'blockIdx.x' location. + // Block-groups' scan values are at: i = ( j * blockDim.y - 1 ) for i < + // gridDim.x hip_single_inter_block_reduce_scan( - m_functor, hipBlockIdx_x, hipGridDim_x, + m_functor, blockIdx.x, gridDim.x, Kokkos::Experimental::kokkos_impl_hip_shared_memory(), m_scratch_space, m_scratch_flags); } @@ -454,26 +504,26 @@ class ParallelScanHIPBase { size_type* const shared_data = Kokkos::Experimental::kokkos_impl_hip_shared_memory(); size_type* const shared_prefix = - shared_data + word_count.value * hipThreadIdx_y; + shared_data + word_count.value * threadIdx.y; size_type* const shared_accum = - shared_data + word_count.value * (hipBlockDim_y + 1); + shared_data + word_count.value * (blockDim.y + 1); // Starting value for this thread block is the previous block's total. - if (hipBlockIdx_x) { + if (blockIdx.x) { size_type* const block_total = - m_scratch_space + word_count.value * (hipBlockIdx_x - 1); - for (unsigned i = hipThreadIdx_y; i < word_count.value; ++i) { + m_scratch_space + word_count.value * (blockIdx.x - 1); + for (unsigned i = threadIdx.y; i < word_count.value; ++i) { shared_accum[i] = block_total[i]; } - } else if (0 == hipThreadIdx_y) { + } else if (0 == threadIdx.y) { ValueInit::init(m_functor, shared_accum); } - const WorkRange range(m_policy, hipBlockIdx_x, hipGridDim_x); + const WorkRange range(m_policy, blockIdx.x, gridDim.x); for (typename Policy::member_type iwork_base = range.begin(); - iwork_base < range.end(); iwork_base += hipBlockDim_y) { - const typename Policy::member_type iwork = iwork_base + hipThreadIdx_y; + iwork_base < range.end(); iwork_base += blockDim.y) { + const typename Policy::member_type iwork = iwork_base + threadIdx.y; __syncthreads(); // Don't overwrite previous iteration values until they // are used @@ -482,7 +532,7 @@ class ParallelScanHIPBase { // Copy previous block's accumulation total into thread[0] prefix and // inclusive scan value of this block - for (unsigned i = hipThreadIdx_y; i < word_count.value; ++i) { + for (unsigned i = threadIdx.y; i < word_count.value; ++i) { shared_data[i + word_count.value] = shared_data[i] = shared_accum[i]; } @@ -497,15 +547,15 @@ class ParallelScanHIPBase { false); } - // Scan block values into locations shared_data[1..hipBlockDim_y] + // Scan block values into locations shared_data[1..blockDim.y] hip_intra_block_reduce_scan( m_functor, typename ValueTraits::pointer_type(shared_data + word_count.value)); { size_type* const block_total = - shared_data + word_count.value * hipBlockDim_y; - for (unsigned i = hipThreadIdx_y; i < word_count.value; ++i) { + shared_data + word_count.value * blockDim.y; + for (unsigned i = threadIdx.y; i < word_count.value; ++i) { shared_accum[i] = block_total[i]; } } @@ -531,8 +581,8 @@ class ParallelScanHIPBase { // Determine block size constrained by shared memory: inline unsigned local_block_size(const FunctorType& f) { - // hipBlockDim_y must be power of two = 128 (2 warps) or 256 (4 warps) or - // 512 (8 warps) hipGridDim_x <= hipBlockDim_y * hipBlockDim_y + // blockDim.y must be power of two = 128 (2 warps) or 256 (4 warps) or + // 512 (8 warps) gridDim.x <= blockDim.y * blockDim.y // // TODO check best option @@ -554,10 +604,8 @@ class ParallelScanHIPBase { // correctly, the unit tests fail with wrong results const int gridMaxComputeCapability_2x = 0x01fff; - // FIXME_HIP block sizes greater than 256 don't work correctly, - // the unit tests fail with wrong results - const int block_size = - std::min(static_cast(local_block_size(m_functor)), 256); + const int block_size = static_cast(local_block_size(m_functor)); + KOKKOS_ASSERT(block_size > 0); const int grid_max = std::min(block_size * block_size, gridMaxComputeCapability_2x); diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp index 53097f3643..ed138dd951 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp @@ -94,19 +94,6 @@ class TeamPolicyInternal m_space = p.m_space; } - TeamPolicyInternal& operator=(TeamPolicyInternal const& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_vector_length = p.m_vector_length; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - m_space = p.m_space; - return *this; - } - template int team_size_max(FunctorType const& f, ParallelForTag const&) const { using closure_type = @@ -123,10 +110,34 @@ class TeamPolicyInternal return block_size / vector_length(); } + template + inline int team_size_max(const FunctorType& f, + const ParallelReduceTag&) const { + using functor_analysis_type = + Impl::FunctorAnalysis; + using reducer_type = typename Impl::ParallelReduceReturnValue< + void, typename functor_analysis_type::value_type, + FunctorType>::reducer_type; + using closure_type = + Impl::ParallelReduce, + reducer_type>; + return internal_team_size_max(f); + } + + template + inline int team_size_max(const FunctorType& f, const ReducerType& /*r*/, + const ParallelReduceTag&) const { + using closure_type = + Impl::ParallelReduce, + ReducerType>; + return internal_team_size_max(f); + } + template int team_size_recommended(FunctorType const& f, ParallelForTag const&) const { - typedef Impl::ParallelFor > - closure_type; + using closure_type = + Impl::ParallelFor >; hipFuncAttributes attr = ::Kokkos::Experimental::Impl::HIPParallelLaunch< closure_type, typename traits::launch_bounds>::get_hip_func_attributes(); @@ -139,6 +150,30 @@ class TeamPolicyInternal return block_size / vector_length(); } + template + inline int team_size_recommended(FunctorType const& f, + ParallelReduceTag const&) const { + using functor_analysis_type = + Impl::FunctorAnalysis; + using reducer_type = typename Impl::ParallelReduceReturnValue< + void, typename functor_analysis_type::value_type, + FunctorType>::reducer_type; + using closure_type = + Impl::ParallelReduce, + reducer_type>; + return internal_team_size_recommended(f); + } + + template + int team_size_recommended(FunctorType const& f, ReducerType const&, + ParallelReduceTag const&) const { + using closure_type = + Impl::ParallelReduce, + ReducerType>; + return internal_team_size_recommended(f); + } + static int vector_length_max() { return ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; } @@ -149,9 +184,10 @@ class TeamPolicyInternal // Allow only power-of-two vector_length if (!(is_integral_power_of_two(test_vector_length))) { - int test_pow2 = 1; - for (int i = 0; i < 5; i++) { - test_pow2 = test_pow2 << 1; + int test_pow2 = 1; + int constexpr warp_size = Experimental::Impl::HIPTraits::WarpSize; + while (test_pow2 < warp_size) { + test_pow2 <<= 1; if (test_pow2 > test_vector_length) { break; } @@ -379,12 +415,12 @@ class ParallelFor, using size_type = ::Kokkos::Experimental::HIP::size_type; private: - using Member = typename Policy::member_type; - using WorkTag = typename Policy::work_tag; - using LaunchBounds = typename Policy::launch_bounds; + using member_type = typename Policy::member_type; + using work_tag = typename Policy::work_tag; + using launch_bounds = typename Policy::launch_bounds; - // Algorithmic constraints: hipBlockDim_y is a power of two AND hipBlockDim_y - // == hipBlockDim_z == 1 shared memory utilization: + // Algorithmic constraints: blockDim.y is a power of two AND + // blockDim.y == blockDim.z == 1 shared memory utilization: // // [ team reduce space ] // [ team shared space ] @@ -403,14 +439,14 @@ class ParallelFor, template __device__ inline typename std::enable_if::value>::type - exec_team(const Member& member) const { + exec_team(const member_type& member) const { m_functor(member); } template __device__ inline typename std::enable_if::value>::type - exec_team(const Member& member) const { + exec_team(const member_type& member) const { m_functor(TagType(), member); } @@ -420,16 +456,16 @@ class ParallelFor, int64_t threadid = 0; if (m_scratch_size[1] > 0) { __shared__ int64_t base_thread_id; - if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) { - threadid = (hipBlockIdx_x * hipBlockDim_z + hipThreadIdx_z) % - (hip_lock_arrays.n / (hipBlockDim_x * hipBlockDim_y)); - threadid *= hipBlockDim_x * hipBlockDim_y; + if (threadIdx.x == 0 && threadIdx.y == 0) { + threadid = (blockIdx.x * blockDim.z + threadIdx.z) % + (hip_lock_arrays.n / (blockDim.x * blockDim.y)); + threadid *= blockDim.x * blockDim.y; int done = 0; while (!done) { done = (0 == atomicCAS(&hip_lock_arrays.scratch[threadid], 0, 1)); if (!done) { - threadid += hipBlockDim_x * hipBlockDim_y; - if (int64_t(threadid + hipBlockDim_x * hipBlockDim_y) >= + threadid += blockDim.x * blockDim.y; + if (int64_t(threadid + blockDim.x * blockDim.y) >= int64_t(hip_lock_arrays.n)) threadid = 0; } @@ -441,20 +477,19 @@ class ParallelFor, } int const int_league_size = static_cast(m_league_size); - for (int league_rank = hipBlockIdx_x; league_rank < int_league_size; - league_rank += hipGridDim_x) { - this->template exec_team(typename Policy::member_type( + for (int league_rank = blockIdx.x; league_rank < int_league_size; + league_rank += gridDim.x) { + this->template exec_team(typename Policy::member_type( ::Kokkos::Experimental::kokkos_impl_hip_shared_memory(), m_shmem_begin, m_shmem_size, - static_cast( - static_cast(m_scratch_ptr[1]) + - ptrdiff_t(threadid / (hipBlockDim_x * hipBlockDim_y)) * - m_scratch_size[1]), + static_cast(static_cast(m_scratch_ptr[1]) + + ptrdiff_t(threadid / (blockDim.x * blockDim.y)) * + m_scratch_size[1]), m_scratch_size[1], league_rank, m_league_size)); } if (m_scratch_size[1] > 0) { __syncthreads(); - if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) + if (threadIdx.x == 0 && threadIdx.y == 0) hip_lock_arrays.scratch[threadid] = 0; } } @@ -476,7 +511,7 @@ class ParallelFor, dim3 const block(static_cast(m_vector_size), static_cast(m_team_size), 1); - ::Kokkos::Experimental::Impl::HIPParallelLaunch( + ::Kokkos::Experimental::Impl::HIPParallelLaunch( *this, grid, block, shmem_size_total, m_policy.space().impl_internal_space_instance(), true); // copy to device and execute @@ -499,12 +534,12 @@ class ParallelFor, m_team_size(arg_policy.team_size()), m_vector_size(arg_policy.vector_length()) { hipFuncAttributes attr = ::Kokkos::Experimental::Impl::HIPParallelLaunch< - ParallelFor, LaunchBounds>::get_hip_func_attributes(); + ParallelFor, launch_bounds>::get_hip_func_attributes(); m_team_size = m_team_size >= 0 ? m_team_size : ::Kokkos::Experimental::Impl::hip_get_opt_block_size< - FunctorType, LaunchBounds>( + FunctorType, launch_bounds>( m_policy.space().impl_internal_space_instance(), attr, m_functor, m_vector_size, m_policy.team_scratch_size(0), m_policy.thread_scratch_size(0)) / @@ -543,7 +578,7 @@ class ParallelFor, if (static_cast(m_team_size) > static_cast( ::Kokkos::Experimental::Impl::hip_get_max_block_size( + launch_bounds>( m_policy.space().impl_internal_space_instance(), attr, arg_functor, arg_policy.vector_length(), arg_policy.team_scratch_size(0), @@ -554,6 +589,474 @@ class ParallelFor, } } }; + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +template +class ParallelReduce, + ReducerType, Kokkos::Experimental::HIP> { + public: + using Policy = TeamPolicyInternal; + + private: + using member_type = typename Policy::member_type; + using work_tag = typename Policy::work_tag; + using launch_bounds = typename Policy::launch_bounds; + + using reducer_conditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using reducer_type_fwd = typename reducer_conditional::type; + using work_tag_fwd = + typename Kokkos::Impl::if_c::value, + work_tag, void>::type; + + using value_traits = + Kokkos::Impl::FunctorValueTraits; + using value_init = + Kokkos::Impl::FunctorValueInit; + using value_join = + Kokkos::Impl::FunctorValueJoin; + + using pointer_type = typename value_traits::pointer_type; + using reference_type = typename value_traits::reference_type; + using value_type = typename value_traits::value_type; + + public: + using functor_type = FunctorType; + using size_type = Kokkos::Experimental::HIP::size_type; + + static int constexpr UseShflReduction = (value_traits::StaticValueSize != 0); + + private: + using DummyShflReductionType = double; + using DummySHMEMReductionType = int; + + // Algorithmic constraints: blockDim.y is a power of two AND + // blockDim.y == blockDim.z == 1 shared memory utilization: + // + // [ global reduce space ] + // [ team reduce space ] + // [ team shared space ] + // + + const FunctorType m_functor; + const Policy m_policy; + const ReducerType m_reducer; + const pointer_type m_result_ptr; + const bool m_result_ptr_device_accessible; + size_type* m_scratch_space; + size_type* m_scratch_flags; + size_type m_team_begin; + size_type m_shmem_begin; + size_type m_shmem_size; + void* m_scratch_ptr[2]; + int m_scratch_size[2]; + const size_type m_league_size; + int m_team_size; + const size_type m_vector_size; + + template + __device__ inline + typename std::enable_if::value>::type + exec_team(member_type const& member, reference_type update) const { + m_functor(member, update); + } + + template + __device__ inline + typename std::enable_if::value>::type + exec_team(member_type const& member, reference_type update) const { + m_functor(TagType(), member, update); + } + + public: + __device__ inline void operator()() const { + int64_t threadid = 0; + if (m_scratch_size[1] > 0) { + __shared__ int64_t base_thread_id; + // FIXME_HIP This uses g_device_hip_lock_arrays which is not working + if (threadIdx.x == 0 && threadIdx.y == 0) { + Impl::hip_abort("Error should not be here (not implemented yet)\n"); + threadid = (blockIdx.x * blockDim.z + threadIdx.z) % + (g_device_hip_lock_arrays.n / (blockDim.x * blockDim.y)); + threadid *= blockDim.x * blockDim.y; + int done = 0; + while (!done) { + done = (0 == + atomicCAS(&g_device_hip_lock_arrays.scratch[threadid], 0, 1)); + if (!done) { + threadid += blockDim.x * blockDim.y; + if (static_cast(threadid + blockDim.x * blockDim.y) >= + static_cast(g_device_hip_lock_arrays.n)) + threadid = 0; + } + } + base_thread_id = threadid; + } + __syncthreads(); + threadid = base_thread_id; + } + + run(Kokkos::Impl::if_c::select(1, 1.0), + threadid); + if (m_scratch_size[1] > 0) { + __syncthreads(); + if (threadIdx.x == 0 && threadIdx.y == 0) { + Impl::hip_abort("Error should not be here (not implemented yet)\n"); + g_device_hip_lock_arrays.scratch[threadid] = 0; + } + } + } + + __device__ inline void run(DummySHMEMReductionType const&, + int const& threadid) const { + integral_nonzero_constant const + word_count(value_traits::value_size( + reducer_conditional::select(m_functor, m_reducer)) / + sizeof(size_type)); + + reference_type value = value_init::init( + reducer_conditional::select(m_functor, m_reducer), + Kokkos::Experimental::kokkos_impl_hip_shared_memory() + + threadIdx.y * word_count.value); + + // Iterate this block through the league + int const int_league_size = static_cast(m_league_size); + for (int league_rank = blockIdx.x; league_rank < int_league_size; + league_rank += gridDim.x) { + this->template exec_team( + member_type( + Kokkos::Experimental::kokkos_impl_hip_shared_memory() + + m_team_begin, + m_shmem_begin, m_shmem_size, + reinterpret_cast( + reinterpret_cast(m_scratch_ptr[1]) + + static_cast(threadid / (blockDim.x * blockDim.y)) * + m_scratch_size[1]), + m_scratch_size[1], league_rank, m_league_size), + value); + } + + // Reduce with final value at blockDim.y - 1 location. + if (hip_single_inter_block_reduce_scan( + reducer_conditional::select(m_functor, m_reducer), blockIdx.x, + gridDim.x, + Kokkos::Experimental::kokkos_impl_hip_shared_memory(), + m_scratch_space, m_scratch_flags)) { + // This is the final block with the final result at the final threads' + // location + + size_type* const shared = + Kokkos::Experimental::kokkos_impl_hip_shared_memory() + + (blockDim.y - 1) * word_count.value; + size_type* const global = m_result_ptr_device_accessible + ? reinterpret_cast(m_result_ptr) + : m_scratch_space; + + if (threadIdx.y == 0) { + Kokkos::Impl::FunctorFinal::final( + reducer_conditional::select(m_functor, m_reducer), shared); + } + + if (Kokkos::Experimental::Impl::HIPTraits::WarpSize < word_count.value) { + __syncthreads(); + } + + for (unsigned i = threadIdx.y; i < word_count.value; i += blockDim.y) { + global[i] = shared[i]; + } + } + } + + __device__ inline void run(DummyShflReductionType const&, + int const& threadid) const { + // FIXME_HIP implementation close to the function above + value_type value; + value_init::init(reducer_conditional::select(m_functor, m_reducer), &value); + + // Iterate this block through the league + int const int_league_size = static_cast(m_league_size); + for (int league_rank = blockIdx.x; league_rank < int_league_size; + league_rank += gridDim.x) { + this->template exec_team( + member_type( + Kokkos::Experimental::kokkos_impl_hip_shared_memory() + + m_team_begin, + m_shmem_begin, m_shmem_size, + reinterpret_cast( + reinterpret_cast(m_scratch_ptr[1]) + + static_cast(threadid / (blockDim.x * blockDim.y)) * + m_scratch_size[1]), + m_scratch_size[1], league_rank, m_league_size), + value); + } + + pointer_type const result = + m_result_ptr_device_accessible + ? m_result_ptr + : reinterpret_cast(m_scratch_space); + + value_type init; + value_init::init(reducer_conditional::select(m_functor, m_reducer), &init); + if (Impl::hip_inter_block_shuffle_reduction( + value, init, + value_join(reducer_conditional::select(m_functor, m_reducer)), + m_scratch_space, result, m_scratch_flags, blockDim.y)) { + unsigned int const id = threadIdx.y * blockDim.x + threadIdx.x; + if (id == 0) { + Kokkos::Impl::FunctorFinal::final( + reducer_conditional::select(m_functor, m_reducer), + reinterpret_cast(&value)); + *result = value; + } + } + } + + inline void execute() { + const int nwork = m_league_size * m_team_size; + if (nwork) { + const int block_count = + UseShflReduction + ? std::min( + m_league_size, + size_type(1024 * + Kokkos::Experimental::Impl::HIPTraits::WarpSize)) + : std::min(static_cast(m_league_size), m_team_size); + + m_scratch_space = Kokkos::Experimental::Impl::hip_internal_scratch_space( + value_traits::value_size( + reducer_conditional::select(m_functor, m_reducer)) * + block_count); + m_scratch_flags = Kokkos::Experimental::Impl::hip_internal_scratch_flags( + sizeof(size_type)); + + dim3 block(m_vector_size, m_team_size, 1); + dim3 grid(block_count, 1, 1); + const int shmem_size_total = m_team_begin + m_shmem_begin + m_shmem_size; + + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, shmem_size_total, + m_policy.space().impl_internal_space_instance(), + true); // copy to device and execute + + if (!m_result_ptr_device_accessible) { + m_policy.space().impl_internal_space_instance()->fence(); + + if (m_result_ptr) { + const int size = value_traits::value_size( + reducer_conditional::select(m_functor, m_reducer)); + DeepCopy( + m_result_ptr, m_scratch_space, size); + } + } + } else { + if (m_result_ptr) { + value_init::init(reducer_conditional::select(m_functor, m_reducer), + m_result_ptr); + } + } + } + + template + ParallelReduce(FunctorType const& arg_functor, Policy const& arg_policy, + ViewType const& arg_result, + typename std::enable_if::value, + void*>::type = nullptr) + : m_functor(arg_functor), + m_policy(arg_policy), + m_reducer(InvalidType()), + m_result_ptr(arg_result.data()), + m_result_ptr_device_accessible( + MemorySpaceAccess::accessible), + m_scratch_space(0), + m_scratch_flags(0), + m_team_begin(0), + m_shmem_begin(0), + m_shmem_size(0), + m_scratch_ptr{nullptr, nullptr}, + m_league_size(arg_policy.league_size()), + m_team_size(arg_policy.team_size()), + m_vector_size(arg_policy.vector_length()) { + hipFuncAttributes attr = Kokkos::Experimental::Impl::HIPParallelLaunch< + ParallelReduce, launch_bounds>::get_hip_func_attributes(); + m_team_size = + m_team_size >= 0 + ? m_team_size + : Kokkos::Experimental::Impl::hip_get_opt_block_size( + m_policy.space().impl_internal_space_instance(), attr, + m_functor, m_vector_size, m_policy.team_scratch_size(0), + m_policy.thread_scratch_size(0)) / + m_vector_size; + + // Return Init value if the number of worksets is zero + if (m_league_size * m_team_size == 0) { + value_init::init(reducer_conditional::select(m_functor, m_reducer), + arg_result.data()); + return; + } + + m_team_begin = + UseShflReduction + ? 0 + : hip_single_inter_block_reduce_scan_shmem(arg_functor, + m_team_size); + m_shmem_begin = sizeof(double) * (m_team_size + 2); + m_shmem_size = + m_policy.scratch_size(0, m_team_size) + + FunctorTeamShmemSize::value(arg_functor, m_team_size); + m_scratch_size[0] = m_shmem_size; + m_scratch_size[1] = m_policy.scratch_size(1, m_team_size); + m_scratch_ptr[1] = + m_team_size <= 0 ? nullptr + : Kokkos::Experimental::Impl::hip_resize_scratch_space( + static_cast(m_scratch_size[1]) * + (static_cast( + Kokkos::Experimental::HIP::concurrency() / + (m_team_size * m_vector_size)))); + + // The global parallel_reduce does not support vector_length other than 1 at + // the moment + if ((arg_policy.vector_length() > 1) && !UseShflReduction) + Impl::throw_runtime_exception( + "Kokkos::parallel_reduce with a TeamPolicy using a vector length of " + "greater than 1 is not currently supported for HIP for dynamic " + "sized reduction types."); + + if ((m_team_size < Kokkos::Experimental::Impl::HIPTraits::WarpSize) && + !UseShflReduction) + Impl::throw_runtime_exception( + "Kokkos::parallel_reduce with a TeamPolicy using a team_size smaller " + "than 64 is not currently supported with HIP for dynamic sized " + "reduction types."); + + // Functor's reduce memory, team scan memory, and team shared memory depend + // upon team size. + + const int shmem_size_total = m_team_begin + m_shmem_begin + m_shmem_size; + + if (!Kokkos::Impl::is_integral_power_of_two(m_team_size) && + !UseShflReduction) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::ParallelReduce< HIP > bad team size")); + } + + if (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < + shmem_size_total) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::ParallelReduce< HIP > requested too much " + "L0 scratch memory")); + } + + if (static_cast(m_team_size) > + arg_policy.team_size_max(m_functor, m_reducer, ParallelReduceTag())) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::ParallelReduce< HIP > requested too " + "large team size.")); + } + } + + ParallelReduce(FunctorType const& arg_functor, Policy const& arg_policy, + ReducerType const& reducer) + : m_functor(arg_functor), + m_policy(arg_policy), + m_reducer(reducer), + m_result_ptr(reducer.view().data()), + m_result_ptr_device_accessible( + MemorySpaceAccess::accessible), + m_scratch_space(0), + m_scratch_flags(0), + m_team_begin(0), + m_shmem_begin(0), + m_shmem_size(0), + m_scratch_ptr{nullptr, nullptr}, + m_league_size(arg_policy.league_size()), + m_team_size(arg_policy.team_size()), + m_vector_size(arg_policy.vector_length()) { + hipFuncAttributes attr = Kokkos::Experimental::Impl::HIPParallelLaunch< + ParallelReduce, launch_bounds>::get_hip_func_attributes(); + m_team_size = + m_team_size >= 0 + ? m_team_size + : Kokkos::Experimental::Impl::hip_get_opt_block_size( + m_policy.space().impl_internal_space_instance(), attr, + m_functor, m_vector_size, m_policy.team_scratch_size(0), + m_policy.thread_scratch_size(0)) / + m_vector_size; + + // Return Init value if the number of worksets is zero + if (arg_policy.league_size() == 0) { + value_init::init(reducer_conditional::select(m_functor, m_reducer), + m_result_ptr); + return; + } + + m_team_begin = + UseShflReduction + ? 0 + : hip_single_inter_block_reduce_scan_shmem(arg_functor, + m_team_size); + m_shmem_begin = sizeof(double) * (m_team_size + 2); + m_shmem_size = + m_policy.scratch_size(0, m_team_size) + + FunctorTeamShmemSize::value(arg_functor, m_team_size); + m_scratch_size[0] = m_shmem_size; + m_scratch_size[1] = m_policy.scratch_size(1, m_team_size); + m_scratch_ptr[1] = + m_team_size <= 0 ? nullptr + : Kokkos::Experimental::Impl::hip_resize_scratch_space( + static_cast(m_scratch_size[1]) * + static_cast( + Kokkos::Experimental::HIP::concurrency() / + (m_team_size * m_vector_size))); + + // The global parallel_reduce does not support vector_length other than 1 at + // the moment + if ((arg_policy.vector_length() > 1) && !UseShflReduction) + Impl::throw_runtime_exception( + "Kokkos::parallel_reduce with a TeamPolicy using a vector length of " + "greater than 1 is not currently supported for HIP for dynamic " + "sized reduction types."); + + if ((m_team_size < Kokkos::Experimental::Impl::HIPTraits::WarpSize) && + !UseShflReduction) + Impl::throw_runtime_exception( + "Kokkos::parallel_reduce with a TeamPolicy using a team_size smaller " + "than 64 is not currently supported with HIP for dynamic sized " + "reduction types."); + + // Functor's reduce memory, team scan memory, and team shared memory depend + // upon team size. + + const int shmem_size_total = m_team_begin + m_shmem_begin + m_shmem_size; + + if ((!Kokkos::Impl::is_integral_power_of_two(m_team_size) && + !UseShflReduction) || + m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < + shmem_size_total) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::ParallelReduce< HIP > bad team size")); + } + if (static_cast(m_team_size) > + arg_policy.team_size_max(m_functor, m_reducer, ParallelReduceTag())) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::ParallelReduce< HIP > requested too " + "large team size.")); + } + } +}; } // namespace Impl } // namespace Kokkos diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp index 362128c411..98dab9a0fb 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp @@ -49,13 +49,138 @@ #if defined(__HIPCC__) +#include + namespace Kokkos { namespace Impl { -template + +//---------------------------------------------------------------------------- +// Reduction-only implementation +//---------------------------------------------------------------------------- + +template struct HIPReductionsFunctor; template -struct HIPReductionsFunctor { +struct HIPReductionsFunctor { + using ValueTraits = FunctorValueTraits; + using ValueJoin = FunctorValueJoin; + using ValueInit = FunctorValueInit; + using ValueOps = FunctorValueOps; + using pointer_type = typename ValueTraits::pointer_type; + using Scalar = typename ValueTraits::value_type; + + __device__ static inline void scalar_intra_warp_reduction( + FunctorType const& functor, + Scalar value, // Contribution + bool const skip_vector, // Skip threads if Kokkos vector lanes are not + // part of the reduction + int const width, // How much of the warp participates + Scalar& result) { + for (int delta = skip_vector ? blockDim.x : 1; delta < width; delta *= 2) { + Scalar tmp = Kokkos::Experimental::shfl_down(value, delta, width); + ValueJoin::join(functor, &value, &tmp); + } + + Experimental::Impl::in_place_shfl(result, value, 0, width); + } + + __device__ static inline void scalar_intra_block_reduction( + FunctorType const& functor, Scalar value, bool const skip, + Scalar* my_global_team_buffer_element, int const shared_elements, + Scalar* shared_team_buffer_element) { + unsigned int constexpr warp_size = + Kokkos::Experimental::Impl::HIPTraits::WarpSize; + int const warp_id = (threadIdx.y * blockDim.x) / warp_size; + Scalar* const my_shared_team_buffer_element = + shared_team_buffer_element + warp_id % shared_elements; + + // Warp Level Reduction, ignoring Kokkos vector entries + scalar_intra_warp_reduction(functor, value, skip, warp_size, value); + + if (warp_id < shared_elements) { + *my_shared_team_buffer_element = value; + } + // Wait for every warp to be done before using one warp to do the final + // cross warp reduction + __syncthreads(); + + int const num_warps = blockDim.x * blockDim.y / warp_size; + for (int w = shared_elements; w < num_warps; w += shared_elements) { + if (warp_id >= w && warp_id < w + shared_elements) { + if ((threadIdx.y * blockDim.x + threadIdx.x) % warp_size == 0) + ValueJoin::join(functor, my_shared_team_buffer_element, &value); + } + __syncthreads(); + } + + if (warp_id == 0) { + ValueInit::init(functor, &value); + for (unsigned int i = threadIdx.y * blockDim.x + threadIdx.x; + i < blockDim.y * blockDim.x / warp_size; i += warp_size) { + ValueJoin::join(functor, &value, &shared_team_buffer_element[i]); + } + scalar_intra_warp_reduction(functor, value, false, warp_size, + *my_global_team_buffer_element); + } + } + + __device__ static inline bool scalar_inter_block_reduction( + FunctorType const& functor, + ::Kokkos::Experimental::HIP::size_type const block_count, + ::Kokkos::Experimental::HIP::size_type* const shared_data, + ::Kokkos::Experimental::HIP::size_type* const global_data, + ::Kokkos::Experimental::HIP::size_type* const global_flags) { + Scalar* const global_team_buffer_element = + reinterpret_cast(global_data); + Scalar* const my_global_team_buffer_element = + global_team_buffer_element + blockIdx.x; + Scalar* shared_team_buffer_elements = + reinterpret_cast(shared_data); + Scalar value = shared_team_buffer_elements[threadIdx.y]; + unsigned int constexpr warp_size = + Kokkos::Experimental::Impl::HIPTraits::WarpSize; + int shared_elements = blockDim.x * blockDim.y / warp_size; + int global_elements = block_count; + __syncthreads(); + + scalar_intra_block_reduction(functor, value, true, + my_global_team_buffer_element, shared_elements, + shared_team_buffer_elements); + __threadfence(); + __syncthreads(); + + // Use the last block that is done to do the do the reduction across the + // block + __shared__ unsigned int num_teams_done; + if (threadIdx.x + threadIdx.y == 0) { + __threadfence(); + num_teams_done = Kokkos::atomic_fetch_add(global_flags, 1) + 1; + } + bool is_last_block = false; + // FIXME_HIP HIP does not support syncthreads_or. That's why we need to make + // num_teams_done __shared__ + // if (__syncthreads_or(num_teams_done == gridDim.x)) {*/ + __syncthreads(); + if (num_teams_done == gridDim.x) { + is_last_block = true; + *global_flags = 0; + ValueInit::init(functor, &value); + for (int i = threadIdx.y * blockDim.x + threadIdx.x; i < global_elements; + i += blockDim.x * blockDim.y) { + ValueJoin::join(functor, &value, &global_team_buffer_element[i]); + } + scalar_intra_block_reduction( + functor, value, false, shared_team_buffer_elements + blockDim.y - 1, + shared_elements, shared_team_buffer_elements); + } + + return is_last_block; + } +}; + +template +struct HIPReductionsFunctor { using ValueTraits = FunctorValueTraits; using ValueJoin = FunctorValueJoin; using ValueInit = FunctorValueInit; @@ -70,10 +195,9 @@ struct HIPReductionsFunctor { // part of the reduction int const width) // How much of the warp participates { - int const lane_id = (hipThreadIdx_y * hipBlockDim_x + hipThreadIdx_x) % + int const lane_id = (threadIdx.y * blockDim.x + threadIdx.x) % ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - for (int delta = skip_vector ? hipBlockDim_x : 1; delta < width; - delta *= 2) { + for (int delta = skip_vector ? blockDim.x : 1; delta < width; delta *= 2) { if (lane_id + delta < ::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { ValueJoin::join(functor, value, value + delta); } @@ -84,11 +208,10 @@ struct HIPReductionsFunctor { __device__ static inline void scalar_intra_block_reduction( FunctorType const& functor, Scalar value, bool const skip, Scalar* result, int const /*shared_elements*/, Scalar* shared_team_buffer_element) { - int const warp_id = (hipThreadIdx_y * hipBlockDim_x) / + int const warp_id = (threadIdx.y * blockDim.x) / ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; Scalar* const my_shared_team_buffer_element = - shared_team_buffer_element + hipThreadIdx_y * hipBlockDim_x + - hipThreadIdx_x; + shared_team_buffer_element + threadIdx.y * blockDim.x + threadIdx.x; *my_shared_team_buffer_element = value; // Warp Level Reduction, ignoring Kokkos vector entries scalar_intra_warp_reduction( @@ -100,22 +223,20 @@ struct HIPReductionsFunctor { if (warp_id == 0) { const unsigned int delta = - (hipThreadIdx_y * hipBlockDim_x + hipThreadIdx_x) * + (threadIdx.y * blockDim.x + threadIdx.x) * ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - if (delta < hipBlockDim_x * hipBlockDim_y) + if (delta < blockDim.x * blockDim.y) *my_shared_team_buffer_element = shared_team_buffer_element[delta]; scalar_intra_warp_reduction( functor, my_shared_team_buffer_element, false, - hipBlockDim_x * hipBlockDim_y / + blockDim.x * blockDim.y / ::Kokkos::Experimental::Impl::HIPTraits::WarpSize); - if (hipThreadIdx_x + hipThreadIdx_y == 0) - *result = *shared_team_buffer_element; + if (threadIdx.x + threadIdx.y == 0) *result = *shared_team_buffer_element; } } __device__ static inline bool scalar_inter_block_reduction( FunctorType const& functor, - ::Kokkos::Experimental::HIP::size_type const /*block_id*/, ::Kokkos::Experimental::HIP::size_type const block_count, ::Kokkos::Experimental::HIP::size_type* const shared_data, ::Kokkos::Experimental::HIP::size_type* const global_data, @@ -123,11 +244,11 @@ struct HIPReductionsFunctor { Scalar* const global_team_buffer_element = reinterpret_cast(global_data); Scalar* const my_global_team_buffer_element = - global_team_buffer_element + hipBlockIdx_x; + global_team_buffer_element + blockIdx.x; Scalar* shared_team_buffer_elements = reinterpret_cast(shared_data); - Scalar value = shared_team_buffer_elements[hipThreadIdx_y]; - int shared_elements = (hipBlockDim_x * hipBlockDim_y) / + Scalar value = shared_team_buffer_elements[threadIdx.y]; + int shared_elements = (blockDim.x * blockDim.y) / ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; int global_elements = block_count; __syncthreads(); @@ -141,39 +262,40 @@ struct HIPReductionsFunctor { // Use the last block that is done to do the do the reduction across the // block __shared__ unsigned int num_teams_done; - if (hipThreadIdx_x + hipThreadIdx_y == 0) { + if (threadIdx.x + threadIdx.y == 0) { __threadfence(); num_teams_done = Kokkos::atomic_fetch_add(global_flags, 1) + 1; } bool is_last_block = false; // FIXME_HIP HIP does not support syncthreads_or. That's why we need to make // num_teams_done __shared__ - // if (__syncthreads_or(num_teams_done == hipGridDim_x)) {*/ + // if (__syncthreads_or(num_teams_done == gridDim.x)) {*/ __syncthreads(); - if (num_teams_done == hipGridDim_x) { + if (num_teams_done == gridDim.x) { is_last_block = true; *global_flags = 0; ValueInit::init(functor, &value); - for (int i = hipThreadIdx_y * hipBlockDim_x + hipThreadIdx_x; - i < global_elements; i += hipBlockDim_x * hipBlockDim_y) { + for (int i = threadIdx.y * blockDim.x + threadIdx.x; i < global_elements; + i += blockDim.x * blockDim.y) { ValueJoin::join(functor, &value, &global_team_buffer_element[i]); } scalar_intra_block_reduction( - functor, value, false, - shared_team_buffer_elements + (hipBlockDim_y - 1), shared_elements, - shared_team_buffer_elements); + functor, value, false, shared_team_buffer_elements + (blockDim.y - 1), + shared_elements, shared_team_buffer_elements); } return is_last_block; } }; +//---------------------------------------------------------------------------- +// Fused reduction and scan implementation //---------------------------------------------------------------------------- /* * Algorithmic constraints: - * (a) hipBlockDim_y is a power of two - * (b) hipBlockDim_y <= 1024 - * (c) hipBlockDim_x == hipBlockDim_z == 1 + * (a) blockDim.y is a power of two + * (b) blockDim.y <= 1024 + * (c) blockDim.x == blockDim.z == 1 */ template @@ -187,14 +309,14 @@ __device__ void hip_intra_block_reduce_scan( using pointer_type = typename ValueTraits::pointer_type; unsigned int const value_count = ValueTraits::value_count(functor); - unsigned int const BlockSizeMask = hipBlockDim_y - 1; + unsigned int const BlockSizeMask = blockDim.y - 1; int const WarpMask = Experimental::Impl::HIPTraits::WarpSize - 1; // Must have power of two thread count - if ((hipBlockDim_y - 1) & hipBlockDim_y) { + if ((blockDim.y - 1) & blockDim.y) { Kokkos::abort( "HIP::hip_intra_block_reduce_scan requires power-of-two " - "hipBlockDim_y\n"); + "blockDim.y\n"); } auto block_reduce_step = @@ -205,8 +327,8 @@ __device__ void hip_intra_block_reduce_scan( }; { // Intra-warp reduction: - const unsigned rtid_intra = hipThreadIdx_y & WarpMask; - const pointer_type tdata_intra = base_data + value_count * hipThreadIdx_y; + const unsigned rtid_intra = threadIdx.y & WarpMask; + const pointer_type tdata_intra = base_data + value_count * threadIdx.y; block_reduce_step(rtid_intra, tdata_intra, 0); block_reduce_step(rtid_intra, tdata_intra, 1); @@ -220,11 +342,10 @@ __device__ void hip_intra_block_reduce_scan( { // Inter-warp reduce-scan by a single warp to avoid extra synchronizations unsigned int const rtid_inter = - ((hipThreadIdx_y + 1) - << Experimental::Impl::HIPTraits::WarpIndexShift) - + ((threadIdx.y + 1) << Experimental::Impl::HIPTraits::WarpIndexShift) - 1; - if (rtid_inter < hipBlockDim_y) { + if (rtid_inter < blockDim.y) { pointer_type const tdata_inter = base_data + value_count * rtid_inter; if ((1 << 6) < BlockSizeMask) { @@ -250,12 +371,11 @@ __device__ void hip_intra_block_reduce_scan( if (DoScan) { // Update all the values for the respective warps (except for the last one) // by adding from the last value of the previous warp. - if (hipThreadIdx_y >= Experimental::Impl::HIPTraits::WarpSize && - (hipThreadIdx_y & WarpMask) != + if (threadIdx.y >= Experimental::Impl::HIPTraits::WarpSize && + (threadIdx.y & WarpMask) != Experimental::Impl::HIPTraits::WarpSize - 1) { - const int offset_to_previous_warp_total = - (hipThreadIdx_y & (~WarpMask)) - 1; - ValueJoin::join(functor, base_data + value_count * hipThreadIdx_y, + const int offset_to_previous_warp_total = (threadIdx.y & (~WarpMask)) - 1; + ValueJoin::join(functor, base_data + value_count * threadIdx.y, base_data + value_count * offset_to_previous_warp_total); } } @@ -271,7 +391,7 @@ __device__ void hip_intra_block_reduce_scan( */ template -__device__ bool hip_single_inter_block_reduce_scan2( +__device__ bool hip_single_inter_block_reduce_scan_impl( FunctorType const& functor, ::Kokkos::Experimental::HIP::size_type const block_id, ::Kokkos::Experimental::HIP::size_type const block_count, @@ -287,13 +407,13 @@ __device__ bool hip_single_inter_block_reduce_scan2( using pointer_type = typename ValueTraits::pointer_type; // '__ffs' = position of the least significant bit set to 1. - // 'hipBlockDim_y' is guaranteed to be a power of two so this + // 'blockDim.y' is guaranteed to be a power of two so this // is the integral shift value that can replace an integral divide. - unsigned int const BlockSizeShift = __ffs(hipBlockDim_y) - 1; - unsigned int const BlockSizeMask = hipBlockDim_y - 1; + unsigned int const BlockSizeShift = __ffs(blockDim.y) - 1; + unsigned int const BlockSizeMask = blockDim.y - 1; // Must have power of two thread count - if (BlockSizeMask & hipBlockDim_y) { + if (BlockSizeMask & blockDim.y) { Kokkos::abort( "HIP::hip_single_inter_block_reduce_scan requires power-of-two " "blockDim"); @@ -313,7 +433,7 @@ __device__ bool hip_single_inter_block_reduce_scan2( size_type* const shared = shared_data + word_count.value * BlockSizeMask; size_type* const global = global_data + word_count.value * block_id; - for (size_t i = hipThreadIdx_y; i < word_count.value; i += hipBlockDim_y) { + for (size_t i = threadIdx.y; i < word_count.value; i += blockDim.y) { global[i] = shared[i]; } } @@ -329,7 +449,7 @@ __device__ bool hip_single_inter_block_reduce_scan2( __shared__ int n_done; n_done = 0; __syncthreads(); - if (hipThreadIdx_y == 0) { + if (threadIdx.y == 0) { __threadfence(); n_done = 1 + atomicInc(global_flags, block_count - 1); } @@ -338,14 +458,14 @@ __device__ bool hip_single_inter_block_reduce_scan2( if (is_last_block) { size_type const b = (static_cast(block_count) * - static_cast(hipThreadIdx_y)) >> + static_cast(threadIdx.y)) >> BlockSizeShift; size_type const e = (static_cast(block_count) * - static_cast(hipThreadIdx_y + 1)) >> + static_cast(threadIdx.y + 1)) >> BlockSizeShift; { - void* const shared_ptr = shared_data + word_count.value * hipThreadIdx_y; + void* const shared_ptr = shared_data + word_count.value * threadIdx.y; /* reference_type shared_value = */ ValueInit::init(functor, shared_ptr); for (size_type i = b; i < e; ++i) { @@ -359,10 +479,10 @@ __device__ bool hip_single_inter_block_reduce_scan2( if (DoScan) { size_type* const shared_value = - shared_data + word_count.value * (hipThreadIdx_y ? hipThreadIdx_y - 1 - : hipBlockDim_y); + shared_data + + word_count.value * (threadIdx.y ? threadIdx.y - 1 : blockDim.y); - if (!hipThreadIdx_y) { + if (!threadIdx.y) { ValueInit::init(functor, shared_value); } @@ -387,19 +507,18 @@ __device__ bool hip_single_inter_block_reduce_scan( ::Kokkos::Experimental::HIP::size_type* const global_data, ::Kokkos::Experimental::HIP::size_type* const global_flags) { using ValueTraits = FunctorValueTraits; - if (!DoScan && /*FIXME*/ (bool)ValueTraits::StaticValueSize) - // FIXME_HIP For now we don't use shuffle - // return Kokkos::Impl::HIPReductionsFunctor< - // FunctorType, ArgTag, false, (ValueTraits::StaticValueSize > 16)>:: - // scalar_inter_block_reduction(functor, block_id, block_count, - // shared_data, global_data, global_flags); + // If we are doing a reduction and StaticValueSize is true, we use the + // reduction-only path. Otherwise, we use the common path between reduction + // and scan. + if (!DoScan && static_cast(ValueTraits::StaticValueSize)) + // FIXME_HIP_PERFORMANCE I don't know where 16 comes from. This inequality + // determines if we use shared memory (false) or shuffle (true) return Kokkos::Impl::HIPReductionsFunctor< - FunctorType, ArgTag, false, - false>::scalar_inter_block_reduction(functor, block_id, block_count, - shared_data, global_data, - global_flags); + FunctorType, ArgTag, (ValueTraits::StaticValueSize > 16)>:: + scalar_inter_block_reduction(functor, block_count, shared_data, + global_data, global_flags); else { - return hip_single_inter_block_reduce_scan2( + return hip_single_inter_block_reduce_scan_impl( functor, block_id, block_count, shared_data, global_data, global_flags); } } diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Shuffle_Reduce.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Shuffle_Reduce.hpp new file mode 100644 index 0000000000..cdf9cac30d --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Shuffle_Reduce.hpp @@ -0,0 +1,345 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_SHUFFLE_REDUCE_HPP +#define KOKKOS_HIP_SHUFFLE_REDUCE_HPP + +#include + +#if defined(__HIPCC__) + +#include + +#include + +namespace Kokkos { +namespace Impl { + +/* Algorithmic constraints: + * (a) threads with the same threadIdx.x have same value + * (b) blockDim.x == power of two + * (x) blockDim.z == 1 + */ +template ::value, + int>::type = 0> +__device__ inline void hip_intra_warp_shuffle_reduction( + ValueType& result, JoinOp const& join, + uint32_t const max_active_thread = blockDim.y) { + unsigned int shift = 1; + + // Reduce over values from threads with different threadIdx.y + unsigned int constexpr warp_size = + Kokkos::Experimental::Impl::HIPTraits::WarpSize; + while (blockDim.x * shift < warp_size) { + ValueType const tmp = + Kokkos::Experimental::shfl_down(result, blockDim.x * shift, warp_size); + // Only join if upper thread is active (this allows non power of two for + // blockDim.y) + if (threadIdx.y + shift < max_active_thread) { + join(result, tmp); + } + shift *= 2; + // Not sure why there is a race condition here but we need to wait for the + // join operation to be finished to perform the next shuffle. Note that the + // problem was also found in the CUDA backend with CUDA clang + // (https://github.com/kokkos/kokkos/issues/941) + __syncthreads(); + } + + // Broadcast the result to all the threads in the warp + result = Kokkos::Experimental::shfl(result, 0, warp_size); +} + +template ::value, + int>::type = 0> +__device__ inline void hip_inter_warp_shuffle_reduction( + ValueType& value, const JoinOp& join, + const int max_active_thread = blockDim.y) { + unsigned int constexpr warp_size = + Kokkos::Experimental::Impl::HIPTraits::WarpSize; + int constexpr step_width = 8; + // Depending on the ValueType __shared__ memory must be aligned up to 8 byte + // boundaries. The reason not to use ValueType directly is that for types with + // constructors it could lead to race conditions. + __shared__ double sh_result[(sizeof(ValueType) + 7) / 8 * step_width]; + ValueType* result = reinterpret_cast(&sh_result); + int const step = warp_size / blockDim.x; + int shift = step_width; + // Skip the code below if threadIdx.y % step != 0 + int const id = threadIdx.y % step == 0 ? threadIdx.y / step : INT_MAX; + if (id < step_width) { + result[id] = value; + } + __syncthreads(); + while (shift <= max_active_thread / step) { + if (shift <= id && shift + step_width > id && threadIdx.x == 0) { + join(result[id % step_width], value); + } + __syncthreads(); + shift += step_width; + } + + value = result[0]; + for (int i = 1; (i * step < max_active_thread) && (i < step_width); ++i) + join(value, result[i]); +} + +template ::value, + int>::type = 0> +__device__ inline void hip_intra_block_shuffle_reduction( + ValueType& value, JoinOp const& join, + int const max_active_thread = blockDim.y) { + hip_intra_warp_shuffle_reduction(value, join, max_active_thread); + hip_inter_warp_shuffle_reduction(value, join, max_active_thread); +} + +template +__device__ inline bool hip_inter_block_shuffle_reduction( + typename FunctorValueTraits::reference_type value, + typename FunctorValueTraits::reference_type neutral, + JoinOp const& join, + Kokkos::Experimental::HIP::size_type* const m_scratch_space, + typename FunctorValueTraits::pointer_type const /*result*/, + Kokkos::Experimental::HIP::size_type* const m_scratch_flags, + int const max_active_thread = blockDim.y) { + using pointer_type = + typename FunctorValueTraits::pointer_type; + using value_type = + typename FunctorValueTraits::value_type; + + // Do the intra-block reduction with shfl operations for the intra warp + // reduction and static shared memory for the inter warp reduction + hip_intra_block_shuffle_reduction(value, join, max_active_thread); + + int const id = threadIdx.y * blockDim.x + threadIdx.x; + + // One thread in the block writes block result to global scratch_memory + if (id == 0) { + pointer_type global = + reinterpret_cast(m_scratch_space) + blockIdx.x; + *global = value; + } + + // One warp of last block performs inter block reduction through loading the + // block values from global scratch_memory + bool last_block = false; + __threadfence(); + __syncthreads(); + int constexpr warp_size = Kokkos::Experimental::Impl::HIPTraits::WarpSize; + if (id < warp_size) { + Kokkos::Experimental::HIP::size_type count; + + // Figure out whether this is the last block + if (id == 0) count = Kokkos::atomic_fetch_add(m_scratch_flags, 1); + count = Kokkos::Experimental::shfl(count, 0, warp_size); + + // Last block does the inter block reduction + if (count == gridDim.x - 1) { + // set flag back to zero + if (id == 0) *m_scratch_flags = 0; + last_block = true; + value = neutral; + + pointer_type const volatile global = + reinterpret_cast(m_scratch_space); + + // Reduce all global values with splitting work over threads in one warp + const int step_size = blockDim.x * blockDim.y < warp_size + ? blockDim.x * blockDim.y + : warp_size; + for (int i = id; i < static_cast(gridDim.x); i += step_size) { + value_type tmp = global[i]; + join(value, tmp); + } + + // Perform shfl reductions within the warp only join if contribution is + // valid (allows gridDim.x non power of two and i) { + value_type tmp = Kokkos::Experimental::shfl_down(value, i, warp_size); + if (id + i < gridDim.x) join(value, tmp); + } + __syncthreads(); + } + } + } + // The last block has in its thread=0 the global reduction value through + // "value" + return last_block; +} + +// We implemente the same functions as above but the user provide a Reducer +// instead of JoinOP +template ::value, + int>::type = 0> +__device__ inline void hip_intra_warp_shuffle_reduction( + const ReducerType& reducer, typename ReducerType::value_type& result, + const uint32_t max_active_thread = blockDim.y) { + using ValueType = typename ReducerType::value_type; + auto join_op = [&](ValueType& result, ValueType const& tmp) { + reducer.join(result, tmp); + }; + hip_intra_warp_shuffle_reduction(result, join_op, max_active_thread); + + reducer.reference() = result; +} + +template ::value, + int>::type = 0> +__device__ inline void hip_inter_warp_shuffle_reduction( + ReducerType const& reducer, typename ReducerType::value_type value, + int const max_active_thread = blockDim.y) { + using ValueType = typename ReducerType::value_type; + auto join_op = [&](ValueType& a, ValueType& b) { reducer.join(a, b); }; + hip_inter_warp_shuffle_reduction(value, join_op, max_active_thread); + + reducer.reference() = value; +} + +template ::value, + int>::type = 0> +__device__ inline void hip_intra_block_shuffle_reduction( + ReducerType const& reducer, typename ReducerType::value_type value, + int const max_active_thread = blockDim.y) { + hip_intra_warp_shuffle_reduction(reducer, value, max_active_thread); + hip_inter_warp_shuffle_reduction(reducer, value, max_active_thread); +} + +template ::value, + int>::type = 0> +__device__ inline void hip_intra_block_shuffle_reduction( + ReducerType const& reducer, int const max_active_thread = blockDim.y) { + hip_intra_block_shuffle_reduction(reducer, reducer.reference(), + max_active_thread); +} + +template ::value, + int>::type = 0> +__device__ inline bool hip_inter_block_shuffle_reduction( + ReducerType const& reducer, + Kokkos::Experimental::HIP::size_type* const m_scratch_space, + Kokkos::Experimental::HIP::size_type* const m_scratch_flags, + int const max_active_thread = blockDim.y) { + using pointer_type = typename ReducerType::value_type*; + using value_type = typename ReducerType::value_type; + + // Do the intra-block reduction with shfl operations for the intra warp + // reduction and static shared memory for the inter warp reduction + hip_intra_block_shuffle_reduction(reducer, max_active_thread); + + value_type value = reducer.reference(); + + int const id = threadIdx.y * blockDim.x + threadIdx.x; + + // One thread in the block writes block result to global scratch_memory + if (id == 0) { + pointer_type global = + reinterpret_cast(m_scratch_space) + blockIdx.x; + *global = value; + } + + // One warp of last block performs inter block reduction through loading the + // block values from global scratch_memory + bool last_block = false; + + __threadfence(); + __syncthreads(); + int constexpr warp_size = Kokkos::Experimental::Impl::HIPTraits::WarpSize; + if (id < warp_size) { + Kokkos::Experimental::HIP::size_type count; + + // Figure out whether this is the last block + if (id == 0) count = Kokkos::atomic_fetch_add(m_scratch_flags, 1); + count = Kokkos::Experimental::shfl(count, 0, warp_size); + + // Last block does the inter block reduction + if (count == gridDim.x - 1) { + // Set flag back to zero + if (id == 0) *m_scratch_flags = 0; + last_block = true; + reducer.init(value); + + pointer_type const volatile global = + reinterpret_cast(m_scratch_space); + + // Reduce all global values with splitting work over threads in one warp + int const step_size = blockDim.x * blockDim.y < warp_size + ? blockDim.x * blockDim.y + : warp_size; + for (int i = id; i < static_cast(gridDim.x); i += step_size) { + value_type tmp = global[i]; + reducer.join(value, tmp); + } + + // Perform shfl reductions within the warp only join if contribution is + // valid (allows gridDim.x non power of two and i) { + value_type tmp = Kokkos::Experimental::shfl_down(value, i, warp_size); + if (id + i < gridDim.x) reducer.join(value, tmp); + } + __syncthreads(); + } + } + } + + // The last block has in its thread = 0 the global reduction value through + // "value" + return last_block; +} +} // namespace Impl +} // namespace Kokkos + +#endif + +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp index 2dca7f13c9..a97fb2f7cc 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp @@ -92,25 +92,25 @@ DeepCopy::DeepCopy(const Kokkos::Experimental::HIP& - /*instance*/, + instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } DeepCopy:: - DeepCopy(const Kokkos::Experimental::HIP& /*instance*/, void* dst, + DeepCopy(const Kokkos::Experimental::HIP& instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } DeepCopy:: - DeepCopy(const Kokkos::Experimental::HIP& /*instance*/, void* dst, + DeepCopy(const Kokkos::Experimental::HIP& instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } DeepCopy:: - DeepCopy(const Kokkos::Experimental::HIP& /*instance*/, void* dst, + DeepCopy(const Kokkos::Experimental::HIP& instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } DeepCopy::DeepCopy(const Kokkos::Experimental::HIP& - /*instance*/, + instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } DeepCopy::DeepCopy(const Kokkos::Experimental::HIP& - /*instance*/, + instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } void DeepCopyAsyncHIP(void* dst, void const* src, size_t n) { @@ -199,6 +199,12 @@ HIPSpace::HIPSpace() : m_device(HIP().hip_device()) {} HIPHostPinnedSpace::HIPHostPinnedSpace() {} void* HIPSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void* HIPSpace::allocate( + + const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size) const { void* ptr = nullptr; auto const error_code = hipMalloc(&ptr, arg_alloc_size); @@ -210,11 +216,23 @@ void* HIPSpace::allocate(const size_t arg_alloc_size) const { arg_alloc_size, error_code, RawMemoryAllocationFailure::AllocationMechanism::HIPMalloc); } + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, ptr, + reported_size); + } return ptr; } void* HIPHostPinnedSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void* HIPHostPinnedSpace::allocate(const char* arg_label, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { void* ptr = nullptr; auto const error_code = hipHostMalloc(&ptr, arg_alloc_size); @@ -226,17 +244,49 @@ void* HIPHostPinnedSpace::allocate(const size_t arg_alloc_size) const { arg_alloc_size, error_code, RawMemoryAllocationFailure::AllocationMechanism::HIPHostMalloc); } + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, ptr, + reported_size); + } return ptr; } - void HIPSpace::deallocate(void* const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} +void HIPSpace::deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, arg_alloc_ptr, + reported_size); + } HIP_SAFE_CALL(hipFree(arg_alloc_ptr)); } void HIPHostPinnedSpace::deallocate(void* const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} + +void HIPHostPinnedSpace::deallocate(const char* arg_label, + void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, arg_alloc_ptr, + reported_size); + } HIP_SAFE_CALL(hipHostFree(arg_alloc_ptr)); } @@ -298,34 +348,22 @@ void SharedAllocationRecord:: SharedAllocationRecord::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) + const char* label = nullptr; if (Kokkos::Profiling::profileLibraryLoaded()) { SharedAllocationHeader header; Kokkos::Impl::DeepCopy( &header, RecordBase::m_alloc_ptr, sizeof(SharedAllocationHeader)); - - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::Experimental::HIPSpace::name()), - header.m_label, data(), size()); + label = header.label(); } -#endif - - m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, - SharedAllocationRecord::m_alloc_size); + auto alloc_size = SharedAllocationRecord::m_alloc_size; + m_space.deallocate(label, SharedAllocationRecord::m_alloc_ptr, + alloc_size, (alloc_size - sizeof(SharedAllocationHeader))); } SharedAllocationRecord::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle( - Kokkos::Experimental::HIPHostPinnedSpace::name()), - RecordBase::m_alloc_ptr->m_label, data(), size()); - } -#endif - - m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, + m_space.deallocate(RecordBase::m_alloc_ptr->m_label, + SharedAllocationRecord::m_alloc_ptr, SharedAllocationRecord::m_alloc_size); } @@ -345,13 +383,6 @@ SharedAllocationRecord:: arg_alloc_size), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif SharedAllocationHeader header; @@ -384,13 +415,6 @@ SharedAllocationRecord:: arg_alloc_size), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif // Fill in the Header information, directly accessible via host pinned memory RecordBase::m_alloc_ptr->m_record = this; @@ -408,7 +432,7 @@ void* SharedAllocationRecord:: allocate_tracked(const Kokkos::Experimental::HIPSpace& arg_space, const std::string& arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void*)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord* const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -444,6 +468,46 @@ void* SharedAllocationRecord:: return r_new->data(); } +void* SharedAllocationRecord:: + allocate_tracked(const Kokkos::Experimental::HIPHostPinnedSpace& arg_space, + const std::string& arg_alloc_label, + const size_t arg_alloc_size) { + if (!arg_alloc_size) return nullptr; + + SharedAllocationRecord* const r = + allocate(arg_space, arg_alloc_label, arg_alloc_size); + + RecordBase::increment(r); + + return r->data(); +} + +void SharedAllocationRecord::deallocate_tracked(void* const + arg_alloc_ptr) { + if (arg_alloc_ptr) { + SharedAllocationRecord* const r = get_record(arg_alloc_ptr); + + RecordBase::decrement(r); + } +} + +void* SharedAllocationRecord:: + reallocate_tracked(void* const arg_alloc_ptr, const size_t arg_alloc_size) { + SharedAllocationRecord* const r_old = get_record(arg_alloc_ptr); + SharedAllocationRecord* const r_new = + allocate(r_old->m_space, r_old->get_label(), arg_alloc_size); + + using HIPHostPinnedSpace = Kokkos::Experimental::HIPHostPinnedSpace; + Kokkos::Impl::DeepCopy( + r_new->data(), r_old->data(), std::min(r_old->size(), r_new->size())); + + RecordBase::increment(r_new); + RecordBase::decrement(r_old); + + return r_new->data(); +} + //---------------------------------------------------------------------------- SharedAllocationRecord* @@ -476,6 +540,25 @@ SharedAllocationRecord::get_record( return record; } +SharedAllocationRecord* +SharedAllocationRecord::get_record(void* alloc_ptr) { + using Header = SharedAllocationHeader; + using RecordHIP = + SharedAllocationRecord; + + Header* const h = + alloc_ptr ? reinterpret_cast(alloc_ptr) - 1 : nullptr; + + if (!alloc_ptr || h->m_record->m_alloc_ptr != h) { + Kokkos::Impl::throw_runtime_exception(std::string( + "Kokkos::Impl::SharedAllocationRecord< " + "Kokkos::Experimental::HIPHostPinnedSpace , void >::get_record ERROR")); + } + + return static_cast(h->m_record); +} + // Iterate records to print orphaned memory ... void SharedAllocationRecord:: print_records(std::ostream& s, const Kokkos::Experimental::HIPSpace& space, @@ -586,13 +669,9 @@ void* hip_resize_scratch_space(size_t bytes, bool force_shrink) { namespace Kokkos { namespace Experimental { -// HIP::size_type HIP::detect_device_count() -//{ return Impl::HIPInternalDevices::singleton().m_hipDevCount ; } - int HIP::concurrency() { - // FIXME_HIP - // MI60: ThreadsPerComputeUnit*ComputeUnits/ShaderEngine*ShaderEngines) - return 2536 * 16 * 4; + auto const& prop = hip_device_prop(); + return prop.maxThreadsPerMultiProcessor * prop.multiProcessorCount; } int HIP::impl_is_initialized() { return Impl::HIPInternal::singleton().is_initialized(); @@ -600,36 +679,84 @@ int HIP::impl_is_initialized() { void HIP::impl_initialize(const HIP::SelectDevice config) { Impl::HIPInternal::singleton().initialize(config.hip_device_id); - -#if defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif } -void HIP::impl_finalize() { - Impl::HIPInternal::singleton().finalize(); +void HIP::impl_finalize() { Impl::HIPInternal::singleton().finalize(); } -#if defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::finalize(); -#endif +HIP::HIP() + : m_space_instance(&Impl::HIPInternal::singleton()), m_counter(nullptr) { + Impl::HIPInternal::singleton().verify_is_initialized( + "HIP instance constructor"); } -HIP::HIP() : m_space_instance(&Impl::HIPInternal::singleton()) { +HIP::HIP(hipStream_t const stream) + : m_space_instance(new Impl::HIPInternal), m_counter(new int(1)) { Impl::HIPInternal::singleton().verify_is_initialized( "HIP instance constructor"); + m_space_instance->initialize(Impl::HIPInternal::singleton().m_hipDev, stream); +} + +KOKKOS_FUNCTION HIP::HIP(HIP&& other) noexcept { + m_space_instance = other.m_space_instance; + other.m_space_instance = nullptr; + m_counter = other.m_counter; + other.m_counter = nullptr; +} + +KOKKOS_FUNCTION HIP::HIP(HIP const& other) + : m_space_instance(other.m_space_instance), m_counter(other.m_counter) { +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU + if (m_counter) Kokkos::atomic_add(m_counter, 1); +#endif +} + +KOKKOS_FUNCTION HIP& HIP::operator=(HIP&& other) noexcept { + m_space_instance = other.m_space_instance; + other.m_space_instance = nullptr; + m_counter = other.m_counter; + other.m_counter = nullptr; + + return *this; } -// HIP::HIP( const int instance_id ) -// : m_device( Impl::HIPInternal::singleton().m_hipDev ) -//{} +KOKKOS_FUNCTION HIP& HIP::operator=(HIP const& other) { + m_space_instance = other.m_space_instance; + m_counter = other.m_counter; +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU + if (m_counter) Kokkos::atomic_add(m_counter, 1); +#endif + + return *this; +} + +KOKKOS_FUNCTION HIP::~HIP() noexcept { +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU + if (m_counter == nullptr) return; + int const count = Kokkos::atomic_fetch_sub(m_counter, 1); + if (count == 1) { + delete m_counter; + m_space_instance->finalize(); + delete m_space_instance; + } +#endif +} void HIP::print_configuration(std::ostream& s, const bool) { Impl::HIPInternal::singleton().print_configuration(s); } -void HIP::fence() const { HIP_SAFE_CALL(hipDeviceSynchronize()); } +void HIP::impl_static_fence() { HIP_SAFE_CALL(hipDeviceSynchronize()); } + +void HIP::fence() const { m_space_instance->fence(); } + +hipStream_t HIP::hip_stream() const { return m_space_instance->m_stream; } int HIP::hip_device() const { return impl_internal_space_instance()->m_hipDev; } + +hipDeviceProp_t const& HIP::hip_device_prop() { + return Impl::HIPInternal::singleton().m_deviceProp; +} + const char* HIP::name() { return "HIP"; } } // namespace Experimental diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp index b3c4f4609b..577c392a0a 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp @@ -54,6 +54,7 @@ #include #include +#include #include #include @@ -65,7 +66,7 @@ namespace Impl { template struct HIPJoinFunctor { - typedef Type value_type; + using value_type = Type; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -77,16 +78,16 @@ struct HIPJoinFunctor { /**\brief Team member_type passed to TeamPolicy or TeamTask closures. * * HIP thread blocks for team closures are dimensioned as: - * hipBlockDim_x == number of "vector lanes" per "thread" - * hipBlockDim_y == number of "threads" per team - * hipBlockDim_z == number of teams in a block + * blockDim.x == number of "vector lanes" per "thread" + * blockDim.y == number of "threads" per team + * blockDim.z == number of teams in a block * where * A set of teams exactly fill a warp OR a team is the whole block - * ( 0 == WarpSize % ( hipBlockDim_x * hipBlockDim_y ) ) + * ( 0 == WarpSize % ( blockDim.x * blockDim.y ) ) * OR - * ( 1 == hipBlockDim_z ) + * ( 1 == blockDim.z ) - * Thus when 1 < hipBlockDim_z the team is warp-synchronous + * Thus when 1 < blockDim.z the team is warp-synchronous * and __syncthreads should not be called in team collectives. * * When multiple teams are mapped onto a single block then the @@ -126,7 +127,7 @@ class HIPTeamMember { KOKKOS_INLINE_FUNCTION int league_size() const { return m_league_size; } KOKKOS_INLINE_FUNCTION int team_rank() const { #ifdef __HIP_DEVICE_COMPILE__ - return hipThreadIdx_y; + return threadIdx.y; #else return 0; #endif @@ -134,15 +135,15 @@ class HIPTeamMember { KOKKOS_INLINE_FUNCTION int team_size() const { #ifdef __HIP_DEVICE_COMPILE__ - return hipBlockDim_y; + return blockDim.y; #else - return 1; + return 0; #endif } KOKKOS_INLINE_FUNCTION void team_barrier() const { #ifdef __HIP_DEVICE_COMPILE__ - if (1 == hipBlockDim_z) + if (1 == blockDim.z) __syncthreads(); // team == block else __threadfence_block(); // team <= warp @@ -155,11 +156,11 @@ class HIPTeamMember { KOKKOS_INLINE_FUNCTION void team_broadcast(ValueType& val, const int& thread_id) const { #ifdef __HIP_DEVICE_COMPILE__ - if (1 == hipBlockDim_z) { // team == block + if (blockDim.z == 1) { // team == block __syncthreads(); // Wait for shared data write until all threads arrive here - if (hipThreadIdx_x == 0u && - hipThreadIdx_y == static_cast(thread_id)) { + if (threadIdx.x == 0u && + threadIdx.y == static_cast(thread_id)) { *(reinterpret_cast(m_team_reduce)) = val; } __syncthreads(); // Wait for shared data read until root thread writes @@ -167,7 +168,7 @@ class HIPTeamMember { } else { // team <= warp ValueType tmp(val); // input might not be a register variable ::Kokkos::Experimental::Impl::in_place_shfl( - val, tmp, hipBlockDim_x * thread_id, hipBlockDim_x * hipBlockDim_y); + val, tmp, blockDim.x * thread_id, blockDim.x * blockDim.y); } #else (void)val; @@ -178,44 +179,24 @@ class HIPTeamMember { template KOKKOS_INLINE_FUNCTION void team_broadcast(Closure const& f, ValueType& val, const int& thread_id) const { -#ifdef __HIP_DEVICE_COMPILE__ f(val); - - if (1 == hipBlockDim_z) { // team == block - __syncthreads(); - // Wait for shared data write until all threads arrive here - if (hipThreadIdx_x == 0u && - hipThreadIdx_y == static_cast(thread_id)) { - *(reinterpret_cast(m_team_reduce)) = val; - } - __syncthreads(); // Wait for shared data read until root thread writes - val = *(reinterpret_cast(m_team_reduce)); - } else { // team <= warp - ValueType tmp(val); // input might not be a register variable - ::Kokkos::Experimental::Impl::in_place_shfl( - val, tmp, hipBlockDim_x * thread_id, hipBlockDim_x * hipBlockDim_y); - } -#else - (void)f; - (void)val; - (void)thread_id; -#endif + team_broadcast(val, thread_id); } //-------------------------------------------------------------------------- /**\brief Reduction across a team * * Mapping of teams onto blocks: - * hipBlockDim_x is "vector lanes" - * hipBlockDim_y is team "threads" - * hipBlockDim_z is number of teams per block + * blockDim.x is "vector lanes" + * blockDim.y is team "threads" + * blockDim.z is number of teams per block * * Requires: - * hipBlockDim_x is power two - * hipBlockDim_x <= HIPTraits::WarpSize - * ( 0 == HIPTraits::WarpSize % ( hipBlockDim_x * hipBlockDim_y ) + * blockDim.x is power two + * blockDim.x <= HIPTraits::WarpSize + * ( 0 == HIPTraits::WarpSize % ( blockDim.x * blockDim.y ) * OR - * ( 1 == hipBlockDim_z ) + * ( 1 == blockDim.z ) */ template KOKKOS_INLINE_FUNCTION @@ -230,7 +211,7 @@ class HIPTeamMember { team_reduce(ReducerType const& reducer, typename ReducerType::value_type& value) const noexcept { #ifdef __HIP_DEVICE_COMPILE__ - hip_intra_block_reduction(reducer, value, hipBlockDim_y); + hip_intra_block_shuffle_reduction(reducer, value, blockDim.y); #else (void)reducer; (void)value; @@ -256,25 +237,25 @@ class HIPTeamMember { __syncthreads(); // Don't write in to shared data until all threads have // entered this function - if (0 == hipThreadIdx_y) { + if (0 == threadIdx.y) { base_data[0] = 0; } - base_data[hipThreadIdx_y + 1] = value; + base_data[threadIdx.y + 1] = value; Impl::hip_intra_block_reduce_scan, void>( Impl::HIPJoinFunctor(), base_data + 1); if (global_accum) { - if (hipBlockDim_y == hipThreadIdx_y + 1) { - base_data[hipBlockDim_y] = - atomic_fetch_add(global_accum, base_data[hipBlockDim_y]); + if (blockDim.y == threadIdx.y + 1) { + base_data[blockDim.y] = + atomic_fetch_add(global_accum, base_data[blockDim.y]); } __syncthreads(); // Wait for atomic - base_data[hipThreadIdx_y] += base_data[hipBlockDim_y]; + base_data[threadIdx.y] += base_data[blockDim.y]; } - return base_data[hipThreadIdx_y]; + return base_data[threadIdx.y]; #else (void)value; (void)global_accum; @@ -307,24 +288,16 @@ class HIPTeamMember { vector_reduce(ReducerType const& reducer, typename ReducerType::value_type& value) { #ifdef __HIP_DEVICE_COMPILE__ - if (hipBlockDim_x == 1) return; + if (blockDim.x == 1) return; // Intra vector lane shuffle reduction: typename ReducerType::value_type tmp(value); typename ReducerType::value_type tmp2 = tmp; - int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - unsigned mask = - hipBlockDim_x == warp_size - ? 0xffffffff - : ((1 << hipBlockDim_x) - 1) - << ((hipThreadIdx_y % (warp_size / hipBlockDim_x)) * - hipBlockDim_x); - - for (int i = hipBlockDim_x; (i >>= 1);) { + for (int i = blockDim.x; (i >>= 1);) { ::Kokkos::Experimental::Impl::in_place_shfl_down(tmp2, tmp, i, - hipBlockDim_x, mask); - if (static_cast(hipThreadIdx_x) < i) { + blockDim.x); + if (static_cast(threadIdx.x) < i) { reducer.join(tmp, tmp2); } } @@ -334,8 +307,7 @@ class HIPTeamMember { // because floating point summation is not associative // and thus different threads could have different results. - ::Kokkos::Experimental::Impl::in_place_shfl(tmp2, tmp, 0, hipBlockDim_x, - mask); + ::Kokkos::Experimental::Impl::in_place_shfl(tmp2, tmp, 0, blockDim.x); value = tmp2; reducer.reference() = tmp2; #else @@ -355,19 +327,17 @@ class HIPTeamMember { global_reduce(ReducerType const& reducer, int* const global_scratch_flags, void* const global_scratch_space, void* const shmem, int const shmem_size) { -#ifdef __HIP_COMPILE_DEVICE__ - - typedef typename ReducerType::value_type value_type; - typedef value_type volatile* pointer_type; +#ifdef __HIP_DEVICE_COMPILE__ + using value_type = typename ReducerType::value_type; + using pointer_type = value_type volatile*; // Number of shared memory entries for the reduction: const int nsh = shmem_size / sizeof(value_type); // Number of HIP threads in the block, rank within the block - const int nid = hipBlockDim_x * hipBlockDim_y * hipBlockDim_z; + const int nid = blockDim.x * blockDim.y * blockDim.z; const int tid = - hipThreadIdx_x + - hipBlockDim_x * (hipThreadIdx_y + hipBlockDim_y * hipThreadIdx_z); + threadIdx.x + blockDim.x * (threadIdx.y + blockDim.y * threadIdx.z); // Reduces within block using all available shared memory // Contributes if it is the root "vector lane" @@ -376,23 +346,24 @@ class HIPTeamMember { // wx == which lane within the warp // wy == which warp within the block - const int wn = - (nid + HIPTraits::WarpIndexMask) >> HIPTraits::WarpIndexShift; - const int wx = tid & HIPTraits::WarpIndexMask; - const int wy = tid >> HIPTraits::WarpIndexShift; + const int wn = (nid + Experimental::Impl::HIPTraits::WarpIndexMask) >> + Experimental::Impl::HIPTraits::WarpIndexShift; + const int wx = tid & Experimental::Impl::HIPTraits::WarpIndexMask; + const int wy = tid >> Experimental::Impl::HIPTraits::WarpIndexShift; //------------------------ - { // Intra warp shuffle reduction from contributing CUDA threads + { // Intra warp shuffle reduction from contributing HIP threads value_type tmp(reducer.reference()); int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - for (int i = warp_size; static_cast(hipBlockDim_x) <= (i >>= 1);) { - Impl::in_place_shfl_down(reducer.reference(), tmp, i, warp_size); + for (int i = warp_size; static_cast(blockDim.x) <= (i >>= 1);) { + Experimental::Impl::in_place_shfl_down(reducer.reference(), tmp, i, + warp_size); // Root of each vector lane reduces "thread" contribution - if (0 == hipThreadIdx_x && wx < i) { + if (0 == threadIdx.x && wx < i) { reducer.join(&tmp, reducer.data()); } } @@ -432,7 +403,7 @@ class HIPTeamMember { if (0 == wy) { // Start fan-in at power of two covering nentry - for (int i = (1 << (32 - __clz(nentry - 1))); (i >>= 1);) { + for (int i = (1 << (warp_size - __clz(nentry - 1))); (i >>= 1);) { const int k = wx + i; if (wx < i && k < nentry) { reducer.join((reinterpret_cast(shmem)) + wx, @@ -449,12 +420,12 @@ class HIPTeamMember { if (0 == wx) { reducer.copy((reinterpret_cast(global_scratch_space)) + - hipBlockIdx_x * reducer.length(), + blockIdx.x * reducer.length(), reducer.data()); __threadfence(); // Wait until global write is visible. - last_block = static_cast(hipGridDim_x) == + last_block = static_cast(gridDim.x) == 1 + Kokkos::atomic_fetch_add(global_scratch_flags, 1); // If last block then reset count @@ -473,9 +444,8 @@ class HIPTeamMember { //------------------------ // Last block reads global_scratch_memory into shared memory. - const int nentry = nid < hipGridDim_x - ? (nid < nsh ? nid : nsh) - : (hipGridDim_x < nsh ? hipGridDim_x : nsh); + const int nentry = nid < gridDim.x ? (nid < nsh ? nid : nsh) + : (gridDim.x < nsh ? gridDim.x : nsh); // nentry = min( nid , nsh , gridDim.x ) @@ -488,8 +458,7 @@ class HIPTeamMember { (reinterpret_cast(shmem)) + offset, (reinterpret_cast(global_scratch_space)) + offset); - for (int i = nentry + tid; i < static_cast(hipGridDim_x); - i += nentry) { + for (int i = nentry + tid; i < static_cast(gridDim.x); i += nentry) { reducer.join((reinterpret_cast(shmem)) + offset, (reinterpret_cast(global_scratch_space)) + i * reducer.length()); @@ -529,12 +498,11 @@ class HIPTeamMember { } } return 0; - #else (void)reducer; (void)global_scratch_flags; - (void)shmem; (void)global_scratch_space; + (void)shmem; (void)shmem_size; return 0; #endif @@ -574,7 +542,7 @@ namespace Impl { template struct TeamThreadRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const HIPTeamMember& member; const iType start; const iType end; @@ -591,7 +559,7 @@ struct TeamThreadRangeBoundariesStruct { template struct TeamVectorRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const HIPTeamMember& member; const iType start; const iType end; @@ -609,7 +577,7 @@ struct TeamVectorRangeBoundariesStruct { template struct ThreadVectorRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const index_type start; const index_type end; @@ -645,7 +613,7 @@ template KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< typename std::common_type::type, Impl::HIPTeamMember> TeamThreadRange(const Impl::HIPTeamMember& thread, iType1 begin, iType2 end) { - typedef typename std::common_type::type iType; + using iType = typename std::common_type::type; return Impl::TeamThreadRangeBoundariesStruct( thread, iType(begin), iType(end)); } @@ -663,7 +631,7 @@ KOKKOS_INLINE_FUNCTION Impl::TeamVectorRangeBoundariesStruct< typename std::common_type::type, Impl::HIPTeamMember> TeamVectorRange(const Impl::HIPTeamMember& thread, const iType1& begin, const iType2& end) { - typedef typename std::common_type::type iType; + using iType = typename std::common_type::type; return Impl::TeamVectorRangeBoundariesStruct( thread, iType(begin), iType(end)); } @@ -711,8 +679,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( loop_boundaries, const Closure& closure) { #ifdef __HIP_DEVICE_COMPILE__ - for (iType i = loop_boundaries.start + hipThreadIdx_y; - i < loop_boundaries.end; i += hipBlockDim_y) + for (iType i = loop_boundaries.start + threadIdx.y; i < loop_boundaries.end; + i += blockDim.y) closure(i); #else (void)loop_boundaries; @@ -740,8 +708,8 @@ KOKKOS_INLINE_FUNCTION typename ReducerType::value_type value; reducer.init(value); - for (iType i = loop_boundaries.start + hipThreadIdx_y; - i < loop_boundaries.end; i += hipBlockDim_y) { + for (iType i = loop_boundaries.start + threadIdx.y; i < loop_boundaries.end; + i += blockDim.y) { closure(i, value); } @@ -773,8 +741,8 @@ KOKKOS_INLINE_FUNCTION reducer.init(reducer.reference()); - for (iType i = loop_boundaries.start + hipThreadIdx_y; - i < loop_boundaries.end; i += hipBlockDim_y) { + for (iType i = loop_boundaries.start + threadIdx.y; i < loop_boundaries.end; + i += blockDim.y) { closure(i, val); } @@ -793,9 +761,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( loop_boundaries, const Closure& closure) { #ifdef __HIP_DEVICE_COMPILE__ - for (iType i = loop_boundaries.start + hipThreadIdx_y * hipBlockDim_x + - hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_y * hipBlockDim_x) + for (iType i = loop_boundaries.start + threadIdx.y * blockDim.x + threadIdx.x; + i < loop_boundaries.end; i += blockDim.y * blockDim.x) closure(i); #else (void)loop_boundaries; @@ -813,9 +780,8 @@ KOKKOS_INLINE_FUNCTION typename ReducerType::value_type value; reducer.init(value); - for (iType i = loop_boundaries.start + hipThreadIdx_y * hipBlockDim_x + - hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_y * hipBlockDim_x) { + for (iType i = loop_boundaries.start + threadIdx.y * blockDim.x + threadIdx.x; + i < loop_boundaries.end; i += blockDim.y * blockDim.x) { closure(i, value); } @@ -840,9 +806,8 @@ KOKKOS_INLINE_FUNCTION reducer.init(reducer.reference()); - for (iType i = loop_boundaries.start + hipThreadIdx_y * hipBlockDim_x + - hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_y * hipBlockDim_x) { + for (iType i = loop_boundaries.start + threadIdx.y * blockDim.x + threadIdx.x; + i < loop_boundaries.end; i += blockDim.y * blockDim.x) { closure(i, val); } @@ -870,8 +835,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( loop_boundaries, const Closure& closure) { #ifdef __HIP_DEVICE_COMPILE__ - for (iType i = loop_boundaries.start + hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_x) { + for (iType i = loop_boundaries.start + threadIdx.x; i < loop_boundaries.end; + i += blockDim.x) { closure(i); } #else @@ -902,8 +867,8 @@ KOKKOS_INLINE_FUNCTION #ifdef __HIP_DEVICE_COMPILE__ reducer.init(reducer.reference()); - for (iType i = loop_boundaries.start + hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_x) { + for (iType i = loop_boundaries.start + threadIdx.x; i < loop_boundaries.end; + i += blockDim.x) { closure(i, reducer.reference()); } @@ -935,8 +900,8 @@ KOKKOS_INLINE_FUNCTION #ifdef __HIP_DEVICE_COMPILE__ result = ValueType(); - for (iType i = loop_boundaries.start + hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_x) { + for (iType i = loop_boundaries.start + threadIdx.x; i < loop_boundaries.end; + i += blockDim.x) { closure(i, result); } @@ -977,22 +942,15 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( // All thread "lanes" must loop the same number of times. // Determine an loop end for all thread "lanes." // Requires: - // hipBlockDim_x is power of two and thus - // ( end % hipBlockDim_x ) == ( end & ( hipBlockDim_x - 1 ) ) - // 1 <= hipBlockDim_x <= HIPTraits::WarpSize - - int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - const int mask = hipBlockDim_x - 1; - const unsigned active_mask = - blockDim.x == warp_size - ? 0xffffffff - : ((1 << hipBlockDim_x) - 1) - << (hipThreadIdx_y % (warp_size / hipBlockDim_x)) * - hipBlockDim_x; - const int rem = loop_boundaries.end & mask; // == end % hipBlockDim_x - const int end = loop_boundaries.end + (rem ? hipBlockDim_x - rem : 0); - - for (int i = hipThreadIdx_x; i < end; i += hipBlockDim_x) { + // blockDim.x is power of two and thus + // ( end % blockDim.x ) == ( end & ( blockDim.x - 1 ) ) + // 1 <= blockDim.x <= HIPTraits::WarpSize + + const int mask = blockDim.x - 1; + const int rem = loop_boundaries.end & mask; // == end % blockDim.x + const int end = loop_boundaries.end + (rem ? blockDim.x - rem : 0); + + for (int i = threadIdx.x; i < end; i += blockDim.x) { value_type val = 0; // First acquire per-lane contributions: @@ -1008,11 +966,10 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( // [t] += [t-4] if t >= 4 // ... - for (int j = 1; j < static_cast(hipBlockDim_x); j <<= 1) { + for (int j = 1; j < static_cast(blockDim.x); j <<= 1) { value_type tmp = 0; - ::Kokkos::Experimental::Impl::in_place_shfl_up( - tmp, sval, j, hipBlockDim_x, active_mask); - if (j <= static_cast(hipThreadIdx_x)) { + ::Kokkos::Experimental::Impl::in_place_shfl_up(tmp, sval, j, blockDim.x); + if (j <= static_cast(threadIdx.x)) { sval += tmp; } } @@ -1024,8 +981,8 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( if (i < loop_boundaries.end) closure(i, val, true); // Accumulate the last value in the inclusive scan: - ::Kokkos::Experimental::Impl::in_place_shfl(sval, sval, mask, blockDim.x, - active_mask); + ::Kokkos::Experimental::Impl::in_place_shfl(sval, sval, blockDim.x - 1, + blockDim.x); accum += sval; } @@ -1044,7 +1001,7 @@ KOKKOS_INLINE_FUNCTION void single( const Impl::VectorSingleStruct&, const FunctorType& lambda) { #ifdef __HIP_DEVICE_COMPILE__ - if (hipThreadIdx_x == 0) lambda(); + if (threadIdx.x == 0) lambda(); #else (void)lambda; #endif @@ -1055,7 +1012,7 @@ KOKKOS_INLINE_FUNCTION void single( const Impl::ThreadSingleStruct&, const FunctorType& lambda) { #ifdef __HIP_DEVICE_COMPILE__ - if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) lambda(); + if (threadIdx.x == 0 && threadIdx.y == 0) lambda(); #else (void)lambda; #endif @@ -1066,14 +1023,8 @@ KOKKOS_INLINE_FUNCTION void single( const Impl::VectorSingleStruct&, const FunctorType& lambda, ValueType& val) { #ifdef __HIP_DEVICE_COMPILE__ - int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - if (hipThreadIdx_x == 0) lambda(val); - unsigned mask = hipBlockDim_x == warp_size - ? 0xffffffff - : ((1 << hipBlockDim_x) - 1) - << ((hipThreadIdx_y % (warp_size / hipBlockDim_x)) * - hipBlockDim_x); - ::Kokkos::Experimental::Impl::in_place_shfl(val, val, 0, hipBlockDim_x, mask); + if (threadIdx.x == 0) lambda(val); + ::Kokkos::Experimental::Impl::in_place_shfl(val, val, 0, blockDim.x); #else (void)lambda; (void)val; @@ -1084,11 +1035,8 @@ template KOKKOS_INLINE_FUNCTION void single( const Impl::ThreadSingleStruct& single_struct, const FunctorType& lambda, ValueType& val) { - (void)single_struct; - (void)lambda; - (void)val; #ifdef __HIP_DEVICE_COMPILE__ - if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) { + if (threadIdx.x == 0 && threadIdx.y == 0) { lambda(val); } single_struct.team_member.team_broadcast(val, 0); @@ -1103,4 +1051,4 @@ KOKKOS_INLINE_FUNCTION void single( #endif /* defined( __HIPCC__ ) */ -#endif /* #ifndef KOKKOS_CUDA_TEAM_HPP */ +#endif /* #ifndef KOKKOS_HIP_TEAM_HPP */ diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_UniqueToken.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_UniqueToken.hpp new file mode 100644 index 0000000000..f7e38a508b --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_UniqueToken.hpp @@ -0,0 +1,129 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_UNIQUE_TOKEN_HPP +#define KOKKOS_HIP_UNIQUE_TOKEN_HPP + +#include +#include +#include + +namespace Kokkos { +namespace Experimental { + +// both global and instance Unique Tokens are implemented in the same way +template <> +class UniqueToken { + protected: + uint32_t volatile* m_buffer; + uint32_t m_count; + + public: + using execution_space = HIP; + using size_type = int32_t; + + explicit UniqueToken(execution_space const& = execution_space()) + : m_buffer(Impl::HIPInternal::singleton().m_scratchConcurrentBitset), + m_count(HIP::concurrency()) {} + + KOKKOS_DEFAULTED_FUNCTION + UniqueToken(const UniqueToken&) = default; + + KOKKOS_DEFAULTED_FUNCTION + UniqueToken(UniqueToken&&) = default; + + KOKKOS_DEFAULTED_FUNCTION + UniqueToken& operator=(const UniqueToken&) = default; + + KOKKOS_DEFAULTED_FUNCTION + UniqueToken& operator=(UniqueToken&&) = default; + + /// \brief upper bound for acquired values, i.e. 0 <= value < size() + KOKKOS_INLINE_FUNCTION + size_type size() const noexcept { return m_count; } + + /// \brief acquire value such that 0 <= value < size() + KOKKOS_INLINE_FUNCTION + size_type acquire() const { + const Kokkos::pair result = + Kokkos::Impl::concurrent_bitset::acquire_bounded( + m_buffer, m_count, Kokkos::Impl::clock_tic() % m_count); + + if (result.first < 0) { + Kokkos::abort( + "UniqueToken failure to acquire tokens, no tokens available"); + } + + return result.first; + } + + /// \brief release an acquired value + KOKKOS_INLINE_FUNCTION + void release(size_type i) const noexcept { + Kokkos::Impl::concurrent_bitset::release(m_buffer, i); + } +}; + +template <> +class UniqueToken + : public UniqueToken { + View m_buffer_view; + + public: + explicit UniqueToken(execution_space const& arg = execution_space()) + : UniqueToken(arg) {} + + UniqueToken(size_type max_size, execution_space const& = execution_space()) + : m_buffer_view( + "UniqueToken::m_buffer_view", + ::Kokkos::Impl::concurrent_bitset::buffer_bound(max_size)) { + m_buffer = m_buffer_view.data(); + m_count = max_size; + } +}; + +} // namespace Experimental +} // namespace Kokkos + +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp index 58b5abb2ee..045892bb99 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp @@ -46,20 +46,16 @@ #define KOKKOS_HIP_VECTORIZATION_HPP #include -#include namespace Kokkos { namespace Experimental { namespace Impl { -// Include all lanes -constexpr unsigned shfl_all_mask = 0xffffffff; - //---------------------------------------------------------------------------- // Shuffle operations require input to be a register (stack) variable -// Derived implements do_shfl_op(unsigned mask, T& in, int lane, int width), -// which turns in to one of KOKKOS_IMPL_HIP_SHFL(_UP_|_DOWN_|_)MASK +// Derived implements do_shfl_op( T& in, int lane, int width), +// which turns in to one of __shfl_XXX // Since the logic with respect to value sizes, etc., is the same everywhere, // put it all in one place. template @@ -69,52 +65,70 @@ struct in_place_shfl_op { return *static_cast(this); } + // FIXME_HIP depends on UB + // sizeof(Scalar) < sizeof(int) case + template + // requires _assignable_from_bits + __device__ inline typename std::enable_if::type + operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width) const + noexcept { + using shfl_type = int; + union conv_type { + Scalar orig; + shfl_type conv; + }; + conv_type tmp_in; + tmp_in.orig = in; + conv_type tmp_out; + tmp_out.conv = tmp_in.conv; + conv_type res; + //------------------------------------------------ + res.conv = self().do_shfl_op( + reinterpret_cast(tmp_out.conv), lane_or_delta, width); + //------------------------------------------------ + out = res.orig; + } + // sizeof(Scalar) == sizeof(int) case template // requires _assignable_from_bits __device__ inline typename std::enable_if::type - operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width, - unsigned mask = shfl_all_mask) const noexcept { - //------------------------------------------------ + operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width) const + noexcept { reinterpret_cast(out) = self().do_shfl_op( - mask, reinterpret_cast(in), lane_or_delta, width); - //------------------------------------------------ + reinterpret_cast(in), lane_or_delta, width); } template __device__ inline typename std::enable_if::type - operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width, - unsigned mask = shfl_all_mask) const noexcept { - //------------------------------------------------ + operator()(Scalar& out, Scalar const& in, int lane_or_delta, + int width) const noexcept { reinterpret_cast(out) = self().do_shfl_op( - mask, *reinterpret_cast(&in), lane_or_delta, width); - //------------------------------------------------ + *reinterpret_cast(&in), lane_or_delta, width); } // sizeof(Scalar) > sizeof(double) case template __device__ inline typename std::enable_if<(sizeof(Scalar) > sizeof(double))>::type - operator()(Scalar& out, const Scalar& val, int lane_or_delta, int width, - unsigned mask = shfl_all_mask) const noexcept { + operator()(Scalar& out, const Scalar& val, int lane_or_delta, + int width) const noexcept { using shuffle_as_t = int; - enum : int { N = sizeof(Scalar) / sizeof(shuffle_as_t) }; + int constexpr N = sizeof(Scalar) / sizeof(shuffle_as_t); for (int i = 0; i < N; ++i) { reinterpret_cast(&out)[i] = self().do_shfl_op( - mask, reinterpret_cast(&val)[i], lane_or_delta, - width); + reinterpret_cast(&val)[i], lane_or_delta, width); } } }; struct in_place_shfl_fn : in_place_shfl_op { template - __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, - int lane, int width) const - noexcept { - return KOKKOS_IMPL_HIP_SHFL_MASK(mask, val, lane, width); + __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(T& val, int lane, + int width) const noexcept { + return __shfl(val, lane, width); } }; @@ -125,10 +139,9 @@ __device__ KOKKOS_IMPL_FORCEINLINE void in_place_shfl(Args&&... args) noexcept { struct in_place_shfl_up_fn : in_place_shfl_op { template - __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, - int lane, int width) const - noexcept { - return KOKKOS_IMPL_HIP_SHFL_UP_MASK(mask, val, lane, width); + __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(T& val, int lane, + int width) const noexcept { + return __shfl_up(val, lane, width); } }; @@ -140,10 +153,9 @@ __device__ KOKKOS_IMPL_FORCEINLINE void in_place_shfl_up( struct in_place_shfl_down_fn : in_place_shfl_op { template - __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, - int lane, int width) const - noexcept { - return KOKKOS_IMPL_HIP_SHFL_DOWN_MASK(mask, val, lane, width); + __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(T& val, int lane, + int width) const noexcept { + return __shfl_down(val, lane, width); } }; @@ -154,6 +166,31 @@ __device__ KOKKOS_IMPL_FORCEINLINE void in_place_shfl_down( } } // namespace Impl + +template +// requires default_constructible && _assignable_from_bits +__device__ inline T shfl(const T& val, const int& srcLane, const int& width) { + T rv = {}; + Impl::in_place_shfl(rv, val, srcLane, width); + return rv; +} + +template +// requires default_constructible && _assignable_from_bits +__device__ inline T shfl_down(const T& val, int delta, int width) { + T rv = {}; + Impl::in_place_shfl_down(rv, val, delta, width); + return rv; +} + +template +// requires default_constructible && _assignable_from_bits +__device__ inline T shfl_up(const T& val, int delta, int width) { + T rv = {}; + Impl::in_place_shfl_up(rv, val, delta, width); + return rv; +} + } // namespace Experimental } // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_WorkGraphPolicy.hpp similarity index 52% rename from lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp rename to lib/kokkos/core/src/HIP/Kokkos_HIP_WorkGraphPolicy.hpp index 0c6fbd75bc..3e053d8f14 100644 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_WorkGraphPolicy.hpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,18 +40,73 @@ // // ************************************************************************ //@HEADER +*/ + +#ifndef KOKKOS_HIP_WORKGRAPHPOLICY_HPP +#define KOKKOS_HIP_WORKGRAPHPOLICY_HPP + +#include -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include namespace Kokkos { namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Experimental::HPX, int64_t) + +template +class ParallelFor, + Kokkos::Experimental::HIP> { + public: + using Policy = Kokkos::WorkGraphPolicy; + using Self = ParallelFor; + + private: + Policy m_policy; + FunctorType m_functor; + + template + __device__ inline + typename std::enable_if::value>::type + exec_one(const std::int32_t w) const noexcept { + m_functor(w); + } + + template + __device__ inline + typename std::enable_if::value>::type + exec_one(const std::int32_t w) const noexcept { + const TagType t{}; + m_functor(t, w); + } + + public: + __device__ inline void operator()() const noexcept { + // Spin until COMPLETED_TOKEN. + // END_TOKEN indicates no work is currently available. + for (std::int32_t w = Policy::END_TOKEN; + Policy::COMPLETED_TOKEN != (w = m_policy.pop_work());) { + if (Policy::END_TOKEN != w) { + exec_one(w); + m_policy.completed_work(w); + } + } + } + + inline void execute() { + const int warps_per_block = 4; + const dim3 grid( + Kokkos::Experimental::Impl::hip_internal_multiprocessor_count(), 1, 1); + const dim3 block(1, Kokkos::Experimental::Impl::HIPTraits::WarpSize, + warps_per_block); + const int shared = 0; + + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, shared, + Experimental::HIP().impl_internal_space_instance(), false); + } + + inline ParallelFor(const FunctorType& arg_functor, const Policy& arg_policy) + : m_policy(arg_policy), m_functor(arg_functor) {} +}; } // namespace Impl } // namespace Kokkos + +#endif /* #define KOKKOS_HIP_WORKGRAPHPOLICY_HPP */ diff --git a/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp b/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp index acbd1074fd..c7512ff35b 100644 --- a/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp +++ b/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp @@ -53,9 +53,12 @@ namespace Kokkos { namespace Experimental { bool HPX::m_hpx_initialized = false; -Kokkos::Impl::thread_buffer HPX::m_buffer; +std::atomic HPX::m_next_instance_id{1}; #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) -hpx::future HPX::m_future = hpx::make_ready_future(); +std::atomic HPX::m_active_parallel_region_count{0}; +HPX::instance_data HPX::m_global_instance_data; +#else +Kokkos::Impl::thread_buffer HPX::m_global_buffer; #endif int HPX::concurrency() { diff --git a/lib/kokkos/core/src/HPX/Kokkos_HPX_Task.hpp b/lib/kokkos/core/src/HPX/Kokkos_HPX_Task.hpp index 803d955914..df09e026fd 100644 --- a/lib/kokkos/core/src/HPX/Kokkos_HPX_Task.hpp +++ b/lib/kokkos/core/src/HPX/Kokkos_HPX_Task.hpp @@ -80,7 +80,8 @@ class TaskQueueSpecialization< // This is not necessarily the most efficient, but can be improved later. TaskQueueSpecialization task_queue; task_queue.scheduler = &scheduler; - Kokkos::Impl::dispatch_execute_task(&task_queue); + Kokkos::Impl::dispatch_execute_task(&task_queue, + Kokkos::Experimental::HPX()); Kokkos::Experimental::HPX().fence(); } @@ -92,7 +93,7 @@ class TaskQueueSpecialization< const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = Kokkos::Experimental::HPX().impl_get_buffer(); buffer.resize(num_worker_threads, 512); auto &queue = scheduler->queue(); @@ -138,6 +139,10 @@ class TaskQueueSpecialization< } num_tasks_remaining.wait(); + +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::impl_decrement_active_parallel_region_count(); +#endif } static uint32_t get_max_team_count(execution_space const &espace) { @@ -207,7 +212,8 @@ class TaskQueueSpecializationConstrained< // This is not necessarily the most efficient, but can be improved later. TaskQueueSpecializationConstrained task_queue; task_queue.scheduler = &scheduler; - Kokkos::Impl::dispatch_execute_task(&task_queue); + Kokkos::Impl::dispatch_execute_task(&task_queue, + Kokkos::Experimental::HPX()); Kokkos::Experimental::HPX().fence(); } @@ -222,7 +228,7 @@ class TaskQueueSpecializationConstrained< static task_base_type *const end = (task_base_type *)task_base_type::EndTag; constexpr task_base_type *no_more_tasks_sentinel = nullptr; - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = Kokkos::Experimental::HPX().impl_get_buffer(); buffer.resize(num_worker_threads, 512); auto &queue = scheduler->queue(); @@ -276,6 +282,10 @@ class TaskQueueSpecializationConstrained< } num_tasks_remaining.wait(); + +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::impl_decrement_active_parallel_region_count(); +#endif } template diff --git a/lib/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIAvail.hpp b/lib/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIAvail.hpp deleted file mode 100644 index 99020a3e0d..0000000000 --- a/lib/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIAvail.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_HPX_VIEWETIAVAIL_HPP -#define KOKKOS_HPX_VIEWETIAVAIL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Experimental::HPX - -#include - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/lib/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIDecl.hpp b/lib/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIDecl.hpp deleted file mode 100644 index fae486f4b0..0000000000 --- a/lib/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIDecl.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_HPX_VIEWETIDECL_HPP -#define KOKKOS_HPX_VIEWETIDECL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Experimental::HPX - -#include - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/lib/kokkos/core/src/HPX/Kokkos_HPX_WorkGraphPolicy.hpp b/lib/kokkos/core/src/HPX/Kokkos_HPX_WorkGraphPolicy.hpp index 6705005c1b..527fe12ad9 100644 --- a/lib/kokkos/core/src/HPX/Kokkos_HPX_WorkGraphPolicy.hpp +++ b/lib/kokkos/core/src/HPX/Kokkos_HPX_WorkGraphPolicy.hpp @@ -45,7 +45,7 @@ #ifndef KOKKOS_HPX_WORKGRAPHPOLICY_HPP #define KOKKOS_HPX_WORKGRAPHPOLICY_HPP -#include +#include #include #include @@ -78,8 +78,8 @@ class ParallelFor, public: void execute() const { - dispatch_execute_task(this); - Kokkos::Experimental::HPX().fence(); + dispatch_execute_task(this, m_policy.space()); + m_policy.space().fence(); } void execute_task() const { diff --git a/lib/kokkos/core/src/KokkosExp_MDRangePolicy.hpp b/lib/kokkos/core/src/KokkosExp_MDRangePolicy.hpp index 3195dbdedf..d3ec64368f 100644 --- a/lib/kokkos/core/src/KokkosExp_MDRangePolicy.hpp +++ b/lib/kokkos/core/src/KokkosExp_MDRangePolicy.hpp @@ -130,8 +130,9 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits { RangePolicy; - typedef MDRangePolicy - execution_policy; // needed for is_execution_space interrogation + using execution_policy = + MDRangePolicy; // needed for is_execution_space + // interrogation template friend struct MDRangePolicy; @@ -551,148 +552,6 @@ using Kokkos::Rank; } // namespace Kokkos // ------------------------------------------------------------------ // -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -// ------------------------------------------------------------------ // -// md_parallel_for - deprecated use parallel_for -// ------------------------------------------------------------------ // - -namespace Kokkos { -namespace Experimental { - -template -void md_parallel_for( - MDRange const& range, Functor const& f, const std::string& str = "", - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && !std::is_same::value -#endif -#if defined(KOKKOS_ENABLE_ROCM) - && !std::is_same::value -#endif - )>::type* = 0) { - Kokkos::Impl::Experimental::MDFunctor g(range, f); - - using range_policy = typename MDRange::impl_range_policy; - - Kokkos::parallel_for(range_policy(0, range.m_num_tiles).set_chunk_size(1), g, - str); -} - -template -void md_parallel_for( - const std::string& str, MDRange const& range, Functor const& f, - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && !std::is_same::value -#endif -#if defined(KOKKOS_ENABLE_ROCM) - && !std::is_same::value -#endif - )>::type* = 0) { - Kokkos::Impl::Experimental::MDFunctor g(range, f); - - using range_policy = typename MDRange::impl_range_policy; - - Kokkos::parallel_for(range_policy(0, range.m_num_tiles).set_chunk_size(1), g, - str); -} - -// Cuda specialization -#if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) -template -void md_parallel_for( - const std::string& str, MDRange const& range, Functor const& f, - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && std::is_same::value -#endif - )>::type* = 0) { - Kokkos::Impl::DeviceIterateTile - closure(range, f); - closure.execute(); -} - -template -void md_parallel_for( - MDRange const& range, Functor const& f, const std::string& str = "", - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && std::is_same::value -#endif - )>::type* = 0) { - Kokkos::Impl::DeviceIterateTile - closure(range, f); - closure.execute(); -} -#endif -// ------------------------------------------------------------------ // - -// ------------------------------------------------------------------ // -// md_parallel_reduce - deprecated use parallel_reduce -// ------------------------------------------------------------------ // -template -void md_parallel_reduce( - MDRange const& range, Functor const& f, ValueType& v, - const std::string& str = "", - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && !std::is_same::value -#endif -#if defined(KOKKOS_ENABLE_ROCM) - && !std::is_same::value -#endif - )>::type* = 0) { - Kokkos::Impl::Experimental::MDFunctor g(range, - f); - - using range_policy = typename MDRange::impl_range_policy; - Kokkos::parallel_reduce( - str, range_policy(0, range.m_num_tiles).set_chunk_size(1), g, v); -} - -template -void md_parallel_reduce( - const std::string& str, MDRange const& range, Functor const& f, - ValueType& v, - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && !std::is_same::value -#endif -#if defined(KOKKOS_ENABLE_ROCM) - && !std::is_same::value -#endif - )>::type* = 0) { - Kokkos::Impl::Experimental::MDFunctor g(range, - f); - - using range_policy = typename MDRange::impl_range_policy; - - Kokkos::parallel_reduce( - str, range_policy(0, range.m_num_tiles).set_chunk_size(1), g, v); -} - -// Cuda - md_parallel_reduce not implemented - use parallel_reduce - -} // namespace Experimental -} // namespace Kokkos -#endif - namespace Kokkos { namespace Experimental { namespace Impl { @@ -700,15 +559,15 @@ namespace Impl { template struct PolicyPropertyAdaptor, MDRangePolicy> { - typedef MDRangePolicy policy_in_t; - typedef MDRangePolicy> - policy_out_t; + using policy_in_t = MDRangePolicy; + using policy_out_t = + MDRangePolicy>; }; } // namespace Impl diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/Kokkos_AcquireUniqueTokenImpl.hpp similarity index 68% rename from lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp rename to lib/kokkos/core/src/Kokkos_AcquireUniqueTokenImpl.hpp index c4a52c2dea..d6227b7bcf 100644 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ b/lib/kokkos/core/src/Kokkos_AcquireUniqueTokenImpl.hpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,15 +40,36 @@ // // ************************************************************************ //@HEADER +*/ + +#ifndef KOKKOS_ACQUIRE_UNIQUE_TOKEN_IMPL_HPP +#define KOKKOS_ACQUIRE_UNIQUE_TOKEN_IMPL_HPP -#define KOKKOS_IMPL_COMPILING_LIBRARY true #include +#include namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Cuda, int64_t) +namespace Experimental { + +template +KOKKOS_FUNCTION AcquireTeamUniqueToken::AcquireTeamUniqueToken( + AcquireTeamUniqueToken::token_type t, team_member_type team) + : my_token(t), my_team_acquired_val(team.team_scratch(0)), my_team(team) { + Kokkos::single(Kokkos::PerTeam(my_team), + [&]() { my_team_acquired_val() = my_token.acquire(); }); + my_team.team_barrier(); -} // namespace Impl + my_acquired_val = my_team_acquired_val(); +} + +template +KOKKOS_FUNCTION AcquireTeamUniqueToken::~AcquireTeamUniqueToken() { + my_team.team_barrier(); + Kokkos::single(Kokkos::PerTeam(my_team), + [&]() { my_token.release(my_acquired_val); }); + my_team.team_barrier(); +} + +} // namespace Experimental } // namespace Kokkos + +#endif // KOKKOS_UNIQUE_TOKEN_HPP diff --git a/lib/kokkos/core/src/Kokkos_AnonymousSpace.hpp b/lib/kokkos/core/src/Kokkos_AnonymousSpace.hpp index a4e887668f..d4632596c8 100644 --- a/lib/kokkos/core/src/Kokkos_AnonymousSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_AnonymousSpace.hpp @@ -56,12 +56,12 @@ namespace Kokkos { class AnonymousSpace { public: //! Tag this class as a kokkos memory space - typedef AnonymousSpace memory_space; - typedef Kokkos::DefaultExecutionSpace execution_space; - typedef size_t size_type; + using memory_space = AnonymousSpace; + using execution_space = Kokkos::DefaultExecutionSpace; + using size_type = size_t; //! This memory space preferred device_type - typedef Kokkos::Device device_type; + using device_type = Kokkos::Device; /**\brief Default memory space instance */ AnonymousSpace() = default; diff --git a/lib/kokkos/core/src/Kokkos_Array.hpp b/lib/kokkos/core/src/Kokkos_Array.hpp index d830616bd6..0d1408df1d 100644 --- a/lib/kokkos/core/src/Kokkos_Array.hpp +++ b/lib/kokkos/core/src/Kokkos_Array.hpp @@ -122,13 +122,13 @@ struct Array { T m_internal_implementation_private_member_data[N]; public: - typedef T& reference; - typedef typename std::add_const::type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef typename std::add_const::type* const_pointer; + using reference = T&; + using const_reference = typename std::add_const::type&; + using size_type = size_t; + using difference_type = ptrdiff_t; + using value_type = T; + using pointer = T*; + using const_pointer = typename std::add_const::type*; KOKKOS_INLINE_FUNCTION static constexpr size_type size() { return N; } KOKKOS_INLINE_FUNCTION static constexpr bool empty() { return false; } @@ -158,38 +158,18 @@ struct Array { KOKKOS_INLINE_FUNCTION const_pointer data() const { return &m_internal_implementation_private_member_data[0]; } - -#ifdef KOKKOS_IMPL_HIP_CLANG_WORKAROUND - // Do not default unless move and move-assignment are also defined - KOKKOS_DEFAULTED_FUNCTION ~Array() = default; - KOKKOS_DEFAULTED_FUNCTION Array() = default; - KOKKOS_DEFAULTED_FUNCTION Array(const Array&) = default; - KOKKOS_DEFAULTED_FUNCTION Array& operator=(const Array&) = default; - - // Some supported compilers are not sufficiently C++11 compliant - // for default move constructor and move assignment operator. - KOKKOS_DEFAULTED_FUNCTION Array(Array&&) = default; - KOKKOS_DEFAULTED_FUNCTION Array& operator=(Array&&) = default; - - KOKKOS_INLINE_FUNCTION - Array(const std::initializer_list& vals) { - for (size_t i = 0; i < N; i++) { - m_internal_implementation_private_member_data[i] = vals.begin()[i]; - } - } -#endif }; template struct Array { public: - typedef T& reference; - typedef typename std::add_const::type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef typename std::add_const::type* const_pointer; + using reference = T&; + using const_reference = typename std::add_const::type&; + using size_type = size_t; + using difference_type = ptrdiff_t; + using value_type = T; + using pointer = T*; + using const_pointer = typename std::add_const::type*; KOKKOS_INLINE_FUNCTION static constexpr size_type size() { return 0; } KOKKOS_INLINE_FUNCTION static constexpr bool empty() { return true; } @@ -240,13 +220,13 @@ struct Array::contiguous> { size_t m_size; public: - typedef T& reference; - typedef typename std::add_const::type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef typename std::add_const::type* const_pointer; + using reference = T&; + using const_reference = typename std::add_const::type&; + using size_type = size_t; + using difference_type = ptrdiff_t; + using value_type = T; + using pointer = T*; + using const_pointer = typename std::add_const::type*; KOKKOS_INLINE_FUNCTION constexpr size_type size() const { return m_size; } KOKKOS_INLINE_FUNCTION constexpr bool empty() const { return 0 != m_size; } @@ -309,13 +289,13 @@ struct Array::strided> { size_t m_stride; public: - typedef T& reference; - typedef typename std::add_const::type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef typename std::add_const::type* const_pointer; + using reference = T&; + using const_reference = typename std::add_const::type&; + using size_type = size_t; + using difference_type = ptrdiff_t; + using value_type = T; + using pointer = T*; + using const_pointer = typename std::add_const::type*; KOKKOS_INLINE_FUNCTION constexpr size_type size() const { return m_size; } KOKKOS_INLINE_FUNCTION constexpr bool empty() const { return 0 != m_size; } diff --git a/lib/kokkos/core/src/Kokkos_Atomic.hpp b/lib/kokkos/core/src/Kokkos_Atomic.hpp index 55139d07b9..89f84ae7ce 100644 --- a/lib/kokkos/core/src/Kokkos_Atomic.hpp +++ b/lib/kokkos/core/src/Kokkos_Atomic.hpp @@ -75,6 +75,9 @@ //---------------------------------------------------------------------------- #if defined(_WIN32) #define KOKKOS_ENABLE_WINDOWS_ATOMICS +#if defined(KOKKOS_ENABLE_CUDA) +#define KOKKOS_ENABLE_CUDA_ATOMICS +#endif #else #if defined(KOKKOS_ENABLE_CUDA) @@ -86,7 +89,8 @@ #define KOKKOS_ENABLE_ROCM_ATOMICS -#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU) +#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU) || \ + defined(KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE) #define KOKKOS_ENABLE_HIP_ATOMICS @@ -188,7 +192,7 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); #ifdef _WIN32 #include "impl/Kokkos_Atomic_Windows.hpp" -#else +#endif //---------------------------------------------------------------------------- // Atomic Assembly // @@ -196,6 +200,15 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); #include "impl/Kokkos_Atomic_Assembly.hpp" +//---------------------------------------------------------------------------- +// Memory fence +// +// All loads and stores from this thread will be globally consistent before +// continuing +// +// void memory_fence() {...}; +#include "impl/Kokkos_Memory_Fence.hpp" + //---------------------------------------------------------------------------- // Atomic exchange // @@ -215,11 +228,8 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); #include "impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp" -#endif //_WIN32 - #include "impl/Kokkos_Atomic_Generic.hpp" -#ifndef _WIN32 //---------------------------------------------------------------------------- // Atomic fetch and add // @@ -285,16 +295,6 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); // { T tmp = *dest ; *dest = max(*dest, val); return tmp ; } #include "impl/Kokkos_Atomic_MinMax.hpp" -#endif /*Not _WIN32*/ - -//---------------------------------------------------------------------------- -// Memory fence -// -// All loads and stores from this thread will be globally consistent before -// continuing -// -// void memory_fence() {...}; -#include "impl/Kokkos_Memory_Fence.hpp" //---------------------------------------------------------------------------- // Provide volatile_load and safe_load diff --git a/lib/kokkos/core/src/Kokkos_Complex.hpp b/lib/kokkos/core/src/Kokkos_Complex.hpp index fec5d62c3d..5303b85beb 100644 --- a/lib/kokkos/core/src/Kokkos_Complex.hpp +++ b/lib/kokkos/core/src/Kokkos_Complex.hpp @@ -47,7 +47,7 @@ #include #include #include -#include +#include namespace Kokkos { @@ -219,10 +219,7 @@ class // Scale (by the "1-norm" of y) to avoid unwarranted overflow. // If the real part is +/-Inf and the imaginary part is -/+Inf, // this won't change the result. -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP - using std::fabs; -#endif - const RealType s = fabs(y.real()) + fabs(y.imag()); + const RealType s = std::fabs(y.real()) + std::fabs(y.imag()); // If s is 0, then y is zero, so x/y == real(x)/0 + i*imag(x)/0. // In that case, the relation x/y == (x/s) / (y/s) doesn't hold, @@ -250,10 +247,7 @@ class // Scale (by the "1-norm" of y) to avoid unwarranted overflow. // If the real part is +/-Inf and the imaginary part is -/+Inf, // this won't change the result. -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP - using std::fabs; -#endif - const RealType s = fabs(y.real()) + fabs(y.imag()); + const RealType s = std::fabs(y.real()) + std::fabs(y.imag()); // If s is 0, then y is zero, so x/y == real(x)/0 + i*imag(x)/0. // In that case, the relation x/y == (x/s) / (y/s) doesn't hold, @@ -698,43 +692,27 @@ KOKKOS_INLINE_FUNCTION RealType real(const complex& x) noexcept { //! Absolute value (magnitude) of a complex number. template KOKKOS_INLINE_FUNCTION RealType abs(const complex& x) { -#if !defined(__CUDA_ARCH__) && \ - !defined(__HIP_DEVICE_COMPILE__) // FIXME_CUDA FIXME_HIP - using std::hypot; -#endif - return hypot(x.real(), x.imag()); + return std::hypot(x.real(), x.imag()); } //! Power of a complex number template KOKKOS_INLINE_FUNCTION Kokkos::complex pow(const complex& x, const RealType& e) { - RealType r = abs(x); -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP - using std::atan; - using std::cos; - using std::pow; - using std::sin; -#endif - using ::pow; - RealType phi = atan(x.imag() / x.real()); - return pow(r, e) * Kokkos::complex(cos(phi * e), sin(phi * e)); + RealType r = abs(x); + RealType phi = std::atan(x.imag() / x.real()); + return std::pow(r, e) * + Kokkos::complex(std::cos(phi * e), std::sin(phi * e)); } //! Square root of a complex number. template KOKKOS_INLINE_FUNCTION Kokkos::complex sqrt( const complex& x) { - RealType r = abs(x); -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP - using std::atan; - using std::cos; - using std::sin; - using std::sqrt; -#endif - using ::sqrt; - RealType phi = atan(x.imag() / x.real()); - return sqrt(r) * Kokkos::complex(cos(phi * 0.5), sin(phi * 0.5)); + RealType r = abs(x); + RealType phi = std::atan(x.imag() / x.real()); + return std::sqrt(r) * + Kokkos::complex(std::cos(phi * 0.5), std::sin(phi * 0.5)); } //! Conjugate of a complex number. @@ -747,14 +725,8 @@ KOKKOS_INLINE_FUNCTION complex conj( //! Exponential of a complex number. template KOKKOS_INLINE_FUNCTION complex exp(const complex& x) { -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP - using std::cos; - using std::exp; - using std::sin; -#else - using ::exp; -#endif - return exp(x.real()) * complex(cos(x.imag()), sin(x.imag())); + return std::exp(x.real()) * + complex(std::cos(x.imag()), std::sin(x.imag())); } /// This function cannot be called in a CUDA device function, @@ -787,12 +759,9 @@ KOKKOS_INLINE_FUNCTION // Scale (by the "1-norm" of y) to avoid unwarranted overflow. // If the real part is +/-Inf and the imaginary part is -/+Inf, // this won't change the result. -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP - using std::fabs; -#endif - typedef - typename std::common_type::type common_real_type; - const common_real_type s = fabs(real(y)) + fabs(imag(y)); + using common_real_type = + typename std::common_type::type; + const common_real_type s = std::fabs(real(y)) + std::fabs(imag(y)); // If s is 0, then y is zero, so x/y == real(x)/0 + i*imag(x)/0. // In that case, the relation x/y == (x/s) / (y/s) doesn't hold, @@ -838,7 +807,7 @@ std::istream& operator>>(std::istream& is, complex& x) { template struct reduction_identity > { - typedef reduction_identity t_red_ident; + using t_red_ident = reduction_identity; KOKKOS_FORCEINLINE_FUNCTION constexpr static Kokkos::complex sum() noexcept { return Kokkos::complex(t_red_ident::sum(), t_red_ident::sum()); diff --git a/lib/kokkos/core/src/Kokkos_Concepts.hpp b/lib/kokkos/core/src/Kokkos_Concepts.hpp index 13d7925c12..4989f2701c 100644 --- a/lib/kokkos/core/src/Kokkos_Concepts.hpp +++ b/lib/kokkos/core/src/Kokkos_Concepts.hpp @@ -95,11 +95,11 @@ struct WorkItemProperty { ImplWorkItemProperty<4>(); constexpr static const ImplWorkItemProperty<8> HintIrregular = ImplWorkItemProperty<8>(); - typedef ImplWorkItemProperty<0> None_t; - typedef ImplWorkItemProperty<1> HintLightWeight_t; - typedef ImplWorkItemProperty<2> HintHeavyWeight_t; - typedef ImplWorkItemProperty<4> HintRegular_t; - typedef ImplWorkItemProperty<8> HintIrregular_t; + using None_t = ImplWorkItemProperty<0>; + using HintLightWeight_t = ImplWorkItemProperty<1>; + using HintHeavyWeight_t = ImplWorkItemProperty<2>; + using HintRegular_t = ImplWorkItemProperty<4>; + using HintIrregular_t = ImplWorkItemProperty<8>; }; template @@ -219,7 +219,7 @@ class has_member_team_shmem_size { public: constexpr static bool value = - sizeof(test_for_member(0)) == sizeof(int32_t); + sizeof(test_for_member(nullptr)) == sizeof(int32_t); }; template @@ -250,9 +250,9 @@ struct Device { "Execution space is not valid"); static_assert(Kokkos::is_memory_space::value, "Memory space is not valid"); - typedef ExecutionSpace execution_space; - typedef MemorySpace memory_space; - typedef Device device_type; + using execution_space = ExecutionSpace; + using memory_space = MemorySpace; + using device_type = Device; }; namespace Impl { @@ -277,88 +277,85 @@ struct is_space { private: template struct exe : std::false_type { - typedef void space; + using space = void; }; template struct mem : std::false_type { - typedef void space; + using space = void; }; template struct dev : std::false_type { - typedef void space; + using space = void; }; template struct exe::type> : std::is_same::type { - typedef typename U::execution_space space; + using space = typename U::execution_space; }; template struct mem< U, typename std::conditional::type> : std::is_same::type { - typedef typename U::memory_space space; + using space = typename U::memory_space; }; template struct dev< U, typename std::conditional::type> : std::is_same::type { - typedef typename U::device_type space; + using space = typename U::device_type; }; - typedef typename is_space::template exe::type> - is_exe; - typedef typename is_space::template mem::type> - is_mem; - typedef typename is_space::template dev::type> - is_dev; + using is_exe = + typename is_space::template exe::type>; + using is_mem = + typename is_space::template mem::type>; + using is_dev = + typename is_space::template dev::type>; public: static constexpr bool value = is_exe::value || is_mem::value || is_dev::value; constexpr operator bool() const noexcept { return value; } - typedef typename is_exe::space execution_space; - typedef typename is_mem::space memory_space; + using execution_space = typename is_exe::space; + using memory_space = typename is_mem::space; // For backward compatibility, deprecated in favor of // Kokkos::Impl::HostMirror::host_mirror_space - typedef typename std::conditional< + using host_memory_space = typename std::conditional< std::is_same::value #if defined(KOKKOS_ENABLE_CUDA) || std::is_same::value || std::is_same::value #endif /* #if defined( KOKKOS_ENABLE_CUDA ) */ , - memory_space, Kokkos::HostSpace>::type host_memory_space; + memory_space, Kokkos::HostSpace>::type; #if defined(KOKKOS_ENABLE_CUDA) - typedef typename std::conditional< + using host_execution_space = typename std::conditional< std::is_same::value, - Kokkos::DefaultHostExecutionSpace, execution_space>::type - host_execution_space; + Kokkos::DefaultHostExecutionSpace, execution_space>::type; #else #if defined(KOKKOS_ENABLE_OPENMPTARGET) - typedef typename std::conditional< + using host_execution_space = typename std::conditional< std::is_same::value, - Kokkos::DefaultHostExecutionSpace, execution_space>::type - host_execution_space; + Kokkos::DefaultHostExecutionSpace, execution_space>::type; #else - typedef execution_space host_execution_space; + using host_execution_space = execution_space; #endif #endif - typedef typename std::conditional< + using host_mirror_space = typename std::conditional< std::is_same::value && std::is_same::value, - T, Kokkos::Device>::type - host_mirror_space; + T, Kokkos::Device>::type; }; // For backward compatibility @@ -447,13 +444,12 @@ struct SpaceAccessibility { typename AccessSpace::memory_space>::accessible, "template argument #1 is an invalid space"); - typedef Kokkos::Impl::MemorySpaceAccess< - typename AccessSpace::execution_space::memory_space, MemorySpace> - exe_access; + using exe_access = Kokkos::Impl::MemorySpaceAccess< + typename AccessSpace::execution_space::memory_space, MemorySpace>; - typedef Kokkos::Impl::MemorySpaceAccess - mem_access; + using mem_access = + Kokkos::Impl::MemorySpaceAccess; public: /**\brief Can AccessSpace::execution_space access MemorySpace ? @@ -479,12 +475,11 @@ struct SpaceAccessibility { // to be able to access MemorySpace? // If same memory space or not accessible use the AccessSpace // else construct a device with execution space and memory space. - typedef typename std::conditional< + using space = typename std::conditional< std::is_same::value || !exe_access::accessible, AccessSpace, - Kokkos::Device>::type - space; + Kokkos::Device>::type; }; } // namespace Kokkos diff --git a/lib/kokkos/core/src/Kokkos_CopyViews.hpp b/lib/kokkos/core/src/Kokkos_CopyViews.hpp index 810b712733..78538dc7df 100644 --- a/lib/kokkos/core/src/Kokkos_CopyViews.hpp +++ b/lib/kokkos/core/src/Kokkos_CopyViews.hpp @@ -45,14 +45,12 @@ #ifndef KOKKOS_COPYVIEWS_HPP_ #define KOKKOS_COPYVIEWS_HPP_ #include +#include +#include //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- -#ifndef KOKKOS_IMPL_COMPILING_LIBRARY -#define KOKKOS_IMPL_COMPILING_LIBRARY false -#endif - namespace Kokkos { namespace Impl { @@ -73,116 +71,12 @@ struct ViewFillLayoutSelector { } // namespace Impl } // namespace Kokkos -#include - namespace Kokkos { namespace Impl { -template -struct ViewFill { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); -}; - -template -struct ViewFill { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&) const; -}; - -template -struct ViewFill { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&) const; -}; - -template -struct ViewFill { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&) const; -}; - -template -struct ViewFill { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&, const iType&) const; -}; - -template -struct ViewFill { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&, const iType&, - const iType&) const; -}; - -template -struct ViewFill { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&, const iType&, - const iType&, const iType&) const; -}; - -template -struct ViewFill { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&, const iType&, - const iType&, const iType&, const iType&) const; -}; - -template -struct ViewFill { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&, const iType&, - const iType&, const iType&, const iType&, const iType&) const; -}; - template -struct ViewFill { - typedef typename ViewType::non_const_value_type ST; +struct ViewFill { + using ST = typename ViewType::non_const_value_type; ViewFill(const ViewType& a, const ST& val, const ExecSpace& space) { Kokkos::Impl::DeepCopy(space, a.data(), &val, sizeof(ST)); @@ -190,11 +84,10 @@ struct ViewFill -struct ViewFill { +struct ViewFill { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::RangePolicy> policy_type; + using policy_type = Kokkos::RangePolicy>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -208,17 +101,14 @@ struct ViewFill -struct ViewFill { +struct ViewFill { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<2, ViewFillLayoutSelector::iterate, - ViewFillLayoutSelector::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = Kokkos::Rank<2, ViewFillLayoutSelector::iterate, + ViewFillLayoutSelector::iterate>; + using policy_type = + Kokkos::MDRangePolicy>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -233,17 +123,14 @@ struct ViewFill -struct ViewFill { +struct ViewFill { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<3, ViewFillLayoutSelector::iterate, - ViewFillLayoutSelector::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = Kokkos::Rank<3, ViewFillLayoutSelector::iterate, + ViewFillLayoutSelector::iterate>; + using policy_type = + Kokkos::MDRangePolicy>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -261,17 +148,14 @@ struct ViewFill -struct ViewFill { +struct ViewFill { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<4, ViewFillLayoutSelector::iterate, - ViewFillLayoutSelector::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = Kokkos::Rank<4, ViewFillLayoutSelector::iterate, + ViewFillLayoutSelector::iterate>; + using policy_type = + Kokkos::MDRangePolicy>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -291,17 +175,14 @@ struct ViewFill -struct ViewFill { +struct ViewFill { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<5, ViewFillLayoutSelector::iterate, - ViewFillLayoutSelector::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = Kokkos::Rank<5, ViewFillLayoutSelector::iterate, + ViewFillLayoutSelector::iterate>; + using policy_type = + Kokkos::MDRangePolicy>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -321,17 +202,14 @@ struct ViewFill -struct ViewFill { +struct ViewFill { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<6, ViewFillLayoutSelector::iterate, - ViewFillLayoutSelector::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = Kokkos::Rank<6, ViewFillLayoutSelector::iterate, + ViewFillLayoutSelector::iterate>; + using policy_type = + Kokkos::MDRangePolicy>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -351,17 +229,14 @@ struct ViewFill -struct ViewFill { +struct ViewFill { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<6, ViewFillLayoutSelector::iterate, - ViewFillLayoutSelector::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = Kokkos::Rank<6, ViewFillLayoutSelector::iterate, + ViewFillLayoutSelector::iterate>; + using policy_type = + Kokkos::MDRangePolicy>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -382,17 +257,14 @@ struct ViewFill -struct ViewFill { +struct ViewFill { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<6, ViewFillLayoutSelector::iterate, - ViewFillLayoutSelector::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = Kokkos::Rank<6, ViewFillLayoutSelector::iterate, + ViewFillLayoutSelector::iterate>; + using policy_type = + Kokkos::MDRangePolicy>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -413,101 +285,13 @@ struct ViewFill -struct ViewCopy { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0) const; -}; - -template -struct ViewCopy { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1) const; -}; - -template -struct ViewCopy { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2) const; -}; - -template -struct ViewCopy { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2, - const iType& i3) const; -}; - -template -struct ViewCopy { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2, - const iType& i3, const iType& i4) const; -}; - -template -struct ViewCopy { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2, - const iType& i3, const iType& i4, const iType& i5) const; -}; - -template -struct ViewCopy { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2, - const iType& i3, const iType& i4, const iType& i5, - const iType& i6) const; -}; - -template -struct ViewCopy { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2, - const iType& i3, const iType& i4, const iType& i5, - const iType& i6, const iType& i7) const; -}; - template -struct ViewCopy { +struct ViewCopy { ViewTypeA a; ViewTypeB b; - typedef Kokkos::RangePolicy> policy_type; + using policy_type = Kokkos::RangePolicy>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -522,19 +306,17 @@ struct ViewCopy -struct ViewCopy { +struct ViewCopy { ViewTypeA a; ViewTypeB b; static const Kokkos::Iterate outer_iteration_pattern = Kokkos::layout_iterate_type_selector::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector::inner_iteration_pattern; - typedef Kokkos::Rank<2, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = + Kokkos::Rank<2, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -552,8 +334,7 @@ struct ViewCopy -struct ViewCopy { +struct ViewCopy { ViewTypeA a; ViewTypeB b; @@ -561,11 +342,10 @@ struct ViewCopy::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector::inner_iteration_pattern; - typedef Kokkos::Rank<3, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = + Kokkos::Rank<3, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -584,8 +364,7 @@ struct ViewCopy -struct ViewCopy { +struct ViewCopy { ViewTypeA a; ViewTypeB b; @@ -593,11 +372,10 @@ struct ViewCopy::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector::inner_iteration_pattern; - typedef Kokkos::Rank<4, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = + Kokkos::Rank<4, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -618,8 +396,7 @@ struct ViewCopy -struct ViewCopy { +struct ViewCopy { ViewTypeA a; ViewTypeB b; @@ -627,11 +404,10 @@ struct ViewCopy::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector::inner_iteration_pattern; - typedef Kokkos::Rank<5, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = + Kokkos::Rank<5, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -652,8 +428,7 @@ struct ViewCopy -struct ViewCopy { +struct ViewCopy { ViewTypeA a; ViewTypeB b; @@ -661,11 +436,10 @@ struct ViewCopy::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector::inner_iteration_pattern; - typedef Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = + Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -686,8 +460,7 @@ struct ViewCopy -struct ViewCopy { +struct ViewCopy { ViewTypeA a; ViewTypeB b; @@ -695,11 +468,10 @@ struct ViewCopy::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector::inner_iteration_pattern; - typedef Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = + Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -721,8 +493,7 @@ struct ViewCopy -struct ViewCopy { +struct ViewCopy { ViewTypeA a; ViewTypeB b; @@ -730,11 +501,10 @@ struct ViewCopy::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector::inner_iteration_pattern; - typedef Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy> - policy_type; + using iterate_type = + Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -758,16 +528,14 @@ struct ViewCopy - namespace Kokkos { namespace Impl { template void view_copy(const ExecutionSpace& space, const DstType& dst, const SrcType& src) { - typedef typename DstType::memory_space dst_memory_space; - typedef typename SrcType::memory_space src_memory_space; + using dst_memory_space = typename DstType::memory_space; + using src_memory_space = typename SrcType::memory_space; enum { ExecCanAccessSrc = @@ -844,10 +612,10 @@ void view_copy(const ExecutionSpace& space, const DstType& dst, template void view_copy(const DstType& dst, const SrcType& src) { - typedef typename DstType::execution_space dst_execution_space; - typedef typename SrcType::execution_space src_execution_space; - typedef typename DstType::memory_space dst_memory_space; - typedef typename SrcType::memory_space src_memory_space; + using dst_execution_space = typename DstType::execution_space; + using src_execution_space = typename SrcType::execution_space; + using dst_memory_space = typename DstType::memory_space; + using src_memory_space = typename SrcType::memory_space; enum { DstExecCanAccessSrc = @@ -962,8 +730,8 @@ struct CommonSubview; template struct CommonSubview { - typedef typename Kokkos::Subview dst_subview_type; - typedef typename Kokkos::Subview src_subview_type; + using dst_subview_type = typename Kokkos::Subview; + using src_subview_type = typename Kokkos::Subview; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -973,8 +741,8 @@ struct CommonSubview { template struct CommonSubview { - typedef typename Kokkos::Subview dst_subview_type; - typedef typename Kokkos::Subview src_subview_type; + using dst_subview_type = typename Kokkos::Subview; + using src_subview_type = typename Kokkos::Subview; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -985,8 +753,8 @@ struct CommonSubview { template struct CommonSubview { - typedef typename Kokkos::Subview dst_subview_type; - typedef typename Kokkos::Subview src_subview_type; + using dst_subview_type = typename Kokkos::Subview; + using src_subview_type = typename Kokkos::Subview; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -997,10 +765,10 @@ struct CommonSubview { template struct CommonSubview { - typedef typename Kokkos::Subview - dst_subview_type; - typedef typename Kokkos::Subview - src_subview_type; + using dst_subview_type = + typename Kokkos::Subview; + using src_subview_type = + typename Kokkos::Subview; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -1014,10 +782,10 @@ template struct CommonSubview { - typedef typename Kokkos::Subview - dst_subview_type; - typedef typename Kokkos::Subview - src_subview_type; + using dst_subview_type = + typename Kokkos::Subview; + using src_subview_type = + typename Kokkos::Subview; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -1031,10 +799,10 @@ template struct CommonSubview { - typedef typename Kokkos::Subview - dst_subview_type; - typedef typename Kokkos::Subview - src_subview_type; + using dst_subview_type = + typename Kokkos::Subview; + using src_subview_type = + typename Kokkos::Subview; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -1048,12 +816,10 @@ template struct CommonSubview { - typedef typename Kokkos::Subview - dst_subview_type; - typedef typename Kokkos::Subview - src_subview_type; + using dst_subview_type = typename Kokkos::Subview; + using src_subview_type = typename Kokkos::Subview; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -1067,12 +833,12 @@ template struct CommonSubview { - typedef typename Kokkos::Subview - dst_subview_type; - typedef typename Kokkos::Subview - src_subview_type; + using dst_subview_type = + typename Kokkos::Subview; + using src_subview_type = + typename Kokkos::Subview; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -1090,14 +856,14 @@ struct ViewRemap; template struct ViewRemap { - typedef Kokkos::pair p_type; + using p_type = Kokkos::pair; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { view_copy(dst, src); } else { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); - typedef CommonSubview sv_adapter_type; + using sv_adapter_type = CommonSubview; sv_adapter_type common_subview(dst, src, ext0); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1106,7 +872,7 @@ struct ViewRemap { template struct ViewRemap { - typedef Kokkos::pair p_type; + using p_type = Kokkos::pair; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { @@ -1114,23 +880,23 @@ struct ViewRemap { view_copy(dst, src); } else { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1); view_copy(common_subview.dst_sub, common_subview.src_sub); } } else { if (dst.extent(1) == src.extent(1)) { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); } else { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); p_type ext1(0, std::min(dst.extent(1), src.extent(1))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1140,24 +906,24 @@ struct ViewRemap { template struct ViewRemap { - typedef Kokkos::pair p_type; + using p_type = Kokkos::pair; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { if (dst.extent(2) == src.extent(2)) { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); } else { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1165,17 +931,16 @@ struct ViewRemap { if (dst.extent(2) == src.extent(2)) { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); p_type ext1(0, std::min(dst.extent(1), src.extent(1))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); } else { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1185,16 +950,16 @@ struct ViewRemap { template struct ViewRemap { - typedef Kokkos::pair p_type; + using p_type = Kokkos::pair; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { if (dst.extent(3) == src.extent(3)) { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1202,9 +967,9 @@ struct ViewRemap { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1213,9 +978,9 @@ struct ViewRemap { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); } else { @@ -1223,9 +988,8 @@ struct ViewRemap { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1235,7 +999,7 @@ struct ViewRemap { template struct ViewRemap { - typedef Kokkos::pair p_type; + using p_type = Kokkos::pair; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { @@ -1243,9 +1007,9 @@ struct ViewRemap { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1254,9 +1018,9 @@ struct ViewRemap { p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1267,9 +1031,9 @@ struct ViewRemap { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1279,9 +1043,8 @@ struct ViewRemap { p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1290,7 +1053,7 @@ struct ViewRemap { }; template struct ViewRemap { - typedef Kokkos::pair p_type; + using p_type = Kokkos::pair; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { @@ -1299,9 +1062,9 @@ struct ViewRemap { p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1311,9 +1074,9 @@ struct ViewRemap { p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, ext5); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1326,9 +1089,9 @@ struct ViewRemap { p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1340,9 +1103,9 @@ struct ViewRemap { p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, ext5); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1353,7 +1116,7 @@ struct ViewRemap { template struct ViewRemap { - typedef Kokkos::pair p_type; + using p_type = Kokkos::pair; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { @@ -1363,10 +1126,9 @@ struct ViewRemap { p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, ext5, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1377,9 +1139,9 @@ struct ViewRemap { p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, ext5, ext6); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1392,9 +1154,9 @@ struct ViewRemap { p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, ext5, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1406,9 +1168,9 @@ struct ViewRemap { p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, ext5, ext6); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1419,7 +1181,7 @@ struct ViewRemap { template struct ViewRemap { - typedef Kokkos::pair p_type; + using p_type = Kokkos::pair; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { @@ -1430,10 +1192,10 @@ struct ViewRemap { p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, ext5, ext6, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1445,9 +1207,9 @@ struct ViewRemap { p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); p_type ext7(0, std::min(dst.extent(7), src.extent(7))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, ext5, ext6, ext7); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1461,10 +1223,9 @@ struct ViewRemap { p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, ext5, ext6, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1477,9 +1238,9 @@ struct ViewRemap { p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); p_type ext7(0, std::min(dst.extent(7), src.extent(7))); - typedef CommonSubview - sv_adapter_type; + using sv_adapter_type = + CommonSubview; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, ext5, ext6, ext7); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1498,26 +1259,22 @@ inline void deep_copy( typename std::enable_if::specialize, void>::value>::type* = nullptr) { - typedef View ViewType; + using ViewType = View; using exec_space_type = typename ViewType::execution_space; -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(ViewType::memory_space::name()), + Kokkos::Profiling::make_space_handle(ViewType::memory_space::name()), dst.label(), dst.data(), - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), "Scalar", - &value, dst.span() * sizeof(typename ViewType::value_type)); + Kokkos::Profiling::make_space_handle(Kokkos::HostSpace::name()), + "Scalar", &value, dst.span() * sizeof(typename ViewType::value_type)); } -#endif if (dst.data() == nullptr) { Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -1528,14 +1285,13 @@ inline void deep_copy( // If contiguous we can simply do a 1D flat loop if (dst.span_is_contiguous()) { - typedef Kokkos::View< + using ViewTypeFlat = Kokkos::View< typename ViewType::value_type*, Kokkos::LayoutRight, Kokkos::Device::type>, - Kokkos::MemoryTraits<0>> - ViewTypeFlat; + Kokkos::MemoryTraits<0>>; ViewTypeFlat dst_flat(dst.data(), dst.size()); if (dst.span() < static_cast(std::numeric_limits::max())) { @@ -1547,11 +1303,9 @@ inline void deep_copy( ViewTypeFlat::Rank, int64_t>(dst_flat, value, exec_space_type()); Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -1581,9 +1335,9 @@ inline void deep_copy( // Lets call the right ViewFill functor based on integer space needed and // iteration type - typedef typename std::conditional< + using ViewTypeUniform = typename std::conditional< ViewType::Rank == 0, typename ViewType::uniform_runtime_type, - typename ViewType::uniform_runtime_nomemspace_type>::type ViewTypeUniform; + typename ViewType::uniform_runtime_nomemspace_type>::type; if (dst.span() > static_cast(std::numeric_limits::max())) { if (iterate == Kokkos::Iterate::Right) Kokkos::Impl::ViewFill::specialize, void>::value>::type* = nullptr) { - typedef ViewTraits src_traits; - typedef typename src_traits::memory_space src_memory_space; + using src_traits = ViewTraits; + using src_memory_space = typename src_traits::memory_space; static_assert(src_traits::rank == 0, "ERROR: Non-rank-zero view in deep_copy( value , View )"); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), "Scalar", - &dst, Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(Kokkos::HostSpace::name()), + "Scalar", &dst, + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), src.span() * sizeof(typename src_traits::value_type)); } -#endif if (src.data() == nullptr) { Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } Kokkos::Impl::DeepCopy(&dst, src.data(), sizeof(ST)); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif } //---------------------------------------------------------------------------- @@ -1666,34 +1413,31 @@ inline void deep_copy( (unsigned(ViewTraits::rank) == unsigned(0) && unsigned(ViewTraits::rank) == unsigned(0)))>::type* = nullptr) { - typedef View dst_type; - typedef View src_type; + using dst_type = View; + using src_type = View; - typedef typename dst_type::value_type value_type; - typedef typename dst_type::memory_space dst_memory_space; - typedef typename src_type::memory_space src_memory_space; + using value_type = typename dst_type::value_type; + using dst_memory_space = typename dst_type::memory_space; + using src_memory_space = typename src_type::memory_space; static_assert(std::is_same::value, "deep_copy requires matching non-const destination type"); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), src.span() * sizeof(typename dst_type::value_type)); } -#endif if (dst.data() == nullptr && src.data() == nullptr) { Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -1703,11 +1447,9 @@ inline void deep_copy( dst.data(), src.data(), sizeof(value_type)); Kokkos::fence(); } -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif } //---------------------------------------------------------------------------- @@ -1722,14 +1464,14 @@ inline void deep_copy( std::is_same::specialize, void>::value && (unsigned(ViewTraits::rank) != 0 || unsigned(ViewTraits::rank) != 0))>::type* = nullptr) { - typedef View dst_type; - typedef View src_type; - typedef typename dst_type::execution_space dst_execution_space; - typedef typename src_type::execution_space src_execution_space; - typedef typename dst_type::memory_space dst_memory_space; - typedef typename src_type::memory_space src_memory_space; - typedef typename dst_type::value_type dst_value_type; - typedef typename src_type::value_type src_value_type; + using dst_type = View; + using src_type = View; + using dst_execution_space = typename dst_type::execution_space; + using src_execution_space = typename src_type::execution_space; + using dst_memory_space = typename dst_type::memory_space; + using src_memory_space = typename src_type::memory_space; + using dst_value_type = typename dst_type::value_type; + using src_value_type = typename src_type::value_type; static_assert(std::is_same::value, @@ -1738,20 +1480,16 @@ inline void deep_copy( static_assert((unsigned(dst_type::rank) == unsigned(src_type::rank)), "deep_copy requires Views of equal rank"); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), src.span() * sizeof(typename dst_type::value_type)); } -#endif if (dst.data() == nullptr || src.data() == nullptr) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // do nothing -#else // throw if dimension mismatch if ((src.extent(0) != dst.extent(0)) || (src.extent(1) != dst.extent(1)) || (src.extent(2) != dst.extent(2)) || (src.extent(3) != dst.extent(3)) || @@ -1779,13 +1517,10 @@ inline void deep_copy( Kokkos::Impl::throw_runtime_exception(message); } -#endif Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -1810,11 +1545,9 @@ inline void deep_copy( ((std::ptrdiff_t)dst_end == (std::ptrdiff_t)src_end) && (dst.span_is_contiguous() && src.span_is_contiguous())) { Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -1842,29 +1575,6 @@ inline void deep_copy( (src.extent(2) != dst.extent(2)) || (src.extent(3) != dst.extent(3)) || (src.extent(4) != dst.extent(4)) || (src.extent(5) != dst.extent(5)) || (src.extent(6) != dst.extent(6)) || (src.extent(7) != dst.extent(7))) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Kokkos::fence(); - if (DstExecCanAccessSrc) { - // Copying data between views in accessible memory spaces and either - // non-contiguous or incompatible shape. - Kokkos::Impl::ViewRemap(dst, src); - } else if (SrcExecCanAccessDst) { - // Copying data between views in accessible memory spaces and either - // non-contiguous or incompatible shape. - Kokkos::Impl::ViewRemap(dst, - src); - } else { - Kokkos::Impl::throw_runtime_exception( - "deep_copy given views that would require a temporary allocation"); - } - Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endDeepCopy(); - } -#endif - return; -#else std::string message( "Deprecation Error: Kokkos::deep_copy extents of views don't match: "); message += dst.label(); @@ -1885,7 +1595,6 @@ inline void deep_copy( message += ") "; Kokkos::Impl::throw_runtime_exception(message); -#endif } // If same type, equal layout, equal dimensions, equal span, and contiguous @@ -1910,18 +1619,16 @@ inline void deep_copy( if ((void*)dst.data() != (void*)src.data()) { Kokkos::Impl::DeepCopy( dst.data(), src.data(), nbytes); + Kokkos::fence(); } - Kokkos::fence(); } else { Kokkos::fence(); Impl::view_copy(dst, src); Kokkos::fence(); } -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif } //---------------------------------------------------------------------------- @@ -2712,19 +2419,18 @@ inline void deep_copy( ExecSpace, typename ViewTraits::memory_space>::accessible>::type* = nullptr) { - typedef ViewTraits dst_traits; + using dst_traits = ViewTraits; static_assert(std::is_same::value, "deep_copy requires non-const type"); -#if defined(KOKKOS_ENABLE_PROFILING) - typedef typename dst_traits::memory_space dst_memory_space; + using dst_memory_space = typename dst_traits::memory_space; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(Kokkos::HostSpace::name()), "(none)", &value, dst.span() * sizeof(typename dst_traits::value_type)); } -#endif if (dst.data() == nullptr) { space.fence(); } else { @@ -2735,11 +2441,9 @@ inline void deep_copy( Kokkos::Impl::ViewFill(dst, value, space); } -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif } /** \brief Deep copy a value from Host memory into a view. ExecSpace can not @@ -2755,19 +2459,18 @@ inline void deep_copy( ExecSpace, typename ViewTraits::memory_space>::accessible>::type* = nullptr) { - typedef ViewTraits dst_traits; + using dst_traits = ViewTraits; static_assert(std::is_same::value, "deep_copy requires non-const type"); -#if defined(KOKKOS_ENABLE_PROFILING) - typedef typename dst_traits::memory_space dst_memory_space; + using dst_memory_space = typename dst_traits::memory_space; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(Kokkos::HostSpace::name()), "(none)", &value, dst.span() * sizeof(typename dst_traits::value_type)); } -#endif if (dst.data() == nullptr) { space.fence(); } else { @@ -2781,11 +2484,9 @@ inline void deep_copy( fill_exec_space>(dst, value, fill_exec_space()); fill_exec_space().fence(); } -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif } /** \brief Deep copy into a value in Host memory from a view. */ @@ -2798,36 +2499,31 @@ inline void deep_copy( Kokkos::Impl::is_execution_space::value && std::is_same::specialize, void>::value>::type* = 0) { - typedef ViewTraits src_traits; - typedef typename src_traits::memory_space src_memory_space; + using src_traits = ViewTraits; + using src_memory_space = typename src_traits::memory_space; static_assert(src_traits::rank == 0, "ERROR: Non-rank-zero view in deep_copy( value , View )"); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), "(none)", - &dst, Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(Kokkos::HostSpace::name()), + "(none)", &dst, + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), sizeof(ST)); } -#endif if (src.data() == nullptr) { exec_space.fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } Kokkos::Impl::DeepCopy( exec_space, &dst, src.data(), sizeof(ST)); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif } //---------------------------------------------------------------------------- @@ -2841,32 +2537,30 @@ inline void deep_copy( std::is_same::specialize, void>::value && std::is_same::specialize, void>::value && (unsigned(ViewTraits::rank) == unsigned(0) && - unsigned(ViewTraits::rank) == unsigned(0)))>::type* = 0) { - typedef ViewTraits src_traits; - typedef ViewTraits dst_traits; + unsigned(ViewTraits::rank) == unsigned(0)))>::type* = + nullptr) { + using src_traits = ViewTraits; + using dst_traits = ViewTraits; - typedef typename src_traits::memory_space src_memory_space; - typedef typename dst_traits::memory_space dst_memory_space; + using src_memory_space = typename src_traits::memory_space; + using dst_memory_space = typename dst_traits::memory_space; static_assert(std::is_same::value, "deep_copy requires matching non-const destination type"); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), sizeof(DT)); } -#endif if (dst.data() == nullptr && src.data() == nullptr) { exec_space.fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -2875,11 +2569,9 @@ inline void deep_copy( exec_space, dst.data(), src.data(), sizeof(typename dst_traits::value_type)); } -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif } //---------------------------------------------------------------------------- @@ -2896,8 +2588,8 @@ inline void deep_copy( std::is_same::specialize, void>::value && (unsigned(ViewTraits::rank) != 0 || unsigned(ViewTraits::rank) != 0))>::type* = nullptr) { - typedef View dst_type; - typedef View src_type; + using dst_type = View; + using src_type = View; static_assert(std::is_same::value, @@ -2906,21 +2598,20 @@ inline void deep_copy( static_assert((unsigned(dst_type::rank) == unsigned(src_type::rank)), "deep_copy requires Views of equal rank"); - typedef typename dst_type::execution_space dst_execution_space; - typedef typename src_type::execution_space src_execution_space; - typedef typename dst_type::memory_space dst_memory_space; - typedef typename src_type::memory_space src_memory_space; - typedef typename dst_type::value_type dst_value_type; - typedef typename src_type::value_type src_value_type; + using dst_execution_space = typename dst_type::execution_space; + using src_execution_space = typename src_type::execution_space; + using dst_memory_space = typename dst_type::memory_space; + using src_memory_space = typename src_type::memory_space; + using dst_value_type = typename dst_type::value_type; + using src_value_type = typename src_type::value_type; -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), dst.span() * sizeof(dst_value_type)); } -#endif dst_value_type* dst_start = dst.data(); dst_value_type* dst_end = dst.data() + dst.span(); @@ -2931,9 +2622,6 @@ inline void deep_copy( if ((dst_start == nullptr || src_start == nullptr) || ((std::ptrdiff_t(dst_start) == std::ptrdiff_t(src_start)) && (std::ptrdiff_t(dst_end) == std::ptrdiff_t(src_end)))) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // do nothing -#else // throw if dimension mismatch if ((src.extent(0) != dst.extent(0)) || (src.extent(1) != dst.extent(1)) || (src.extent(2) != dst.extent(2)) || (src.extent(3) != dst.extent(3)) || @@ -2961,12 +2649,9 @@ inline void deep_copy( Kokkos::Impl::throw_runtime_exception(message); } -#endif -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -3014,35 +2699,6 @@ inline void deep_copy( (src.extent(2) != dst.extent(2)) || (src.extent(3) != dst.extent(3)) || (src.extent(4) != dst.extent(4)) || (src.extent(5) != dst.extent(5)) || (src.extent(6) != dst.extent(6)) || (src.extent(7) != dst.extent(7))) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (ExecCanAccessSrcDst) { - Kokkos::Impl::ViewRemap(dst, src); - exec_space.fence(); - } else if (DstExecCanAccessSrc) { - // Copying data between views in accessible memory spaces and either - // non-contiguous or incompatible shape. - exec_space.fence(); - Kokkos::Impl::ViewRemap(dst, - src); - dst_execution_space().fence(); - } else if (SrcExecCanAccessDst) { - // Copying data between views in accessible memory spaces and either - // non-contiguous or incompatible shape. - exec_space.fence(); - Kokkos::Impl::ViewRemap(dst, - src); - src_execution_space().fence(); - } else { - Kokkos::Impl::throw_runtime_exception( - "deep_copy given views that would require a temporary allocation"); - } -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endDeepCopy(); - } -#endif - return; -#else std::string message( "Deprecation Error: Kokkos::deep_copy extents of views don't match: "); message += dst.label(); @@ -3063,7 +2719,6 @@ inline void deep_copy( message += ") "; Kokkos::Impl::throw_runtime_exception(message); -#endif } // If same type, equal layout, equal dimensions, equal span, and contiguous @@ -3105,11 +2760,9 @@ inline void deep_copy( "deep_copy given views that would require a temporary allocation"); } } -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); } -#endif } } /* namespace Kokkos */ @@ -3135,7 +2788,7 @@ resize(Kokkos::View& v, const size_t n0 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; static_assert(Kokkos::ViewTraits::is_managed, "Can only resize managed views"); @@ -3232,7 +2885,7 @@ resize(const I& arg_prop, Kokkos::View& v, const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; static_assert(Kokkos::ViewTraits::is_managed, "Can only resize managed views"); @@ -3318,7 +2971,7 @@ resize(const I& arg_prop, Kokkos::View& v, template inline void resize(Kokkos::View& v, const typename Kokkos::View::array_layout& layout) { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; static_assert(Kokkos::ViewTraits::is_managed, "Can only resize managed views"); @@ -3346,7 +2999,7 @@ realloc(Kokkos::View& v, const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; static_assert(Kokkos::ViewTraits::is_managed, "Can only realloc managed views"); @@ -3362,7 +3015,7 @@ template inline void realloc( Kokkos::View& v, const typename Kokkos::View::array_layout& layout) { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; static_assert(Kokkos::ViewTraits::is_managed, "Can only realloc managed views"); @@ -3384,45 +3037,45 @@ namespace Impl { template struct MirrorViewType { // The incoming view_type - typedef typename Kokkos::View src_view_type; + using src_view_type = typename Kokkos::View; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::View dest_view_type; + using dest_view_type = Kokkos::View; // If it is the same memory_space return the existsing view_type // This will also keep the unmanaged trait if necessary - typedef typename std::conditional::type view_type; + using view_type = typename std::conditional::type; }; template struct MirrorType { // The incoming view_type - typedef typename Kokkos::View src_view_type; + using src_view_type = typename Kokkos::View; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::View view_type; + using view_type = Kokkos::View; }; } // namespace Impl @@ -3434,33 +3087,19 @@ inline typename Kokkos::View::HostMirror create_mirror( std::is_same::specialize, void>::value && !std::is_same::array_layout, Kokkos::LayoutStride>::value>::type* = nullptr) { - typedef View src_type; - typedef typename src_type::HostMirror dst_type; - - return dst_type(std::string(src.label()).append("_mirror") -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - , - src.extent(0), src.extent(1), src.extent(2), src.extent(3), - src.extent(4), src.extent(5), src.extent(6), src.extent(7)); -#else - , - src.rank_dynamic > 0 ? src.extent(0) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 1 ? src.extent(1) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 2 ? src.extent(2) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 3 ? src.extent(3) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 4 ? src.extent(4) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 5 ? src.extent(5) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 6 ? src.extent(6) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 7 ? src.extent(7) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG); -#endif + using src_type = View; + using dst_type = typename src_type::HostMirror; + + return dst_type( + std::string(src.label()).append("_mirror"), + src.rank_dynamic > 0 ? src.extent(0) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 1 ? src.extent(1) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 2 ? src.extent(2) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 3 ? src.extent(3) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 4 ? src.extent(4) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 5 ? src.extent(5) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 6 ? src.extent(6) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 7 ? src.extent(7) : KOKKOS_IMPL_CTOR_DEFAULT_ARG); } template @@ -3470,8 +3109,8 @@ inline typename Kokkos::View::HostMirror create_mirror( std::is_same::specialize, void>::value && std::is_same::array_layout, Kokkos::LayoutStride>::value>::type* = nullptr) { - typedef View src_type; - typedef typename src_type::HostMirror dst_type; + using src_type = View; + using dst_type = typename src_type::HostMirror; Kokkos::LayoutStride layout; @@ -3529,7 +3168,7 @@ inline typename Kokkos::View::HostMirror create_mirror_view( typename Kokkos::View::HostMirror::memory_space>::value && std::is_same::data_type, typename Kokkos::View::HostMirror::data_type>:: - value)>::type* = 0) { + value)>::type* = nullptr) { return Kokkos::create_mirror(src); } @@ -3548,7 +3187,8 @@ template typename Impl::MirrorViewType::view_type create_mirror_view( const Space&, const Kokkos::View& src, typename std::enable_if< - !Impl::MirrorViewType::is_same_memspace>::type* = 0) { + !Impl::MirrorViewType::is_same_memspace>::type* = + nullptr) { return typename Impl::MirrorViewType::view_type(src.label(), src.layout()); } @@ -3576,7 +3216,8 @@ create_mirror_view_and_copy( const Space&, const Kokkos::View& src, std::string const& name = "", typename std::enable_if< - !Impl::MirrorViewType::is_same_memspace>::type* = 0) { + !Impl::MirrorViewType::is_same_memspace>::type* = + nullptr) { using Mirror = typename Impl::MirrorViewType::view_type; std::string label = name.empty() ? src.label() : name; auto mirror = typename Mirror::non_const_type{ @@ -3604,7 +3245,8 @@ typename Impl::MirrorViewType::view_type create_mirror_view( const Space&, const Kokkos::View& src, Kokkos::Impl::WithoutInitializing_t, typename std::enable_if< - !Impl::MirrorViewType::is_same_memspace>::type* = 0) { + !Impl::MirrorViewType::is_same_memspace>::type* = + nullptr) { using Mirror = typename Impl::MirrorViewType::view_type; return Mirror(Kokkos::ViewAllocateWithoutInitializing(src.label()), src.layout()); diff --git a/lib/kokkos/core/src/Kokkos_Core.hpp b/lib/kokkos/core/src/Kokkos_Core.hpp index 8392f0f3e5..a1669addd6 100644 --- a/lib/kokkos/core/src/Kokkos_Core.hpp +++ b/lib/kokkos/core/src/Kokkos_Core.hpp @@ -181,28 +181,28 @@ namespace Kokkos { template inline void* kokkos_malloc(const std::string& arg_alloc_label, const size_t arg_alloc_size) { - typedef typename Space::memory_space MemorySpace; + using MemorySpace = typename Space::memory_space; return Impl::SharedAllocationRecord::allocate_tracked( MemorySpace(), arg_alloc_label, arg_alloc_size); } template inline void* kokkos_malloc(const size_t arg_alloc_size) { - typedef typename Space::memory_space MemorySpace; + using MemorySpace = typename Space::memory_space; return Impl::SharedAllocationRecord::allocate_tracked( MemorySpace(), "no-label", arg_alloc_size); } template inline void kokkos_free(void* arg_alloc) { - typedef typename Space::memory_space MemorySpace; + using MemorySpace = typename Space::memory_space; return Impl::SharedAllocationRecord::deallocate_tracked( arg_alloc); } template inline void* kokkos_realloc(void* arg_alloc, const size_t arg_alloc_size) { - typedef typename Space::memory_space MemorySpace; + using MemorySpace = typename Space::memory_space; return Impl::SharedAllocationRecord::reallocate_tracked( arg_alloc, arg_alloc_size); } @@ -255,6 +255,14 @@ class ScopeGuard { #include #include +// Including this in Kokkos_Parallel_Reduce.hpp led to a circular dependency +// because Kokkos::Sum is used in Kokkos_Combined_Reducer.hpp and the default. +// The real answer is to finally break up Kokkos_Parallel_Reduce.hpp into +// smaller parts... +#include +// Yet another workaround to deal with circular dependency issues because the +// implementation of the RAII wrapper is using Kokkos::single. +#include //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- diff --git a/lib/kokkos/core/src/Kokkos_Core_fwd.hpp b/lib/kokkos/core/src/Kokkos_Core_fwd.hpp index 4828a95775..7667dde4e6 100644 --- a/lib/kokkos/core/src/Kokkos_Core_fwd.hpp +++ b/lib/kokkos/core/src/Kokkos_Core_fwd.hpp @@ -52,7 +52,6 @@ #include #include -#include #include //---------------------------------------------------------------------------- @@ -149,45 +148,67 @@ struct Device; /// Kokkos::Cuda, Kokkos::Experimental::OpenMPTarget, Kokkos::OpenMP, /// Kokkos::Threads, Kokkos::Serial +#if defined(__clang_analyzer__) +#define KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION \ + [[clang::annotate("DefaultExecutionSpace")]] +#define KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION \ + [[clang::annotate("DefaultHostExecutionSpace")]] +#else +#define KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION +#define KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION +#endif + namespace Kokkos { #if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA) -typedef Cuda DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = Cuda; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMPTARGET) -typedef Experimental::OpenMPTarget DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = + Experimental::OpenMPTarget; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP) -typedef Experimental::HIP DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = + Experimental::HIP; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_ROCM) -typedef Experimental::ROCm DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = + Experimental::ROCm; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) -typedef OpenMP DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = OpenMP; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) -typedef Threads DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = Threads; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) -typedef Kokkos::Experimental::HPX DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = + Kokkos::Experimental::HPX; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL) -typedef Serial DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = Serial; #else #error \ "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::Cuda, Kokkos::Experimental::HIP, Kokkos::Experimental::OpenMPTarget, Kokkos::OpenMP, Kokkos::Threads, Kokkos::Experimental::HPX, or Kokkos::Serial." #endif #if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) -typedef OpenMP DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + OpenMP; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) -typedef Threads DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Threads; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) -typedef Kokkos::Experimental::HPX DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Kokkos::Experimental::HPX; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL) -typedef Serial DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Serial; #elif defined(KOKKOS_ENABLE_OPENMP) -typedef OpenMP DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + OpenMP; #elif defined(KOKKOS_ENABLE_THREADS) -typedef Threads DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Threads; #elif defined(KOKKOS_ENABLE_HPX) -typedef Kokkos::Experimental::HPX DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Kokkos::Experimental::HPX; #elif defined(KOKKOS_ENABLE_SERIAL) -typedef Serial DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Serial; #else #error \ "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::OpenMP, Kokkos::Threads, Kokkos::Experimental::HPX, or Kokkos::Serial." @@ -206,15 +227,15 @@ namespace Impl { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA) && \ defined(KOKKOS_ENABLE_CUDA) -typedef Kokkos::CudaSpace ActiveExecutionMemorySpace; +using ActiveExecutionMemorySpace = Kokkos::CudaSpace; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_ROCM_GPU) -typedef Kokkos::HostSpace ActiveExecutionMemorySpace; +using ActiveExecutionMemorySpace = Kokkos::HostSpace; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU) -typedef Kokkos::Experimental::HIPSpace ActiveExecutionMemorySpace; +using ActiveExecutionMemorySpace = Kokkos::Experimental::HIPSpace; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) -typedef Kokkos::HostSpace ActiveExecutionMemorySpace; +using ActiveExecutionMemorySpace = Kokkos::HostSpace; #else -typedef void ActiveExecutionMemorySpace; +using ActiveExecutionMemorySpace = void; #endif template @@ -250,31 +271,22 @@ void fence(); namespace Kokkos { +template +class View; + namespace Impl { template struct DeepCopy; -template -struct ViewFillETIAvail; - template ::value> + int Rank = ViewType::Rank, typename iType = int64_t> struct ViewFill; template -struct ViewCopyETIAvail; - -template ::value> struct ViewCopy; template struct LOr; } // namespace Kokkos -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -namespace Kokkos { -template -struct MinMaxScalar; -template -struct MinMaxLocScalar; -template -struct ValLocScalar; - -namespace Experimental { -using Kokkos::BAnd; -using Kokkos::BOr; -using Kokkos::LAnd; -using Kokkos::LOr; -using Kokkos::Max; -using Kokkos::MaxLoc; -using Kokkos::Min; -using Kokkos::MinLoc; -using Kokkos::MinMax; -using Kokkos::MinMaxLoc; -using Kokkos::MinMaxLocScalar; -using Kokkos::MinMaxScalar; -using Kokkos::Prod; -using Kokkos::Sum; -using Kokkos::ValLocScalar; -} // namespace Experimental -} // namespace Kokkos -#endif #endif /* #ifndef KOKKOS_CORE_FWD_HPP */ diff --git a/lib/kokkos/core/src/Kokkos_Crs.hpp b/lib/kokkos/core/src/Kokkos_Crs.hpp index 3725ba2604..dfb884e514 100644 --- a/lib/kokkos/core/src/Kokkos_Crs.hpp +++ b/lib/kokkos/core/src/Kokkos_Crs.hpp @@ -45,6 +45,9 @@ #ifndef KOKKOS_CRS_HPP #define KOKKOS_CRS_HPP +#include +#include + namespace Kokkos { /// \class Crs @@ -82,22 +85,21 @@ template ::size_type> class Crs { protected: - typedef ViewTraits traits; + using traits = ViewTraits; public: - typedef DataType data_type; - typedef typename traits::array_layout array_layout; - typedef typename traits::execution_space execution_space; - typedef typename traits::memory_space memory_space; - typedef typename traits::device_type device_type; - typedef SizeType size_type; - - typedef Crs staticcrsgraph_type; - typedef Crs - HostMirror; - typedef View row_map_type; - typedef View entries_type; + using data_type = DataType; + using array_layout = typename traits::array_layout; + using execution_space = typename traits::execution_space; + using memory_space = typename traits::memory_space; + using device_type = typename traits::device_type; + using size_type = SizeType; + + using staticcrsgraph_type = Crs; + using HostMirror = + Crs; + using row_map_type = View; + using entries_type = View; row_map_type row_map; entries_type entries; @@ -293,9 +295,9 @@ typename OutRowMap::value_type get_crs_row_map_from_counts( template void transpose_crs(Crs& out, Crs const& in) { - typedef Crs crs_type; - typedef typename crs_type::memory_space memory_space; - typedef View counts_type; + using crs_type = Crs; + using memory_space = typename crs_type::memory_space; + using counts_type = View; { counts_type counts; Kokkos::get_crs_transpose_counts(counts, in); @@ -340,9 +342,14 @@ struct CountAndFillBase { CountAndFillBase(CrsType& crs, Functor const& f) : m_crs(crs), m_functor(f) {} }; +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_HIP) #if defined(KOKKOS_ENABLE_CUDA) +#define EXEC_SPACE Kokkos::Cuda +#elif defined(KOKKOS_ENABLE_HIP) +#define EXEC_SPACE Kokkos::Experimental::HIP +#endif template -struct CountAndFillBase { +struct CountAndFillBase { using data_type = typename CrsType::data_type; using size_type = typename CrsType::size_type; using row_map_type = typename CrsType::row_map_type; diff --git a/lib/kokkos/core/src/Kokkos_Cuda.hpp b/lib/kokkos/core/src/Kokkos_Cuda.hpp index ed51e95778..a5b2182469 100644 --- a/lib/kokkos/core/src/Kokkos_Cuda.hpp +++ b/lib/kokkos/core/src/Kokkos_Cuda.hpp @@ -118,27 +118,27 @@ class Cuda { //@{ //! Tag this class as a kokkos execution space - typedef Cuda execution_space; + using execution_space = Cuda; #if defined(KOKKOS_ENABLE_CUDA_UVM) //! This execution space's preferred memory space. - typedef CudaUVMSpace memory_space; + using memory_space = CudaUVMSpace; #else //! This execution space's preferred memory space. - typedef CudaSpace memory_space; + using memory_space = CudaSpace; #endif //! This execution space preferred device_type - typedef Kokkos::Device device_type; + using device_type = Kokkos::Device; //! The size_type best suited for this execution space. - typedef memory_space::size_type size_type; + using size_type = memory_space::size_type; //! This execution space's preferred array layout. - typedef LayoutLeft array_layout; + using array_layout = LayoutLeft; //! - typedef ScratchMemorySpace scratch_memory_space; + using scratch_memory_space = ScratchMemorySpace; //@} //-------------------------------------------------- @@ -183,11 +183,7 @@ class Cuda { /// device have completed. static void impl_static_fence(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static void fence(); -#else void fence() const; -#endif /** \brief Return the maximum amount of concurrency. */ static int concurrency(); @@ -199,14 +195,17 @@ class Cuda { //-------------------------------------------------- //! \name Cuda space instances - ~Cuda() = default; - Cuda(); - Cuda(Cuda&&) = default; - Cuda(const Cuda&) = default; - Cuda& operator=(Cuda&&) = default; - Cuda& operator=(const Cuda&) = default; + KOKKOS_FUNCTION Cuda(Cuda&& other) noexcept; + + KOKKOS_FUNCTION Cuda(const Cuda& other); + + KOKKOS_FUNCTION Cuda& operator=(Cuda&& other) noexcept; + + KOKKOS_FUNCTION Cuda& operator=(const Cuda& other); + + KOKKOS_FUNCTION ~Cuda() noexcept; Cuda(cudaStream_t stream); @@ -220,17 +219,6 @@ class Cuda { explicit SelectDevice(int id) : cuda_device_id(id) {} }; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - //! Free any resources being consumed by the device. - static void finalize(); - - //! Has been initialized - static int is_initialized(); - - //! Initialize, telling the CUDA run-time library which device to use. - static void initialize(const SelectDevice = SelectDevice(), - const size_t num_instances = 1); -#else //! Free any resources being consumed by the device. static void impl_finalize(); @@ -240,7 +228,6 @@ class Cuda { //! Initialize, telling the CUDA run-time library which device to use. static void impl_initialize(const SelectDevice = SelectDevice(), const size_t num_instances = 1); -#endif /// \brief Cuda device architecture of the selected device. /// @@ -271,9 +258,10 @@ class Cuda { private: Impl::CudaInternal* m_space_instance; + int* m_counter; }; -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits { @@ -281,7 +269,7 @@ struct DeviceTypeTraits { static constexpr DeviceType id = DeviceType::Cuda; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools } // namespace Kokkos /*--------------------------------------------------------------------------*/ diff --git a/lib/kokkos/core/src/Kokkos_CudaSpace.hpp b/lib/kokkos/core/src/Kokkos_CudaSpace.hpp index 7db5dd9561..0fb7841889 100644 --- a/lib/kokkos/core/src/Kokkos_CudaSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_CudaSpace.hpp @@ -74,11 +74,11 @@ namespace Kokkos { class CudaSpace { public: //! Tag this class as a kokkos memory space - typedef CudaSpace memory_space; - typedef Kokkos::Cuda execution_space; - typedef Kokkos::Device device_type; + using memory_space = CudaSpace; + using execution_space = Kokkos::Cuda; + using device_type = Kokkos::Device; - typedef unsigned int size_type; + using size_type = unsigned int; /*--------------------------------*/ @@ -91,9 +91,14 @@ class CudaSpace { /**\brief Allocate untracked memory in the cuda space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the cuda space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return m_name; } @@ -158,10 +163,10 @@ namespace Kokkos { class CudaUVMSpace { public: //! Tag this class as a kokkos memory space - typedef CudaUVMSpace memory_space; - typedef Cuda execution_space; - typedef Kokkos::Device device_type; - typedef unsigned int size_type; + using memory_space = CudaUVMSpace; + using execution_space = Cuda; + using device_type = Kokkos::Device; + using size_type = unsigned int; /** \brief If UVM capability is available */ static bool available(); @@ -183,9 +188,14 @@ class CudaUVMSpace { /**\brief Allocate untracked memory in the cuda space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the cuda space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return m_name; } @@ -219,10 +229,10 @@ class CudaHostPinnedSpace { public: //! Tag this class as a kokkos memory space /** \brief Memory is in HostSpace so use the HostSpace::execution_space */ - typedef HostSpace::execution_space execution_space; - typedef CudaHostPinnedSpace memory_space; - typedef Kokkos::Device device_type; - typedef unsigned int size_type; + using execution_space = HostSpace::execution_space; + using memory_space = CudaHostPinnedSpace; + using device_type = Kokkos::Device; + using size_type = unsigned int; /*--------------------------------*/ @@ -235,9 +245,14 @@ class CudaHostPinnedSpace { /**\brief Allocate untracked memory in the space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return m_name; } @@ -818,7 +833,7 @@ class SharedAllocationRecord private: friend class SharedAllocationRecord; - typedef SharedAllocationRecord RecordBase; + using RecordBase = SharedAllocationRecord; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; @@ -897,7 +912,7 @@ template <> class SharedAllocationRecord : public SharedAllocationRecord { private: - typedef SharedAllocationRecord RecordBase; + using RecordBase = SharedAllocationRecord; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; @@ -971,7 +986,7 @@ template <> class SharedAllocationRecord : public SharedAllocationRecord { private: - typedef SharedAllocationRecord RecordBase; + using RecordBase = SharedAllocationRecord; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; diff --git a/lib/kokkos/core/src/Kokkos_ExecPolicy.hpp b/lib/kokkos/core/src/Kokkos_ExecPolicy.hpp index 11910138d3..17eef76038 100644 --- a/lib/kokkos/core/src/Kokkos_ExecPolicy.hpp +++ b/lib/kokkos/core/src/Kokkos_ExecPolicy.hpp @@ -51,10 +51,7 @@ #include #include #include -#include -#if defined(KOKKOS_ENABLE_PROFILING) #include -#endif // KOKKOS_ENABLE_PROFILING //---------------------------------------------------------------------------- @@ -93,7 +90,7 @@ struct ChunkSize { template class RangePolicy : public Impl::PolicyTraits { public: - typedef Impl::PolicyTraits traits; + using traits = Impl::PolicyTraits; private: typename traits::execution_space m_space; @@ -107,9 +104,9 @@ class RangePolicy : public Impl::PolicyTraits { public: //! Tag this class as an execution policy - typedef RangePolicy execution_policy; - typedef typename traits::index_type member_type; - typedef typename traits::index_type index_type; + using execution_policy = RangePolicy; + using member_type = typename traits::index_type; + using index_type = typename traits::index_type; KOKKOS_INLINE_FUNCTION const typename traits::execution_space& space() const { return m_space; @@ -124,17 +121,13 @@ class RangePolicy : public Impl::PolicyTraits { // doesn't match. void operator()(const int&) const {} - RangePolicy(const RangePolicy&) = default; - RangePolicy(RangePolicy&&) = default; - template - RangePolicy(const RangePolicy p) { - m_space = p.m_space; - m_begin = p.m_begin; - m_end = p.m_end; - m_granularity = p.m_granularity; - m_granularity_mask = p.m_granularity_mask; - } + RangePolicy(const RangePolicy& p) + : m_space(p.m_space), + m_begin(p.m_begin), + m_end(p.m_end), + m_granularity(p.m_granularity), + m_granularity_mask(p.m_granularity_mask) {} inline RangePolicy() : m_space(), m_begin(0), m_end(0) {} @@ -241,8 +234,8 @@ class RangePolicy : public Impl::PolicyTraits { * Typically used to partition a range over a group of threads. */ struct WorkRange { - typedef typename RangePolicy::work_tag work_tag; - typedef typename RangePolicy::member_type member_type; + using work_tag = typename RangePolicy::work_tag; + using member_type = typename RangePolicy::member_type; KOKKOS_INLINE_FUNCTION member_type begin() const { return m_begin; } KOKKOS_INLINE_FUNCTION member_type end() const { return m_end; } @@ -290,10 +283,10 @@ namespace Impl { template class TeamPolicyInternal : public Impl::PolicyTraits { private: - typedef Impl::PolicyTraits traits; + using traits = Impl::PolicyTraits; public: - typedef typename traits::index_type index_type; + using index_type = typename traits::index_type; //---------------------------------------- /** \brief Query maximum team size for a given functor. @@ -367,11 +360,7 @@ class TeamPolicyInternal : public Impl::PolicyTraits { inline typename traits::index_type chunk_size() const; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - inline TeamPolicyInternal set_chunk_size(int chunk_size) const; -#else inline TeamPolicyInternal& set_chunk_size(int chunk_size); -#endif /** \brief Parallel execution of a functor calls the functor once with * each member of the execution policy. @@ -504,6 +493,9 @@ struct ScratchRequest { } }; +// Throws a runtime exception if level is not `0` or `1` +void team_policy_check_valid_storage_level_argument(int level); + /** \brief Execution policy for parallel work over a league of teams of * threads. * @@ -535,214 +527,52 @@ class TeamPolicy : public Impl::TeamPolicyInternal< typename Impl::PolicyTraits::execution_space, Properties...> { - typedef Impl::TeamPolicyInternal< + using internal_policy = Impl::TeamPolicyInternal< typename Impl::PolicyTraits::execution_space, - Properties...> - internal_policy; + Properties...>; template friend class TeamPolicy; public: - typedef Impl::PolicyTraits traits; + using traits = Impl::PolicyTraits; - typedef TeamPolicy execution_policy; + using execution_policy = TeamPolicy; - TeamPolicy& operator=(const TeamPolicy&) = default; + TeamPolicy() : internal_policy(0, AUTO) {} /** \brief Construct policy with the given instance of the execution space */ TeamPolicy(const typename traits::execution_space& space_, int league_size_request, int team_size_request, int vector_length_request = 1) : internal_policy(space_, league_size_request, team_size_request, - vector_length_request) { - first_arg = false; - } + vector_length_request) {} TeamPolicy(const typename traits::execution_space& space_, int league_size_request, const Kokkos::AUTO_t&, int vector_length_request = 1) : internal_policy(space_, league_size_request, Kokkos::AUTO(), - vector_length_request) { - first_arg = false; - } + vector_length_request) {} /** \brief Construct policy with the default instance of the execution space */ TeamPolicy(int league_size_request, int team_size_request, int vector_length_request = 1) : internal_policy(league_size_request, team_size_request, - vector_length_request) { - first_arg = false; - } + vector_length_request) {} TeamPolicy(int league_size_request, const Kokkos::AUTO_t&, int vector_length_request = 1) : internal_policy(league_size_request, Kokkos::AUTO(), - vector_length_request) { - first_arg = false; - } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief Construct policy with the given instance of the execution space */ - template - TeamPolicy(const typename traits::execution_space&, int league_size_request, - int team_size_request, int vector_length_request, Args... args) - : internal_policy(typename traits::execution_space(), league_size_request, - team_size_request, vector_length_request) { - first_arg = false; - set(args...); - } - - template - TeamPolicy(const typename traits::execution_space&, int league_size_request, - const Kokkos::AUTO_t&, int vector_length_request, Args... args) - : internal_policy(typename traits::execution_space(), league_size_request, - Kokkos::AUTO(), vector_length_request) { - first_arg = false; - set(args...); - } - - /** \brief Construct policy with the default instance of the execution space - */ - template - TeamPolicy(int league_size_request, int team_size_request, - int vector_length_request, Args... args) - : internal_policy(league_size_request, team_size_request, - vector_length_request) { - first_arg = false; - set(args...); - } - - template - TeamPolicy(int league_size_request, const Kokkos::AUTO_t&, - int vector_length_request, Args... args) - : internal_policy(league_size_request, Kokkos::AUTO(), - vector_length_request) { - first_arg = false; - set(args...); - } - - /** \brief Construct policy with the given instance of the execution space */ - template - TeamPolicy(const typename traits::execution_space&, int league_size_request, - int team_size_request, Args... args) - : internal_policy(typename traits::execution_space(), league_size_request, - team_size_request, - Kokkos::Impl::extract_vector_length(args...)) { - first_arg = true; - set(args...); - } - - template - TeamPolicy(const typename traits::execution_space&, int league_size_request, - const Kokkos::AUTO_t&, Args... args) - : internal_policy(typename traits::execution_space(), league_size_request, - Kokkos::AUTO(), - Kokkos::Impl::extract_vector_length(args...)) { - first_arg = true; - set(args...); - } - - /** \brief Construct policy with the default instance of the execution space - */ - template - TeamPolicy(int league_size_request, int team_size_request, Args... args) - : internal_policy(league_size_request, team_size_request, - Kokkos::Impl::extract_vector_length(args...)) { - first_arg = true; - set(args...); - } - - template - TeamPolicy(int league_size_request, const Kokkos::AUTO_t&, Args... args) - : internal_policy(league_size_request, Kokkos::AUTO(), - Kokkos::Impl::extract_vector_length(args...)) { - first_arg = true; - set(args...); - } -#endif + vector_length_request) {} template - TeamPolicy(const TeamPolicy p) : internal_policy(p) { - first_arg = p.first_arg; - } + TeamPolicy(const TeamPolicy p) : internal_policy(p) {} private: - bool first_arg; - TeamPolicy(const internal_policy& p) : internal_policy(p) { - first_arg = false; - } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - inline void set() {} -#endif + TeamPolicy(const internal_policy& p) : internal_policy(p) {} public: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template - inline void set(Args...) { - static_assert( - 0 == sizeof...(Args), - "Kokkos::TeamPolicy: unhandled constructor arguments encountered."); - } - - template - inline typename std::enable_if::value>::type set( - iType, Args... args) { - if (first_arg) { - first_arg = false; - set(args...); - } else { - first_arg = false; - Kokkos::Impl::throw_runtime_exception( - "Kokkos::TeamPolicy: integer argument to constructor in illegal " - "place."); - } - } - - template - inline void set(const ChunkSize& chunksize, Args... args) { - first_arg = false; - internal_policy::internal_set_chunk_size(chunksize.value); - set(args...); - } - - template - inline void set(const ScratchRequest& scr_request, Args... args) { - first_arg = false; - internal_policy::internal_set_scratch_size( - scr_request.level, Impl::PerTeamValue(scr_request.per_team), - Impl::PerThreadValue(scr_request.per_thread)); - set(args...); - } - - inline TeamPolicy set_chunk_size(int chunk) const { - return TeamPolicy(internal_policy::set_chunk_size(chunk)); - } - - inline TeamPolicy set_scratch_size(const int& level, - const Impl::PerTeamValue& per_team) const { - return TeamPolicy(internal_policy::set_scratch_size(level, per_team)); - } - inline TeamPolicy set_scratch_size( - const int& level, const Impl::PerThreadValue& per_thread) const { - return TeamPolicy(internal_policy::set_scratch_size(level, per_thread)); - } - inline TeamPolicy set_scratch_size( - const int& level, const Impl::PerTeamValue& per_team, - const Impl::PerThreadValue& per_thread) const { - return TeamPolicy( - internal_policy::set_scratch_size(level, per_team, per_thread)); - } - inline TeamPolicy set_scratch_size(const int& level, - const Impl::PerThreadValue& per_thread, - const Impl::PerTeamValue& per_team) const { - return TeamPolicy( - internal_policy::set_scratch_size(level, per_team, per_thread)); - } - -#else inline TeamPolicy& set_chunk_size(int chunk) { static_assert(std::is_same::value, @@ -756,27 +586,31 @@ class TeamPolicy level, per_team)), internal_policy&>::value, "internal set_chunk_size should return a reference"); + + team_policy_check_valid_storage_level_argument(level); return static_cast( internal_policy::set_scratch_size(level, per_team)); } inline TeamPolicy& set_scratch_size(const int& level, const Impl::PerThreadValue& per_thread) { + team_policy_check_valid_storage_level_argument(level); return static_cast( internal_policy::set_scratch_size(level, per_thread)); } inline TeamPolicy& set_scratch_size(const int& level, const Impl::PerTeamValue& per_team, const Impl::PerThreadValue& per_thread) { + team_policy_check_valid_storage_level_argument(level); return static_cast( internal_policy::set_scratch_size(level, per_team, per_thread)); } inline TeamPolicy& set_scratch_size(const int& level, const Impl::PerThreadValue& per_thread, const Impl::PerTeamValue& per_team) { + team_policy_check_valid_storage_level_argument(level); return static_cast( internal_policy::set_scratch_size(level, per_team, per_thread)); } -#endif }; namespace Impl { @@ -803,7 +637,7 @@ struct TeamThreadRangeBoundariesStruct { } public: - typedef iType index_type; + using index_type = iType; const iType start; const iType end; enum { increment = 1 }; @@ -849,7 +683,7 @@ struct TeamVectorRangeBoundariesStruct { } public: - typedef iType index_type; + using index_type = iType; const iType start; const iType end; enum { increment = 1 }; @@ -875,7 +709,7 @@ struct TeamVectorRangeBoundariesStruct { template struct ThreadVectorRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const index_type start; const index_type end; enum { increment = 1 }; @@ -989,7 +823,6 @@ KOKKOS_INLINE_FUNCTION_DELETED ThreadVectorRange(const TeamMemberType&, const iType& arg_begin, const iType& arg_end) = delete; -#if defined(KOKKOS_ENABLE_PROFILING) namespace Impl { template { }; } // namespace Impl -#endif /* defined KOKKOS_ENABLE_PROFILING */ } // namespace Kokkos @@ -1040,29 +872,29 @@ struct PolicyPropertyAdaptor; template struct PolicyPropertyAdaptor, RangePolicy> { - typedef RangePolicy policy_in_t; - typedef RangePolicy> - policy_out_t; + using policy_in_t = RangePolicy; + using policy_out_t = + RangePolicy>; }; template struct PolicyPropertyAdaptor, TeamPolicy> { - typedef TeamPolicy policy_in_t; - typedef TeamPolicy> - policy_out_t; + using policy_in_t = TeamPolicy; + using policy_out_t = + TeamPolicy>; }; } // namespace Impl diff --git a/lib/kokkos/core/src/Kokkos_Extents.hpp b/lib/kokkos/core/src/Kokkos_Extents.hpp index 856adf9cf9..683b76e1f9 100644 --- a/lib/kokkos/core/src/Kokkos_Extents.hpp +++ b/lib/kokkos/core/src/Kokkos_Extents.hpp @@ -45,6 +45,8 @@ #define KOKKOS_KOKKOS_EXTENTS_HPP #include +#include +#include namespace Kokkos { namespace Experimental { diff --git a/lib/kokkos/core/src/Kokkos_HBWSpace.hpp b/lib/kokkos/core/src/Kokkos_HBWSpace.hpp index ce36b018cf..0bf63ec20d 100644 --- a/lib/kokkos/core/src/Kokkos_HBWSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_HBWSpace.hpp @@ -97,8 +97,8 @@ namespace Experimental { class HBWSpace { public: //! Tag this class as a kokkos memory space - typedef HBWSpace memory_space; - typedef size_t size_type; + using memory_space = HBWSpace; + using size_type = size_t; /// \typedef execution_space /// \brief Default execution space for this memory space. @@ -107,22 +107,22 @@ class HBWSpace { /// useful for things like initializing a View (which happens in /// parallel using the View's default execution space). #if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) - typedef Kokkos::OpenMP execution_space; + using execution_space = Kokkos::OpenMP; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) - typedef Kokkos::Threads execution_space; + using execution_space = Kokkos::Threads; #elif defined(KOKKOS_ENABLE_OPENMP) - typedef Kokkos::OpenMP execution_space; + using execution_space = Kokkos::OpenMP; #elif defined(KOKKOS_ENABLE_THREADS) - typedef Kokkos::Threads execution_space; + using execution_space = Kokkos::Threads; #elif defined(KOKKOS_ENABLE_SERIAL) - typedef Kokkos::Serial execution_space; + using execution_space = Kokkos::Serial; #else #error \ "At least one of the following host execution spaces must be defined: Kokkos::OpenMP, Kokkos::Threads, or Kokkos::Serial. You might be seeing this message if you disabled the Kokkos::Serial device explicitly using the Kokkos_ENABLE_Serial:BOOL=OFF CMake option, but did not enable any of the other host execution space devices." #endif //! This memory space preferred device_type - typedef Kokkos::Device device_type; + using device_type = Kokkos::Device; /**\brief Default memory space instance */ HBWSpace(); @@ -144,9 +144,14 @@ class HBWSpace { /**\brief Allocate untracked memory in the space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return "HBW"; } @@ -173,7 +178,7 @@ class SharedAllocationRecord private: friend Kokkos::Experimental::HBWSpace; - typedef SharedAllocationRecord RecordBase; + using RecordBase = SharedAllocationRecord; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; diff --git a/lib/kokkos/core/src/Kokkos_HIP.hpp b/lib/kokkos/core/src/Kokkos_HIP.hpp index 4e9325c2d2..7afda3b43e 100644 --- a/lib/kokkos/core/src/Kokkos_HIP.hpp +++ b/lib/kokkos/core/src/Kokkos_HIP.hpp @@ -60,6 +60,7 @@ #include #include #include +#include #endif #endif diff --git a/lib/kokkos/core/src/Kokkos_HIP_Space.hpp b/lib/kokkos/core/src/Kokkos_HIP_Space.hpp index 90bdb7b913..3a6b0186a3 100644 --- a/lib/kokkos/core/src/Kokkos_HIP_Space.hpp +++ b/lib/kokkos/core/src/Kokkos_HIP_Space.hpp @@ -88,9 +88,14 @@ class HIPSpace { /**\brief Allocate untracked memory in the hip space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the hip space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return "HIP"; } @@ -175,9 +180,14 @@ class HIPHostPinnedSpace { /**\brief Allocate untracked memory in the space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return "HIPHostPinned"; } @@ -519,7 +529,7 @@ template <> class SharedAllocationRecord : public SharedAllocationRecord { private: - typedef SharedAllocationRecord RecordBase; + using RecordBase = SharedAllocationRecord; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; @@ -570,7 +580,7 @@ template <> class SharedAllocationRecord : public SharedAllocationRecord { private: - typedef SharedAllocationRecord RecordBase; + using RecordBase = SharedAllocationRecord; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; @@ -645,14 +655,15 @@ class HIP { using scratch_memory_space = ScratchMemorySpace; - ~HIP() = default; HIP(); - // explicit HIP( const int instance_id ); + HIP(hipStream_t stream); - HIP(HIP&&) = default; - HIP(const HIP&) = default; - HIP& operator=(HIP&&) = default; - HIP& operator=(const HIP&) = default; + KOKKOS_FUNCTION HIP(HIP&& other) noexcept; + KOKKOS_FUNCTION HIP(HIP const& other); + KOKKOS_FUNCTION HIP& operator=(HIP&&) noexcept; + KOKKOS_FUNCTION HIP& operator=(HIP const&); + + KOKKOS_FUNCTION ~HIP() noexcept; //@} //------------------------------------ @@ -667,10 +678,18 @@ class HIP { #endif } - /** \brief Wait until all dispatched functors complete. A noop for OpenMP. */ + /** \brief Wait until all dispatched functors complete. + * + * The parallel_for or parallel_reduce dispatch of a functor may return + * asynchronously, before the functor completes. This method does not return + * until all dispatched functors on this device have completed. + */ static void impl_static_fence(); + void fence() const; + hipStream_t hip_stream() const; + /// \brief Print configuration information to the given output stream. static void print_configuration(std::ostream&, const bool detail = false); @@ -687,6 +706,7 @@ class HIP { }; int hip_device() const; + static hipDeviceProp_t const& hip_device_prop(); static void impl_initialize(const SelectDevice = SelectDevice()); @@ -694,7 +714,7 @@ class HIP { // static size_type device_arch(); - // static size_type detect_device_count(); + static size_type detect_device_count(); static int concurrency(); static const char* name(); @@ -707,16 +727,17 @@ class HIP { private: Impl::HIPInternal* m_space_instance; + int* m_counter; }; } // namespace Experimental -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits { static constexpr DeviceType id = DeviceType::HIP; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools } // namespace Kokkos namespace Kokkos { diff --git a/lib/kokkos/core/src/Kokkos_HPX.hpp b/lib/kokkos/core/src/Kokkos_HPX.hpp index 10354635c5..1e01764f97 100644 --- a/lib/kokkos/core/src/Kokkos_HPX.hpp +++ b/lib/kokkos/core/src/Kokkos_HPX.hpp @@ -67,7 +67,7 @@ #include #include #include -#include +#include #include #include @@ -75,6 +75,7 @@ #include #include +#include #include #include #include @@ -85,6 +86,9 @@ #include #include +#include + +#include #include #include #include @@ -112,6 +116,28 @@ #error "You have chosen an invalid value for KOKKOS_HPX_IMPLEMENTATION" #endif +// [note 1] +// +// When using the asynchronous backend and independent instances, we explicitly +// reset the shared data at the end of a parallel task (execute_task). We do +// this to avoid circular references with shared pointers that would otherwise +// never be released. +// +// The HPX instance holds shared data for the instance in a shared_ptr. One of +// the pieces of shared data is the future that we use to sequence parallel +// dispatches. When a parallel task is launched, a copy of the closure +// (ParallelFor, ParallelReduce, etc.) is captured in the task. The closure +// also holds the policy, the policy holds the HPX instance, the instance holds +// the shared data (for use of buffers in the parallel task). When attaching a +// continuation to a future, the continuation is stored in the future (shared +// state). This means that there is a cycle future -> continuation -> closure +// -> policy -> HPX -> shared data -> future. We break this by releasing the +// shared data early, as (the pointer to) the shared data will not be used +// anymore by the closure at the end of execute_task. +// +// We also mark the shared instance data as mutable so that we can reset it +// from the const execute_task member function. + namespace Kokkos { namespace Impl { class thread_buffer { @@ -177,9 +203,31 @@ namespace Experimental { class HPX { private: static bool m_hpx_initialized; - static Kokkos::Impl::thread_buffer m_buffer; + static std::atomic m_next_instance_id; + uint32_t m_instance_id = 0; + #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) - static hpx::future m_future; + public: + enum class instance_mode { global, independent }; + instance_mode m_mode; + + private: + static std::atomic m_active_parallel_region_count; + + struct instance_data { + instance_data() = default; + instance_data(hpx::shared_future future) : m_future(future) {} + Kokkos::Impl::thread_buffer m_buffer; + hpx::shared_future m_future = hpx::make_ready_future(); + }; + + mutable std::shared_ptr m_independent_instance_data; + static instance_data m_global_instance_data; + + std::reference_wrapper m_buffer; + std::reference_wrapper> m_future; +#else + static Kokkos::Impl::thread_buffer m_global_buffer; #endif public: @@ -190,29 +238,106 @@ class HPX { using size_type = memory_space::size_type; using scratch_memory_space = ScratchMemorySpace; +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + HPX() + noexcept + : m_instance_id(0), + m_mode(instance_mode::global), + m_buffer(m_global_instance_data.m_buffer), + m_future(m_global_instance_data.m_future) {} + + HPX(instance_mode mode) + : m_instance_id(mode == instance_mode::independent ? m_next_instance_id++ + : 0), + m_mode(mode), + m_independent_instance_data(mode == instance_mode::independent + ? (new instance_data()) + : nullptr), + m_buffer(mode == instance_mode::independent + ? m_independent_instance_data->m_buffer + : m_global_instance_data.m_buffer), + m_future(mode == instance_mode::independent + ? m_independent_instance_data->m_future + : m_global_instance_data.m_future) {} + + HPX(hpx::shared_future future) + : m_instance_id(m_next_instance_id++), + m_mode(instance_mode::independent), + + m_independent_instance_data(new instance_data(future)), + m_buffer(m_independent_instance_data->m_buffer), + m_future(m_independent_instance_data->m_future) {} + + HPX(const HPX &other) + : m_instance_id(other.m_instance_id), + m_mode(other.m_mode), + m_independent_instance_data(other.m_independent_instance_data), + m_buffer(other.m_buffer), + m_future(other.m_future) {} + + HPX &operator=(const HPX &other) { + m_instance_id = + other.m_mode == instance_mode::independent ? m_next_instance_id++ : 0; + m_mode = other.m_mode; + m_independent_instance_data = other.m_independent_instance_data; + m_buffer = m_mode == instance_mode::independent + ? m_independent_instance_data->m_buffer + : m_global_instance_data.m_buffer; + m_future = m_mode == instance_mode::independent + ? m_independent_instance_data->m_future + : m_global_instance_data.m_future; + return *this; + } +#else HPX() noexcept {} +#endif + static void print_configuration(std::ostream &, const bool /* verbose */ = false) { std::cout << "HPX backend" << std::endl; } - uint32_t impl_instance_id() const noexcept { return 0; } + uint32_t impl_instance_id() const noexcept { return m_instance_id; } +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + static bool in_parallel(HPX const &instance = HPX()) noexcept { + return !instance.impl_get_future().is_ready(); + } +#else static bool in_parallel(HPX const & = HPX()) noexcept { return false; } - static void impl_static_fence(HPX const & = HPX()) +#endif + #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) - { + static void impl_decrement_active_parallel_region_count() { + --m_active_parallel_region_count; + } + + static void impl_increment_active_parallel_region_count() { + ++m_active_parallel_region_count; + } + + void impl_fence_instance() const { if (hpx::threads::get_self_ptr() == nullptr) { - hpx::threads::run_as_hpx_thread([]() { impl_get_future().wait(); }); + hpx::threads::run_as_hpx_thread([this]() { impl_get_future().wait(); }); } else { impl_get_future().wait(); } } -#else - noexcept { + + void impl_fence_all_instances() const { + hpx::util::yield_while( + []() { return m_active_parallel_region_count.load() != 0; }); } #endif - void fence() const { impl_static_fence(); } + void fence() const { +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + if (m_mode == instance_mode::global) { + impl_fence_all_instances(); + } else { + impl_fence_instance(); + } +#endif + } static bool is_asynchronous(HPX const & = HPX()) noexcept { #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) @@ -287,53 +412,91 @@ class HPX { return hpx::get_worker_thread_num(); } - static Kokkos::Impl::thread_buffer &impl_get_buffer() noexcept { - return m_buffer; + Kokkos::Impl::thread_buffer &impl_get_buffer() const noexcept { +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + return m_buffer.get(); +#else + return m_global_buffer; +#endif } #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) - static hpx::future &impl_get_future() noexcept { return m_future; } + hpx::shared_future &impl_get_future() const noexcept { + return m_future; + } +#endif + +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + struct KOKKOS_ATTRIBUTE_NODISCARD reset_on_exit_parallel { + HPX const &m_space; + reset_on_exit_parallel(HPX const &space) : m_space(space) {} + ~reset_on_exit_parallel() { + // See [note 1] for an explanation. m_independent_instance_data is + // marked mutable. + m_space.m_independent_instance_data.reset(); + + HPX::impl_decrement_active_parallel_region_count(); + } + }; #endif static constexpr const char *name() noexcept { return "HPX"; } }; } // namespace Experimental -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits { - constexpr static DeviceType id = DeviceType::HPX; + static constexpr DeviceType id = DeviceType::HPX; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools namespace Impl { -template -inline void dispatch_execute_task(Closure *closure) { #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) +template +inline void dispatch_execute_task(Closure *closure, + Kokkos::Experimental::HPX const &instance, + bool force_synchronous = false) { + Kokkos::Experimental::HPX::impl_increment_active_parallel_region_count(); + if (hpx::threads::get_self_ptr() == nullptr) { - hpx::threads::run_as_hpx_thread([closure]() { - hpx::future &fut = Kokkos::Experimental::HPX::impl_get_future(); - Closure closure_copy = *closure; - fut = fut.then([closure_copy](hpx::future &&) { + hpx::threads::run_as_hpx_thread([closure, &instance]() { + hpx::shared_future &fut = instance.impl_get_future(); + Closure closure_copy = *closure; + fut = fut.then([closure_copy](hpx::shared_future &&) { closure_copy.execute_task(); }); }); } else { - hpx::future &fut = Kokkos::Experimental::HPX::impl_get_future(); - Closure closure_copy = *closure; - fut = fut.then( - [closure_copy](hpx::future &&) { closure_copy.execute_task(); }); + hpx::shared_future &fut = instance.impl_get_future(); + Closure closure_copy = *closure; + fut = fut.then([closure_copy](hpx::shared_future &&) { + closure_copy.execute_task(); + }); } + + if (force_synchronous) { + instance.fence(); + } +} #else +template +inline void dispatch_execute_task(Closure *closure, + Kokkos::Experimental::HPX const &, + bool = false) { +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::impl_increment_active_parallel_region_count(); +#endif + if (hpx::threads::get_self_ptr() == nullptr) { hpx::threads::run_as_hpx_thread([closure]() { closure->execute_task(); }); } else { closure->execute_task(); } -#endif } +#endif } // namespace Impl } // namespace Kokkos @@ -362,17 +525,74 @@ namespace Kokkos { namespace Experimental { template <> class UniqueToken { + private: + using buffer_type = Kokkos::View; + int m_count; + buffer_type m_buffer_view; + uint32_t volatile *m_buffer; + public: using execution_space = HPX; using size_type = int; - UniqueToken(execution_space const & = execution_space()) noexcept {} - // NOTE: Currently this assumes that there is no oversubscription. - // hpx::get_num_worker_threads can't be used directly because it may yield - // it's task (problematic if called after hpx::get_worker_thread_num). - int size() const noexcept { return HPX::impl_max_hardware_threads(); } - int acquire() const noexcept { return HPX::impl_hardware_thread_id(); } - void release(int) const noexcept {} + /// \brief create object size for concurrency on the given instance + /// + /// This object should not be shared between instances + UniqueToken(execution_space const & = execution_space()) noexcept + : m_count(execution_space::impl_max_hardware_threads()), + m_buffer_view(buffer_type()), + m_buffer(nullptr) {} + + UniqueToken(size_type max_size, execution_space const & = execution_space()) + : m_count(max_size > execution_space::impl_max_hardware_threads() + ? execution_space::impl_max_hardware_threads() + : max_size), + m_buffer_view( + max_size > execution_space::impl_max_hardware_threads() + ? buffer_type() + : buffer_type("UniqueToken::m_buffer_view", + ::Kokkos::Impl::concurrent_bitset::buffer_bound( + m_count))), + m_buffer(m_buffer_view.data()) {} + + /// \brief upper bound for acquired values, i.e. 0 <= value < size() + KOKKOS_INLINE_FUNCTION + int size() const noexcept { return m_count; } + + /// \brief acquire value such that 0 <= value < size() + KOKKOS_INLINE_FUNCTION + int acquire() const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (m_buffer == nullptr) { + return execution_space::impl_hardware_thread_id(); + } else { + const ::Kokkos::pair result = + ::Kokkos::Impl::concurrent_bitset::acquire_bounded( + m_buffer, m_count, ::Kokkos::Impl::clock_tic() % m_count); + + if (result.first < 0) { + ::Kokkos::abort( + "UniqueToken failure to acquire tokens, no tokens " + "available"); + } + return result.first; + } +#else + return 0; +#endif + } + + /// \brief release a value acquired by generate + KOKKOS_INLINE_FUNCTION + void release(int i) const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (m_buffer != nullptr) { + ::Kokkos::Impl::concurrent_bitset::release(m_buffer, i); + } +#else + (void)i; +#endif + } }; template <> @@ -731,9 +951,17 @@ class ParallelFor, } public: - void execute() const { Kokkos::Impl::dispatch_execute_task(this); } + void execute() const { + Kokkos::Impl::dispatch_execute_task(this, m_policy.space()); + } void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + #if KOKKOS_HPX_IMPLEMENTATION == 0 using hpx::parallel::for_loop; using hpx::parallel::execution::par; @@ -809,9 +1037,15 @@ class ParallelFor, const Policy m_policy; public: - void execute() const { dispatch_execute_task(this); } + void execute() const { dispatch_execute_task(this, m_mdr_policy.space()); } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_mdr_policy.space()); +#endif + #if KOKKOS_HPX_IMPLEMENTATION == 0 using hpx::parallel::for_loop; using hpx::parallel::execution::par; @@ -1019,9 +1253,17 @@ class ParallelReduce, ReducerType, }; public: - void execute() const { dispatch_execute_task(this); } + void execute() const { + dispatch_execute_task(this, m_policy.space(), m_force_synchronous); + } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + const std::size_t value_size = Analysis::value_size(ReducerConditional::select(m_functor, m_reducer)); @@ -1062,7 +1304,7 @@ class ParallelReduce, ReducerType, #elif KOKKOS_HPX_IMPLEMENTATION == 1 const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, value_size); using hpx::apply; @@ -1118,7 +1360,7 @@ class ParallelReduce, ReducerType, #elif KOKKOS_HPX_IMPLEMENTATION == 2 const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, value_size); using hpx::parallel::for_loop; @@ -1236,14 +1478,22 @@ class ParallelReduce, ReducerType, bool m_force_synchronous; public: - void execute() const { dispatch_execute_task(this); } + void execute() const { + dispatch_execute_task(this, m_mdr_policy.space(), m_force_synchronous); + } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_mdr_policy.space()); +#endif + const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); const std::size_t value_size = Analysis::value_size(ReducerConditional::select(m_functor, m_reducer)); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_mdr_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, value_size); #if KOKKOS_HPX_IMPLEMENTATION == 0 @@ -1440,14 +1690,20 @@ class ParallelScan, } public: - void execute() const { dispatch_execute_task(this); } + void execute() const { dispatch_execute_task(this, m_policy.space()); } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); const int value_count = Analysis::value_count(m_functor); const std::size_t value_size = Analysis::value_size(m_functor); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, 2 * value_size); using hpx::apply; @@ -1554,14 +1810,20 @@ class ParallelScanWithTotal, } public: - void execute() const { dispatch_execute_task(this); } + void execute() const { dispatch_execute_task(this, m_policy.space()); } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); const int value_count = Analysis::value_count(m_functor); const std::size_t value_size = Analysis::value_size(m_functor); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, 2 * value_size); using hpx::apply; @@ -1697,12 +1959,18 @@ class ParallelFor, } public: - void execute() const { dispatch_execute_task(this); } + void execute() const { dispatch_execute_task(this, m_policy.space()); } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, m_shared); #if KOKKOS_HPX_IMPLEMENTATION == 0 @@ -1864,14 +2132,20 @@ class ParallelReduce, } public: - void execute() const { dispatch_execute_task(this); } + void execute() const { dispatch_execute_task(this, m_policy.space()); } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); const std::size_t value_size = Analysis::value_size(ReducerConditional::select(m_functor, m_reducer)); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, value_size + m_shared); #if KOKKOS_HPX_IMPLEMENTATION == 0 diff --git a/lib/kokkos/core/src/Kokkos_HostSpace.hpp b/lib/kokkos/core/src/Kokkos_HostSpace.hpp index 5bc50c7ff0..ebbc6950d2 100644 --- a/lib/kokkos/core/src/Kokkos_HostSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_HostSpace.hpp @@ -103,8 +103,8 @@ namespace Kokkos { class HostSpace { public: //! Tag this class as a kokkos memory space - typedef HostSpace memory_space; - typedef size_t size_type; + using memory_space = HostSpace; + using size_type = size_t; /// \typedef execution_space /// \brief Default execution space for this memory space. @@ -113,26 +113,26 @@ class HostSpace { /// useful for things like initializing a View (which happens in /// parallel using the View's default execution space). #if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) - typedef Kokkos::OpenMP execution_space; + using execution_space = Kokkos::OpenMP; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) - typedef Kokkos::Threads execution_space; + using execution_space = Kokkos::Threads; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) - typedef Kokkos::Experimental::HPX execution_space; + using execution_space = Kokkos::Experimental::HPX; #elif defined(KOKKOS_ENABLE_OPENMP) - typedef Kokkos::OpenMP execution_space; + using execution_space = Kokkos::OpenMP; #elif defined(KOKKOS_ENABLE_THREADS) - typedef Kokkos::Threads execution_space; + using execution_space = Kokkos::Threads; #elif defined(KOKKOS_ENABLE_HPX) - typedef Kokkos::Experimental::HPX execution_space; + using execution_space = Kokkos::Experimental::HPX; #elif defined(KOKKOS_ENABLE_SERIAL) - typedef Kokkos::Serial execution_space; + using execution_space = Kokkos::Serial; #else #error \ "At least one of the following host execution spaces must be defined: Kokkos::OpenMP, Kokkos::Threads, or Kokkos::Serial. You might be seeing this message if you disabled the Kokkos::Serial device explicitly using the Kokkos_ENABLE_Serial:BOOL=OFF CMake option, but did not enable any of the other host execution space devices." #endif //! This memory space preferred device_type - typedef Kokkos::Device device_type; + using device_type = Kokkos::Device; /**\brief Default memory space instance */ HostSpace(); @@ -156,9 +156,14 @@ class HostSpace { /**\brief Allocate untracked memory in the space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return m_name; } @@ -201,16 +206,13 @@ struct HostMirror { }; public: - typedef typename std::conditional< - keep_exe && keep_mem /* Can keep whole space */ - , - S, + using Space = typename std::conditional< + keep_exe && keep_mem, S, typename std::conditional< - keep_mem /* Can keep memory space, use default Host execution space */ - , + keep_mem, Kokkos::Device, - Kokkos::HostSpace>::type>::type Space; + Kokkos::HostSpace>::type>::type; }; } // namespace Impl @@ -229,7 +231,7 @@ class SharedAllocationRecord private: friend Kokkos::HostSpace; - typedef SharedAllocationRecord RecordBase; + using RecordBase = SharedAllocationRecord; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; diff --git a/lib/kokkos/core/src/Kokkos_Layout.hpp b/lib/kokkos/core/src/Kokkos_Layout.hpp index d34bdb9150..aa9d999294 100644 --- a/lib/kokkos/core/src/Kokkos_Layout.hpp +++ b/lib/kokkos/core/src/Kokkos_Layout.hpp @@ -73,7 +73,7 @@ enum { ARRAY_LAYOUT_MAX_RANK = 8 }; /// major." struct LayoutLeft { //! Tag this class as a kokkos array layout - typedef LayoutLeft array_layout; + using array_layout = LayoutLeft; size_t dimension[ARRAY_LAYOUT_MAX_RANK]; @@ -107,7 +107,7 @@ struct LayoutLeft { /// two-dimensional array, "layout right" is also called "row major." struct LayoutRight { //! Tag this class as a kokkos array layout - typedef LayoutRight array_layout; + using array_layout = LayoutRight; size_t dimension[ARRAY_LAYOUT_MAX_RANK]; @@ -131,7 +131,7 @@ struct LayoutRight { /// multi-index mapping into contiguous memory. struct LayoutStride { //! Tag this class as a kokkos array layout - typedef LayoutStride array_layout; + using array_layout = LayoutStride; size_t dimension[ARRAY_LAYOUT_MAX_RANK]; size_t stride[ARRAY_LAYOUT_MAX_RANK]; @@ -186,58 +186,6 @@ struct LayoutStride { S4, S5, S6, S7} {} }; -// ========================================================================== -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - -//---------------------------------------------------------------------------- -/// \struct LayoutTileLeft -/// \brief Memory layout tag indicating left-to-right (Fortran scheme) -/// striding of multi-indices by tiles. -/// -/// This is an example of a \c MemoryLayout template parameter of -/// View. The memory layout describes how View maps from a -/// multi-index (i0, i1, ..., ik) to a memory location. -/// -/// "Tiled layout" indicates a mapping to contiguously stored -/// ArgN0 by ArgN1 tiles for the rightmost two -/// dimensions. Indices are LayoutLeft within each tile, and the -/// tiles themselves are arranged using LayoutLeft. Note that the -/// dimensions ArgN0 and ArgN1 of the tiles must be -/// compile-time constants. This speeds up index calculations. If -/// both tile dimensions are powers of two, Kokkos can optimize -/// further. -template -struct LayoutTileLeft { - static_assert(Impl::is_integral_power_of_two(ArgN0) && - Impl::is_integral_power_of_two(ArgN1), - "LayoutTileLeft must be given power-of-two tile dimensions"); - - //! Tag this class as a kokkos array layout - typedef LayoutTileLeft array_layout; - - enum { N0 = ArgN0 }; - enum { N1 = ArgN1 }; - - size_t dimension[ARRAY_LAYOUT_MAX_RANK]; - - enum { is_extent_constructible = true }; - - LayoutTileLeft(LayoutTileLeft const&) = default; - LayoutTileLeft(LayoutTileLeft&&) = default; - LayoutTileLeft& operator=(LayoutTileLeft const&) = default; - LayoutTileLeft& operator=(LayoutTileLeft&&) = default; - - KOKKOS_INLINE_FUNCTION - explicit constexpr LayoutTileLeft(size_t argN0 = 0, size_t argN1 = 0, - size_t argN2 = 0, size_t argN3 = 0, - size_t argN4 = 0, size_t argN5 = 0, - size_t argN6 = 0, size_t argN7 = 0) - : dimension{argN0, argN1, argN2, argN3, argN4, argN5, argN6, argN7} {} -}; - -#endif // KOKKOS_ENABLE_DEPRECATED_CODE // =================================================================================== ////////////////////////////////////////////////////////////////////////////////////// @@ -254,7 +202,6 @@ enum class Iterate { template struct is_layouttiled : std::false_type {}; -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE template struct is_layouttiled< LayoutTiledCheck, @@ -294,9 +241,8 @@ struct LayoutTiled { , "LayoutTiled must be given power-of-two tile dimensions" ); #endif - typedef LayoutTiled - array_layout; + using array_layout = LayoutTiled; static constexpr Iterate outer_pattern = OuterP; static constexpr Iterate inner_pattern = InnerP; @@ -327,7 +273,6 @@ struct LayoutTiled { }; } // namespace Experimental -#endif // For use with view_copy template @@ -358,7 +303,6 @@ struct layout_iterate_type_selector { Kokkos::Iterate::Default; }; -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE template struct layout_iterate_type_selector #endif -#include - //---------------------------------------------------------------------------- /** Pick up compiler specific #define macros: * @@ -99,13 +97,6 @@ //---------------------------------------------------------------------------- -#if defined(KOKKOS_ENABLE_SERIAL) || defined(KOKKOS_ENABLE_THREADS) || \ - defined(KOKKOS_ENABLE_OPENMP) || defined(KOKKOS_ENABLE_HPX) || \ - defined(KOKKOS_ENABLE_ROCM) || defined(KOKKOS_ENABLE_OPENMPTARGET) || \ - defined(KOKKOS_ENABLE_HIP) -#define KOKKOS_INTERNAL_ENABLE_NON_CUDA_BACKEND -#endif - #if !defined(KOKKOS_ENABLE_THREADS) && !defined(KOKKOS_ENABLE_CUDA) && \ !defined(KOKKOS_ENABLE_OPENMP) && !defined(KOKKOS_ENABLE_HPX) && \ !defined(KOKKOS_ENABLE_ROCM) && !defined(KOKKOS_ENABLE_OPENMPTARGET) && \ @@ -127,6 +118,10 @@ #include #include +#if defined(_WIN32) +#define KOKKOS_IMPL_WINDOWS_CUDA +#endif + #if !defined(CUDA_VERSION) #error "#include did not define CUDA_VERSION." #endif @@ -154,7 +149,8 @@ #define KOKKOS_ENABLE_PRE_CUDA_10_DEPRECATION_API #endif -#if defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 700) +#if defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 700) && \ + !defined(KOKKOS_IMPL_WINDOWS_CUDA) // PTX atomics with memory order semantics are only available on volta and later #if !defined(KOKKOS_DISABLE_CUDA_ASM) #if !defined(KOKKOS_ENABLE_CUDA_ASM) @@ -170,8 +166,6 @@ #if defined(KOKKOS_ENABLE_HIP) -#define KOKKOS_IMPL_HIP_CLANG_WORKAROUND - #define HIP_ENABLE_PRINTF #include #include @@ -205,6 +199,8 @@ #if defined(__INTEL_COMPILER) #define KOKKOS_COMPILER_INTEL __INTEL_COMPILER +#elif defined(__INTEL_LLVM_COMPILER) +#define KOKKOS_COMPILER_INTEL __INTEL_LLVM_COMPILER #elif defined(__ICC) // Old define #define KOKKOS_COMPILER_INTEL __ICC @@ -263,10 +259,12 @@ #if defined(KOKKOS_ENABLE_CUDA) // Compiling Cuda code to 'ptx' -#define KOKKOS_FORCEINLINE_FUNCTION __device__ __host__ __forceinline__ +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION __device__ __host__ __forceinline__ #define KOKKOS_IMPL_FORCEINLINE __forceinline__ -#define KOKKOS_INLINE_FUNCTION __device__ __host__ inline -#define KOKKOS_FUNCTION __device__ __host__ +#define KOKKOS_IMPL_INLINE_FUNCTION __device__ __host__ inline +#define KOKKOS_IMPL_FUNCTION __device__ __host__ +#define KOKKOS_IMPL_HOST_FUNCTION __host__ +#define KOKKOS_IMPL_DEVICE_FUNCTION __device__ #if defined(KOKKOS_COMPILER_NVCC) #define KOKKOS_INLINE_FUNCTION_DELETED inline #else @@ -277,15 +275,19 @@ #else #define KOKKOS_DEFAULTED_FUNCTION inline #endif +#define KOKKOS_IMPL_HOST_FUNCTION __host__ +#define KOKKOS_IMPL_DEVICE_FUNCTION __device__ #endif #if defined(KOKKOS_ENABLE_HIP) -#define KOKKOS_FORCEINLINE_FUNCTION __device__ __host__ __forceinline__ -#define KOKKOS_INLINE_FUNCTION __device__ __host__ inline +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION __device__ __host__ __forceinline__ +#define KOKKOS_IMPL_INLINE_FUNCTION __device__ __host__ inline #define KOKKOS_DEFAULTED_FUNCTION __device__ __host__ inline #define KOKKOS_INLINE_FUNCTION_DELETED __device__ __host__ inline -#define KOKKOS_FUNCTION __device__ __host__ +#define KOKKOS_IMPL_FUNCTION __device__ __host__ +#define KOKKOS_IMPL_HOST_FUNCTION __host__ +#define KOKKOS_IMPL_DEVICE_FUNCTION __device__ #if defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) #define KOKKOS_CLASS_LAMBDA [ =, *this ] __host__ __device__ #endif @@ -293,9 +295,9 @@ #if defined(KOKKOS_ENABLE_ROCM) && defined(__HCC__) -#define KOKKOS_FORCEINLINE_FUNCTION __attribute__((amp, cpu)) inline -#define KOKKOS_INLINE_FUNCTION __attribute__((amp, cpu)) inline -#define KOKKOS_FUNCTION __attribute__((amp, cpu)) +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION __attribute__((amp, cpu)) inline +#define KOKKOS_IMPL_INLINE_FUNCTION __attribute__((amp, cpu)) inline +#define KOKKOS_IMPL_FUNCTION __attribute__((amp, cpu)) #define KOKKOS_LAMBDA [=] __attribute__((amp, cpu)) #define KOKKOS_DEFAULTED_FUNCTION __attribute__((amp, cpu)) inline #endif @@ -346,12 +348,12 @@ #define KOKKOS_ENABLE_ASM 1 #endif -#if !defined(KOKKOS_FORCEINLINE_FUNCTION) +#if !defined(KOKKOS_IMPL_FORCEINLINE_FUNCTION) #if !defined(_WIN32) -#define KOKKOS_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) #define KOKKOS_IMPL_FORCEINLINE __attribute__((always_inline)) #else -#define KOKKOS_FORCEINLINE_FUNCTION inline +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION inline #endif #endif @@ -402,8 +404,8 @@ //#define KOKKOS_ENABLE_PRAGMA_VECTOR 1 //#define KOKKOS_ENABLE_PRAGMA_SIMD 1 -#if !defined(KOKKOS_FORCEINLINE_FUNCTION) -#define KOKKOS_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) +#if !defined(KOKKOS_IMPL_FORCEINLINE_FUNCTION) +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) #define KOKKOS_IMPL_FORCEINLINE __attribute__((always_inline)) #endif @@ -427,8 +429,8 @@ #define KOKKOS_ENABLE_RFO_PREFETCH 1 #endif -#if !defined(KOKKOS_FORCEINLINE_FUNCTION) -#define KOKKOS_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) +#if !defined(KOKKOS_IMPL_FORCEINLINE_FUNCTION) +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) #define KOKKOS_IMPL_FORCEINLINE __attribute__((always_inline)) #endif @@ -462,20 +464,20 @@ //---------------------------------------------------------------------------- // Define function marking macros if compiler specific macros are undefined: -#if !defined(KOKKOS_FORCEINLINE_FUNCTION) -#define KOKKOS_FORCEINLINE_FUNCTION inline +#if !defined(KOKKOS_IMPL_FORCEINLINE_FUNCTION) +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION inline #endif #if !defined(KOKKOS_IMPL_FORCEINLINE) #define KOKKOS_IMPL_FORCEINLINE inline #endif -#if !defined(KOKKOS_INLINE_FUNCTION) -#define KOKKOS_INLINE_FUNCTION inline +#if !defined(KOKKOS_IMPL_INLINE_FUNCTION) +#define KOKKOS_IMPL_INLINE_FUNCTION inline #endif -#if !defined(KOKKOS_FUNCTION) -#define KOKKOS_FUNCTION /**/ +#if !defined(KOKKOS_IMPL_FUNCTION) +#define KOKKOS_IMPL_FUNCTION /**/ #endif #if !defined(KOKKOS_INLINE_FUNCTION_DELETED) @@ -485,6 +487,33 @@ #if !defined(KOKKOS_DEFAULTED_FUNCTION) #define KOKKOS_DEFAULTED_FUNCTION inline #endif + +#if !defined(KOKKOS_IMPL_HOST_FUNCTION) +#define KOKKOS_IMPL_HOST_FUNCTION +#endif + +#if !defined(KOKKOS_IMPL_DEVICE_FUNCTION) +#define KOKKOS_IMPL_DEVICE_FUNCTION +#endif + +//---------------------------------------------------------------------------- +// Define final version of functions. This is so that clang tidy can find these +// macros more easily +#if defined(__clang_analyzer__) +#define KOKKOS_FUNCTION \ + KOKKOS_IMPL_FUNCTION __attribute__((annotate("KOKKOS_FUNCTION"))) +#define KOKKOS_INLINE_FUNCTION \ + KOKKOS_IMPL_INLINE_FUNCTION \ + __attribute__((annotate("KOKKOS_INLINE_FUNCTION"))) +#define KOKKOS_FORCEINLINE_FUNCTION \ + KOKKOS_IMPL_FORCEINLINE_FUNCTION \ + __attribute__((annotate("KOKKOS_FORCEINLINE_FUNCTION"))) +#else +#define KOKKOS_FUNCTION KOKKOS_IMPL_FUNCTION +#define KOKKOS_INLINE_FUNCTION KOKKOS_IMPL_INLINE_FUNCTION +#define KOKKOS_FORCEINLINE_FUNCTION KOKKOS_IMPL_FORCEINLINE_FUNCTION +#endif + //---------------------------------------------------------------------------- // Define empty macro for restrict if necessary: @@ -536,6 +565,11 @@ #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA #elif defined(KOKKOS_ENABLE_HIP) #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP +#if defined(__HIP__) +// mark that HIP-clang can use __host__ and __device__ +// as valid overload criteria +#define KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE +#endif #elif defined(KOKKOS_ENABLE_ROCM) #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_ROCM #elif defined(KOKKOS_ENABLE_OPENMPTARGET) @@ -558,8 +592,7 @@ #elif defined(__HCC__) && defined(__HCC_ACCELERATOR__) && \ defined(KOKKOS_ENABLE_ROCM) #define KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_ROCM_GPU -#elif defined(__HIPCC__) && \ - (defined(__HCC_ACCELERATOR__) || defined(__CUDA_ARCH__)) && \ +#elif defined(__HIPCC__) && defined(__HIP_DEVICE_COMPILE__) && \ defined(KOKKOS_ENABLE_HIP) #define KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU #else @@ -598,11 +631,7 @@ #define KOKKOS_INVALID_INDEX (~std::size_t(0)) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#define KOKKOS_IMPL_CTOR_DEFAULT_ARG 0 -#else #define KOKKOS_IMPL_CTOR_DEFAULT_ARG KOKKOS_INVALID_INDEX -#endif #if (defined(KOKKOS_ENABLE_CXX14) || defined(KOKKOS_ENABLE_CXX17) || \ defined(KOKKOS_ENABLE_CXX20)) @@ -633,8 +662,9 @@ #define KOKKOS_ATTRIBUTE_NODISCARD #endif -#if defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG) || \ - defined(KOKKOS_COMPILER_INTEL) || defined(KOKKOS_COMPILER_PGI) +#if (defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG) || \ + defined(KOKKOS_COMPILER_INTEL) || defined(KOKKOS_COMPILER_PGI)) && \ + !defined(KOKKOS_COMPILER_MSVC) #define KOKKOS_IMPL_ENABLE_STACKTRACE #define KOKKOS_IMPL_ENABLE_CXXABI #endif @@ -652,4 +682,13 @@ #define KOKKOS_THREAD_LOCAL __thread #endif +#if defined(KOKKOS_IMPL_WINDOWS_CUDA) || defined(KOKKOS_COMPILER_MSVC) +// MSVC (as of 16.5.5 at least) does not do empty base class optimization by +// default when there are multiple bases, even though the standard requires it +// for standard layout types. +#define KOKKOS_IMPL_ENFORCE_EMPTY_BASE_OPTIMIZATION __declspec(empty_bases) +#else +#define KOKKOS_IMPL_ENFORCE_EMPTY_BASE_OPTIMIZATION +#endif + #endif // #ifndef KOKKOS_MACROS_HPP diff --git a/lib/kokkos/core/src/Kokkos_MemoryPool.hpp b/lib/kokkos/core/src/Kokkos_MemoryPool.hpp index da07544701..042ad6d902 100644 --- a/lib/kokkos/core/src/Kokkos_MemoryPool.hpp +++ b/lib/kokkos/core/src/Kokkos_MemoryPool.hpp @@ -52,6 +52,8 @@ #include #include +#include + namespace Kokkos { namespace Impl { /* Report violation of size constraints: @@ -73,10 +75,19 @@ void memory_pool_bounds_verification(size_t min_block_alloc_size, namespace Kokkos { +namespace Impl { + +void _print_memory_pool_state(std::ostream &s, uint32_t const *sb_state_ptr, + int32_t sb_count, uint32_t sb_size_lg2, + uint32_t sb_state_size, uint32_t state_shift, + uint32_t state_used_mask); + +} // end namespace Impl + template class MemoryPool { private: - typedef typename Kokkos::Impl::concurrent_bitset CB; + using CB = Kokkos::Impl::concurrent_bitset; enum : uint32_t { bits_per_int_lg2 = CB::bits_per_int_lg2 }; enum : uint32_t { state_shift = CB::state_shift }; @@ -107,15 +118,15 @@ class MemoryPool { * Thus A_block_size < B_block_size <=> A_block_state > B_block_state */ - typedef typename DeviceType::memory_space base_memory_space; + using base_memory_space = typename DeviceType::memory_space; enum { accessible = Kokkos::Impl::MemorySpaceAccess::accessible }; - typedef Kokkos::Impl::SharedAllocationTracker Tracker; - typedef Kokkos::Impl::SharedAllocationRecord Record; + using Tracker = Kokkos::Impl::SharedAllocationTracker; + using Record = Kokkos::Impl::SharedAllocationRecord; Tracker m_tracker; uint32_t *m_sb_state_array; @@ -231,24 +242,9 @@ class MemoryPool { sb_state_array, m_sb_state_array, alloc_size); } - const uint32_t *sb_state_ptr = sb_state_array; - - s << "pool_size(" << (size_t(m_sb_count) << m_sb_size_lg2) << ")" - << " superblock_size(" << (1LU << m_sb_size_lg2) << ")" << std::endl; - - for (int32_t i = 0; i < m_sb_count; ++i, sb_state_ptr += m_sb_state_size) { - if (*sb_state_ptr) { - const uint32_t block_count_lg2 = (*sb_state_ptr) >> state_shift; - const uint32_t block_size_lg2 = m_sb_size_lg2 - block_count_lg2; - const uint32_t block_count = 1u << block_count_lg2; - const uint32_t block_used = (*sb_state_ptr) & state_used_mask; - - s << "Superblock[ " << i << " / " << m_sb_count << " ] {" - << " block_size(" << (1 << block_size_lg2) << ")" - << " block_count( " << block_used << " / " << block_count << " )" - << std::endl; - } - } + Impl::_print_memory_pool_state(s, sb_state_array, m_sb_count, m_sb_size_lg2, + m_sb_state_size, state_shift, + state_used_mask); if (!accessible) { host.deallocate(sb_state_array, alloc_size); diff --git a/lib/kokkos/core/src/Kokkos_MemoryTraits.hpp b/lib/kokkos/core/src/Kokkos_MemoryTraits.hpp index 75d3d40144..f23442b793 100644 --- a/lib/kokkos/core/src/Kokkos_MemoryTraits.hpp +++ b/lib/kokkos/core/src/Kokkos_MemoryTraits.hpp @@ -71,18 +71,7 @@ enum MemoryTraitsFlags { template struct MemoryTraits { //! Tag this class as a kokkos memory traits: - typedef MemoryTraits memory_traits; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - enum : bool { - Unmanaged = (unsigned(0) != (T & unsigned(Kokkos::Unmanaged))) - }; - enum : bool { - RandomAccess = (unsigned(0) != (T & unsigned(Kokkos::RandomAccess))) - }; - enum : bool { Atomic = (unsigned(0) != (T & unsigned(Kokkos::Atomic))) }; - enum : bool { Restrict = (unsigned(0) != (T & unsigned(Kokkos::Restrict))) }; - enum : bool { Aligned = (unsigned(0) != (T & unsigned(Kokkos::Aligned))) }; -#endif + using memory_traits = MemoryTraits; enum : bool { is_unmanaged = (unsigned(0) != (T & unsigned(Kokkos::Unmanaged))) }; @@ -102,10 +91,10 @@ struct MemoryTraits { namespace Kokkos { -typedef Kokkos::MemoryTraits<0> MemoryManaged; -typedef Kokkos::MemoryTraits MemoryUnmanaged; -typedef Kokkos::MemoryTraits - MemoryRandomAccess; +using MemoryManaged = Kokkos::MemoryTraits<0>; +using MemoryUnmanaged = Kokkos::MemoryTraits; +using MemoryRandomAccess = + Kokkos::MemoryTraits; } // namespace Kokkos diff --git a/lib/kokkos/core/src/Kokkos_NumericTraits.hpp b/lib/kokkos/core/src/Kokkos_NumericTraits.hpp index 88040bcbaa..7d55a96523 100644 --- a/lib/kokkos/core/src/Kokkos_NumericTraits.hpp +++ b/lib/kokkos/core/src/Kokkos_NumericTraits.hpp @@ -45,6 +45,7 @@ #ifndef KOKKOS_NUMERICTRAITS_HPP #define KOKKOS_NUMERICTRAITS_HPP +#include #include #include diff --git a/lib/kokkos/core/src/Kokkos_OpenMP.hpp b/lib/kokkos/core/src/Kokkos_OpenMP.hpp index d9b9077c6d..f5200e1e21 100644 --- a/lib/kokkos/core/src/Kokkos_OpenMP.hpp +++ b/lib/kokkos/core/src/Kokkos_OpenMP.hpp @@ -63,6 +63,7 @@ #include #include #include +#include #include @@ -105,11 +106,7 @@ class OpenMP { /// This is a no-op on OpenMP static void impl_static_fence(OpenMP const& = OpenMP()) noexcept; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static void fence(OpenMP const& = OpenMP()) noexcept; -#else void fence() const; -#endif /// \brief Does the given instance return immediately after launching /// a parallel algorithm @@ -142,58 +139,6 @@ class OpenMP { // use UniqueToken static int concurrency(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /// \brief Initialize the default execution space - static void initialize(int thread_count, int use_numa_count, - int use_cores_per_numa = 0); - - /// \brief Initialize the default execution space - /// - /// if ( thread_count == -1 ) - /// then use the number of threads that openmp defaults to - /// if ( thread_count == 0 && Kokkos::hwlow_available() ) - /// then use hwloc to choose the number of threads and change - /// the default number of threads - /// if ( thread_count > 0 ) - /// then force openmp to use the given number of threads and change - /// the default number of threads - static void initialize(int thread_count = -1); - - /// \brief is the default execution space initialized for current 'master' - /// thread - static bool is_initialized() noexcept; - - /// \brief Free any resources being consumed by the default execution space - static void finalize(); - - inline static int thread_pool_size() noexcept; - - /** \brief The rank of the executing thread in this thread pool */ - KOKKOS_INLINE_FUNCTION - static int thread_pool_rank() noexcept; - - inline static int thread_pool_size(int depth); - - static void sleep(){}; - static void wake(){}; - - // Using omp_get_max_threads(); is problematic - // On Intel (essentially an initial call to the OpenMP runtime - // without a parallel region before will set a process mask for a single core - // The runtime will than bind threads for a parallel region to other cores on - // the entering the first parallel region and make the process mask the - // aggregate of the thread masks. The intend seems to be to make serial code - // run fast, if you compile with OpenMP enabled but don't actually use - // parallel regions or so static int omp_max_threads = omp_get_max_threads(); - static int get_current_max_threads() noexcept; - - // use UniqueToken - inline static int max_hardware_threads() noexcept; - - // use UniqueToken - KOKKOS_INLINE_FUNCTION - static int hardware_thread_id() noexcept; -#else static void impl_initialize(int thread_count = -1); /// \brief is the default execution space initialized for current 'master' @@ -219,20 +164,19 @@ class OpenMP { static int impl_hardware_thread_id() noexcept; static int impl_get_current_max_threads() noexcept; -#endif static constexpr const char* name() noexcept { return "OpenMP"; } uint32_t impl_instance_id() const noexcept { return 0; } }; -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits { static constexpr DeviceType id = DeviceType::OpenMP; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools } // namespace Kokkos /*--------------------------------------------------------------------------*/ diff --git a/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp b/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp index e853b8228d..78f7831cea 100644 --- a/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp +++ b/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp @@ -78,15 +78,15 @@ class OpenMPTarget { //@{ //! Tag this class as a kokkos execution space - typedef OpenMPTarget execution_space; - typedef OpenMPTargetSpace memory_space; + using execution_space = OpenMPTarget; + using memory_space = OpenMPTargetSpace; //! This execution space preferred device_type - typedef Kokkos::Device device_type; + using device_type = Kokkos::Device; - typedef LayoutLeft array_layout; - typedef memory_space::size_type size_type; + using array_layout = LayoutLeft; + using size_type = memory_space::size_type; - typedef ScratchMemorySpace scratch_memory_space; + using scratch_memory_space = ScratchMemorySpace; inline static bool in_parallel() { return omp_in_parallel(); } @@ -121,7 +121,7 @@ class OpenMPTarget { }; } // namespace Experimental -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits<::Kokkos::Experimental::OpenMPTarget> { @@ -129,7 +129,7 @@ struct DeviceTypeTraits<::Kokkos::Experimental::OpenMPTarget> { ::Kokkos::Profiling::Experimental::DeviceType::OpenMPTarget; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools } // namespace Kokkos /*--------------------------------------------------------------------------*/ diff --git a/lib/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp b/lib/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp index 9d24a342e7..15ac8c1903 100644 --- a/lib/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp @@ -98,8 +98,8 @@ namespace Experimental { class OpenMPTargetSpace { public: //! Tag this class as a kokkos memory space - typedef OpenMPTargetSpace memory_space; - typedef size_t size_type; + using memory_space = OpenMPTargetSpace; + using size_type = size_t; /// \typedef execution_space /// \brief Default execution space for this memory space. @@ -107,10 +107,10 @@ class OpenMPTargetSpace { /// Every memory space has a default execution space. This is /// useful for things like initializing a View (which happens in /// parallel using the View's default execution space). - typedef Kokkos::Experimental::OpenMPTarget execution_space; + using execution_space = Kokkos::Experimental::OpenMPTarget; //! This memory space preferred device_type - typedef Kokkos::Device device_type; + using device_type = Kokkos::Device; /*--------------------------------*/ @@ -149,7 +149,7 @@ class SharedAllocationRecord private: friend Kokkos::Experimental::OpenMPTargetSpace; - typedef SharedAllocationRecord RecordBase; + using RecordBase = SharedAllocationRecord; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; diff --git a/lib/kokkos/core/src/Kokkos_Pair.hpp b/lib/kokkos/core/src/Kokkos_Pair.hpp index 23bb755e33..d7512eb086 100644 --- a/lib/kokkos/core/src/Kokkos_Pair.hpp +++ b/lib/kokkos/core/src/Kokkos_Pair.hpp @@ -64,9 +64,9 @@ namespace Kokkos { template struct pair { //! The first template parameter of this class. - typedef T1 first_type; + using first_type = T1; //! The second template parameter of this class. - typedef T2 second_type; + using second_type = T2; //! The first element of the pair. first_type first; @@ -156,9 +156,9 @@ struct pair { template struct pair { //! The first template parameter of this class. - typedef T1& first_type; + using first_type = T1&; //! The second template parameter of this class. - typedef T2& second_type; + using second_type = T2&; //! The first element of the pair. first_type first; @@ -213,9 +213,9 @@ struct pair { template struct pair { //! The first template parameter of this class. - typedef T1 first_type; + using first_type = T1; //! The second template parameter of this class. - typedef T2& second_type; + using second_type = T2&; //! The first element of the pair. first_type first; @@ -270,9 +270,9 @@ struct pair { template struct pair { //! The first template parameter of this class. - typedef T1& first_type; + using first_type = T1&; //! The second template parameter of this class. - typedef T2 second_type; + using second_type = T2; //! The first element of the pair. first_type first; @@ -426,8 +426,8 @@ KOKKOS_FORCEINLINE_FUNCTION pair tie(T1& x, T2& y) { // template struct pair { - typedef T1 first_type; - typedef void second_type; + using first_type = T1; + using second_type = void; first_type first; enum { second = 0 }; diff --git a/lib/kokkos/core/src/Kokkos_Parallel.hpp b/lib/kokkos/core/src/Kokkos_Parallel.hpp index 775ab9203c..9086b19efe 100644 --- a/lib/kokkos/core/src/Kokkos_Parallel.hpp +++ b/lib/kokkos/core/src/Kokkos_Parallel.hpp @@ -53,17 +53,15 @@ #include #include -#if defined(KOKKOS_ENABLE_PROFILING) -#include +#include #include -#endif #include #include #include #include -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG_PRINT_KERNEL_NAMES #include #endif @@ -83,7 +81,7 @@ namespace Impl { */ template struct FunctorPolicyExecutionSpace { - typedef Kokkos::DefaultExecutionSpace execution_space; + using execution_space = Kokkos::DefaultExecutionSpace; }; template @@ -91,7 +89,7 @@ struct FunctorPolicyExecutionSpace< Functor, Policy, typename enable_if_type::type, typename enable_if_type::type> { - typedef typename Policy ::execution_space execution_space; + using execution_space = typename Policy::execution_space; }; template @@ -99,14 +97,14 @@ struct FunctorPolicyExecutionSpace< Functor, Policy, typename enable_if_type::type, typename enable_if_type::type> { - typedef typename Policy ::execution_space execution_space; + using execution_space = typename Policy::execution_space; }; template struct FunctorPolicyExecutionSpace< Functor, Policy, EnableFunctor, typename enable_if_type::type> { - typedef typename Policy ::execution_space execution_space; + using execution_space = typename Policy::execution_space; }; template @@ -114,7 +112,7 @@ struct FunctorPolicyExecutionSpace< Functor, Policy, typename enable_if_type::type, EnablePolicy> { - typedef typename Functor::device_type::execution_space execution_space; + using execution_space = typename Functor::device_type::execution_space; }; template @@ -122,7 +120,7 @@ struct FunctorPolicyExecutionSpace< Functor, Policy, typename enable_if_type::type, EnablePolicy> { - typedef typename Functor::execution_space execution_space; + using execution_space = typename Functor::execution_space; }; } // namespace Impl @@ -137,12 +135,12 @@ namespace Kokkos { * * A "functor" is a class containing the function to execute in parallel, * data needed for that execution, and an optional \c execution_space - * typedef. Here is an example functor for parallel_for: + * alias. Here is an example functor for parallel_for: * * \code * class FunctorType { * public: - * typedef ... execution_space ; + * using execution_space = ...; * void operator() ( WorkType iwork ) const ; * }; * \endcode @@ -161,7 +159,6 @@ inline void parallel_for( typename std::enable_if< Kokkos::Impl::is_execution_policy::value>::type* = nullptr) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName closure(functor, policy); @@ -181,21 +175,19 @@ inline void parallel_for( closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelFor(kpID); } -#endif } template inline void parallel_for(const size_t work_count, const FunctorType& functor, const std::string& str = "") { - typedef typename Impl::FunctorPolicyExecutionSpace< - FunctorType, void>::execution_space execution_space; - typedef RangePolicy policy; + using execution_space = + typename Impl::FunctorPolicyExecutionSpace::execution_space; + using policy = RangePolicy; -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName name(str); @@ -203,9 +195,6 @@ inline void parallel_for(const size_t work_count, const FunctorType& functor, name.get(), Kokkos::Profiling::Experimental::device_id(policy().space()), &kpID); } -#else - (void)str; -#endif Kokkos::Impl::shared_allocation_tracking_disable(); Impl::ParallelFor closure(functor, @@ -214,11 +203,9 @@ inline void parallel_for(const size_t work_count, const FunctorType& functor, closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelFor(kpID); } -#endif } template @@ -273,11 +260,11 @@ namespace Kokkos { /// class ScanFunctor { /// public: /// // The Kokkos device type -/// typedef ... execution_space; +/// using execution_space = ...; /// // Type of an entry of the array containing the result; /// // also the type of each of the entries combined using /// // operator() or join(). -/// typedef PodType value_type; +/// using value_type = PodType; /// /// void operator () (const ExecPolicy::member_type & i, value_type& update, /// const bool final_pass) const; void init (value_type& update) const; void @@ -293,9 +280,9 @@ namespace Kokkos { /// template /// class InclScanFunctor { /// public: -/// typedef SpaceType execution_space; -/// typedef int value_type; -/// typedef typename SpaceType::size_type size_type; +/// using execution_space = SpaceType; +/// using value_type = int; +/// using size_type = typename SpaceType::size_type; /// /// InclScanFunctor( Kokkos::View x /// , Kokkos::View y ) : m_x(x), @@ -332,9 +319,9 @@ namespace Kokkos { /// template /// class ExclScanFunctor { /// public: -/// typedef SpaceType execution_space; -/// typedef int value_type; -/// typedef typename SpaceType::size_type size_type; +/// using execution_space = SpaceType; +/// using value_type = int; +/// using size_type = typename SpaceType::size_type; /// /// ExclScanFunctor (Kokkos::View x) : x_ (x) {} /// @@ -370,9 +357,9 @@ namespace Kokkos { /// template /// class OffsetScanFunctor { /// public: -/// typedef SpaceType execution_space; -/// typedef int value_type; -/// typedef typename SpaceType::size_type size_type; +/// using execution_space = SpaceType; +/// using value_type = int; +/// using size_type = typename SpaceType::size_type; /// /// // lastIndex_ is the last valid index (zero-based) of x. /// // If x has length zero, then lastIndex_ won't be used anyway. @@ -415,7 +402,6 @@ inline void parallel_scan( typename std::enable_if< Kokkos::Impl::is_execution_policy::value>::type* = nullptr) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName closure(functor, policy); @@ -435,22 +418,20 @@ inline void parallel_scan( closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelScan(kpID); } -#endif } template inline void parallel_scan(const size_t work_count, const FunctorType& functor, const std::string& str = "") { - typedef typename Kokkos::Impl::FunctorPolicyExecutionSpace< - FunctorType, void>::execution_space execution_space; + using execution_space = + typename Kokkos::Impl::FunctorPolicyExecutionSpace::execution_space; - typedef Kokkos::RangePolicy policy; + using policy = Kokkos::RangePolicy; -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName name(str); @@ -458,9 +439,6 @@ inline void parallel_scan(const size_t work_count, const FunctorType& functor, name.get(), Kokkos::Profiling::Experimental::device_id(policy().space()), &kpID); } -#else - (void)str; -#endif Kokkos::Impl::shared_allocation_tracking_disable(); Impl::ParallelScan closure(functor, @@ -469,11 +447,9 @@ inline void parallel_scan(const size_t work_count, const FunctorType& functor, closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelScan(kpID); } -#endif } template @@ -500,7 +476,6 @@ inline void parallel_scan( typename std::enable_if< Kokkos::Impl::is_execution_policy::value>::type* = nullptr) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName closure( @@ -521,11 +493,9 @@ inline void parallel_scan( closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelScan(kpID); } -#endif policy.space().fence(); } @@ -533,12 +503,12 @@ template inline void parallel_scan(const size_t work_count, const FunctorType& functor, ReturnType& return_value, const std::string& str = "") { - typedef typename Kokkos::Impl::FunctorPolicyExecutionSpace< - FunctorType, void>::execution_space execution_space; + using execution_space = + typename Kokkos::Impl::FunctorPolicyExecutionSpace::execution_space; - typedef Kokkos::RangePolicy policy; + using policy = Kokkos::RangePolicy; -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName name(str); @@ -546,9 +516,6 @@ inline void parallel_scan(const size_t work_count, const FunctorType& functor, name.get(), Kokkos::Profiling::Experimental::device_id(policy().space()), &kpID); } -#else - (void)str; -#endif Kokkos::Impl::shared_allocation_tracking_disable(); Impl::ParallelScanWithTotal closure( @@ -557,11 +524,9 @@ inline void parallel_scan(const size_t work_count, const FunctorType& functor, closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelScan(kpID); } -#endif execution_space().fence(); } diff --git a/lib/kokkos/core/src/Kokkos_Parallel_Reduce.hpp b/lib/kokkos/core/src/Kokkos_Parallel_Reduce.hpp index 4ef2dbdf0d..dbebb6ecbd 100644 --- a/lib/kokkos/core/src/Kokkos_Parallel_Reduce.hpp +++ b/lib/kokkos/core/src/Kokkos_Parallel_Reduce.hpp @@ -46,6 +46,10 @@ #define KOKKOS_PARALLEL_REDUCE_HPP #include +#include +#include +#include +#include namespace Kokkos { @@ -66,10 +70,10 @@ template struct Sum { public: // Required - typedef Sum reducer; - typedef typename std::remove_cv::type value_type; + using reducer = Sum; + using value_type = typename std::remove_cv::type; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -111,10 +115,10 @@ template struct Prod { public: // Required - typedef Prod reducer; - typedef typename std::remove_cv::type value_type; + using reducer = Prod; + using value_type = typename std::remove_cv::type; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -156,10 +160,10 @@ template struct Min { public: // Required - typedef Min reducer; - typedef typename std::remove_cv::type value_type; + using reducer = Min; + using value_type = typename std::remove_cv::type; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -203,10 +207,10 @@ template struct Max { public: // Required - typedef Max reducer; - typedef typename std::remove_cv::type value_type; + using reducer = Max; + using value_type = typename std::remove_cv::type; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -251,10 +255,10 @@ template struct LAnd { public: // Required - typedef LAnd reducer; - typedef typename std::remove_cv::type value_type; + using reducer = LAnd; + using value_type = typename std::remove_cv::type; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -297,10 +301,10 @@ template struct LOr { public: // Required - typedef LOr reducer; - typedef typename std::remove_cv::type value_type; + using reducer = LOr; + using value_type = typename std::remove_cv::type; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -344,10 +348,10 @@ template struct BAnd { public: // Required - typedef BAnd reducer; - typedef typename std::remove_cv::type value_type; + using reducer = BAnd; + using value_type = typename std::remove_cv::type; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -391,10 +395,10 @@ template struct BOr { public: // Required - typedef BOr reducer; - typedef typename std::remove_cv::type value_type; + using reducer = BOr; + using value_type = typename std::remove_cv::type; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -455,15 +459,15 @@ struct ValLocScalar { template struct MinLoc { private: - typedef typename std::remove_cv::type scalar_type; - typedef typename std::remove_cv::type index_type; + using scalar_type = typename std::remove_cv::type; + using index_type = typename std::remove_cv::type; public: // Required - typedef MinLoc reducer; - typedef ValLocScalar value_type; + using reducer = MinLoc; + using value_type = ValLocScalar; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -507,15 +511,15 @@ struct MinLoc { template struct MaxLoc { private: - typedef typename std::remove_cv::type scalar_type; - typedef typename std::remove_cv::type index_type; + using scalar_type = typename std::remove_cv::type; + using index_type = typename std::remove_cv::type; public: // Required - typedef MaxLoc reducer; - typedef ValLocScalar value_type; + using reducer = MaxLoc; + using value_type = ValLocScalar; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -576,14 +580,14 @@ struct MinMaxScalar { template struct MinMax { private: - typedef typename std::remove_cv::type scalar_type; + using scalar_type = typename std::remove_cv::type; public: // Required - typedef MinMax reducer; - typedef MinMaxScalar value_type; + using reducer = MinMax; + using value_type = MinMaxScalar; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -659,15 +663,15 @@ struct MinMaxLocScalar { template struct MinMaxLoc { private: - typedef typename std::remove_cv::type scalar_type; - typedef typename std::remove_cv::type index_type; + using scalar_type = typename std::remove_cv::type; + using index_type = typename std::remove_cv::type; public: // Required - typedef MinMaxLoc reducer; - typedef MinMaxLocScalar value_type; + using reducer = MinMaxLoc; + using value_type = MinMaxLocScalar; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; private: result_view_type value; @@ -734,14 +738,14 @@ template struct ParallelReduceReturnValue< typename std::enable_if::value>::type, ReturnType, FunctorType> { - typedef ReturnType return_type; - typedef InvalidType reducer_type; + using return_type = ReturnType; + using reducer_type = InvalidType; - typedef typename return_type::value_type value_type_scalar; - typedef typename return_type::value_type* const value_type_array; + using value_type_scalar = typename return_type::value_type; + using value_type_array = typename return_type::value_type* const; - typedef typename if_c::type value_type; + using value_type = typename if_c::type; static return_type& return_value(ReturnType& return_val, const FunctorType&) { return return_val; @@ -755,12 +759,12 @@ struct ParallelReduceReturnValue< !std::is_pointer::value) && !Kokkos::is_reducer_type::value>::type, ReturnType, FunctorType> { - typedef Kokkos::View - return_type; + using return_type = + Kokkos::View; - typedef InvalidType reducer_type; + using reducer_type = InvalidType; - typedef typename return_type::value_type value_type; + using value_type = typename return_type::value_type; static return_type return_value(ReturnType& return_val, const FunctorType&) { return return_type(&return_val); @@ -772,24 +776,19 @@ struct ParallelReduceReturnValue< typename std::enable_if<(std::is_array::value || std::is_pointer::value)>::type, ReturnType, FunctorType> { - typedef Kokkos::View::type, - Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - return_type; + using return_type = Kokkos::View::type, + Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; - typedef InvalidType reducer_type; + using reducer_type = InvalidType; - typedef typename return_type::value_type value_type[]; + using value_type = typename return_type::value_type[]; static return_type return_value(ReturnType& return_val, const FunctorType& functor) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return return_type(return_val, functor.value_count); -#else if (std::is_array::value) return return_type(return_val); else return return_type(return_val, functor.value_count); -#endif } }; @@ -797,9 +796,9 @@ template struct ParallelReduceReturnValue< typename std::enable_if::value>::type, ReturnType, FunctorType> { - typedef ReturnType return_type; - typedef ReturnType reducer_type; - typedef typename return_type::value_type value_type; + using return_type = ReturnType; + using reducer_type = ReturnType; + using value_type = typename return_type::value_type; static return_type return_value(ReturnType& return_val, const FunctorType&) { return return_val; @@ -814,7 +813,7 @@ struct ParallelReducePolicyType< typename std::enable_if< Kokkos::Impl::is_execution_policy::value>::type, PolicyType, FunctorType> { - typedef PolicyType policy_type; + using policy_type = PolicyType; static PolicyType policy(const PolicyType& policy_) { return policy_; } }; @@ -822,10 +821,11 @@ template struct ParallelReducePolicyType< typename std::enable_if::value>::type, PolicyType, FunctorType> { - typedef typename Impl::FunctorPolicyExecutionSpace< - FunctorType, void>::execution_space execution_space; + using execution_space = + typename Impl::FunctorPolicyExecutionSpace::execution_space; - typedef Kokkos::RangePolicy policy_type; + using policy_type = Kokkos::RangePolicy; static policy_type policy(const PolicyType& policy_) { return policy_type(0, policy_); @@ -835,7 +835,7 @@ struct ParallelReducePolicyType< template struct ParallelReduceFunctorType { - typedef FunctorType functor_type; + using functor_type = FunctorType; static const functor_type& functor(const functor_type& functor) { return functor; } @@ -843,18 +843,17 @@ struct ParallelReduceFunctorType { template struct ParallelReduceAdaptor { - typedef Impl::ParallelReduceReturnValue - return_value_adapter; + using return_value_adapter = + Impl::ParallelReduceReturnValue; #ifdef KOKKOS_IMPL_NEED_FUNCTOR_WRAPPER - typedef Impl::ParallelReduceFunctorType< - FunctorType, PolicyType, typename return_value_adapter::value_type, - typename PolicyType::execution_space> - functor_adaptor; + using functor_adaptor = + Impl::ParallelReduceFunctorType; #endif static inline void execute(const std::string& label, const PolicyType& policy, const FunctorType& functor, ReturnType& return_value) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName { * \code * class FunctorType { // For POD value type * public: - * typedef ... execution_space ; - * typedef value_type ; + * using execution_space = ...; + * using value_type = ; * void operator()( iwork , & update ) const ; * void init( & update ) const ; * void join( volatile & update , * volatile const & input ) const ; * - * typedef true_type has_final ; + * using has_final = true_type; * void final( & update ) const ; * }; * \endcode * * Example of a parallel_reduce functor for an array of POD (plain old data) - * values: \code class FunctorType { // For array of POD value public: typedef - * ... execution_space ; typedef value_type[] ; void operator()( - * , update[] ) const ; void init( update[] ) - * const ; void join( volatile update[] , volatile const - * input[] ) const ; + * values: + * \code + * class FunctorType { // For array of POD value + * public: + * using execution_space = ...; + * using value_type = []; + * void operator()( , update[] ) const ; + * void init( update[] ) const ; + * void join( volatile update[] , + * volatile const input[] ) const ; * - * typedef true_type has_final ; + * using has_final = true_type; * void final( update[] ) const ; * }; * \endcode @@ -975,12 +974,10 @@ struct ParallelReduceFence { // ReturnValue is scalar or array: take by reference template -inline void parallel_reduce( - const std::string& label, const PolicyType& policy, - const FunctorType& functor, ReturnType& return_value, - typename std::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = - nullptr) { +inline typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type +parallel_reduce(const std::string& label, const PolicyType& policy, + const FunctorType& functor, ReturnType& return_value) { Impl::ParallelReduceAdaptor::execute( label, policy, functor, return_value); Impl::ParallelReduceFence -inline void parallel_reduce( - const PolicyType& policy, const FunctorType& functor, - ReturnType& return_value, - typename std::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = - nullptr) { +inline typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type +parallel_reduce(const PolicyType& policy, const FunctorType& functor, + ReturnType& return_value) { Impl::ParallelReduceAdaptor::execute( "", policy, functor, return_value); Impl::ParallelReduceFence inline void parallel_reduce(const size_t& policy, const FunctorType& functor, ReturnType& return_value) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; + using policy_type = + typename Impl::ParallelReducePolicyType::policy_type; Impl::ParallelReduceAdaptor::execute( "", policy_type(0, policy), functor, return_value); Impl::ParallelReduceFence:: @@ -1015,8 +1011,9 @@ template inline void parallel_reduce(const std::string& label, const size_t& policy, const FunctorType& functor, ReturnType& return_value) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; + using policy_type = + typename Impl::ParallelReducePolicyType::policy_type; Impl::ParallelReduceAdaptor::execute( label, policy_type(0, policy), functor, return_value); Impl::ParallelReduceFence:: @@ -1026,12 +1023,10 @@ inline void parallel_reduce(const std::string& label, const size_t& policy, // ReturnValue as View or Reducer: take by copy to allow for inline construction template -inline void parallel_reduce( - const std::string& label, const PolicyType& policy, - const FunctorType& functor, const ReturnType& return_value, - typename std::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = - nullptr) { +inline typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type +parallel_reduce(const std::string& label, const PolicyType& policy, + const FunctorType& functor, const ReturnType& return_value) { ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor::execute( label, policy, functor, return_value_impl); @@ -1040,12 +1035,10 @@ inline void parallel_reduce( } template -inline void parallel_reduce( - const PolicyType& policy, const FunctorType& functor, - const ReturnType& return_value, - typename std::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = - nullptr) { +inline typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type +parallel_reduce(const PolicyType& policy, const FunctorType& functor, + const ReturnType& return_value) { ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor::execute( "", policy, functor, return_value_impl); @@ -1056,8 +1049,9 @@ inline void parallel_reduce( template inline void parallel_reduce(const size_t& policy, const FunctorType& functor, const ReturnType& return_value) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; + using policy_type = + typename Impl::ParallelReducePolicyType::policy_type; ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor::execute( "", policy_type(0, policy), functor, return_value_impl); @@ -1069,8 +1063,9 @@ template inline void parallel_reduce(const std::string& label, const size_t& policy, const FunctorType& functor, const ReturnType& return_value) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; + using policy_type = + typename Impl::ParallelReducePolicyType::policy_type; ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor::execute( label, policy_type(0, policy), functor, return_value_impl); @@ -1087,18 +1082,19 @@ inline void parallel_reduce( typename std::enable_if< Kokkos::Impl::is_execution_policy::value>::type* = nullptr) { - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef typename Kokkos::Impl::if_c< - (ValueTraits::StaticValueSize != 0), typename ValueTraits::value_type, - typename ValueTraits::pointer_type>::type value_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using value_type = + typename Kokkos::Impl::if_c<(ValueTraits::StaticValueSize != 0), + typename ValueTraits::value_type, + typename ValueTraits::pointer_type>::type; static_assert( Impl::FunctorAnalysis::has_final_member_function, "Calling parallel_reduce without either return value or final function."); - typedef Kokkos::View - result_view_type; + using result_view_type = + Kokkos::View; result_view_type result_view; Impl::ParallelReduceAdaptor::value>::type* = nullptr) { - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef typename Kokkos::Impl::if_c< - (ValueTraits::StaticValueSize != 0), typename ValueTraits::value_type, - typename ValueTraits::pointer_type>::type value_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using value_type = + typename Kokkos::Impl::if_c<(ValueTraits::StaticValueSize != 0), + typename ValueTraits::value_type, + typename ValueTraits::pointer_type>::type; static_assert( Impl::FunctorAnalysis::has_final_member_function, "Calling parallel_reduce without either return value or final function."); - typedef Kokkos::View - result_view_type; + using result_view_type = + Kokkos::View; result_view_type result_view; Impl::ParallelReduceAdaptor inline void parallel_reduce(const size_t& policy, const FunctorType& functor) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef typename Kokkos::Impl::if_c< - (ValueTraits::StaticValueSize != 0), typename ValueTraits::value_type, - typename ValueTraits::pointer_type>::type value_type; + using policy_type = + typename Impl::ParallelReducePolicyType::policy_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using value_type = + typename Kokkos::Impl::if_c<(ValueTraits::StaticValueSize != 0), + typename ValueTraits::value_type, + typename ValueTraits::pointer_type>::type; static_assert( Impl::FunctorAnalysis::has_final_member_function, "Calling parallel_reduce without either return value or final function."); - typedef Kokkos::View - result_view_type; + using result_view_type = + Kokkos::View; result_view_type result_view; Impl::ParallelReduceAdaptor inline void parallel_reduce(const std::string& label, const size_t& policy, const FunctorType& functor) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef typename Kokkos::Impl::if_c< - (ValueTraits::StaticValueSize != 0), typename ValueTraits::value_type, - typename ValueTraits::pointer_type>::type value_type; + using policy_type = + typename Impl::ParallelReducePolicyType::policy_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using value_type = + typename Kokkos::Impl::if_c<(ValueTraits::StaticValueSize != 0), + typename ValueTraits::value_type, + typename ValueTraits::pointer_type>::type; static_assert( Impl::FunctorAnalysis::has_final_member_function, "Calling parallel_reduce without either return value or final function."); - typedef Kokkos::View - result_view_type; + using result_view_type = + Kokkos::View; result_view_type result_view; Impl::ParallelReduceAdaptor #include +#include #include @@ -56,37 +57,27 @@ namespace Profiling { class ProfilingSection { public: ProfilingSection(const std::string& sectionName) : secName(sectionName) { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::createProfileSection(secName, &secID); } -#else - secID = 0; -#endif } void start() { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::startSection(secID); } -#endif } void stop() { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::stopSection(secID); } -#endif } ~ProfilingSection() { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::destroyProfileSection(secID); } -#endif } std::string getName() { return secName; } diff --git a/lib/kokkos/core/src/Kokkos_ROCm.hpp b/lib/kokkos/core/src/Kokkos_ROCm.hpp index 57113452b8..5572b2434c 100644 --- a/lib/kokkos/core/src/Kokkos_ROCm.hpp +++ b/lib/kokkos/core/src/Kokkos_ROCm.hpp @@ -102,14 +102,14 @@ class ROCm { //@{ //! Tag this class as a kokkos execution space - typedef ROCm execution_space; - typedef ROCmSpace memory_space; - typedef Kokkos::Device device_type; + using execution_space = ROCm; + using memory_space = ROCmSpace; + using device_type = Kokkos::Device; - typedef LayoutLeft array_layout; - typedef HostSpace::size_type size_type; + using array_layout = LayoutLeft; + using size_type = HostSpace::size_type; - typedef ScratchMemorySpace scratch_memory_space; + using scratch_memory_space = ScratchMemorySpace; ~ROCm() {} ROCm(); @@ -142,11 +142,7 @@ class ROCm { /** \brief Wait until all dispatched functors complete. A noop for OpenMP. */ static void impl_static_fence(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static void fence(); -#else void fence() const; -#endif /// \brief Print configuration information to the given output stream. static void print_configuration(std::ostream&, const bool detail = false); diff --git a/lib/kokkos/core/src/Kokkos_ROCmSpace.hpp b/lib/kokkos/core/src/Kokkos_ROCmSpace.hpp index 56a1a93b9d..bc63470461 100644 --- a/lib/kokkos/core/src/Kokkos_ROCmSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_ROCmSpace.hpp @@ -64,11 +64,11 @@ namespace Experimental { class ROCmSpace { public: //! Tag this class as a kokkos memory space - typedef ROCmSpace memory_space; - typedef Kokkos::Experimental::ROCm execution_space; - typedef Kokkos::Device device_type; + using memory_space = ROCmSpace; + using execution_space = Kokkos::Experimental::ROCm; + using device_type = Kokkos::Device; - typedef unsigned int size_type; + using size_type = unsigned int; /*--------------------------------*/ @@ -157,10 +157,10 @@ class ROCmHostPinnedSpace { public: //! Tag this class as a kokkos memory space /** \brief Memory is in HostSpace so use the HostSpace::execution_space */ - typedef HostSpace::execution_space execution_space; - typedef ROCmHostPinnedSpace memory_space; - typedef Kokkos::Device device_type; - typedef unsigned int size_type; + using execution_space = HostSpace::execution_space; + using memory_space = ROCmHostPinnedSpace; + using device_type = Kokkos::Device; + using size_type = unsigned int; /*--------------------------------*/ @@ -530,7 +530,7 @@ template <> class SharedAllocationRecord : public SharedAllocationRecord { private: - typedef SharedAllocationRecord RecordBase; + using RecordBase = SharedAllocationRecord; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; @@ -581,7 +581,7 @@ template <> class SharedAllocationRecord : public SharedAllocationRecord { private: - typedef SharedAllocationRecord RecordBase; + using RecordBase = SharedAllocationRecord; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; diff --git a/lib/kokkos/core/src/Kokkos_ScratchSpace.hpp b/lib/kokkos/core/src/Kokkos_ScratchSpace.hpp index 708e0218b7..4e1c267aa0 100644 --- a/lib/kokkos/core/src/Kokkos_ScratchSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_ScratchSpace.hpp @@ -46,6 +46,7 @@ #define KOKKOS_SCRATCHSPACE_HPP #include +#include #include #include @@ -84,13 +85,13 @@ class ScratchMemorySpace { public: //! Tag this class as a memory space - typedef ScratchMemorySpace memory_space; - typedef ExecSpace execution_space; + using memory_space = ScratchMemorySpace; + using execution_space = ExecSpace; //! This execution space preferred device_type - typedef Kokkos::Device device_type; + using device_type = Kokkos::Device; - typedef typename ExecSpace::array_layout array_layout; - typedef typename ExecSpace::size_type size_type; + using array_layout = typename ExecSpace::array_layout; + using size_type = typename ExecSpace::size_type; static constexpr const char* name() { return "ScratchMemorySpace"; } diff --git a/lib/kokkos/core/src/Kokkos_Serial.hpp b/lib/kokkos/core/src/Kokkos_Serial.hpp index 1f97998ea5..fefd3f7d91 100644 --- a/lib/kokkos/core/src/Kokkos_Serial.hpp +++ b/lib/kokkos/core/src/Kokkos_Serial.hpp @@ -63,7 +63,7 @@ #include #include #include -#include +#include #include @@ -89,19 +89,19 @@ class Serial { //@{ //! Tag this class as an execution space: - typedef Serial execution_space; - //! The size_type typedef best suited for this device. - typedef HostSpace::size_type size_type; + using execution_space = Serial; + //! The size_type alias best suited for this device. + using size_type = HostSpace::size_type; //! This device's preferred memory space. - typedef HostSpace memory_space; + using memory_space = HostSpace; //! This execution space preferred device_type - typedef Kokkos::Device device_type; + using device_type = Kokkos::Device; //! This device's preferred array layout. - typedef LayoutRight array_layout; + using array_layout = LayoutRight; /// \brief Scratch memory space - typedef ScratchMemorySpace scratch_memory_space; + using scratch_memory_space = ScratchMemorySpace; //@} @@ -121,11 +121,7 @@ class Serial { /// device have completed. static void impl_static_fence() {} -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static void fence() {} -#else void fence() const {} -#endif /** \brief Return the maximum amount of concurrency. */ static int concurrency() { return 1; } @@ -134,32 +130,6 @@ class Serial { static void print_configuration(std::ostream&, const bool /* detail */ = false) {} -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static bool sleep(); - static bool wake(); - - static void initialize(unsigned threads_count = 1, - unsigned use_numa_count = 0, - unsigned use_cores_per_numa = 0, - bool allow_asynchronous_threadpool = false); - - static bool is_initialized(); - - //! Free any resources being consumed by the device. - static void finalize(); - - //-------------------------------------------------------------------------- - - inline static int thread_pool_size(int = 0) { return 1; } - KOKKOS_INLINE_FUNCTION static int thread_pool_rank() { return 0; } - - //-------------------------------------------------------------------------- - - KOKKOS_INLINE_FUNCTION static unsigned hardware_thread_id() { - return thread_pool_rank(); - } - inline static unsigned max_hardware_threads() { return thread_pool_size(0); } -#else static void impl_initialize(); static bool impl_is_initialized(); @@ -180,21 +150,21 @@ class Serial { inline static unsigned impl_max_hardware_threads() { return impl_thread_pool_size(0); } -#endif + uint32_t impl_instance_id() const noexcept { return 0; } static const char* name(); //-------------------------------------------------------------------------- }; -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits { static constexpr DeviceType id = DeviceType::Serial; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools } // namespace Kokkos /*--------------------------------------------------------------------------*/ @@ -259,28 +229,18 @@ class TeamPolicyInternal public: //! Tag this class as a kokkos execution policy - typedef TeamPolicyInternal execution_policy; + using execution_policy = TeamPolicyInternal; - typedef PolicyTraits traits; + using traits = PolicyTraits; //! Execution space of this execution policy: - typedef Kokkos::Serial execution_space; + using execution_space = Kokkos::Serial; const typename traits::execution_space& space() const { static typename traits::execution_space m_space; return m_space; } - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - return *this; - } - template friend class TeamPolicyInternal; @@ -296,22 +256,6 @@ class TeamPolicyInternal } //---------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template - static int team_size_max(const FunctorType&) { - return 1; - } - - template - static int team_size_recommended(const FunctorType&) { - return 1; - } - - template - static int team_size_recommended(const FunctorType&, const int&) { - return 1; - } -#endif template int team_size_max(const FunctorType&, const ParallelForTag&) const { @@ -357,24 +301,14 @@ class TeamPolicyInternal return (level == 0 ? 1024 * 32 : 20 * 1024 * 1024); } /** \brief Specify league size, request team size */ - TeamPolicyInternal(const execution_space&, int league_size_request -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE - , - int team_size_request -#else - , - int /* team_size_request */ -#endif - , - int /* vector_length_request */ = 1) + TeamPolicyInternal(const execution_space&, int league_size_request, + int team_size_request, int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, m_league_size(league_size_request), m_chunk_size(32) { -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE if (team_size_request > 1) Kokkos::abort("Kokkos::abort: Requested Team Size is too large!"); -#endif } TeamPolicyInternal(const execution_space&, int league_size_request, @@ -386,24 +320,14 @@ class TeamPolicyInternal m_league_size(league_size_request), m_chunk_size(32) {} - TeamPolicyInternal(int league_size_request -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE - , - int team_size_request -#else - , - int /* team_size_request */ -#endif - , + TeamPolicyInternal(int league_size_request, int team_size_request, int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, m_league_size(league_size_request), m_chunk_size(32) { -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE if (team_size_request > 1) Kokkos::abort("Kokkos::abort: Requested Team Size is too large!"); -#endif } TeamPolicyInternal(int league_size_request, @@ -417,44 +341,6 @@ class TeamPolicyInternal inline int chunk_size() const { return m_chunk_size; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -487,45 +373,8 @@ class TeamPolicyInternal m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif - - typedef Impl::HostThreadTeamMember member_type; - protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif + using member_type = Impl::HostThreadTeamMember; }; } /* namespace Impl */ } /* namespace Kokkos */ @@ -540,7 +389,7 @@ namespace Impl { template class ParallelFor, Kokkos::Serial> { private: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; const FunctorType m_functor; const Policy m_policy; @@ -579,25 +428,25 @@ template class ParallelReduce, ReducerType, Kokkos::Serial> { private: - typedef Kokkos::RangePolicy Policy; - typedef typename Policy::work_tag WorkTag; + using Policy = Kokkos::RangePolicy; + using WorkTag = typename Policy::work_tag; - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef FunctorAnalysis - Analysis; + using Analysis = + FunctorAnalysis; - typedef Kokkos::Impl::FunctorValueInit ValueInit; + using ValueInit = Kokkos::Impl::FunctorValueInit; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -687,16 +536,16 @@ template class ParallelScan, Kokkos::Serial> { private: - typedef Kokkos::RangePolicy Policy; - typedef typename Policy::work_tag WorkTag; + using Policy = Kokkos::RangePolicy; + using WorkTag = typename Policy::work_tag; - typedef FunctorAnalysis - Analysis; + using Analysis = + FunctorAnalysis; - typedef Kokkos::Impl::FunctorValueInit ValueInit; + using ValueInit = Kokkos::Impl::FunctorValueInit; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -747,16 +596,16 @@ template class ParallelScanWithTotal, ReturnType, Kokkos::Serial> { private: - typedef Kokkos::RangePolicy Policy; - typedef typename Policy::work_tag WorkTag; + using Policy = Kokkos::RangePolicy; + using WorkTag = typename Policy::work_tag; - typedef FunctorAnalysis - Analysis; + using Analysis = + FunctorAnalysis; - typedef Kokkos::Impl::FunctorValueInit ValueInit; + using ValueInit = Kokkos::Impl::FunctorValueInit; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -823,12 +672,11 @@ template class ParallelFor, Kokkos::Serial> { private: - typedef Kokkos::MDRangePolicy MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; + using MDRangePolicy = Kokkos::MDRangePolicy; + using Policy = typename MDRangePolicy::impl_range_policy; - typedef typename Kokkos::Impl::HostIterateTile< - MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void> - iterate_type; + using iterate_type = typename Kokkos::Impl::HostIterateTile< + MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void>; const FunctorType m_functor; const MDRangePolicy m_mdr_policy; @@ -855,28 +703,27 @@ template class ParallelReduce, ReducerType, Kokkos::Serial> { private: - typedef Kokkos::MDRangePolicy MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; + using MDRangePolicy = Kokkos::MDRangePolicy; + using Policy = typename MDRangePolicy::impl_range_policy; - typedef typename MDRangePolicy::work_tag WorkTag; + using WorkTag = typename MDRangePolicy::work_tag; - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef FunctorAnalysis - Analysis; + using Analysis = FunctorAnalysis; - typedef Kokkos::Impl::FunctorValueInit ValueInit; + using ValueInit = Kokkos::Impl::FunctorValueInit; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::value_type value_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using value_type = typename Analysis::value_type; + using reference_type = typename Analysis::reference_type; using iterate_type = typename Kokkos::Impl::HostIterateTile, private: enum { TEAM_REDUCE_SIZE = 512 }; - typedef TeamPolicyInternal Policy; - typedef typename Policy::member_type Member; + using Policy = TeamPolicyInternal; + using Member = typename Policy::member_type; const FunctorType m_functor; const int m_league; @@ -1024,26 +871,26 @@ class ParallelReduce, private: enum { TEAM_REDUCE_SIZE = 512 }; - typedef TeamPolicyInternal Policy; + using Policy = TeamPolicyInternal; - typedef FunctorAnalysis - Analysis; + using Analysis = + FunctorAnalysis; - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueInit ValueInit; + using ValueInit = Kokkos::Impl::FunctorValueInit; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; const FunctorType m_functor; const int m_league; @@ -1152,6 +999,11 @@ class UniqueToken { /// This object should not be shared between instances UniqueToken(execution_space const& = execution_space()) noexcept {} + /// \brief create object size for requested size on given instance + /// + /// It is the users responsibility to only acquire size tokens concurrently + UniqueToken(size_type, execution_space const& = execution_space()) {} + /// \brief upper bound for acquired values, i.e. 0 <= value < size() KOKKOS_INLINE_FUNCTION int size() const noexcept { return 1; } diff --git a/lib/kokkos/core/src/Kokkos_TaskScheduler.hpp b/lib/kokkos/core/src/Kokkos_TaskScheduler.hpp index 6b9608d629..b2b2cb4473 100644 --- a/lib/kokkos/core/src/Kokkos_TaskScheduler.hpp +++ b/lib/kokkos/core/src/Kokkos_TaskScheduler.hpp @@ -232,9 +232,9 @@ class BasicTaskScheduler : public Impl::TaskSchedulerBase { explicit BasicTaskScheduler(memory_pool const& arg_memory_pool) noexcept : m_track(), m_queue(nullptr) { - typedef Kokkos::Impl::SharedAllocationRecord - record_type; + using record_type = + Kokkos::Impl::SharedAllocationRecord; record_type* record = record_type::allocate(memory_space(), "TaskQueue", sizeof(queue_type)); diff --git a/lib/kokkos/core/src/Kokkos_TaskScheduler_fwd.hpp b/lib/kokkos/core/src/Kokkos_TaskScheduler_fwd.hpp index c5f880775d..28af6345d1 100644 --- a/lib/kokkos/core/src/Kokkos_TaskScheduler_fwd.hpp +++ b/lib/kokkos/core/src/Kokkos_TaskScheduler_fwd.hpp @@ -47,6 +47,7 @@ //---------------------------------------------------------------------------- +#include #include #if defined(KOKKOS_ENABLE_TASKDAG) diff --git a/lib/kokkos/core/src/Kokkos_Threads.hpp b/lib/kokkos/core/src/Kokkos_Threads.hpp index 9dd644df2e..a99c40f97c 100644 --- a/lib/kokkos/core/src/Kokkos_Threads.hpp +++ b/lib/kokkos/core/src/Kokkos_Threads.hpp @@ -77,16 +77,16 @@ class Threads { //! \name Type declarations that all Kokkos devices must provide. //@{ //! Tag this class as a kokkos execution space - typedef Threads execution_space; - typedef Kokkos::HostSpace memory_space; + using execution_space = Threads; + using memory_space = Kokkos::HostSpace; //! This execution space preferred device_type - typedef Kokkos::Device device_type; + using device_type = Kokkos::Device; - typedef Kokkos::LayoutRight array_layout; - typedef memory_space::size_type size_type; + using array_layout = Kokkos::LayoutRight; + using size_type = memory_space::size_type; - typedef ScratchMemorySpace scratch_memory_space; + using scratch_memory_space = ScratchMemorySpace; //@} /*------------------------------------------------------------------------*/ @@ -108,45 +108,11 @@ class Threads { /// device have completed. static void impl_static_fence(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static void fence(); -#else void fence() const; -#endif /** \brief Return the maximum amount of concurrency. */ static int concurrency(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static bool sleep(); - - static bool wake(); - - static void finalize(); - - static void initialize(unsigned threads_count = 0, - unsigned use_numa_count = 0, - unsigned use_cores_per_numa = 0, - bool allow_asynchronous_threadpool = false); - - static int is_initialized(); - - static Threads& instance(int = 0); - - //---------------------------------------- - - static int thread_pool_size(int depth = 0); -#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - static int thread_pool_rank(); -#else - KOKKOS_INLINE_FUNCTION static int thread_pool_rank() { return 0; } -#endif - - inline static unsigned max_hardware_threads() { return thread_pool_size(0); } - KOKKOS_INLINE_FUNCTION static unsigned hardware_thread_id() { - return thread_pool_rank(); - } -#else /// \brief Free any resources being consumed by the device. /// /// For the Threads device, this terminates spawned worker threads. @@ -199,7 +165,6 @@ class Threads { KOKKOS_INLINE_FUNCTION static unsigned impl_hardware_thread_id() { return impl_thread_pool_rank(); } -#endif uint32_t impl_instance_id() const noexcept { return 0; } @@ -208,14 +173,14 @@ class Threads { //---------------------------------------- }; -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits { static constexpr DeviceType id = DeviceType::Threads; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools } // namespace Kokkos /*--------------------------------------------------------------------------*/ diff --git a/lib/kokkos/core/src/Kokkos_Timer.hpp b/lib/kokkos/core/src/Kokkos_Timer.hpp index 1dab73b44c..4fda4ec4d4 100644 --- a/lib/kokkos/core/src/Kokkos_Timer.hpp +++ b/lib/kokkos/core/src/Kokkos_Timer.hpp @@ -45,6 +45,7 @@ #ifndef KOKKOS_TIMER_HPP #define KOKKOS_TIMER_HPP +#include #include namespace Kokkos { diff --git a/lib/kokkos/core/src/Kokkos_UniqueToken.hpp b/lib/kokkos/core/src/Kokkos_UniqueToken.hpp index 523ccad948..bce7e703f0 100644 --- a/lib/kokkos/core/src/Kokkos_UniqueToken.hpp +++ b/lib/kokkos/core/src/Kokkos_UniqueToken.hpp @@ -46,6 +46,8 @@ #define KOKKOS_UNIQUE_TOKEN_HPP #include +#include +#include namespace Kokkos { namespace Experimental { @@ -82,6 +84,95 @@ class UniqueToken { void release(size_type) const; }; +/// \brief Instance scope UniqueToken allows for a max size other than +/// execution_space::concurrency() +/// +/// This object should behave like a ref-counted object, so that when the last +/// instance is destroyed, resources are free if needed +template +class UniqueToken + : public UniqueToken { + public: + using execution_space = ExecutionSpace; + using size_type = typename execution_space::size_type; + + /// \brief Create object with specified size + /// + /// It is required that max_size is >= the maximum number of concurrent + /// threads that will attempt to acquire the UniqueToken. This constructor is + /// most commonly useful when you: + /// 1) Have a loop bound that may be smaller than + /// execution_space::concurrency(). + /// 2) Want a per-team unique token in the range [0, + /// execution_space::concurrency() / team_size) + UniqueToken(size_type max_size, execution_space const& = execution_space()); +}; + +// NOTE There was an agreement amongst developers that "AcquireUniqueToken" is a +// bad name but at this time no one has suggested a better alternative. + +/// \brief RAII helper for per-thread unique token values. +/// +/// The token value will be acquired at construction and automatically +/// released at destruction. +template +class AcquireUniqueToken { + public: + using exec_space = ExecutionSpace; + using size_type = typename exec_space::size_type; + using token_type = UniqueToken; + + private: + token_type my_token; + size_type my_acquired_val; + + public: + KOKKOS_FUNCTION AcquireUniqueToken(token_type t) + : my_token(t), my_acquired_val(my_token.acquire()) {} + + KOKKOS_FUNCTION ~AcquireUniqueToken() { my_token.release(my_acquired_val); } + + KOKKOS_FUNCTION size_type value() const { return my_acquired_val; } +}; + +/// \brief RAII helper for per-team unique token values. +/// +/// The token value will be acquired at construction and automatically +/// released at destruction. All threads in a team will share the same +/// token value. +template +class AcquireTeamUniqueToken { + public: + using exec_space = typename TeamPolicy::execution_space; + using token_type = UniqueToken; + using size_type = typename token_type::size_type; + using team_member_type = typename TeamPolicy::member_type; + using scratch_view = + Kokkos::View; + + private: + token_type my_token; + size_type my_acquired_val; + scratch_view my_team_acquired_val; + team_member_type my_team; + + public: + // NOTE The implementations of the constructor and destructor use + // `Kokkos::single()` which is an inline function defined in each backend. + // This creates circular dependency issues. Moving them to a separate header + // is less than ideal and should be revisited later. Having a `UniqueToken` + // forward declaration was considered but the non-type template parameter + // makes things complicated because it would require moving the definition of + // `UniqueTokenScope` enumeration type and its enumerators away which would + // hurt readability. + KOKKOS_FUNCTION AcquireTeamUniqueToken(token_type t, team_member_type team); + KOKKOS_FUNCTION ~AcquireTeamUniqueToken(); + KOKKOS_FUNCTION size_type value() const { return my_acquired_val; } + static std::size_t shmem_size() { return scratch_view::shmem_size(); } +}; + } // namespace Experimental } // namespace Kokkos diff --git a/lib/kokkos/core/src/Kokkos_Vectorization.hpp b/lib/kokkos/core/src/Kokkos_Vectorization.hpp index cd24734100..a232e5b3ab 100644 --- a/lib/kokkos/core/src/Kokkos_Vectorization.hpp +++ b/lib/kokkos/core/src/Kokkos_Vectorization.hpp @@ -47,6 +47,8 @@ #ifndef KOKKOS_VECTORIZATION_HPP #define KOKKOS_VECTORIZATION_HPP +#include + #if defined(KOKKOS_ENABLE_CUDA) #include #elif defined(KOKKOS_ENABLE_HIP) diff --git a/lib/kokkos/core/src/Kokkos_View.hpp b/lib/kokkos/core/src/Kokkos_View.hpp index 3d68d780a2..8e6f38163a 100644 --- a/lib/kokkos/core/src/Kokkos_View.hpp +++ b/lib/kokkos/core/src/Kokkos_View.hpp @@ -55,9 +55,7 @@ #include #include -#if defined(KOKKOS_ENABLE_PROFILING) -#include -#endif +#include //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -93,7 +91,6 @@ KOKKOS_INLINE_FUNCTION std::size_t count_valid_integers( (i6 != KOKKOS_INVALID_INDEX) + (i7 != KOKKOS_INVALID_INDEX); } -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE KOKKOS_INLINE_FUNCTION void runtime_check_rank_device(const size_t dyn_rank, const bool is_void_spec, const size_t i0, const size_t i1, @@ -111,16 +108,8 @@ void runtime_check_rank_device(const size_t dyn_rank, const bool is_void_spec, } } } -#else -KOKKOS_INLINE_FUNCTION -void runtime_check_rank_device(const size_t, const bool, const size_t, - const size_t, const size_t, const size_t, - const size_t, const size_t, const size_t, - const size_t) {} -#endif #ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE KOKKOS_INLINE_FUNCTION void runtime_check_rank_host(const size_t dyn_rank, const bool is_void_spec, const size_t i0, const size_t i1, const size_t i2, @@ -141,13 +130,6 @@ void runtime_check_rank_host(const size_t dyn_rank, const bool is_void_spec, } } } -#else -KOKKOS_INLINE_FUNCTION -void runtime_check_rank_host(const size_t, const bool, const size_t, - const size_t, const size_t, const size_t, - const size_t, const size_t, const size_t, - const size_t, const std::string&) {} -#endif #endif } /* namespace Impl */ @@ -188,23 +170,23 @@ struct ViewTraits; template <> struct ViewTraits { - typedef void execution_space; - typedef void memory_space; - typedef void HostMirrorSpace; - typedef void array_layout; - typedef void memory_traits; - typedef void specialize; + using execution_space = void; + using memory_space = void; + using HostMirrorSpace = void; + using array_layout = void; + using memory_traits = void; + using specialize = void; }; template struct ViewTraits { // Ignore an extraneous 'void' - typedef typename ViewTraits::execution_space execution_space; - typedef typename ViewTraits::memory_space memory_space; - typedef typename ViewTraits::HostMirrorSpace HostMirrorSpace; - typedef typename ViewTraits::array_layout array_layout; - typedef typename ViewTraits::memory_traits memory_traits; - typedef typename ViewTraits::specialize specialize; + using execution_space = typename ViewTraits::execution_space; + using memory_space = typename ViewTraits::memory_space; + using HostMirrorSpace = typename ViewTraits::HostMirrorSpace; + using array_layout = typename ViewTraits::array_layout; + using memory_traits = typename ViewTraits::memory_traits; + using specialize = typename ViewTraits::specialize; }; template @@ -213,12 +195,12 @@ struct ViewTraits { // Specify layout, keep subsequent space and memory traits arguments - typedef typename ViewTraits::execution_space execution_space; - typedef typename ViewTraits::memory_space memory_space; - typedef typename ViewTraits::HostMirrorSpace HostMirrorSpace; - typedef ArrayLayout array_layout; - typedef typename ViewTraits::memory_traits memory_traits; - typedef typename ViewTraits::specialize specialize; + using execution_space = typename ViewTraits::execution_space; + using memory_space = typename ViewTraits::memory_space; + using HostMirrorSpace = typename ViewTraits::HostMirrorSpace; + using array_layout = ArrayLayout; + using memory_traits = typename ViewTraits::memory_traits; + using specialize = typename ViewTraits::specialize; }; template @@ -238,13 +220,13 @@ struct ViewTraits< void>::value, "Only one View Execution or Memory Space template argument"); - typedef typename Space::execution_space execution_space; - typedef typename Space::memory_space memory_space; - typedef typename Kokkos::Impl::HostMirror::Space::memory_space - HostMirrorSpace; - typedef typename execution_space::array_layout array_layout; - typedef typename ViewTraits::memory_traits memory_traits; - typedef typename ViewTraits::specialize specialize; + using execution_space = typename Space::execution_space; + using memory_space = typename Space::memory_space; + using HostMirrorSpace = + typename Kokkos::Impl::HostMirror::Space::memory_space; + using array_layout = typename execution_space::array_layout; + using memory_traits = typename ViewTraits::memory_traits; + using specialize = typename ViewTraits::specialize; }; template @@ -264,84 +246,79 @@ struct ViewTraits::value, "MemoryTrait is the final optional template argument for a View"); - typedef void execution_space; - typedef void memory_space; - typedef void HostMirrorSpace; - typedef void array_layout; - typedef MemoryTraits memory_traits; - typedef void specialize; + using execution_space = void; + using memory_space = void; + using HostMirrorSpace = void; + using array_layout = void; + using memory_traits = MemoryTraits; + using specialize = void; }; template struct ViewTraits { private: // Unpack the properties arguments - typedef ViewTraits prop; + using prop = ViewTraits; - typedef typename std::conditional< + using ExecutionSpace = typename std::conditional< !std::is_same::value, - typename prop::execution_space, Kokkos::DefaultExecutionSpace>::type - ExecutionSpace; + typename prop::execution_space, Kokkos::DefaultExecutionSpace>::type; - typedef typename std::conditional< + using MemorySpace = typename std::conditional< !std::is_same::value, - typename prop::memory_space, typename ExecutionSpace::memory_space>::type - MemorySpace; + typename prop::memory_space, typename ExecutionSpace::memory_space>::type; - typedef typename std::conditional< + using ArrayLayout = typename std::conditional< !std::is_same::value, - typename prop::array_layout, typename ExecutionSpace::array_layout>::type - ArrayLayout; + typename prop::array_layout, typename ExecutionSpace::array_layout>::type; - typedef typename std::conditional< + using HostMirrorSpace = typename std::conditional< !std::is_same::value, typename prop::HostMirrorSpace, - typename Kokkos::Impl::HostMirror::Space>::type - HostMirrorSpace; + typename Kokkos::Impl::HostMirror::Space>::type; - typedef typename std::conditional< + using MemoryTraits = typename std::conditional< !std::is_same::value, - typename prop::memory_traits, typename Kokkos::MemoryManaged>::type - MemoryTraits; + typename prop::memory_traits, typename Kokkos::MemoryManaged>::type; // Analyze data type's properties, // May be specialized based upon the layout and value type - typedef Kokkos::Impl::ViewDataAnalysis data_analysis; + using data_analysis = Kokkos::Impl::ViewDataAnalysis; public: //------------------------------------ // Data type traits: - typedef typename data_analysis::type data_type; - typedef typename data_analysis::const_type const_data_type; - typedef typename data_analysis::non_const_type non_const_data_type; + using data_type = typename data_analysis::type; + using const_data_type = typename data_analysis::const_type; + using non_const_data_type = typename data_analysis::non_const_type; //------------------------------------ // Compatible array of trivial type traits: - typedef typename data_analysis::scalar_array_type scalar_array_type; - typedef - typename data_analysis::const_scalar_array_type const_scalar_array_type; - typedef typename data_analysis::non_const_scalar_array_type - non_const_scalar_array_type; + using scalar_array_type = typename data_analysis::scalar_array_type; + using const_scalar_array_type = + typename data_analysis::const_scalar_array_type; + using non_const_scalar_array_type = + typename data_analysis::non_const_scalar_array_type; //------------------------------------ // Value type traits: - typedef typename data_analysis::value_type value_type; - typedef typename data_analysis::const_value_type const_value_type; - typedef typename data_analysis::non_const_value_type non_const_value_type; + using value_type = typename data_analysis::value_type; + using const_value_type = typename data_analysis::const_value_type; + using non_const_value_type = typename data_analysis::non_const_value_type; //------------------------------------ // Mapping traits: - typedef ArrayLayout array_layout; - typedef typename data_analysis::dimension dimension; + using array_layout = ArrayLayout; + using dimension = typename data_analysis::dimension; - typedef typename std::conditional< + using specialize = typename std::conditional< std::is_same::value, - typename prop::specialize, typename data_analysis::specialize>::type - specialize; /* mapping specialization tag */ + typename prop::specialize, typename data_analysis::specialize>:: + type; /* mapping specialization tag */ enum { rank = dimension::rank }; enum { rank_dynamic = dimension::rank_dynamic }; @@ -349,13 +326,13 @@ struct ViewTraits { //------------------------------------ // Execution space, memory space, memory access traits, and host mirror space. - typedef ExecutionSpace execution_space; - typedef MemorySpace memory_space; - typedef Kokkos::Device device_type; - typedef MemoryTraits memory_traits; - typedef HostMirrorSpace host_mirror_space; + using execution_space = ExecutionSpace; + using memory_space = MemorySpace; + using device_type = Kokkos::Device; + using memory_traits = MemoryTraits; + using host_mirror_space = HostMirrorSpace; - typedef typename MemorySpace::size_type size_type; + using size_type = typename MemorySpace::size_type; enum { is_hostspace = std::is_same::value }; enum { is_managed = MemoryTraits::is_unmanaged == 0 }; @@ -447,8 +424,10 @@ struct ViewTraits { * } * \endcode */ -template -class View; + +} // namespace Kokkos + +namespace Kokkos { template struct is_always_assignable_impl; @@ -552,8 +531,8 @@ constexpr Kokkos::Impl::AllowPadding_t AllowPadding = template inline Impl::ViewCtorProp::type...> view_alloc(Args const&... args) { - typedef Impl::ViewCtorProp::type...> - return_type; + using return_type = + Impl::ViewCtorProp::type...>; static_assert(!return_type::has_pointer, "Cannot give pointer-to-memory for view allocation"); @@ -565,8 +544,8 @@ template KOKKOS_INLINE_FUNCTION Impl::ViewCtorProp::type...> view_wrap(Args const&... args) { - typedef Impl::ViewCtorProp::type...> - return_type; + using return_type = + Impl::ViewCtorProp::type...>; static_assert(!return_type::has_memory_space && !return_type::has_execution_space && @@ -603,65 +582,64 @@ class View : public ViewTraits { template friend class Kokkos::Impl::ViewMapping; + using view_tracker_type = Kokkos::Impl::ViewTracker; + public: - typedef ViewTraits traits; + using traits = ViewTraits; private: - typedef Kokkos::Impl::ViewMapping - map_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using map_type = + Kokkos::Impl::ViewMapping; + template + friend struct Kokkos::Impl::ViewTracker; - track_type m_track; + view_tracker_type m_track; map_type m_map; public: //---------------------------------------- /** \brief Compatible view of array of scalar types */ - typedef View - array_type; + using array_type = + View; /** \brief Compatible view of const data type */ - typedef View - const_type; + using const_type = + View; /** \brief Compatible view of non-const data type */ - typedef View - non_const_type; + using non_const_type = + View; /** \brief Compatible HostMirror view */ - typedef View> - HostMirror; + using HostMirror = + View>; /** \brief Compatible HostMirror view */ - typedef View - host_mirror_type; + using host_mirror_type = + View; /** \brief Unified types */ - typedef typename Impl::ViewUniformType::type uniform_type; - typedef - typename Impl::ViewUniformType::const_type uniform_const_type; - typedef typename Impl::ViewUniformType::runtime_type - uniform_runtime_type; - typedef typename Impl::ViewUniformType::runtime_const_type - uniform_runtime_const_type; - typedef typename Impl::ViewUniformType::nomemspace_type - uniform_nomemspace_type; - typedef typename Impl::ViewUniformType::const_nomemspace_type - uniform_const_nomemspace_type; - typedef typename Impl::ViewUniformType::runtime_nomemspace_type - uniform_runtime_nomemspace_type; - typedef typename Impl::ViewUniformType::runtime_const_nomemspace_type - uniform_runtime_const_nomemspace_type; + using uniform_type = typename Impl::ViewUniformType::type; + using uniform_const_type = + typename Impl::ViewUniformType::const_type; + using uniform_runtime_type = + typename Impl::ViewUniformType::runtime_type; + using uniform_runtime_const_type = + typename Impl::ViewUniformType::runtime_const_type; + using uniform_nomemspace_type = + typename Impl::ViewUniformType::nomemspace_type; + using uniform_const_nomemspace_type = + typename Impl::ViewUniformType::const_nomemspace_type; + using uniform_runtime_nomemspace_type = + typename Impl::ViewUniformType::runtime_nomemspace_type; + using uniform_runtime_const_nomemspace_type = + typename Impl::ViewUniformType::runtime_const_nomemspace_type; //---------------------------------------- // Domain rank and extents @@ -703,44 +681,6 @@ class View : public ViewTraits { * ISO/C++ vocabulary 'extent'. */ -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - - template - KOKKOS_INLINE_FUNCTION constexpr - typename std::enable_if::value, size_t>::type - dimension(const iType& r) const { - return extent(r); - } - - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_0() const { - return m_map.dimension_0(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_1() const { - return m_map.dimension_1(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_2() const { - return m_map.dimension_2(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_3() const { - return m_map.dimension_3(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_4() const { - return m_map.dimension_4(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_5() const { - return m_map.dimension_5(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_6() const { - return m_map.dimension_6(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_7() const { - return m_map.dimension_7(); - } - -#endif - - //---------------------------------------- - KOKKOS_INLINE_FUNCTION constexpr size_t size() const { return m_map.dimension_0() * m_map.dimension_1() * m_map.dimension_2() * m_map.dimension_3() * m_map.dimension_4() * m_map.dimension_5() * @@ -802,8 +742,8 @@ class View : public ViewTraits { //---------------------------------------- // Range span is the span which contains all members. - typedef typename map_type::reference_type reference_type; - typedef typename map_type::pointer_type pointer_type; + using reference_type = typename map_type::reference_type; + using pointer_type = typename map_type::pointer_type; enum { reference_type_is_lvalue_reference = @@ -811,40 +751,19 @@ class View : public ViewTraits { }; KOKKOS_INLINE_FUNCTION constexpr size_t span() const { return m_map.span(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // Deprecated, use 'span()' instead - KOKKOS_INLINE_FUNCTION constexpr size_t capacity() const { - return m_map.span(); - } -#endif KOKKOS_INLINE_FUNCTION bool span_is_contiguous() const { return m_map.span_is_contiguous(); } - KOKKOS_INLINE_FUNCTION constexpr pointer_type data() const { - return m_map.data(); - } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // Deprecated, use 'span_is_contigous()' instead - KOKKOS_INLINE_FUNCTION constexpr bool is_contiguous() const { - return m_map.span_is_contiguous(); + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return m_map.data() != nullptr; } - // Deprecated, use 'data()' instead - KOKKOS_INLINE_FUNCTION constexpr pointer_type ptr_on_device() const { + KOKKOS_INLINE_FUNCTION constexpr pointer_type data() const { return m_map.data(); } -#endif //---------------------------------------- // Allow specializations to query their specialized map -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - KOKKOS_INLINE_FUNCTION - const Kokkos::Impl::ViewMapping& - implementation_map() const { - return m_map; - } -#endif KOKKOS_INLINE_FUNCTION const Kokkos::Impl::ViewMapping& impl_map() const { @@ -852,7 +771,7 @@ class View : public ViewTraits { } KOKKOS_INLINE_FUNCTION const Kokkos::Impl::SharedAllocationTracker& impl_track() const { - return m_track; + return m_track.m_tracker; } //---------------------------------------- @@ -904,315 +823,6 @@ class View : public ViewTraits { #endif public: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral::value && - (0 == Rank)), - reference_type>::type - operator()(Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, args...)) - return m_map.reference(); - } - - template - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral::value && - (1 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, args...)) - return m_map.reference(i0); - } - - template - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral::value && - (1 == Rank) && is_default_map && - !is_layout_stride), - reference_type>::type - operator()(const I0& i0, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, args...)) - return m_map.m_impl_handle[i0]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral::value && - (1 == Rank) && is_default_map && - is_layout_stride), - reference_type>::type - operator()(const I0& i0, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset.m_stride.S0 * i0]; - } - - //------------------------------ - // Rank 1 operator[] - - template - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral::value && - (1 == Rank) && !is_default_map), - reference_type>::type - operator[](const I0& i0) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0)) - return m_map.reference(i0); - } - - template - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral::value && - (1 == Rank) && is_default_map && - !is_layout_stride), - reference_type>::type - operator[](const I0& i0) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0)) - return m_map.m_impl_handle[i0]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral::value && - (1 == Rank) && is_default_map && - is_layout_stride), - reference_type>::type - operator[](const I0& i0) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0)) - return m_map.m_impl_handle[m_map.m_impl_offset.m_stride.S0 * i0]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && (2 == Rank) && - !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.reference(i0, i1); - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && (2 == Rank) && - is_default_map && is_layout_left && (traits::rank_dynamic == 0)), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.m_impl_handle[i0 + m_map.m_impl_offset.m_dim.N0 * i1]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && (2 == Rank) && - is_default_map && is_layout_left && (traits::rank_dynamic != 0)), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.m_impl_handle[i0 + m_map.m_impl_offset.m_stride * i1]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && (2 == Rank) && - is_default_map && is_layout_right && (traits::rank_dynamic == 0)), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.m_impl_handle[i1 + m_map.m_impl_offset.m_dim.N1 * i0]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && (2 == Rank) && - is_default_map && is_layout_right && (traits::rank_dynamic != 0)), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.m_impl_handle[i1 + m_map.m_impl_offset.m_stride * i0]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && (2 == Rank) && - is_default_map && is_layout_stride), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.m_impl_handle[i0 * m_map.m_impl_offset.m_stride.S0 + - i1 * m_map.m_impl_offset.m_stride.S1]; - } - - //------------------------------ - // Rank 3 - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && (3 == Rank) && - is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2)]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && (3 == Rank) && - !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, args...)) - return m_map.reference(i0, i1, i2); - } - - //------------------------------ - // Rank 4 - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && - (4 == Rank) && is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, i3, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3)]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && - (4 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, i3, args...)) - return m_map.reference(i0, i1, i2, i3); - } - - //------------------------------ - // Rank 5 - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && - (5 == Rank) && is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4)]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && - (5 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, args...)) - return m_map.reference(i0, i1, i2, i3, i4); - } - - //------------------------------ - // Rank 6 - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && - (6 == Rank) && is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4, i5)]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && - (6 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, args...)) - return m_map.reference(i0, i1, i2, i3, i4, i5); - } - - //------------------------------ - // Rank 7 - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && - (7 == Rank) && is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, const I6& i6, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4, i5, i6)]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && - (7 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, const I6& i6, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, args...)) - return m_map.reference(i0, i1, i2, i3, i4, i5, i6); - } - - //------------------------------ - // Rank 8 - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && - (8 == Rank) && is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, const I6& i6, const I7& i7, - Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, i7, args...)) - return m_map - .m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4, i5, i6, i7)]; - } - - template - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral::value && - (8 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, const I6& i6, const I7& i7, - Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, i7, args...)) - return m_map.reference(i0, i1, i2, i3, i4, i5, i6, i7); - } - -#else //------------------------------ // Rank 0 operator() @@ -1513,7 +1123,6 @@ class View : public ViewTraits { return m_map.reference(i0, i1, i2, i3, i4, i5, i6, i7); } -#endif template KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if<(Kokkos::Impl::are_integral::value && @@ -1810,30 +1419,20 @@ class View : public ViewTraits { KOKKOS_DEFAULTED_FUNCTION ~View() = default; - KOKKOS_INLINE_FUNCTION - View() : m_track(), m_map() {} + KOKKOS_DEFAULTED_FUNCTION + View() = default; - KOKKOS_INLINE_FUNCTION - View(const View& rhs) - : m_track(rhs.m_track, traits::is_managed), m_map(rhs.m_map) {} + KOKKOS_DEFAULTED_FUNCTION + View(const View&) = default; - KOKKOS_INLINE_FUNCTION - View(View&& rhs) - : m_track(std::move(rhs.m_track)), m_map(std::move(rhs.m_map)) {} + KOKKOS_DEFAULTED_FUNCTION + View(View&&) = default; - KOKKOS_INLINE_FUNCTION - View& operator=(const View& rhs) { - m_track = rhs.m_track; - m_map = rhs.m_map; - return *this; - } + KOKKOS_DEFAULTED_FUNCTION + View& operator=(const View&) = default; - KOKKOS_INLINE_FUNCTION - View& operator=(View&& rhs) { - m_track = std::move(rhs.m_track); - m_map = std::move(rhs.m_map); - return *this; - } + KOKKOS_DEFAULTED_FUNCTION + View& operator=(View&&) = default; //---------------------------------------- // Compatible view copy constructor and assignment @@ -1846,14 +1445,13 @@ class View : public ViewTraits { traits, typename View::traits, typename traits::specialize>::is_assignable_data_type>::type* = nullptr) - : m_track(rhs.m_track, traits::is_managed), m_map() { - typedef typename View::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping - Mapping; + : m_track(rhs), m_map() { + using SrcTraits = typename View::traits; + using Mapping = Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible View copy construction"); - Mapping::assign(m_map, rhs.m_map, rhs.m_track); + Mapping::assign(m_map, rhs.m_map, rhs.m_track.m_tracker); } template @@ -1863,13 +1461,12 @@ class View : public ViewTraits { typename traits::specialize>::is_assignable_data_type, View>::type& operator=(const View& rhs) { - typedef typename View::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping - Mapping; + using SrcTraits = typename View::traits; + using Mapping = Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible View copy assignment"); - Mapping::assign(m_map, rhs.m_map, rhs.m_track); - m_track.assign(rhs.m_track, traits::is_managed); + Mapping::assign(m_map, rhs.m_map, rhs.m_track.m_tracker); + m_track.assign(rhs); return *this; } @@ -1880,16 +1477,13 @@ class View : public ViewTraits { template KOKKOS_INLINE_FUNCTION View(const View& src_view, const Arg0 arg0, Args... args) - : m_track(src_view.m_track, traits::is_managed), m_map() { - typedef View SrcType; + : m_track(src_view), m_map() { + using SrcType = View; - typedef Kokkos::Impl::ViewMapping - Mapping; + using Mapping = Kokkos::Impl::ViewMapping; - typedef typename Mapping::type DstType; + using DstType = typename Mapping::type; static_assert( Kokkos::Impl::ViewMapping { // Allocation tracking properties KOKKOS_INLINE_FUNCTION - int use_count() const { return m_track.use_count(); } + int use_count() const { return m_track.m_tracker.use_count(); } inline const std::string label() const { - return m_track.template get_label(); + return m_track.m_tracker + .template get_label(); } //---------------------------------------- @@ -1920,35 +1515,29 @@ class View : public ViewTraits { arg_layout) : m_track(), m_map() { // Append layout and spaces if not input - typedef Impl::ViewCtorProp alloc_prop_input; + using alloc_prop_input = Impl::ViewCtorProp; // use 'std::integral_constant' for non-types // to avoid duplicate class error. - typedef Impl::ViewCtorProp< + using alloc_prop = Impl::ViewCtorProp< P..., typename std::conditional, + std::integral_constant, typename std::string>::type, typename std::conditional< alloc_prop_input::has_memory_space, - std::integral_constant, + std::integral_constant, typename traits::device_type::memory_space>::type, typename std::conditional< alloc_prop_input::has_execution_space, - std::integral_constant, - typename traits::device_type::execution_space>::type> - alloc_prop; + std::integral_constant, + typename traits::device_type::execution_space>::type>; static_assert(traits::is_managed, "View allocation constructor requires managed memory"); if (alloc_prop::initialize && -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - !alloc_prop::execution_space::is_initialized() -#else - !alloc_prop::execution_space::impl_is_initialized() -#endif - ) { + !alloc_prop::execution_space::impl_is_initialized()) { // If initializing view data then // the execution space must be initialized. Kokkos::Impl::throw_runtime_exception( @@ -1986,12 +1575,12 @@ class View : public ViewTraits { //------------------------------------------------------------ // Setup and initialization complete, start tracking - m_track.assign_allocated_record_to_uninitialized(record); + m_track.m_tracker.assign_allocated_record_to_uninitialized(record); } KOKKOS_INLINE_FUNCTION void assign_data(pointer_type arg_data) { - m_track.clear(); + m_track.m_tracker.clear(); m_map.assign_data(arg_data); } @@ -2152,14 +1741,31 @@ class View : public ViewTraits { #endif } + // Construct view from ViewTracker and map + // This should be the preferred method because future extensions may need to + // use the ViewTracker class. + template + KOKKOS_INLINE_FUNCTION View( + const view_tracker_type& track, + const Kokkos::Impl::ViewMapping& map) + : m_track(track), m_map() { + using Mapping = + Kokkos::Impl::ViewMapping; + static_assert(Mapping::is_assignable, + "Incompatible View copy construction"); + Mapping::assign(m_map, map, track.m_tracker); + } + + // Construct View from internal shared allocation tracker object and map + // This is here for backwards compatibility for classes that derive from + // Kokkos::View template KOKKOS_INLINE_FUNCTION View( - const track_type& track, + const typename view_tracker_type::track_type& track, const Kokkos::Impl::ViewMapping& map) : m_track(track), m_map() { - typedef Kokkos::Impl::ViewMapping - Mapping; + using Mapping = + Kokkos::Impl::ViewMapping; static_assert(Mapping::is_assignable, "Incompatible View copy construction"); Mapping::assign(m_map, map, track); @@ -2344,8 +1950,8 @@ template KOKKOS_INLINE_FUNCTION bool operator==(const View& lhs, const View& rhs) { // Same data, layout, dimensions - typedef ViewTraits lhs_traits; - typedef ViewTraits rhs_traits; + using lhs_traits = ViewTraits; + using rhs_traits = ViewTraits; return std::is_same::value && diff --git a/lib/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp b/lib/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp index 6ff2f0d4b7..bdc8993c39 100644 --- a/lib/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp +++ b/lib/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp @@ -45,6 +45,9 @@ #ifndef KOKKOS_WORKGRAPHPOLICY_HPP #define KOKKOS_WORKGRAPHPOLICY_HPP +#include +#include + namespace Kokkos { namespace Impl { @@ -245,6 +248,10 @@ class WorkGraphPolicy : public Kokkos::Impl::PolicyTraits { #include "Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp" #endif +#ifdef KOKKOS_ENABLE_HIP +#include "HIP/Kokkos_HIP_WorkGraphPolicy.hpp" +#endif + #ifdef KOKKOS_ENABLE_THREADS #include "Threads/Kokkos_Threads_WorkGraphPolicy.hpp" #endif diff --git a/lib/kokkos/core/src/Kokkos_hwloc.hpp b/lib/kokkos/core/src/Kokkos_hwloc.hpp index f343ef80b4..23fa0a0c67 100644 --- a/lib/kokkos/core/src/Kokkos_hwloc.hpp +++ b/lib/kokkos/core/src/Kokkos_hwloc.hpp @@ -45,6 +45,8 @@ #ifndef KOKKOS_HWLOC_HPP #define KOKKOS_HWLOC_HPP +#include + #include namespace Kokkos { diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp index 21151156e3..117a7e7345 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp @@ -56,7 +56,7 @@ #include #include -#include +#include namespace Kokkos { namespace Impl { @@ -250,12 +250,7 @@ namespace Kokkos { //---------------------------------------------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int OpenMP::get_current_max_threads() noexcept -#else -int OpenMP::impl_get_current_max_threads() noexcept -#endif -{ +int OpenMP::impl_get_current_max_threads() noexcept { // Using omp_get_max_threads(); is problematic in conjunction with // Hwloc on Intel (essentially an initial call to the OpenMP runtime // without a parallel region before will set a process mask for a single core @@ -274,12 +269,7 @@ int OpenMP::impl_get_current_max_threads() noexcept return count; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void OpenMP::initialize(int thread_count) -#else -void OpenMP::impl_initialize(int thread_count) -#endif -{ +void OpenMP::impl_initialize(int thread_count) { if (omp_in_parallel()) { std::string msg("Kokkos::OpenMP::initialize ERROR : in parallel"); Kokkos::Impl::throw_runtime_exception(msg); @@ -306,11 +296,7 @@ void OpenMP::impl_initialize(int thread_count) // Before any other call to OMP query the maximum number of threads // and save the value for re-initialization unit testing. -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Impl::g_openmp_hardware_max_threads = get_current_max_threads(); -#else Impl::g_openmp_hardware_max_threads = impl_get_current_max_threads(); -#endif int process_num_threads = Impl::g_openmp_hardware_max_threads; @@ -391,20 +377,11 @@ void OpenMP::impl_initialize(int thread_count) } // Init the array for used for arbitrarily sized atomics Impl::init_lock_array_host_space(); - -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) && defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif } //---------------------------------------------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void OpenMP::finalize() -#else -void OpenMP::impl_finalize() -#endif -{ +void OpenMP::impl_finalize() { if (omp_in_parallel()) { std::string msg("Kokkos::OpenMP::finalize ERROR "); if (!Impl::t_openmp_instance) msg.append(": not initialized"); @@ -440,9 +417,7 @@ void OpenMP::impl_finalize() Impl::g_openmp_hardware_max_threads = 1; } -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::finalize(); -#endif } //---------------------------------------------------------------------------- @@ -472,18 +447,7 @@ OpenMP OpenMP::create_instance(...) { return OpenMP(); } int OpenMP::concurrency() { return Impl::g_openmp_hardware_max_threads; } -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE void OpenMP::fence() const {} -#endif - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - -void OpenMP::initialize(int thread_count, int, int) { - initialize(thread_count); -} - -#endif - } // namespace Kokkos #else diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp index 6614050f02..f51a7e7ce0 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp @@ -61,10 +61,7 @@ #include #include - -#include -#include -#include +#include #include @@ -129,15 +126,7 @@ class OpenMPExec { namespace Kokkos { -inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - bool - OpenMP::is_initialized() noexcept -#else - bool - OpenMP::impl_is_initialized() noexcept -#endif -{ +inline bool OpenMP::impl_is_initialized() noexcept { return Impl::t_openmp_instance != nullptr; } @@ -147,26 +136,13 @@ inline bool OpenMP::in_parallel(OpenMP const&) noexcept { Impl::t_openmp_instance->m_level < omp_get_level(); } -inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - OpenMP::thread_pool_size() noexcept -#else - int - OpenMP::impl_thread_pool_size() noexcept -#endif -{ +inline int OpenMP::impl_thread_pool_size() noexcept { return OpenMP::in_parallel() ? omp_get_num_threads() : Impl::t_openmp_instance->m_pool_size; } KOKKOS_INLINE_FUNCTION -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int OpenMP::thread_pool_rank() noexcept -#else -int OpenMP::impl_thread_pool_rank() noexcept -#endif -{ +int OpenMP::impl_thread_pool_rank() noexcept { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) return Impl::t_openmp_instance ? 0 : omp_get_thread_num(); #else @@ -176,10 +152,6 @@ int OpenMP::impl_thread_pool_rank() noexcept inline void OpenMP::impl_static_fence(OpenMP const& /*instance*/) noexcept {} -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline void OpenMP::fence(OpenMP const& instance) noexcept {} -#endif - inline bool OpenMP::is_asynchronous(OpenMP const& /*instance*/) noexcept { return false; } @@ -190,7 +162,7 @@ void OpenMP::partition_master(F const& f, int num_partitions, #if _OPENMP >= 201811 if (omp_get_max_active_levels() > 1) { #else - if (omp_get_nested() > 1) { + if (omp_get_nested()) { #endif using Exec = Impl::OpenMPExec; @@ -261,6 +233,12 @@ class MasterLock { template <> class UniqueToken { + private: + using buffer_type = Kokkos::View; + int m_count; + buffer_type m_buffer_view; + uint32_t volatile* m_buffer; + public: using execution_space = OpenMP; using size_type = int; @@ -268,17 +246,22 @@ class UniqueToken { /// \brief create object size for concurrency on the given instance /// /// This object should not be shared between instances - UniqueToken(execution_space const& = execution_space()) noexcept {} + UniqueToken(execution_space const& = execution_space()) noexcept + : m_count(::Kokkos::OpenMP::impl_thread_pool_size()), + m_buffer_view(buffer_type()), + m_buffer(nullptr) {} + + UniqueToken(size_type max_size, execution_space const& = execution_space()) + : m_count(max_size), + m_buffer_view("UniqueToken::m_buffer_view", + ::Kokkos::Impl::concurrent_bitset::buffer_bound(m_count)), + m_buffer(m_buffer_view.data()) {} /// \brief upper bound for acquired values, i.e. 0 <= value < size() KOKKOS_INLINE_FUNCTION int size() const noexcept { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) - return Kokkos::OpenMP::thread_pool_size(); -#else - return Kokkos::OpenMP::impl_thread_pool_size(); -#endif + return m_count; #else return 0; #endif @@ -288,11 +271,18 @@ class UniqueToken { KOKKOS_INLINE_FUNCTION int acquire() const noexcept { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) - return Kokkos::OpenMP::thread_pool_rank(); -#else - return Kokkos::OpenMP::impl_thread_pool_rank(); -#endif + if (m_count >= ::Kokkos::OpenMP::impl_thread_pool_size()) + return ::Kokkos::OpenMP::impl_thread_pool_rank(); + const ::Kokkos::pair result = + ::Kokkos::Impl::concurrent_bitset::acquire_bounded( + m_buffer, m_count, ::Kokkos::Impl::clock_tic() % m_count); + + if (result.first < 0) { + ::Kokkos::abort( + "UniqueToken failure to acquire tokens, no tokens available"); + } + + return result.first; #else return 0; #endif @@ -300,7 +290,14 @@ class UniqueToken { /// \brief release a value acquired by generate KOKKOS_INLINE_FUNCTION - void release(int) const noexcept {} + void release(int i) const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (m_count < ::Kokkos::OpenMP::impl_thread_pool_size()) + ::Kokkos::Impl::concurrent_bitset::release(m_buffer, i); +#else + (void)i; +#endif + } }; template <> @@ -341,31 +338,12 @@ class UniqueToken { } // namespace Experimental -inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - OpenMP::thread_pool_size(int depth) -#else - int - OpenMP::impl_thread_pool_size(int depth) -#endif -{ - return depth < 2 -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ? thread_pool_size() -#else - ? impl_thread_pool_size() -#endif - : 1; +inline int OpenMP::impl_thread_pool_size(int depth) { + return depth < 2 ? impl_thread_pool_size() : 1; } KOKKOS_INLINE_FUNCTION -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int OpenMP::hardware_thread_id() noexcept -#else -int OpenMP::impl_hardware_thread_id() noexcept -#endif -{ +int OpenMP::impl_hardware_thread_id() noexcept { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) return Impl::t_openmp_hardware_id; #else @@ -373,15 +351,7 @@ int OpenMP::impl_hardware_thread_id() noexcept #endif } -inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - OpenMP::max_hardware_threads() noexcept -#else - int - OpenMP::impl_max_hardware_threads() noexcept -#endif -{ +inline int OpenMP::impl_max_hardware_threads() noexcept { return Impl::g_openmp_hardware_max_threads; } diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp index 83773ac305..7c05fb2f29 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp @@ -49,7 +49,6 @@ #if defined(KOKKOS_ENABLE_OPENMP) #include -#include #include #include @@ -64,10 +63,10 @@ namespace Impl { template class ParallelFor, Kokkos::OpenMP> { private: - typedef Kokkos::RangePolicy Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using Policy = Kokkos::RangePolicy; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -116,11 +115,7 @@ class ParallelFor, Kokkos::OpenMP> { } else { OpenMPExec::verify_is_master("Kokkos::OpenMP parallel_for"); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -158,16 +153,15 @@ template class ParallelFor, Kokkos::OpenMP> { private: - typedef Kokkos::MDRangePolicy MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; - typedef typename MDRangePolicy::work_tag WorkTag; + using MDRangePolicy = Kokkos::MDRangePolicy; + using Policy = typename MDRangePolicy::impl_range_policy; + using WorkTag = typename MDRangePolicy::work_tag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef typename Kokkos::Impl::HostIterateTile< - MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void> - iterate_type; + using iterate_type = typename Kokkos::Impl::HostIterateTile< + MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void>; OpenMPExec* m_instance; const FunctorType m_functor; @@ -201,11 +195,7 @@ class ParallelFor, } else { OpenMPExec::verify_is_master("Kokkos::OpenMP parallel_for"); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -253,30 +243,30 @@ template class ParallelReduce, ReducerType, Kokkos::OpenMP> { private: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef FunctorAnalysis - Analysis; + using Analysis = + FunctorAnalysis; - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; // Static Assert WorkTag void if ReducerType not InvalidType - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -324,11 +314,7 @@ class ParallelReduce, ReducerType, 0 // thread_local_bytes ); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = OpenMP::thread_pool_size(); -#else const int pool_size = OpenMP::impl_thread_pool_size(); -#endif #pragma omp parallel num_threads(pool_size) { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -420,31 +406,30 @@ template class ParallelReduce, ReducerType, Kokkos::OpenMP> { private: - typedef Kokkos::MDRangePolicy MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; - - typedef typename MDRangePolicy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; - - typedef FunctorAnalysis - Analysis; - - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using MDRangePolicy = Kokkos::MDRangePolicy; + using Policy = typename MDRangePolicy::impl_range_policy; + + using WorkTag = typename MDRangePolicy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; + + using Analysis = FunctorAnalysis; + + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::value_type value_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using value_type = typename Analysis::value_type; + using reference_type = typename Analysis::reference_type; using iterate_type = typename Kokkos::Impl::HostIterateTile, ReducerType, 0 // thread_local_bytes ); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = OpenMP::thread_pool_size(); -#else const int pool_size = OpenMP::impl_thread_pool_size(); -#endif #pragma omp parallel num_threads(pool_size) { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -592,21 +573,21 @@ template class ParallelScan, Kokkos::OpenMP> { private: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; - typedef FunctorAnalysis - Analysis; + using Analysis = + FunctorAnalysis; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; - typedef Kokkos::Impl::FunctorValueOps ValueOps; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; + using ValueOps = Kokkos::Impl::FunctorValueOps; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -647,11 +628,7 @@ class ParallelScan, 0 // thread_local_bytes ); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -665,7 +642,7 @@ class ParallelScan, m_functor, range.begin(), range.end(), update_sum, false); if (data.pool_rendezvous()) { - pointer_type ptr_prev = 0; + pointer_type ptr_prev = nullptr; const int n = omp_get_num_threads(); @@ -710,21 +687,21 @@ template class ParallelScanWithTotal, ReturnType, Kokkos::OpenMP> { private: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; - typedef FunctorAnalysis - Analysis; + using Analysis = + FunctorAnalysis; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; - typedef Kokkos::Impl::FunctorValueOps ValueOps; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; + using ValueOps = Kokkos::Impl::FunctorValueOps; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -766,11 +743,7 @@ class ParallelScanWithTotal, 0 // thread_local_bytes ); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -783,7 +756,7 @@ class ParallelScanWithTotal, m_functor, range.begin(), range.end(), update_sum, false); if (data.pool_rendezvous()) { - pointer_type ptr_prev = 0; + pointer_type ptr_prev = nullptr; const int n = omp_get_num_threads(); @@ -846,11 +819,11 @@ class ParallelFor, private: enum { TEAM_REDUCE_SIZE = 512 }; - typedef Kokkos::Impl::TeamPolicyInternal - Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::schedule_type::type SchedTag; - typedef typename Policy::member_type Member; + using Policy = + Kokkos::Impl::TeamPolicyInternal; + using WorkTag = typename Policy::work_tag; + using SchedTag = typename Policy::schedule_type::type; + using Member = typename Policy::member_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -911,11 +884,7 @@ class ParallelFor, m_instance->resize_thread_data(pool_reduce_size, team_reduce_size, team_shared_size, thread_local_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -969,30 +938,30 @@ class ParallelReduce, private: enum { TEAM_REDUCE_SIZE = 512 }; - typedef Kokkos::Impl::TeamPolicyInternal - Policy; + using Policy = + Kokkos::Impl::TeamPolicyInternal; - typedef FunctorAnalysis - Analysis; + using Analysis = + FunctorAnalysis; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::schedule_type::type SchedTag; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using SchedTag = typename Policy::schedule_type::type; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -1057,11 +1026,7 @@ class ParallelReduce, m_instance->resize_thread_data(pool_reduce_size, team_reduce_size, team_shared_size, thread_local_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = OpenMP::thread_pool_size(); -#else const int pool_size = OpenMP::impl_thread_pool_size(); -#endif #pragma omp parallel num_threads(pool_size) { HostThreadTeamData& data = *(m_instance->get_thread_data()); diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp index 62f0a77d0e..2a4a7b1d53 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp @@ -182,11 +182,7 @@ class TaskQueueSpecialization > { } static uint32_t get_max_team_count(execution_space const& espace) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return static_cast(espace.thread_pool_size()); -#else return static_cast(espace.impl_thread_pool_size()); -#endif } // TODO @tasking @optimization DSH specialize this for trivially destructible @@ -219,13 +215,7 @@ class TaskQueueSpecializationConstrained< using task_base_type = typename scheduler_type::task_base; using queue_type = typename scheduler_type::queue_type; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (1 == OpenMP::thread_pool_size()) -#else - if (1 == OpenMP::impl_thread_pool_size()) -#endif - { - + if (1 == OpenMP::impl_thread_pool_size()) { task_base_type* const end = (task_base_type*)task_base_type::EndTag; HostThreadTeamData& team_data_single = @@ -269,11 +259,7 @@ class TaskQueueSpecializationConstrained< HostThreadTeamDataSingleton::singleton(); Impl::OpenMPExec* instance = t_openmp_instance; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = OpenMP::thread_pool_size(); -#else - const int pool_size = OpenMP::impl_thread_pool_size(); -#endif + const int pool_size = OpenMP::impl_thread_pool_size(); const int team_size = 1; // Threads per core instance->resize_thread_data(0 /* global reduce buffer */ diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp index f54b6e2d51..80903e7a7a 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp @@ -58,28 +58,15 @@ class TeamPolicyInternal : public PolicyTraits { public: //! Tag this class as a kokkos execution policy - typedef TeamPolicyInternal execution_policy; + using execution_policy = TeamPolicyInternal; - typedef PolicyTraits traits; + using traits = PolicyTraits; const typename traits::execution_space& space() const { static typename traits::execution_space m_space; return m_space; } - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_team_alloc = p.m_team_alloc; - m_team_iter = p.m_team_iter; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - return *this; - } - template friend class TeamPolicyInternal; @@ -98,42 +85,15 @@ class TeamPolicyInternal } //---------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template - inline static int team_size_max(const FunctorType&) { - int pool_size = traits::execution_space::thread_pool_size(1); - int max_host_team_size = Impl::HostThreadTeamData::max_team_members; - return pool_size < max_host_team_size ? pool_size : max_host_team_size; - } - - template - inline static int team_size_recommended(const FunctorType&) { - return traits::execution_space::thread_pool_size(2); - } - - template - inline static int team_size_recommended(const FunctorType&, const int&) { - return traits::execution_space::thread_pool_size(2); - } -#endif - template int team_size_max(const FunctorType&, const ParallelForTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int pool_size = traits::execution_space::thread_pool_size(1); -#else - int pool_size = traits::execution_space::impl_thread_pool_size(1); -#endif + int pool_size = traits::execution_space::impl_thread_pool_size(1); int max_host_team_size = Impl::HostThreadTeamData::max_team_members; return pool_size < max_host_team_size ? pool_size : max_host_team_size; } template int team_size_max(const FunctorType&, const ParallelReduceTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int pool_size = traits::execution_space::thread_pool_size(1); -#else - int pool_size = traits::execution_space::impl_thread_pool_size(1); -#endif + int pool_size = traits::execution_space::impl_thread_pool_size(1); int max_host_team_size = Impl::HostThreadTeamData::max_team_members; return pool_size < max_host_team_size ? pool_size : max_host_team_size; } @@ -144,20 +104,12 @@ class TeamPolicyInternal } template int team_size_recommended(const FunctorType&, const ParallelForTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return traits::execution_space::thread_pool_size(2); -#else return traits::execution_space::impl_thread_pool_size(2); -#endif } template int team_size_recommended(const FunctorType&, const ParallelReduceTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return traits::execution_space::thread_pool_size(2); -#else return traits::execution_space::impl_thread_pool_size(2); -#endif } template inline int team_size_recommended(const FunctorType& f, const ReducerType&, @@ -188,23 +140,16 @@ class TeamPolicyInternal int m_chunk_size; inline void init(const int league_size_request, const int team_size_request) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = traits::execution_space::thread_pool_size(0); - const int team_grain = traits::execution_space::thread_pool_size(2); -#else const int pool_size = traits::execution_space::impl_thread_pool_size(0); const int team_grain = traits::execution_space::impl_thread_pool_size(2); -#endif const int max_host_team_size = Impl::HostThreadTeamData::max_team_members; const int team_max = ((pool_size < max_host_team_size) ? pool_size : max_host_team_size); m_league_size = league_size_request; -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE if (team_size_request > team_max) Kokkos::abort("Kokkos::abort: Requested Team Size is too large!"); -#endif m_team_size = team_size_request < team_max ? team_size_request : team_max; // Round team size up to a multiple of 'team_gain' @@ -248,17 +193,10 @@ class TeamPolicyInternal int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(0) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - { - init(league_size_request, traits::execution_space::thread_pool_size(2)); - } -#else - { + m_chunk_size(0) { init(league_size_request, traits::execution_space::impl_thread_pool_size(2)); } -#endif TeamPolicyInternal(int league_size_request, int team_size_request, int /* vector_length_request */ = 1) @@ -276,12 +214,7 @@ class TeamPolicyInternal m_thread_scratch_size{0, 0}, m_chunk_size(0) { init(league_size_request, -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - traits::execution_space::thread_pool_size(2) -#else - traits::execution_space::impl_thread_pool_size(2) -#endif - ); + traits::execution_space::impl_thread_pool_size(2)); } inline int team_alloc() const { return m_team_alloc; } @@ -289,38 +222,6 @@ class TeamPolicyInternal inline int chunk_size() const { return m_chunk_size; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } - - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - } - - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } - - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -349,58 +250,16 @@ class TeamPolicyInternal inline TeamPolicyInternal& set_scratch_size( const int& level, const PerTeamValue& per_team, const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif - - protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { m_team_scratch_size[level] = per_team.value; m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif private: /** \brief finalize chunk_size if it was set to AUTO*/ inline void set_auto_chunk_size() { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int concurrency = - traits::execution_space::thread_pool_size(0) / m_team_alloc; -#else int concurrency = traits::execution_space::impl_thread_pool_size(0) / m_team_alloc; -#endif if (concurrency == 0) concurrency = 1; if (m_chunk_size > 0) { @@ -421,7 +280,7 @@ class TeamPolicyInternal } public: - typedef Impl::HostThreadTeamMember member_type; + using member_type = Impl::HostThreadTeamMember; }; } // namespace Impl diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp deleted file mode 100644 index 7bcd515f4c..0000000000 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_OPENMP_VIEWETIAVAIL_HPP -#define KOKKOS_OPENMP_VIEWETIAVAIL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::OpenMP - -#include - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp deleted file mode 100644 index b5254e1275..0000000000 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_OPENMP_VIEWETIDECL_HPP -#define KOKKOS_OPENMP_VIEWETIDECL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::OpenMP - -#include - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_WorkGraphPolicy.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_WorkGraphPolicy.hpp index 4ff1486c68..92e4ee636a 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_WorkGraphPolicy.hpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_WorkGraphPolicy.hpp @@ -45,6 +45,8 @@ #ifndef KOKKOS_OPENMP_WORKGRAPHPOLICY_HPP #define KOKKOS_OPENMP_WORKGRAPHPOLICY_HPP +#include + namespace Kokkos { namespace Impl { @@ -52,7 +54,7 @@ template class ParallelFor, Kokkos::OpenMP> { private: - typedef Kokkos::WorkGraphPolicy Policy; + using Policy = Kokkos::WorkGraphPolicy; Policy m_policy; FunctorType m_functor; @@ -72,11 +74,7 @@ class ParallelFor, public: inline void execute() { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { // Spin until COMPLETED_TOKEN. // END_TOKEN indicates no work is currently available. diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp index ab833b0363..ba67e66898 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp @@ -193,9 +193,9 @@ void *SharedAllocationRecord:: SharedAllocationRecord *SharedAllocationRecord::get_record(void *alloc_ptr) { - typedef SharedAllocationHeader Header; - typedef SharedAllocationRecord - RecordHost; + using Header = SharedAllocationHeader; + using RecordHost = + SharedAllocationRecord; if (alloc_ptr) { Header head; diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp index b09dbeba3a..8bd04811c6 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp @@ -50,7 +50,7 @@ #include #include #include -#include +#include #ifdef KOKKOS_ENABLE_OPENMPTARGET diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp index be6ddb5ed4..9ef3a752a8 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp @@ -49,9 +49,7 @@ #include #include -#include -#include -#include + namespace Kokkos { namespace Impl { @@ -96,8 +94,8 @@ class OpenMPTargetExecTeamMember { /** \brief Thread states for team synchronization */ enum { Active = 0, Rendezvous = 1 }; - typedef Kokkos::Experimental::OpenMPTarget execution_space; - typedef execution_space::scratch_memory_space scratch_memory_space; + using execution_space = Kokkos::Experimental::OpenMPTarget; + using scratch_memory_space = execution_space::scratch_memory_space; scratch_memory_space m_team_shared; int m_team_scratch_size[2]; @@ -172,8 +170,8 @@ class OpenMPTargetExecTeamMember { { } #else // Make sure there is enough scratch space: - typedef typename if_c< sizeof(ValueType) < TEAM_REDUCE_SIZE - , ValueType , void >::type type ; + using type = typename if_c< sizeof(ValueType) < TEAM_REDUCE_SIZE + , ValueType , void >::type; type * const local_value = ((type*) m_exec.scratch_thread()); if(team_rank() == thread_id) @@ -189,12 +187,12 @@ class OpenMPTargetExecTeamMember { const JoinOp& op_in) const { #pragma omp barrier - typedef ValueType value_type; + using value_type = ValueType; const JoinLambdaAdapter op(op_in); // Make sure there is enough scratch space: - typedef typename if_c::type type; + using type = typename if_c::type; const int n_values = TEAM_REDUCE_SIZE / sizeof(value_type); type* team_scratch = @@ -232,8 +230,8 @@ class OpenMPTargetExecTeamMember { KOKKOS_INLINE_FUNCTION ArgType team_scan(const ArgType& value, ArgType* const global_accum) const { /* // Make sure there is enough scratch space: - typedef typename if_c< sizeof(ArgType) < TEAM_REDUCE_SIZE , ArgType , void - >::type type ; + using type = + typename if_c::type; volatile type * const work_value = ((type*) m_exec.scratch_thread()); @@ -289,7 +287,7 @@ class OpenMPTargetExecTeamMember { // Private for the driver private: - typedef execution_space::scratch_memory_space space; + using space = execution_space::scratch_memory_space; public: inline OpenMPTargetExecTeamMember( @@ -320,23 +318,9 @@ class TeamPolicyInternal : public PolicyTraits { public: //! Tag this class as a kokkos execution policy - typedef TeamPolicyInternal execution_policy; - - typedef PolicyTraits traits; - - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_vector_length = p.m_vector_length; - m_team_alloc = p.m_team_alloc; - m_team_iter = p.m_team_iter; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - return *this; - } + using execution_policy = TeamPolicyInternal; + + using traits = PolicyTraits; //---------------------------------------- @@ -459,38 +443,6 @@ class TeamPolicyInternal inline int chunk_size() const { return m_chunk_size; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } - - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - } - - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } - - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -523,43 +475,6 @@ class TeamPolicyInternal m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif - - protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif private: /** \brief finalize chunk_size if it was set to AUTO*/ @@ -586,7 +501,7 @@ class TeamPolicyInternal } public: - typedef Impl::OpenMPTargetExecTeamMember member_type; + using member_type = Impl::OpenMPTargetExecTeamMember; }; } // namespace Impl @@ -791,8 +706,8 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( const Impl::ThreadVectorRangeBoundariesStruct< iType, Impl::OpenMPTargetExecTeamMember>& loop_boundaries, const FunctorType& lambda) { - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef typename ValueTraits::value_type value_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using value_type = typename ValueTraits::value_type; value_type scan_val = value_type(); diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp index d5b62f60b8..ee4549a78e 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp @@ -46,7 +46,7 @@ #define KOKKOS_OPENMPTARGET_PARALLEL_HPP #include -#include +#include // printf #include #include #include @@ -59,8 +59,12 @@ namespace Impl { template struct OpenMPTargetReducerWrapper { - typedef typename Reducer::value_type value_type; + using value_type = typename Reducer::value_type; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target KOKKOS_INLINE_FUNCTION static void join(value_type&, const value_type&) { printf( @@ -81,14 +85,19 @@ struct OpenMPTargetReducerWrapper { "Using a generic unknown Reducer for the OpenMPTarget backend is not " "implemented."); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { public: // Required - typedef typename std::remove_cv::type value_type; + using value_type = typename std::remove_cv::type; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target // Required KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { dest += src; } @@ -102,14 +111,19 @@ struct OpenMPTargetReducerWrapper> { static void init(value_type& val) { val = reduction_identity::sum(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { public: // Required - typedef typename std::remove_cv::type value_type; + using value_type = typename std::remove_cv::type; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target // Required KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { dest *= src; } @@ -123,14 +137,19 @@ struct OpenMPTargetReducerWrapper> { static void init(value_type& val) { val = reduction_identity::prod(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { public: // Required - typedef typename std::remove_cv::type value_type; + using value_type = typename std::remove_cv::type; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target // Required KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { @@ -146,14 +165,19 @@ struct OpenMPTargetReducerWrapper> { static void init(value_type& val) { val = reduction_identity::min(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { public: // Required - typedef typename std::remove_cv::type value_type; + using value_type = typename std::remove_cv::type; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target // Required KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { @@ -170,14 +194,19 @@ struct OpenMPTargetReducerWrapper> { static void init(value_type& val) { val = reduction_identity::max(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { public: // Required - typedef typename std::remove_cv::type value_type; + using value_type = typename std::remove_cv::type; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { dest = dest && src; @@ -192,16 +221,21 @@ struct OpenMPTargetReducerWrapper> { static void init(value_type& val) { val = reduction_identity::land(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { public: // Required - typedef typename std::remove_cv::type value_type; + using value_type = typename std::remove_cv::type; - typedef Kokkos::View result_view_type; + using result_view_type = Kokkos::View; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target // Required KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { @@ -217,14 +251,19 @@ struct OpenMPTargetReducerWrapper> { static void init(value_type& val) { val = reduction_identity::lor(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { public: // Required - typedef typename std::remove_cv::type value_type; + using value_type = typename std::remove_cv::type; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target // Required KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { @@ -240,14 +279,19 @@ struct OpenMPTargetReducerWrapper> { static void init(value_type& val) { val = reduction_identity::band(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { public: // Required - typedef typename std::remove_cv::type value_type; + using value_type = typename std::remove_cv::type; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target // Required KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { @@ -263,18 +307,23 @@ struct OpenMPTargetReducerWrapper> { static void init(value_type& val) { val = reduction_identity::bor(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { private: - typedef typename std::remove_cv::type scalar_type; - typedef typename std::remove_cv::type index_type; + using scalar_type = typename std::remove_cv::type; + using index_type = typename std::remove_cv::type; public: // Required - typedef ValLocScalar value_type; + using value_type = ValLocScalar; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target // Required KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { @@ -291,18 +340,23 @@ struct OpenMPTargetReducerWrapper> { val.val = reduction_identity::min(); val.loc = reduction_identity::min(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { private: - typedef typename std::remove_cv::type scalar_type; - typedef typename std::remove_cv::type index_type; + using scalar_type = typename std::remove_cv::type; + using index_type = typename std::remove_cv::type; public: // Required - typedef ValLocScalar value_type; + using value_type = ValLocScalar; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { if (src.val > dest.val) dest = src; @@ -318,17 +372,22 @@ struct OpenMPTargetReducerWrapper> { val.val = reduction_identity::max(); val.loc = reduction_identity::min(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { private: - typedef typename std::remove_cv::type scalar_type; + using scalar_type = typename std::remove_cv::type; public: // Required - typedef MinMaxScalar value_type; + using value_type = MinMaxScalar; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target // Required KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { @@ -355,18 +414,23 @@ struct OpenMPTargetReducerWrapper> { val.max_val = reduction_identity::max(); val.min_val = reduction_identity::min(); } +#pragma omp end declare target }; template struct OpenMPTargetReducerWrapper> { private: - typedef typename std::remove_cv::type scalar_type; - typedef typename std::remove_cv::type index_type; + using scalar_type = typename std::remove_cv::type; + using index_type = typename std::remove_cv::type; public: // Required - typedef MinMaxLocScalar value_type; + using value_type = MinMaxLocScalar; +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target // Required KOKKOS_INLINE_FUNCTION static void join(value_type& dest, const value_type& src) { @@ -399,13 +463,14 @@ struct OpenMPTargetReducerWrapper> { val.max_loc = reduction_identity::min(); val.min_loc = reduction_identity::min(); } +#pragma omp end declare target }; /* template class OpenMPTargetReducerWrapper { public: const ReducerType& reducer; - typedef typename ReducerType::value_type value_type; + using value_type = typename ReducerType::value_type; value_type& value; KOKKOS_INLINE_FUNCTION @@ -429,10 +494,10 @@ template class ParallelFor, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::RangePolicy Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using Policy = Kokkos::RangePolicy; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; const FunctorType m_functor; const Policy m_policy; @@ -519,7 +584,7 @@ template struct ParallelReduceSpecialize, ReducerType, PointerType, ValueType, 0, 0> { - typedef Kokkos::RangePolicy PolicyType; + using PolicyType = Kokkos::RangePolicy; template inline static typename std::enable_if::value>::type @@ -602,7 +667,6 @@ struct ParallelReduceSpecialize class ParallelReduce, ReducerType, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef - typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + using ReducerConditional = Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, + WorkTag, void>::type; // Static Assert WorkTag void if ReducerType not InvalidType - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; enum { HasJoin = ReduceFunctorHasJoin::value }; enum { UseReducer = is_reducer_type::value }; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; - typedef ParallelReduceSpecialize< + using ParReduceSpecialize = ParallelReduceSpecialize< FunctorType, Policy, ReducerType, pointer_type, - typename ValueTraits::value_type, HasJoin, UseReducer> - ParReduceSpecialize; + typename ValueTraits::value_type, HasJoin, UseReducer>; const FunctorType m_functor; const Policy m_policy; @@ -717,19 +777,19 @@ template class ParallelScan, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; - typedef Kokkos::Impl::FunctorValueOps ValueOps; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; + using ValueOps = Kokkos::Impl::FunctorValueOps; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -847,11 +907,10 @@ template class ParallelFor, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::Impl::TeamPolicyInternal - Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; + using Policy = Kokkos::Impl::TeamPolicyInternal; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; const FunctorType m_functor; const Policy m_policy; @@ -941,7 +1000,7 @@ template struct ParallelReduceSpecialize, ReducerType, PointerType, ValueType, 0, 0> { - typedef TeamPolicyInternal PolicyType; + using PolicyType = TeamPolicyInternal; template inline static @@ -1022,37 +1081,32 @@ template class ParallelReduce, ReducerType, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::Impl::TeamPolicyInternal - Policy; - - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef - typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; - - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; - - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - typedef typename ValueTraits::value_type value_type; + using Policy = Kokkos::Impl::TeamPolicyInternal; + + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + + using ReducerConditional = Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, + WorkTag, void>::type; + + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; + + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; + using value_type = typename ValueTraits::value_type; enum { HasJoin = ReduceFunctorHasJoin::value }; enum { UseReducer = is_reducer_type::value }; - typedef ParallelReduceSpecialize< + using ParForSpecialize = ParallelReduceSpecialize< FunctorType, Policy, ReducerType, pointer_type, - typename ValueTraits::value_type, HasJoin, UseReducer> - ParForSpecialize; + typename ValueTraits::value_type, HasJoin, UseReducer>; const FunctorType m_functor; const Policy m_policy; @@ -1104,7 +1158,7 @@ namespace Impl { template struct TeamThreadRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const iType start; const iType end; const iType increment; @@ -1123,7 +1177,7 @@ struct TeamThreadRangeBoundariesStruct { template struct ThreadVectorRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const index_type start; const index_type end; const index_type increment; diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp index 4ce2dee122..4e5d7b08c4 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp @@ -46,11 +46,15 @@ #define KOKKOS_OPENMPTARGET_PARALLEL_MDRANGE_HPP #include -#include #include #include #include +// WORKAROUND OPENMPTARGET: sometimes tile sizes don't make it correctly, +// this was tracked down to a bug in clang with regards of mapping structs +// with arrays of long in it. Arrays of int might be fine though ... +#define KOKKOS_IMPL_MDRANGE_USE_NO_TILES // undef EOF + //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -61,9 +65,9 @@ template class ParallelFor, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::MDRangePolicy Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; + using Policy = Kokkos::MDRangePolicy; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; const FunctorType m_functor; const Policy m_policy; @@ -78,9 +82,16 @@ class ParallelFor, const int64_t end = m_policy.m_num_tiles; FunctorType functor(m_functor); Policy policy = m_policy; + +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + typename Policy::point_type unused; + + execute_tile(unused, functor, policy); +#else #pragma omp target teams distribute map(to : functor) num_teams(end - begin) { for (ptrdiff_t tile_idx = begin; tile_idx < end; tile_idx++) { + #pragma omp parallel { typename Policy::point_type offset; @@ -101,12 +112,23 @@ class ParallelFor, } } } +#endif } template inline typename std::enable_if::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + const int begin_0 = policy.m_lower[0]; + + const int end_0 = policy.m_upper[0]; + +#pragma omp target teams distribute parallel for map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + functor(i0); + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -114,12 +136,27 @@ class ParallelFor, for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { functor(i0); } +#endif } template inline typename std::enable_if::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + const int begin_0 = policy.m_lower[0]; + const int begin_1 = policy.m_lower[1]; + + const int end_0 = policy.m_upper[0]; + const int end_1 = policy.m_upper[1]; + +#pragma omp target teams distribute parallel for collapse(2) map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) { + functor(i0, i1); + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -131,12 +168,31 @@ class ParallelFor, #pragma omp for collapse(2) for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) functor(i0, i1); +#endif } template inline typename std::enable_if::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + const int begin_0 = policy.m_lower[0]; + const int begin_1 = policy.m_lower[1]; + const int begin_2 = policy.m_lower[2]; + + const int end_0 = policy.m_upper[0]; + const int end_1 = policy.m_upper[1]; + const int end_2 = policy.m_upper[2]; + +#pragma omp target teams distribute parallel for collapse(3) map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) { + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) { + functor(i0, i1, i2); + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -153,12 +209,35 @@ class ParallelFor, for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) functor(i0, i1, i2); +#endif } template inline typename std::enable_if::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + const int begin_0 = policy.m_lower[0]; + const int begin_1 = policy.m_lower[1]; + const int begin_2 = policy.m_lower[2]; + const int begin_3 = policy.m_lower[3]; + + const int end_0 = policy.m_upper[0]; + const int end_1 = policy.m_upper[1]; + const int end_2 = policy.m_upper[2]; + const int end_3 = policy.m_upper[3]; + +#pragma omp target teams distribute parallel for collapse(4) map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) { + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) { + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) { + functor(i0, i1, i2, i3); + } + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -181,12 +260,39 @@ class ParallelFor, for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) functor(i0, i1, i2, i3); +#endif } template inline typename std::enable_if::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + const int begin_0 = policy.m_lower[0]; + const int begin_1 = policy.m_lower[1]; + const int begin_2 = policy.m_lower[2]; + const int begin_3 = policy.m_lower[3]; + const int begin_4 = policy.m_lower[4]; + + const int end_0 = policy.m_upper[0]; + const int end_1 = policy.m_upper[1]; + const int end_2 = policy.m_upper[2]; + const int end_3 = policy.m_upper[3]; + const int end_4 = policy.m_upper[4]; + +#pragma omp target teams distribute parallel for collapse(5) map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) { + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) { + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) { + for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) { + functor(i0, i1, i2, i3, i4); + } + } + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -214,12 +320,43 @@ class ParallelFor, for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) functor(i0, i1, i2, i3, i4); +#endif } template inline typename std::enable_if::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + const int begin_0 = policy.m_lower[0]; + const int begin_1 = policy.m_lower[1]; + const int begin_2 = policy.m_lower[2]; + const int begin_3 = policy.m_lower[3]; + const int begin_4 = policy.m_lower[4]; + const int begin_5 = policy.m_lower[5]; + + const int end_0 = policy.m_upper[0]; + const int end_1 = policy.m_upper[1]; + const int end_2 = policy.m_upper[2]; + const int end_3 = policy.m_upper[3]; + const int end_4 = policy.m_upper[4]; + const int end_5 = policy.m_upper[5]; + +#pragma omp target teams distribute parallel for collapse(6) map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) { + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) { + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) { + for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) { + for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) { + functor(i0, i1, i2, i3, i4, i5); + } + } + } + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -252,12 +389,47 @@ class ParallelFor, for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) functor(i0, i1, i2, i3, i4, i5); +#endif } template inline typename std::enable_if::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + const int begin_0 = policy.m_lower[0]; + const int begin_1 = policy.m_lower[1]; + const int begin_2 = policy.m_lower[2]; + const int begin_3 = policy.m_lower[3]; + const int begin_4 = policy.m_lower[4]; + const int begin_5 = policy.m_lower[5]; + const int begin_6 = policy.m_lower[6]; + + const int end_0 = policy.m_upper[0]; + const int end_1 = policy.m_upper[1]; + const int end_2 = policy.m_upper[2]; + const int end_3 = policy.m_upper[3]; + const int end_4 = policy.m_upper[4]; + const int end_5 = policy.m_upper[5]; + const int end_6 = policy.m_upper[6]; + +#pragma omp target teams distribute parallel for collapse(7) map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) { + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) { + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) { + for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) { + for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) { + for (ptrdiff_t i6 = begin_6; i6 < end_6; i6++) { + functor(i0, i1, i2, i3, i4, i5, i6); + } + } + } + } + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -295,12 +467,51 @@ class ParallelFor, for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) for (ptrdiff_t i6 = begin_6; i6 < end_6; i6++) functor(i0, i1, i2, i3, i4, i5, i6); +#endif } template inline typename std::enable_if::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + const int begin_0 = policy.m_lower[0]; + const int begin_1 = policy.m_lower[1]; + const int begin_2 = policy.m_lower[2]; + const int begin_3 = policy.m_lower[3]; + const int begin_4 = policy.m_lower[4]; + const int begin_5 = policy.m_lower[5]; + const int begin_6 = policy.m_lower[6]; + const int begin_7 = policy.m_lower[7]; + + const int end_0 = policy.m_upper[0]; + const int end_1 = policy.m_upper[1]; + const int end_2 = policy.m_upper[2]; + const int end_3 = policy.m_upper[3]; + const int end_4 = policy.m_upper[4]; + const int end_5 = policy.m_upper[5]; + const int end_6 = policy.m_upper[6]; + const int end_7 = policy.m_upper[7]; + +#pragma omp target teams distribute parallel for collapse(8) map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) { + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) { + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) { + for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) { + for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) { + for (ptrdiff_t i6 = begin_6; i6 < end_6; i6++) { + for (ptrdiff_t i7 = begin_7; i7 < end_7; i7++) { + functor(i0, i1, i2, i3, i4, i5, i6, i7); + } + } + } + } + } + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -343,6 +554,7 @@ class ParallelFor, for (ptrdiff_t i6 = begin_6; i6 < end_6; i6++) for (ptrdiff_t i7 = begin_7; i7 < end_7; i7++) functor(i0, i1, i2, i3, i4, i5, i6, i7); +#endif } inline ParallelFor(const FunctorType& arg_functor, Policy arg_policy) @@ -363,7 +575,7 @@ template , ReducerType, PointerType, ValueType, 0, 0> { - typedef Kokkos::RangePolicy PolicyType; + using PolicyType = Kokkos::RangePolicy; template inline static typename std::enable_if::value>::type @@ -468,37 +680,36 @@ template class ParallelReduce, ReducerType, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::MDRangePolicy Policy; + using Policy = Kokkos::MDRangePolicy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; // Static Assert WorkTag void if ReducerType not InvalidType - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; enum { HasJoin = ReduceFunctorHasJoin::value }; enum { UseReducer = is_reducer_type::value }; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; - typedef ParallelReduceSpecialize< + using ParForSpecialize = ParallelReduceSpecialize< FunctorType, Policy, ReducerType, pointer_type, - typename ValueTraits::value_type, HasJoin, UseReducer> - ParForSpecialize; + typename ValueTraits::value_type, HasJoin, UseReducer>; const FunctorType m_functor; const Policy m_policy; @@ -545,5 +756,5 @@ class ParallelReduce, ReducerType, //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- - +#undef KOKKOS_IMPL_MDRANGE_USE_NO_TILES #endif /* KOKKOS_OPENMPTARGET_PARALLEL_HPP */ diff --git a/lib/kokkos/core/src/ROCm/KokkosExp_ROCm_IterateTile_Refactor.hpp b/lib/kokkos/core/src/ROCm/KokkosExp_ROCm_IterateTile_Refactor.hpp index 608c2ea9f7..fe844ae90c 100644 --- a/lib/kokkos/core/src/ROCm/KokkosExp_ROCm_IterateTile_Refactor.hpp +++ b/lib/kokkos/core/src/ROCm/KokkosExp_ROCm_IterateTile_Refactor.hpp @@ -48,9 +48,7 @@ #include #if defined(__HCC__) && defined(KOKKOS_ENABLE_ROCM) -#include #include -#include #include @@ -60,10 +58,8 @@ // type is not allowed use existing Kokkos functionality, e.g. max blocks, once // resolved -#if defined(KOKKOS_ENABLE_PROFILING) -#include +#include #include -#endif #define threadIdx_x (hc_get_workitem_id(0)) #define threadIdx_y (hc_get_workitem_id(1)) diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Impl.cpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Impl.cpp index aedde5b80a..a5903fc833 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Impl.cpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Impl.cpp @@ -101,7 +101,7 @@ bool rocm_launch_blocking() if (env == 0) return false; - return atoi(env); + return std::stoi(env); } } @@ -295,7 +295,7 @@ class ROCmInternal { ROCmInternal& operator=(const ROCmInternal&); public: - typedef Kokkos::Experimental::ROCm::size_type size_type; + using size_type = Kokkos::Experimental::ROCm::size_type; int m_rocmDev; int m_rocmArch; @@ -516,8 +516,8 @@ void ROCmInternal::initialize(int rocm_device_id) { //---------------------------------------------------------------------------- -typedef Kokkos::Experimental::ROCm::size_type - ScratchGrain[Impl::ROCmTraits::WorkgroupSize]; +using ScratchGrain = + Kokkos::Experimental::ROCm::size_type[Impl::ROCmTraits::WorkgroupSize]; enum { sizeScratchGrain = sizeof(ScratchGrain) }; void rocmMemset(Kokkos::Experimental::ROCm::size_type* ptr, @@ -539,9 +539,9 @@ Kokkos::Experimental::ROCm::size_type* ROCmInternal::scratch_flags( m_scratchFlagsCount * sizeScratchGrain < size) { m_scratchFlagsCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord< - Kokkos::Experimental::ROCmSpace, void> - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord; Record* const r = Record::allocate( Kokkos::Experimental::ROCmSpace(), "InternalScratchFlags", @@ -563,9 +563,9 @@ Kokkos::Experimental::ROCm::size_type* ROCmInternal::scratch_space( m_scratchSpaceCount * sizeScratchGrain < size) { m_scratchSpaceCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord< - Kokkos::Experimental::ROCmSpace, void> - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord; static Record* const r = Record::allocate( Kokkos::Experimental::ROCmSpace(), "InternalScratchSpace", @@ -589,12 +589,10 @@ void ROCmInternal::finalize() { // scratch_lock_array_rocm_space_ptr(false); // threadid_lock_array_rocm_space_ptr(false); - typedef Kokkos::Impl::SharedAllocationRecord< - Kokkos::Experimental::ROCmSpace> - RecordROCm; - typedef Kokkos::Impl::SharedAllocationRecord< - Kokkos::Experimental::ROCmHostPinnedSpace> - RecordHost; + using RecordROCm = + Kokkos::Impl::SharedAllocationRecord; + using RecordHost = Kokkos::Impl::SharedAllocationRecord< + Kokkos::Experimental::ROCmHostPinnedSpace>; RecordROCm::decrement(RecordROCm::get_record(m_scratchFlags)); RecordROCm::decrement(RecordROCm::get_record(m_scratchSpace)); @@ -659,9 +657,7 @@ int ROCm::is_initialized() { void ROCm::initialize(const ROCm::SelectDevice config) { Kokkos::Impl::ROCmInternal::singleton().initialize(config.rocm_device_id); -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::initialize(); -#endif } #if 0 @@ -688,9 +684,7 @@ ROCm::size_type ROCm::device_arch() void ROCm::finalize() { Kokkos::Impl::ROCmInternal::singleton().finalize(); -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::finalize(); -#endif } ROCm::ROCm() : m_device(Kokkos::Impl::ROCmInternal::singleton().m_rocmDev) { diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp index 8a4d8c07d0..bf87e80f85 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp @@ -71,7 +71,7 @@ class TeamPolicyInternal public: using execution_policy = TeamPolicyInternal; using execution_space = Kokkos::Experimental::ROCm; - typedef PolicyTraits traits; + using traits = PolicyTraits; TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { m_league_size = p.m_league_size; @@ -143,44 +143,6 @@ class TeamPolicyInternal inline int chunk_size() const { return m_chunk_size; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - KOKKOS_INLINE_FUNCTION TeamPolicyInternal - set_chunk_size(typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -213,50 +175,13 @@ class TeamPolicyInternal m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif - - protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif public: // TODO: evaluate proper team_size_max requirements template KOKKOS_INLINE_FUNCTION static int team_size_max(const Functor_Type& functor) { - typedef typename Kokkos::Impl::FunctorValueTraits< - Functor_Type, typename traits::work_tag>::value_type value_type; + using value_type = typename Kokkos::Impl::FunctorValueTraits< + Functor_Type, typename traits::work_tag>::value_type; return team_size_recommended(functor); // return std::min(Kokkos::Impl::get_max_tile_size() / sizeof(value_type), // Kokkos::Impl::get_max_tile_thread()); @@ -313,13 +238,13 @@ class TeamPolicyInternal return level == 0 ? 1024 * 40 : 1024 * 1204 * 20; } - typedef Impl::ROCmTeamMember member_type; + using member_type = Impl::ROCmTeamMember; }; struct ROCmTeamMember { - typedef Kokkos::Experimental::ROCm execution_space; - typedef Kokkos::ScratchMemorySpace - scratch_memory_space; + using execution_space = Kokkos::Experimental::ROCm; + using scratch_memory_space = + Kokkos::ScratchMemorySpace; KOKKOS_INLINE_FUNCTION const scratch_memory_space& team_shmem() const { @@ -406,7 +331,7 @@ struct ROCmTeamMember { template KOKKOS_INLINE_FUNCTION ValueType team_reduce(const ValueType& value, const JoinOp& op_in) const { - typedef JoinLambdaAdapter JoinOpFunctor; + using JoinOpFunctor = JoinLambdaAdapter; const JoinOpFunctor op(op_in); tile_static ValueType buffer[512]; @@ -471,7 +396,7 @@ struct ROCmTeamMember { KOKKOS_INLINE_FUNCTION typename std::enable_if::value>::type team_reduce(const ReducerType& reducer) const { - typedef typename ReducerType::value_type value_type; + using value_type = typename ReducerType::value_type; tile_static value_type buffer[512]; const auto local = lindex(); @@ -533,7 +458,7 @@ struct ROCmTeamMember { template KOKKOS_INLINE_FUNCTION ValueType thread_reduce(const ValueType& value, const JoinOp& op_in) const { - typedef JoinLambdaAdapter JoinOpFunctor; + using JoinOpFunctor = JoinLambdaAdapter; const JoinOpFunctor op(op_in); const auto local = m_idx.local[0]; @@ -693,7 +618,7 @@ template class ParallelFor, Kokkos::Experimental::ROCm> { private: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; public: inline ParallelFor(const FunctorType& f, const Policy& policy) { @@ -729,11 +654,11 @@ template class ParallelFor, Kokkos::Experimental::ROCm> { private: - typedef Kokkos::MDRangePolicy Policy; - using RP = Policy; - typedef typename Policy::array_index_type array_index_type; - typedef typename Policy::index_type index_type; - typedef typename Policy::launch_bounds LaunchBounds; + using Policy = Kokkos::MDRangePolicy; + using RP = Policy; + using array_index_type = typename Policy::array_index_type; + using index_type = typename Policy::index_type; + using LaunchBounds = typename Policy::launch_bounds; const FunctorType m_functor; const Policy m_rp; @@ -821,8 +746,8 @@ class ParallelFor, Kokkos::Experimental::ROCm> { using Policy = Kokkos::Impl::TeamPolicyInternal; - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; public: inline ParallelFor(const F& f, const Policy& policy) { @@ -870,7 +795,7 @@ template class ParallelReduce, ReducerType, Kokkos::Experimental::ROCm> { public: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; // TODO: Use generic lambdas instead struct invoke_fn { @@ -889,10 +814,10 @@ class ParallelReduce, ReducerType, typename std::enable_if::value && !Kokkos::is_reducer_type::value, void*>::type = nullptr) { - typedef typename Policy::work_tag Tag; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef typename ValueTraits::reference_type reference_type; + using Tag = typename Policy::work_tag; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using reference_type = typename ValueTraits::reference_type; const auto total_size = policy.end() - policy.begin(); @@ -910,16 +835,16 @@ class ParallelReduce, ReducerType, inline ParallelReduce(const FunctorType& f, Policy policy, const ReducerType& reducer) { - typedef typename Policy::work_tag Tag; + using Tag = typename Policy::work_tag; - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; - typedef typename ValueTraits::reference_type reference_type; + using reference_type = typename ValueTraits::reference_type; const auto total_size = policy.end() - policy.begin(); @@ -946,33 +871,33 @@ template class ParallelReduce, ReducerType, Kokkos::Experimental::ROCm> { private: - typedef Kokkos::MDRangePolicy Policy; - using RP = Policy; - typedef typename Policy::array_index_type array_index_type; - typedef typename Policy::index_type index_type; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef typename Policy::launch_bounds LaunchBounds; - - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using Policy = Kokkos::MDRangePolicy; + using RP = Policy; + using array_index_type = typename Policy::array_index_type; + using index_type = typename Policy::index_type; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using LaunchBounds = typename Policy::launch_bounds; + + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; public: - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::reference_type reference_type; - typedef FunctorType functor_type; - typedef Kokkos::Experimental::ROCm::size_type size_type; + using pointer_type = typename ValueTraits::pointer_type; + using value_type = typename ValueTraits::value_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Kokkos::Experimental::ROCm::size_type; // Algorithmic constraints: blockSize is a power of two AND blockDim.y == // blockDim.z == 1 @@ -984,10 +909,9 @@ class ParallelReduce, ReducerType, value_type* m_scratch_space; size_type* m_scratch_flags; - typedef typename Kokkos::Impl::Reduce::DeviceIterateTile< + using DeviceIteratePattern = typename Kokkos::Impl::Reduce::DeviceIterateTile< Policy::rank, Policy, FunctorType, typename Policy::work_tag, - reference_type> - DeviceIteratePattern; + reference_type>; KOKKOS_INLINE_FUNCTION void exec_range(reference_type update) const { @@ -1129,9 +1053,8 @@ class ParallelReduce, ReducerType, Kokkos::Experimental::ROCm> { using Policy = Kokkos::Impl::TeamPolicyInternal; - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; public: struct invoke_fn { @@ -1156,9 +1079,8 @@ class ParallelReduce, ReducerType, const int scratch_size1 = policy.scratch_size(1, team_size); const int total_size = league_size * team_size; - typedef Kokkos::Impl::FunctorValueInit - ValueInit; + using ValueInit = + Kokkos::Impl::FunctorValueInit; if (total_size == 0) { if (result_view.data()) { ValueInit::init(f, result_view.data()); @@ -1201,12 +1123,11 @@ class ParallelReduce, ReducerType, const int vector_length = policy.vector_length(); const int total_size = league_size * team_size; - typedef Kokkos::Impl::FunctorValueInit - ValueInit; - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; + using ValueInit = + Kokkos::Impl::FunctorValueInit; + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; if (total_size == 0) { if (reducer.view().data()) { ValueInit::init(ReducerConditional::select(f, reducer), @@ -1251,9 +1172,9 @@ template class ParallelScan, Kokkos::Experimental::ROCm> { private: - typedef Kokkos::RangePolicy Policy; - typedef typename Policy::work_tag Tag; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; + using Policy = Kokkos::RangePolicy; + using Tag = typename Policy::work_tag; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; public: //---------------------------------------- @@ -1277,9 +1198,9 @@ template class ParallelScanWithTotal, ReturnType, Kokkos::Experimental::ROCm> { private: - typedef Kokkos::RangePolicy Policy; - typedef typename Policy::work_tag Tag; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; + using Policy = Kokkos::RangePolicy; + using Tag = typename Policy::work_tag; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; public: //---------------------------------------- @@ -1307,8 +1228,8 @@ class ParallelScan, private: using Policy = Kokkos::Impl::TeamPolicyInternal; - typedef typename Policy::work_tag Tag; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; + using Tag = typename Policy::work_tag; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; public: //---------------------------------------- @@ -1339,7 +1260,7 @@ namespace Kokkos { namespace Impl { template struct TeamThreadRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const iType start; const iType end; const iType increment; @@ -1374,7 +1295,7 @@ struct TeamThreadRangeBoundariesStruct { template struct ThreadVectorRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const index_type start; const index_type end; const index_type increment; @@ -1450,7 +1371,7 @@ template KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< typename std::common_type::type, Impl::ROCmTeamMember> TeamThreadRange(const Impl::ROCmTeamMember& thread, iType1 begin, iType2 end) { - typedef typename std::common_type::type iType; + using iType = typename std::common_type::type; return Impl::TeamThreadRangeBoundariesStruct( thread, begin, end); } @@ -1743,8 +1664,8 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( const Impl::ThreadVectorRangeBoundariesStruct& loop_boundaries, const FunctorType& lambda) { - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef typename ValueTraits::value_type value_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using value_type = typename ValueTraits::value_type; value_type val = value_type(); const int vector_length = loop_boundaries.thread.vector_length(); diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Reduce.hpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Reduce.hpp index 59a6a0433c..c5a16b80df 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Reduce.hpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Reduce.hpp @@ -49,8 +49,6 @@ #if !defined(KOKKOS_ROCM_AMP_REDUCE_INL) #define KOKKOS_ROCM_AMP_REDUCE_INL -#include - #include #include #include @@ -90,21 +88,21 @@ void reduce_enqueue(const int szElements, // size of the extent int const shared_size = 0) { using namespace hc; - typedef Kokkos::Impl::if_c::value, F, - ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c::value, F, + ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using TagFwd = typename Kokkos::Impl::if_c::value, - Tag, void>::type TagFwd; + Tag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; - typedef Kokkos::Impl::FunctorFinal ValueFinal; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; + using ValueFinal = Kokkos::Impl::FunctorFinal; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; if (output_length < 1) return; diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_ReduceScan.hpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_ReduceScan.hpp index 29694a012c..d2ad68aeef 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_ReduceScan.hpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_ReduceScan.hpp @@ -349,8 +349,8 @@ bool rocm_inter_block_reduction( ROCmTeamMember& team, ROCm::size_type * const m_scratch_flags, const int max_active_thread) { #ifdef __ROCM_ARCH__ - typedef typename FunctorValueTraits< FunctorType , ArgTag >::pointer_type pointer_type; - typedef typename FunctorValueTraits< FunctorType , ArgTag >::value_type value_type; + using pointer_type = typename FunctorValueTraits< FunctorType , ArgTag >::pointer_type; + using value_type = typename FunctorValueTraits< FunctorType , ArgTag >::value_type; //Do the intra-block reduction with shfl operations and static shared memory rocm_intra_block_reduction(value,join,max_active_thread); @@ -442,10 +442,10 @@ KOKKOS_INLINE_FUNCTION void rocm_intra_block_reduce_scan( const FunctorType &functor, const typename FunctorValueTraits::pointer_type base_data) { - typedef FunctorValueTraits ValueTraits; - typedef FunctorValueJoin ValueJoin; + using ValueTraits = FunctorValueTraits; + using ValueJoin = FunctorValueJoin; - typedef typename ValueTraits::pointer_type pointer_type; + using pointer_type = typename ValueTraits::pointer_type; const unsigned value_count = ValueTraits::value_count(functor); const unsigned BlockSizeMask = blockDim_y - 1; @@ -582,15 +582,15 @@ KOKKOS_INLINE_FUNCTION bool rocm_single_inter_block_reduce_scan( typename FunctorValueTraits::value_type *const global_data, ROCM::size_type *const global_flags) { - typedef ROCM::size_type size_type; - typedef FunctorValueTraits ValueTraits; - typedef FunctorValueJoin ValueJoin; - typedef FunctorValueInit ValueInit; - typedef FunctorValueOps ValueOps; - - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - typedef typename ValueTraits::value_type value_type; + using size_type = ROCM::size_type; + using ValueTraits = FunctorValueTraits; + using ValueJoin = FunctorValueJoin; + using ValueInit = FunctorValueInit; + using ValueOps = FunctorValueOps; + + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; + using value_type = typename ValueTraits::value_type; // '__ffs' = position of the least significant bit set to 1. // blockDim_y is guaranteed to be a power of two so this diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Scan.hpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Scan.hpp index 337550b9f8..47ca6bc1e3 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Scan.hpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Scan.hpp @@ -50,14 +50,14 @@ namespace Impl { template void scan_enqueue(const int len, const F& f, TransformIndex transform_index) { - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; - typedef Kokkos::Impl::FunctorValueOps ValueOps; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; + using ValueOps = Kokkos::Impl::FunctorValueOps; - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using value_type = typename ValueTraits::value_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const auto td = get_tile_desc(len); std::vector result_cpu(td.num_tiles); @@ -148,14 +148,14 @@ void scan_enqueue(const int len, const F& f, TransformIndex transform_index) { template void scan_enqueue(const int len, const F& f, ReturnType& return_val, TransformIndex transform_index) { - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; - typedef Kokkos::Impl::FunctorValueOps ValueOps; - - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; + using ValueOps = Kokkos::Impl::FunctorValueOps; + + using value_type = typename ValueTraits::value_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const auto td = get_tile_desc(len); std::vector result_cpu(td.num_tiles); diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp index 1a79425f49..095aecf795 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp @@ -59,9 +59,7 @@ #include -#if defined(KOKKOS_ENABLE_PROFILING) -#include -#endif +#include /*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/ @@ -299,17 +297,16 @@ void SharedAllocationRecord:: SharedAllocationRecord::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { SharedAllocationHeader header; Kokkos::Impl::DeepCopy( &header, RecordBase::m_alloc_ptr, sizeof(SharedAllocationHeader)); Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::Experimental::ROCmSpace::name()), + Kokkos::Profiling::make_space_handle( + Kokkos::Experimental::ROCmSpace::name()), header.m_label, data(), size()); } -#endif m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, SharedAllocationRecord::m_alloc_size); @@ -317,14 +314,12 @@ SharedAllocationRecord::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle( + Kokkos::Profiling::make_space_handle( Kokkos::Experimental::ROCmHostPinnedSpace::name()), RecordBase::m_alloc_ptr->m_label, data(), size()); } -#endif m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, SharedAllocationRecord::m_alloc_size); @@ -346,13 +341,11 @@ SharedAllocationRecord:: sizeof(SharedAllocationHeader) + arg_alloc_size)), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); + Kokkos::Profiling::make_space_handle(arg_space.name()), arg_label, + data(), arg_alloc_size); } -#endif SharedAllocationHeader header; @@ -385,13 +378,11 @@ SharedAllocationRecord:: sizeof(SharedAllocationHeader) + arg_alloc_size)), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); + Kokkos::Profiling::make_space_handle(arg_space.name()), arg_label, + data(), arg_alloc_size); } -#endif // Fill in the Header information, directly accessible via host pinned memory RecordBase::m_alloc_ptr->m_record = this; diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Task.hpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Task.hpp index 5b04e95513..f7c66ae518 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Task.hpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Task.hpp @@ -182,7 +182,7 @@ KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< Impl::TaskExec > TeamThreadRange(Impl::TaskExec& thread, const iType1& begin, const iType2& end) { - typedef typename std::common_type::type iType; + using iType = typename std::common_type::type; return Impl::TeamThreadRangeBoundariesStruct< iType, Impl::TaskExec >(thread, begin, end); } diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp index 3d80b4d440..58950fe3f6 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp @@ -213,9 +213,9 @@ void rocm_assign(T& x, const U& y) restrict(cpu, amp) { template struct tile_type { #if defined(ROCM15) - typedef T type; + using type = T; #else - typedef __attribute__((address_space(3))) T type; + using type = __attribute__((address_space(3))) T; #endif }; @@ -260,8 +260,8 @@ struct single_action { template struct tile_buffer : array_view::type>, single_action, T> { - typedef typename tile_type::type element_type; - typedef array_view base; + using element_type = typename tile_type::type; + using base = array_view; using base::base; @@ -273,8 +273,8 @@ struct tile_buffer : array_view::type>, template struct tile_buffer { - typedef typename tile_type::type element_type; - typedef typename tile_type::type tchar_type; + using element_type = typename tile_type::type; + using tchar_type = typename tile_type::type; element_type* element_data; std::size_t n, m; @@ -434,9 +434,9 @@ hc::completion_future tile_for(tile_desc td, F f) { return parallel_for_each( grid, [=](hc::tiled_index<1> t_idx) [[hc]] { #if defined(ROCM15) - typedef T group_t; + using group_t = T; #else - typedef __attribute__((address_space(3))) T group_t; + using group_t = __attribute__((address_space(3))) T; #endif group_t* buffer = (group_t*)hc::get_dynamic_group_segment_base_pointer(); diff --git a/lib/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIAvail.hpp b/lib/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIAvail.hpp deleted file mode 100644 index f7d18854dc..0000000000 --- a/lib/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIAvail.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_SERIAL_VIEWETIAVAIL_HPP -#define KOKKOS_SERIAL_VIEWETIAVAIL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Serial - -#include - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/lib/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIDecl.hpp b/lib/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIDecl.hpp deleted file mode 100644 index 1410a7eeac..0000000000 --- a/lib/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIDecl.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_SERIAL_VIEWETIDECL_HPP -#define KOKKOS_SERIAL_VIEWETIDECL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Serial - -#include - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp index 7adfd127de..dba35ec521 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp +++ b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp @@ -55,7 +55,7 @@ #include #include -#include +#include //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -185,7 +185,7 @@ ThreadsExec::ThreadsExec() ThreadsExec::~ThreadsExec() { const unsigned entry = m_pool_size - (m_pool_rank + 1); - typedef Kokkos::Impl::SharedAllocationRecord Record; + using Record = Kokkos::Impl::SharedAllocationRecord; if (m_scratch) { Record *const r = Record::get_record(m_scratch); @@ -410,7 +410,7 @@ void *ThreadsExec::root_reduce_scratch() { } void ThreadsExec::execute_resize_scratch(ThreadsExec &exec, const void *) { - typedef Kokkos::Impl::SharedAllocationRecord Record; + using Record = Kokkos::Impl::SharedAllocationRecord; if (exec.m_scratch) { Record *const r = Record::get_record(exec.m_scratch); @@ -708,10 +708,6 @@ void ThreadsExec::initialize(unsigned thread_count, unsigned use_numa_count, Impl::init_lock_array_host_space(); Impl::SharedAllocationRecord::tracking_enable(); - -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) && defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif } //---------------------------------------------------------------------------- @@ -759,9 +755,7 @@ void ThreadsExec::finalize() { s_threads_process.m_pool_fan_size = 0; s_threads_process.m_pool_state = ThreadsExec::Inactive; -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::finalize(); -#endif } //---------------------------------------------------------------------------- @@ -774,43 +768,20 @@ void ThreadsExec::finalize() { namespace Kokkos { -int Threads::concurrency() { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return thread_pool_size(0); -#else - return impl_thread_pool_size(0); -#endif -} -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE +int Threads::concurrency() { return impl_thread_pool_size(0); } void Threads::fence() const { Impl::ThreadsExec::fence(); } -#endif -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -Threads &Threads::instance(int) -#else -Threads &Threads::impl_instance(int) -#endif -{ +Threads &Threads::impl_instance(int) { static Threads t; return t; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int Threads::thread_pool_size(int depth) -#else -int Threads::impl_thread_pool_size(int depth) -#endif -{ +int Threads::impl_thread_pool_size(int depth) { return Impl::s_thread_pool_size[depth]; } #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int Threads::thread_pool_rank() -#else -int Threads::impl_thread_pool_rank() -#endif -{ +int Threads::impl_thread_pool_rank() { const pthread_t pid = pthread_self(); int i = 0; while ((i < Impl::s_thread_pool_size[0]) && (pid != Impl::s_threads_pid[i])) { diff --git a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp index 1b11f45b72..1c8b3ac5f6 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp +++ b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp @@ -57,6 +57,8 @@ #include #include +#include + //---------------------------------------------------------------------------- namespace Kokkos { @@ -258,8 +260,8 @@ class ThreadsExec { template inline void fan_in_reduce(const FunctorType &f) const { - typedef Kokkos::Impl::FunctorValueJoin Join; - typedef Kokkos::Impl::FunctorFinal Final; + using Join = Kokkos::Impl::FunctorValueJoin; + using Final = Kokkos::Impl::FunctorFinal; const int rev_rank = m_pool_size - (m_pool_rank + 1); @@ -305,11 +307,11 @@ class ThreadsExec { // 3) Rendezvous : All threads inclusive scan value are available // 4) ScanCompleted : exclusive scan value copied - typedef Kokkos::Impl::FunctorValueTraits Traits; - typedef Kokkos::Impl::FunctorValueJoin Join; - typedef Kokkos::Impl::FunctorValueInit Init; + using Traits = Kokkos::Impl::FunctorValueTraits; + using Join = Kokkos::Impl::FunctorValueJoin; + using Init = Kokkos::Impl::FunctorValueInit; - typedef typename Traits::value_type scalar_type; + using scalar_type = typename Traits::value_type; const int rev_rank = m_pool_size - (m_pool_rank + 1); const unsigned count = Traits::value_count(f); @@ -411,11 +413,11 @@ class ThreadsExec { template inline void scan_small(const FunctorType &f) { - typedef Kokkos::Impl::FunctorValueTraits Traits; - typedef Kokkos::Impl::FunctorValueJoin Join; - typedef Kokkos::Impl::FunctorValueInit Init; + using Traits = Kokkos::Impl::FunctorValueTraits; + using Join = Kokkos::Impl::FunctorValueJoin; + using Init = Kokkos::Impl::FunctorValueInit; - typedef typename Traits::value_type scalar_type; + using scalar_type = typename Traits::value_type; const int rev_rank = m_pool_size - (m_pool_rank + 1); const unsigned count = Traits::value_count(f); @@ -441,7 +443,7 @@ class ThreadsExec { } else { // Root thread does the thread-scan before releasing threads - scalar_type *ptr_prev = 0; + scalar_type *ptr_prev = nullptr; for (int rank = 0; rank < m_pool_size; ++rank) { scalar_type *const ptr = @@ -614,52 +616,26 @@ namespace Kokkos { inline int Threads::in_parallel() { return Impl::ThreadsExec::in_parallel(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline int Threads::is_initialized() { - return Impl::ThreadsExec::is_initialized(); -} -#else inline int Threads::impl_is_initialized() { return Impl::ThreadsExec::is_initialized(); } -#endif -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline void Threads::initialize( -#else -inline void Threads::impl_initialize( -#endif - unsigned threads_count, unsigned use_numa_count, - unsigned use_cores_per_numa, bool allow_asynchronous_threadpool) { +inline void Threads::impl_initialize(unsigned threads_count, + unsigned use_numa_count, + unsigned use_cores_per_numa, + bool allow_asynchronous_threadpool) { Impl::ThreadsExec::initialize(threads_count, use_numa_count, use_cores_per_numa, allow_asynchronous_threadpool); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline void Threads::finalize() -#else -inline void Threads::impl_finalize() -#endif -{ - Impl::ThreadsExec::finalize(); -} +inline void Threads::impl_finalize() { Impl::ThreadsExec::finalize(); } inline void Threads::print_configuration(std::ostream &s, const bool detail) { Impl::ThreadsExec::print_configuration(s, detail); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline bool Threads::sleep() { return Impl::ThreadsExec::sleep(); } - -inline bool Threads::wake() { return Impl::ThreadsExec::wake(); } -#endif - inline void Threads::impl_static_fence() { Impl::ThreadsExec::fence(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline void Threads::fence() { Impl::ThreadsExec::fence(); } -#endif - } /* namespace Kokkos */ //---------------------------------------------------------------------------- @@ -670,6 +646,12 @@ namespace Experimental { template <> class UniqueToken { + private: + using buffer_type = Kokkos::View; + int m_count; + buffer_type m_buffer_view; + uint32_t volatile *m_buffer; + public: using execution_space = Threads; using size_type = int; @@ -677,38 +659,61 @@ class UniqueToken { /// \brief create object size for concurrency on the given instance /// /// This object should not be shared between instances - UniqueToken(execution_space const & = execution_space()) noexcept {} + UniqueToken(execution_space const & = execution_space()) noexcept + : m_count(::Kokkos::Threads::impl_thread_pool_size()), + m_buffer_view(buffer_type()), + m_buffer(nullptr) {} + + UniqueToken(size_type max_size, execution_space const & = execution_space()) + : m_count(max_size > ::Kokkos::Threads::impl_thread_pool_size() + ? ::Kokkos::Threads::impl_thread_pool_size() + : max_size), + m_buffer_view( + max_size > ::Kokkos::Threads::impl_thread_pool_size() + ? buffer_type() + : buffer_type("UniqueToken::m_buffer_view", + ::Kokkos::Impl::concurrent_bitset::buffer_bound( + m_count))), + m_buffer(m_buffer_view.data()) {} /// \brief upper bound for acquired values, i.e. 0 <= value < size() - inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - size() const noexcept { - return Threads::thread_pool_size(); - } -#else - int - size() const noexcept { - return Threads::impl_thread_pool_size(); - } -#endif + KOKKOS_INLINE_FUNCTION + int size() const noexcept { return m_count; } /// \brief acquire value such that 0 <= value < size() - inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - acquire() const noexcept { - return Threads::thread_pool_rank(); - } + KOKKOS_INLINE_FUNCTION + int acquire() const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (m_buffer == nullptr) { + return Threads::impl_thread_pool_rank(); + } else { + const ::Kokkos::pair result = + ::Kokkos::Impl::concurrent_bitset::acquire_bounded( + m_buffer, m_count, ::Kokkos::Impl::clock_tic() % m_count); + + if (result.first < 0) { + ::Kokkos::abort( + "UniqueToken failure to acquire tokens, no tokens " + "available"); + } + return result.first; + } #else - int - acquire() const noexcept { - return Threads::impl_thread_pool_rank(); - } + return 0; #endif + } /// \brief release a value acquired by generate - inline void release(int) const noexcept {} + KOKKOS_INLINE_FUNCTION + void release(int i) const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (m_buffer != nullptr) { + ::Kokkos::Impl::concurrent_bitset::release(m_buffer, i); + } +#else + (void)i; +#endif + } }; template <> @@ -723,34 +728,28 @@ class UniqueToken { UniqueToken(execution_space const & = execution_space()) noexcept {} /// \brief upper bound for acquired values, i.e. 0 <= value < size() - inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - size() const noexcept { - return Threads::thread_pool_size(); - } -#else - int - size() const noexcept { + KOKKOS_INLINE_FUNCTION + int size() const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) return Threads::impl_thread_pool_size(); - } +#else + return 0; #endif + } /// \brief acquire value such that 0 <= value < size() - inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - acquire() const noexcept { - return Threads::thread_pool_rank(); - } -#else - int - acquire() const noexcept { + KOKKOS_INLINE_FUNCTION + int acquire() const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) return Threads::impl_thread_pool_rank(); - } +#else + return 0; #endif + } + /// \brief release a value acquired by generate - inline void release(int) const noexcept {} + KOKKOS_INLINE_FUNCTION + void release(int) const noexcept {} }; } // namespace Experimental diff --git a/lib/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp b/lib/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp index fe1a1e8b08..dafd2c68c9 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp +++ b/lib/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp @@ -74,11 +74,11 @@ class ThreadsExecTeamMember { enum { TEAM_REDUCE_SIZE = 512 }; public: - typedef Kokkos::Threads execution_space; - typedef execution_space::scratch_memory_space scratch_memory_space; + using execution_space = Kokkos::Threads; + using scratch_memory_space = execution_space::scratch_memory_space; private: - typedef execution_space::scratch_memory_space space; + using space = execution_space::scratch_memory_space; ThreadsExec* const m_exec; ThreadsExec* const* m_team_base; ///< Base for team fan-in space m_team_shared; @@ -175,8 +175,8 @@ class ThreadsExecTeamMember { } #else // Make sure there is enough scratch space: - typedef typename if_c::type type; + using type = typename if_c::type; if (m_team_base) { type* const local_value = ((type*)m_team_base[0]->scratch_memory()); @@ -201,8 +201,8 @@ class ThreadsExecTeamMember { } #else // Make sure there is enough scratch space: - typedef typename if_c::type type; + using type = typename if_c::type; f(value); if (m_team_base) { type* const local_value = ((type*)m_team_base[0]->scratch_memory()); @@ -227,10 +227,10 @@ class ThreadsExecTeamMember { #else { // Make sure there is enough scratch space: - typedef - typename if_c::type type; + using type = + typename if_c::type; - if (0 == m_exec) return value; + if (nullptr == m_exec) return value; if (team_rank() != team_size() - 1) *((volatile type*)m_exec->scratch_memory()) = value; @@ -270,12 +270,12 @@ class ThreadsExecTeamMember { #else team_reduce(const ReducerType& reducer, const typename ReducerType::value_type contribution) const { - typedef typename ReducerType::value_type value_type; + using value_type = typename ReducerType::value_type; // Make sure there is enough scratch space: - typedef typename if_c::type type; + using type = typename if_c::type; - if (0 == m_exec) return; + if (nullptr == m_exec) return; type* const local_value = ((type*)m_exec->scratch_memory()); @@ -333,11 +333,10 @@ class ThreadsExecTeamMember { #else { // Make sure there is enough scratch space: - typedef - typename if_c::type - type; + using type = + typename if_c::type; - if (0 == m_exec) return type(0); + if (nullptr == m_exec) return type(0); volatile type* const work_value = ((type*)m_exec->scratch_memory()); @@ -386,7 +385,7 @@ class ThreadsExecTeamMember { */ template KOKKOS_INLINE_FUNCTION ArgType team_scan(const ArgType& value) const { - return this->template team_scan(value, 0); + return this->template team_scan(value, nullptr); } //---------------------------------------- @@ -398,8 +397,8 @@ class ThreadsExecTeamMember { const TeamPolicyInternal& team, const int shared_size) : m_exec(exec), - m_team_base(0), - m_team_shared(0, 0), + m_team_base(nullptr), + m_team_shared(nullptr, 0), m_team_shared_size(shared_size), m_team_size(team.team_size()), m_team_rank(0), @@ -479,9 +478,9 @@ class ThreadsExecTeamMember { } ThreadsExecTeamMember() - : m_exec(0), - m_team_base(0), - m_team_shared(0, 0), + : m_exec(nullptr), + m_team_base(nullptr), + m_team_shared(nullptr, 0), m_team_shared_size(0), m_team_size(1), m_team_rank(0), @@ -578,26 +577,16 @@ class TeamPolicyInternal int m_chunk_size; inline void init(const int league_size_request, const int team_size_request) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = traits::execution_space::thread_pool_size(0); -#else const int pool_size = traits::execution_space::impl_thread_pool_size(0); -#endif const int max_host_team_size = Impl::HostThreadTeamData::max_team_members; const int team_max = pool_size < max_host_team_size ? pool_size : max_host_team_size; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int team_grain = traits::execution_space::thread_pool_size(2); -#else const int team_grain = traits::execution_space::impl_thread_pool_size(2); -#endif m_league_size = league_size_request; -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE if (team_size_request > team_max) Kokkos::abort("Kokkos::abort: Requested Team Size is too large!"); -#endif m_team_size = team_size_request < team_max ? team_size_request : team_max; @@ -618,28 +607,15 @@ class TeamPolicyInternal public: //! Tag this class as a kokkos execution policy //! Tag this class as a kokkos execution policy - typedef TeamPolicyInternal execution_policy; + using execution_policy = TeamPolicyInternal; - typedef PolicyTraits traits; + using traits = PolicyTraits; const typename traits::execution_space& space() const { static typename traits::execution_space m_space; return m_space; } - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_team_alloc = p.m_team_alloc; - m_team_iter = p.m_team_iter; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - return *this; - } - template friend class TeamPolicyInternal; @@ -659,42 +635,15 @@ class TeamPolicyInternal //---------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template - inline static int team_size_max(const FunctorType&) { - int pool_size = traits::execution_space::thread_pool_size(1); - int max_host_team_size = Impl::HostThreadTeamData::max_team_members; - return pool_size < max_host_team_size ? pool_size : max_host_team_size; - } - - template - inline static int team_size_recommended(const FunctorType&) { - return traits::execution_space::thread_pool_size(2); - } - - template - inline static int team_size_recommended(const FunctorType&, const int&) { - return traits::execution_space::thread_pool_size(2); - } -#endif - template int team_size_max(const FunctorType&, const ParallelForTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int pool_size = traits::execution_space::thread_pool_size(1); -#else - int pool_size = traits::execution_space::impl_thread_pool_size(1); -#endif + int pool_size = traits::execution_space::impl_thread_pool_size(1); int max_host_team_size = Impl::HostThreadTeamData::max_team_members; return pool_size < max_host_team_size ? pool_size : max_host_team_size; } template int team_size_max(const FunctorType&, const ParallelReduceTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int pool_size = traits::execution_space::thread_pool_size(1); -#else - int pool_size = traits::execution_space::impl_thread_pool_size(1); -#endif + int pool_size = traits::execution_space::impl_thread_pool_size(1); int max_host_team_size = Impl::HostThreadTeamData::max_team_members; return pool_size < max_host_team_size ? pool_size : max_host_team_size; } @@ -705,20 +654,12 @@ class TeamPolicyInternal } template int team_size_recommended(const FunctorType&, const ParallelForTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return traits::execution_space::thread_pool_size(2); -#else return traits::execution_space::impl_thread_pool_size(2); -#endif } template int team_size_recommended(const FunctorType&, const ParallelReduceTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return traits::execution_space::thread_pool_size(2); -#else return traits::execution_space::impl_thread_pool_size(2); -#endif } template inline int team_size_recommended(const FunctorType& f, const ReducerType&, @@ -773,17 +714,10 @@ class TeamPolicyInternal m_team_alloc(0), m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(0) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - { - init(league_size_request, traits::execution_space::thread_pool_size(2)); - } -#else - { + m_chunk_size(0) { init(league_size_request, traits::execution_space::impl_thread_pool_size(2)); } -#endif TeamPolicyInternal(int league_size_request, int team_size_request, int /* vector_length_request */ = 1) @@ -805,57 +739,13 @@ class TeamPolicyInternal m_team_alloc(0), m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(0) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - { - init(league_size_request, traits::execution_space::thread_pool_size(2)); - } -#else - { + m_chunk_size(0) { init(league_size_request, traits::execution_space::impl_thread_pool_size(2)); } -#endif - inline int chunk_size() const { return m_chunk_size; } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - } - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } + inline int chunk_size() const { return m_chunk_size; } - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -884,47 +774,10 @@ class TeamPolicyInternal inline TeamPolicyInternal& set_scratch_size( const int& level, const PerTeamValue& per_team, const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif - - protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { m_team_scratch_size[level] = per_team.value; m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif private: /** \brief finalize chunk_size if it was set to AUTO*/ @@ -950,7 +803,7 @@ class TeamPolicyInternal } public: - typedef Impl::ThreadsExecTeamMember member_type; + using member_type = Impl::ThreadsExecTeamMember; friend class Impl::ThreadsExecTeamMember; }; @@ -976,7 +829,7 @@ KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< Impl::ThreadsExecTeamMember> TeamThreadRange(const Impl::ThreadsExecTeamMember& thread, const iType1& begin, const iType2& end) { - typedef typename std::common_type::type iType; + using iType = typename std::common_type::type; return Impl::TeamThreadRangeBoundariesStruct( thread, iType(begin), iType(end)); @@ -998,7 +851,7 @@ KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< Impl::ThreadsExecTeamMember> TeamVectorRange(const Impl::ThreadsExecTeamMember& thread, const iType1& begin, const iType2& end) { - typedef typename std::common_type::type iType; + using iType = typename std::common_type::type; return Impl::TeamThreadRangeBoundariesStruct( thread, iType(begin), iType(end)); @@ -1167,8 +1020,8 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( const Impl::ThreadVectorRangeBoundariesStruct< iType, Impl::ThreadsExecTeamMember>& loop_boundaries, const FunctorType& lambda) { - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef typename ValueTraits::value_type value_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using value_type = typename ValueTraits::value_type; value_type scan_val = value_type(); diff --git a/lib/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp b/lib/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp index fbc83e9a55..e36c1ea664 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp +++ b/lib/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp @@ -48,9 +48,6 @@ #include #if defined(KOKKOS_ENABLE_THREADS) -#include -#include - #include #include @@ -70,10 +67,10 @@ template class ParallelFor, Kokkos::Threads> { private: - typedef Kokkos::RangePolicy Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using Policy = Kokkos::RangePolicy; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; const FunctorType m_functor; const Policy m_policy; @@ -171,17 +168,16 @@ template class ParallelFor, Kokkos::Threads> { private: - typedef Kokkos::MDRangePolicy MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; + using MDRangePolicy = Kokkos::MDRangePolicy; + using Policy = typename MDRangePolicy::impl_range_policy; - typedef typename MDRangePolicy::work_tag WorkTag; + using WorkTag = typename MDRangePolicy::work_tag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef typename Kokkos::Impl::HostIterateTile< - MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void> - iterate_type; + using iterate_type = typename Kokkos::Impl::HostIterateTile< + MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void>; const FunctorType m_functor; const MDRangePolicy m_mdr_policy; @@ -266,10 +262,10 @@ template class ParallelFor, Kokkos::Threads> { private: - typedef Kokkos::Impl::TeamPolicyInternal - Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; + using Policy = + Kokkos::Impl::TeamPolicyInternal; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; const FunctorType m_functor; const Policy m_policy; @@ -353,26 +349,26 @@ template class ParallelReduce, ReducerType, Kokkos::Threads> { private: - typedef Kokkos::RangePolicy Policy; + using Policy = Kokkos::RangePolicy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -523,28 +519,28 @@ template class ParallelReduce, ReducerType, Kokkos::Threads> { private: - typedef Kokkos::MDRangePolicy MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; - - typedef typename MDRangePolicy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; - - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using MDRangePolicy = Kokkos::MDRangePolicy; + using Policy = typename MDRangePolicy::impl_range_policy; + + using WorkTag = typename MDRangePolicy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; + + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using value_type = typename ValueTraits::value_type; + using reference_type = typename ValueTraits::reference_type; using iterate_type = typename Kokkos::Impl::HostIterateTile class ParallelReduce, ReducerType, Kokkos::Threads> { private: - typedef Kokkos::Impl::TeamPolicyInternal - Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using Policy = + Kokkos::Impl::TeamPolicyInternal; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -807,15 +803,15 @@ template class ParallelScan, Kokkos::Threads> { private: - typedef Kokkos::RangePolicy Policy; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; + using Policy = Kokkos::RangePolicy; + using WorkRange = typename Policy::WorkRange; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -884,15 +880,15 @@ template class ParallelScanWithTotal, ReturnType, Kokkos::Threads> { private: - typedef Kokkos::RangePolicy Policy; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using Policy = Kokkos::RangePolicy; + using WorkRange = typename Policy::WorkRange; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const FunctorType m_functor; const Policy m_policy; diff --git a/lib/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp b/lib/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp index 7bcd9aaee0..401f3c0b1a 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp +++ b/lib/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp @@ -45,6 +45,9 @@ #ifndef KOKKOS_THREADS_WORKGRAPHPOLICY_HPP #define KOKKOS_THREADS_WORKGRAPHPOLICY_HPP +#include +#include + namespace Kokkos { namespace Impl { @@ -52,11 +55,10 @@ template class ParallelFor, Kokkos::Threads> { private: - typedef Kokkos::WorkGraphPolicy Policy; + using Policy = Kokkos::WorkGraphPolicy; - typedef ParallelFor, - Kokkos::Threads> - Self; + using Self = ParallelFor, + Kokkos::Threads>; Policy m_policy; FunctorType m_functor; diff --git a/lib/kokkos/core/src/eti/CMakeLists.txt b/lib/kokkos/core/src/eti/CMakeLists.txt deleted file mode 100644 index a7e7717a6e..0000000000 --- a/lib/kokkos/core/src/eti/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -if (KOKKOS_ENABLE_CUDA) - add_subdirectory(Cuda) -endif() -if (KOKKOS_ENABLE_OPENMP) - add_subdirectory(OpenMP) -endif() -if (KOKKOS_ENABLE_HPX) - add_subdirectory(HPX) -endif() -if (KOKKOS_ENABLE_ROCM) - add_subdirectory(ROCm) -endif() -if (KOKKOS_ENABLE_SERIAL) - add_subdirectory(Serial) -endif() -if (KOKKOS_ENABLE_THREADS) - add_subdirectory(Threads) -endif() - -set(ETI_SOURCES "${ETI_SOURCES}" PARENT_SCOPE) - -install(FILES -common/Kokkos_ViewFillCopyETIAvail_Macros.hpp -common/Kokkos_ViewFillCopyETIDecl_Macros.hpp -DESTINATION include/eti/common) diff --git a/lib/kokkos/core/src/eti/Cuda/CMakeLists.txt b/lib/kokkos/core/src/eti/Cuda/CMakeLists.txt deleted file mode 100644 index 8d635ba36f..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index a72781d8a0..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 86600a2d38..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 1f4e93ec2b..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index e6d965eb48..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 5bb1ce76e6..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index cad6e9b671..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 5c31da459e..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index 7ef6acb4b1..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 5680b8581c..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index bae1ee8827..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 9ad5912c0b..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 12806d1c5b..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 0330b205db..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 10e894125d..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 7cec352662..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 5bb6913cce..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index f138a2049a..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index e1901422d1..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index dab83bfb18..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index 522303b447..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 608b4d4c27..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 2c33f7facd..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 3ad16222e4..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 47f39d7ae2..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index bca253b756..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 20fadbd5d8..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 4d4716510e..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 42fa2c7b4e..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index a3cd8cc994..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 9efcc720c3..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index c34c6a391f..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 6d7cf16fa5..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index ddd65c01a8..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index ae41d19395..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 5d349b6990..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index c60df37674..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index cfce1b7916..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 659ef18377..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 84eb991853..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 7f98cebd64..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index f26ae1e4e1..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index a5167f6fa8..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 60658f0bd7..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index f74d41f902..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 0345966748..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index bfbaaaec7a..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 1be20a18fc..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 51394ca352..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index df4ef48e33..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 83671a7caa..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index e652e268be..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 2b6b50a890..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 072569f7ec..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index b2bb00cb89..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 39615042ee..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index e557600c6c..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 0e31670af8..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 873bcb274e..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 0cb8e8f22f..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 120fbd4278..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 181c8df8df..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 0e7254d25b..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index e0a383743a..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 4bcab3263f..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 4fc3ffeac8..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index cf63d330b1..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index e3ec8d7a0e..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 9e8739ba3d..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 30a6e366f3..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index 1d7eedd9ff..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 372bc02c3f..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 9c9328f21d..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 86a85d220a..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 251bf7dd18..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index f0c0d79391..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 1b094259f8..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 82b8f87fa4..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index daf8a4d1e7..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index bbdd48bfd5..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 093c250d57..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index c8472757c7..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index f8a9291132..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index f47423fc1b..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index f9b8d6dba3..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 8dd503b5a8..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index f931713455..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index 9105b908b3..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 6f92bf8f50..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index 6538490fe3..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index c7a793b3d1..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index 7e5c7b56f0..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index dcf7043698..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 3bd6920f41..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index d75d3f9241..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 640fd04e96..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index b17601cf0a..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index a039d13f19..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 0f4ac7de1d..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 892f51c218..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index ab96396e6a..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 762c1f8f6b..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 63c6bdc8a0..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 5f0dc1f6e2..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index d3eab4fe88..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 36d34aaff2..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 1d9022f380..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 89172d0ef2..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index c14394738b..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 395dae627a..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 8c192533f5..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 22153b1158..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 0e5d276872..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index d8b91a00f5..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 08798db548..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index f371b9535d..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 6b29dcd945..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 8deb69b612..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index fbd4a498c9..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index b3c31de32d..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 6fab291061..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 7be7b46627..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 9f0f83ba2d..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 7fcc5db031..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 1a7b9933ab..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index c89e60595e..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 1be8bd0281..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 0c61d411bb..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index c46bc82680..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 3f430147ad..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 482bf3a6c1..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index eec32bbc80..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 9d95e5f9d5..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index ca86e10ddd..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 3047e380da..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 3096ab6d3a..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 88eacdfe85..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index c800698d36..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index b2e2cdad44..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 0dcabb6626..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index fd2f9e8589..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index c7b4b9ff80..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index c389a15f72..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Cuda/Makefile.eti_Cuda b/lib/kokkos/core/src/eti/Cuda/Makefile.eti_Cuda deleted file mode 100644 index 9531c4fff6..0000000000 --- a/lib/kokkos/core/src/eti/Cuda/Makefile.eti_Cuda +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/lib/kokkos/core/src/eti/HPX/CMakeLists.txt b/lib/kokkos/core/src/eti/HPX/CMakeLists.txt deleted file mode 100644 index 131a2d2e6e..0000000000 --- a/lib/kokkos/core/src/eti/HPX/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 1a9a9bf4f8..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 0996ffda1a..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 08f2651c45..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 8f5ca31850..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 7e50c2d58b..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 5caa76cd55..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 5427e9f274..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index 4748550943..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index db65f31221..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index da598b4e55..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 8a60373f4a..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index a9531ab8e3..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 66c0506137..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 885b2cc04d..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 90b19bb66e..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index d62dbf0b43..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index 2b614aabfc..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 7a1db773e9..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index d6a697d60e..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 4fe8d07b9f..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index c0d5b19de5..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 379e7e6b77..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 6c62abcd70..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index e5b3c38234..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index f90485b60d..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 7b4ebf21c8..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 35de800a9b..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 7aa6a05d34..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index f1b95bbc0e..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 884570ac64..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index ae73c5dd3c..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index f529807167..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index b3ab97ad7f..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index e5e934e8bf..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index aa1f24ce43..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 891aaaa577..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index d5fc488231..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index baa863a40f..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index b8936f1bcb..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index b5c3138759..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 0c12c5b477..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 8934c4a6e4..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 9c30460367..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index ae2b1e609f..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 6f721ca789..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 4cca974fb6..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 747250c590..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 2bcc9dcaa2..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index cf424725b3..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 7c5163c537..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 275703c221..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 0b8b6690b6..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index dd7cb725e4..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 05694106cf..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index ce5e6a2917..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index baf95fb1f2..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 3638c01003..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 1f964cbddf..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index bc498b3509..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 0e97cd97c2..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index e21f05bf55..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 1ccdc6a361..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index ef1c1f970f..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 2c993914c6..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index c4d120b33b..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 520013db6a..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 663110f450..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index ab18fdebdb..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 232f088e81..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 5a6331b76b..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index c3223ee4dc..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 50584929ae..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 281784c6a7..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 8a8220baeb..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 7c5567b049..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index f2716fef3e..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index db1797304a..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 5c46468170..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index be4e90ccc4..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 17200db10b..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 89794ad1b9..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 1771edc874..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index b118550ac2..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 8879247640..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 7b078639c7..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 2dc3d8b7c3..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index c3ff0b2127..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index 737fe0d634..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 176a8a5768..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index e967e8d2b3..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 80323d7aa2..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index f68b9720ba..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 2dd7bf7843..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index c240157692..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 008eea27c9..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index ba10fddcb5..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 0bc5851c11..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 14c359c093..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 6672b85ce5..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 1ec2162048..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index 1a6f0631b7..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 5b90d4c7a7..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 3e0e011b0a..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 912cfe66ff..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index a2cc70ffac..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 58772e42df..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index ce52b3fcfc..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 9baf307d8b..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index ffc8e2c520..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 16aec37096..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index a2b5e8dff4..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index f5b7347d38..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 7646c53722..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index e225e99c56..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 441e8b63ed..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 8e3bdecf1e..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 7662c5a390..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index db8625bd9f..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 5992b136b0..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index f862aa4df9..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 788c411d33..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 0646c93ac4..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 88299a88ba..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index aaec87e40c..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index f650c7e4a2..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 1cf32f3f52..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index a53f5b304b..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index a679f816b3..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index dc2efe8526..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index f532d1917b..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 067d7c3415..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index fdee4a6f35..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 4ee5059611..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 280fd0113e..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 84525a0043..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 7ba740043c..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 4a47549480..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 14773de5db..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 0f57ae5cb5..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 905bb918fc..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 30563fe13a..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index ed0c45b36b..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index 1ff4404c9b..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/HPX/Makefile.eti_HPX b/lib/kokkos/core/src/eti/HPX/Makefile.eti_HPX deleted file mode 100644 index 904f32fb82..0000000000 --- a/lib/kokkos/core/src/eti/HPX/Makefile.eti_HPX +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/lib/kokkos/core/src/eti/OpenMP/CMakeLists.txt b/lib/kokkos/core/src/eti/OpenMP/CMakeLists.txt deleted file mode 100644 index 73c419f3c4..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 37d812f989..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index c4ac098abc..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index fc7cc30555..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index f543baf688..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 6cff58e360..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 30ae7d650b..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 343c09f220..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index ffe2971e59..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 0e9a519c15..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index cca76dac37..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 22a6f0492f..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 32f9b4ec98..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 9753469e51..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index b0d5a3a7c7..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index f1b981eac1..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 07ebe686a4..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index 1eefbc9b01..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 87a81639eb..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index 401069942e..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 4e774bec23..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index 1b3343dd23..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index ad5421bb5e..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index fde4689980..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 9c1db701cc..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 2536abbed4..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 8ab48a4f7b..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index e4f8d40443..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index cd482972a7..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index fa7b6211fd..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index aeb191e8ca..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 94ce1eba0a..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 01c96b436f..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 3067883b2d..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index 27ecf522ac..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 2925cbe447..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 72672c5bb3..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index d301592daa..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index dca8eeb026..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 832bbc0fef..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 45f9c22bc1..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 7c8c5d80b7..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 2fae74f591..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 0523a6e286..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 24d667d7da..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 599d8fc04d..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 2583f8d6e9..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index d9e1f774bc..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 8376f1dd38..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 2b21554c08..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 985e0be47c..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index f1e37a5c41..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index ea071ac108..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index bac3515894..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 515812fb99..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 28ebc3505b..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 3bc9254b0e..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index dcba7deea3..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 9aba49991b..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 98d7304444..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 2179ba6558..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index b7eed148d8..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 58a2783218..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 7ed2bd0bd7..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 0ba5edbc7c..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index acce37b794..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 83878113da..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index fbbd5edd28..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index f4b2364f64..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp deleted file mode 100644 index df6db05a88..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 14acf8fb29..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index 1984598a27..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 9879802650..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 1283f14a69..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 3addc9913f..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 25336a754a..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index b4cca86620..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index ffe81fbff7..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 7bb38884bc..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index f99f79e4fc..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index cedc1d9014..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 2e101591d1..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 6451611b6f..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 0898be20e1..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 5dc7d5cdde..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index dc3c00d42f..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 52b94e91e4..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 3d1359bbfa..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index 54ac13a756..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 8a1e508923..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index f585a68331..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index f3943c7c63..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index ab16463a37..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 3adbfa6aae..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 32e317e02c..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 9a6bf70c92..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index a081f46d43..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 7175be7bf9..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 6ad8503302..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 6af17f7c3e..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 269785fa7e..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index a3469972de..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index d3064fd97f..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 5ae8d47620..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index f7b3a5db87..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index d36d2d27c6..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 6a88b0b8ea..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index ec459f1bbf..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 6e606008d6..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index 086e1effe1..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 8824774867..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index e32f7504fe..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index d36a5c1be5..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 3389fed4fa..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index c68d3ed810..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 9fc1b47afd..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index ed9ed4d63e..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 954f9eff6b..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 46c19786fa..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 0fc871882e..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 13739b99b2..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 9dec2fe8b9..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 334da5277f..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 05b1921525..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 0e57e83f85..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 89d7c45414..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 12ad031ee6..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 1b7286cdcd..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 3197555593..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index b5f1ddcc57..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index bb490af704..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 483d0ce3cf..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 4f1ae60f42..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 5420e3a449..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 46269afc22..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 425220e27f..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 6bc2ed733d..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 91cc8c2af2..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 46b97b3133..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 1c6c071e36..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index adb9f1e947..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 5c7fc99179..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index f8605287e2..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index b47b23c0df..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/OpenMP/Makefile.eti_OpenMP b/lib/kokkos/core/src/eti/OpenMP/Makefile.eti_OpenMP deleted file mode 100644 index 1aa98e665b..0000000000 --- a/lib/kokkos/core/src/eti/OpenMP/Makefile.eti_OpenMP +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/lib/kokkos/core/src/eti/ROCm/CMakeLists.txt b/lib/kokkos/core/src/eti/ROCm/CMakeLists.txt deleted file mode 100644 index a5e6c6250d..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 936b24983f..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 7d83d02279..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 50b160c452..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index fa4dccf30b..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 5ed0812c35..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 9bc2faefe9..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 35a198cb26..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index a79082c7a6..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index e344f94247..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 92e4281baa..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index c25262075a..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index c3ce63ccb0..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 443aaa1172..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 65d137d62b..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 50c66d9315..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 78464445e9..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index f1085851dd..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 090e77d63b..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index b82e770ee6..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 6fbd24842d..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index a434fc069f..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index cf7972a445..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 724fa978be..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 1910a2024f..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 9e5bf0fa3e..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 55b67d2999..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 1e7cfd2545..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index d374edbd4a..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 7eb20ccaba..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index cd13711178..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index f36b5353ac..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index afeeae9b3f..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 1786596001..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index 2db4dd794d..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 85ec8fc2d1..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 7b9ef4eedb..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 0e37d90d7b..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index aa484fcff0..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 94b5ba4707..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index f5f88d999e..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 056fccd673..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 00dfe959c5..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 9d975b184c..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index c01f76e9e6..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 5fc0e1cbac..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 2124318ad8..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 1dc1ece2cb..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 2b49fe1931..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 3cc1154673..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 56cb22173e..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 96b4198e07..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 3bf36b1c82..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 689270a64b..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 995b499425..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index e6f2970a64..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Experimental::ROCm, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Experimental::ROCm, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index c4602070eb..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Experimental::ROCm, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 9fe37b2577..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 81dd98a95f..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 1f487edd27..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 0fe78ecbbb..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Experimental::ROCm, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 710bfc182a..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 8f4cf975c6..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index fcf444ca88..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 480c135297..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index f09cb89a32..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index ef36faebd6..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 3e35101505..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index b12b8bc9fa..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 1e2e042763..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 4539a40871..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index 5af78387da..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 96f5489054..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 957741e776..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index d1c2254dac..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 87b95b9434..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index fba1027fc4..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index bbd762f1d4..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index ad31e2c030..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index bc14bbcee3..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 736781d696..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 6b16fbe952..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 95ce9c9521..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 34888c4e4a..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index eba5f4acd2..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index bc3ed4dcab..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index f7a669c820..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 084a97323b..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index d5e1538ca1..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index c2ffd740af..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index c7560e2eba..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 650e368469..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index 19636e8bf7..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 2d15ad10e8..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 477b8e44b7..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 6f4234e708..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 4697b8285d..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 4e15f36512..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 4336ff9ed3..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index a93494cb0c..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 0d4303e974..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index 02b7f479f5..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 8af29e6d0f..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 49787220cb..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index a48d561c93..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index f5414d25e7..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index aa2e44a1c5..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 02401e5ec0..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index dc48d2350c..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index 28be03b8a7..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 2974698b45..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index bf9678b7d2..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 7df511d71d..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 8eec6cae19..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 5422bacac4..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index dbb856b8da..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 3944a4671d..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 5f490e1a8e..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 5c2cf9d561..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 6ca32499b1..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 9c5d40e18a..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index ae111b312b..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index ce6c8a9fc6..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index d56e9e776e..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index e1ab19f5ff..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 083cecc074..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index b345f2ac43..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Experimental::ROCm, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Experimental::ROCm, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 7370f284cf..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Experimental::ROCm, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index e6892ca01a..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 1560af198f..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index a7322631a2..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 2b5d8178c4..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index ed476241ff..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Experimental::ROCm, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index ee2b6739e0..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index a8b7a8ef15..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index e11f9b4433..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 0e17bc8c5d..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index a7c9b8585d..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 88c9569a9f..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 62ec94f718..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 9f86f52008..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index a0762ad585..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index a3ffd62644..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index fbd2fca225..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Makefile.eti_ROCm b/lib/kokkos/core/src/eti/ROCm/Makefile.eti_ROCm deleted file mode 100644 index 0423c6feb6..0000000000 --- a/lib/kokkos/core/src/eti/ROCm/Makefile.eti_ROCm +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/lib/kokkos/core/src/eti/Serial/CMakeLists.txt b/lib/kokkos/core/src/eti/Serial/CMakeLists.txt deleted file mode 100644 index eb076db79c..0000000000 --- a/lib/kokkos/core/src/eti/Serial/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index a749ec859b..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 7a95f39755..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 961b788a85..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 57dbaaf95e..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 33b0b87208..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 6ec8b5f294..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index e4660ae4dc..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index d77fb3eb13..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index c7ae12e854..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 7a6ad9b578..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index bfe375c6b4..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 11c0c4a813..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 8a73236995..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index e2c48e8bb0..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index b6a7f488d7..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 2e3313b6eb..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index dcb760fbf4..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 9bd7e80e7e..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index dedbd50d8e..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 441d4774cc..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index b9013da90a..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 0b19e47184..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index f901648517..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index b8ad2e78bd..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 7bf4b7e77f..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 39e4d3bb6e..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 4d845c8e1a..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index b0d8e00fef..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index a8972610c9..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index c0db2a928b..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 44ef5f0bab..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 39d0b58af3..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 1d6eb2fd34..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index b38d19b999..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 360c6b4117..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index f1f1dcde17..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 6cfb563e75..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index abe7810be8..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 1b6b81e8e4..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 7e50ce7cbc..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index ea944ba15f..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index d00dd6a335..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index b7cf7d7fce..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 343dfc9658..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 44050f1421..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 4ab602bc3b..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 077314b85e..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 009d5afcf6..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 24a1e61eb3..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index bcf66fb161..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 65c075948f..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index e301766022..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 4ccabe6b3d..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 161cf27c49..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 0a0bb54bfd..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 745e67b5bf..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 40a9d2fe0f..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 9436c1d9f7..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index a52db28973..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 66e8b8f332..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 9a32d30e2a..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 1ec25b63b5..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 0c96adece5..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 5771fcf55e..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index b0b918d782..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index eae13261e9..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 7efc50d457..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index f6b63e9896..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 148ed99027..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 30a20055a1..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index fa42ed37b1..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 07d809a290..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index e03f4f7966..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 92deaa8a3e..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index ec97ca8c53..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 2693928bd8..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 968a400798..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 4d7b8bc724..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index 7a97d75c1d..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 25d9ee82b9..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index b830d1a017..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 40f690b782..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index bf46af97d1..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 8abd7cc80b..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index e5472cda7a..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index a0c1b4efcd..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index a599845812..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index b750ca88ca..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index c1223916b1..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index 453960b508..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index a1c599c765..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index a8f280cf23..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index e9a6a979c3..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 0cbac14fb6..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 98e182506b..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 0afd110876..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 76516c1927..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 3769ea0aac..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 106f1b9c67..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index 44a362d82c..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 5184be6070..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 50117e94bf..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 4ddc4a3e40..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index cf48e0caab..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index b1ab7b6667..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 02104cfa37..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 81eab82b04..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index d5e45a194d..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 7cc00391ac..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 70df317f3e..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 4c6018db78..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 4d48bb32cc..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 61b6682ba6..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index dd80db3e20..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index bec7b5d952..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 162915fb2b..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 5fe93924d8..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 284b7c7c03..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index aea7515480..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 310d949ebc..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 2caeee72ae..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index b914f59ed6..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 601716c99b..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 2c101a3552..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index b69c4263ed..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index ae58660227..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 1c66b58446..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 330dc037d0..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 001a67f146..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 247f5a3116..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 3fffcddae5..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 0df3ae643a..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 64440939ac..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 9e5ec83642..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index f5731068c8..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 4f04907c08..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index b0b2b83a33..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index a10911f330..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 566f8e4f9b..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index e299d3ab7a..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 9a191bf546..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index d07e1e8d74..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Serial/Makefile.eti_Serial b/lib/kokkos/core/src/eti/Serial/Makefile.eti_Serial deleted file mode 100644 index 74b80f98cd..0000000000 --- a/lib/kokkos/core/src/eti/Serial/Makefile.eti_Serial +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/lib/kokkos/core/src/eti/Threads/CMakeLists.txt b/lib/kokkos/core/src/eti/Threads/CMakeLists.txt deleted file mode 100644 index 27e8e35841..0000000000 --- a/lib/kokkos/core/src/eti/Threads/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 7c84605ed9..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 3d7313a54f..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 72895035bb..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 69673d51e0..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index d1aff7b82f..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index e617e19b44..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 855e99e06b..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index b9ffb82a5d..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 85a4683974..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index ba658e7b71..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 8d413bcb39..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 8a2a06649f..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 3a376b91a9..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 7a3ca29f43..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 44bf3df6a6..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 943a00325f..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index b12da7c5b9..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index a859379df6..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index b11ec7758d..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index e7fee1b9e3..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index f82b4a92ba..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 3904c4cb03..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 77d46acfdd..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 006fce3cfc..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 91256cd69b..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index d29fbfe795..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index bdf866f3ba..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index aaa00a6f6d..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index db2ab88d28..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index 3024e4e004..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index e6e66d7bb8..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 28ed80254f..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 4863866aa7..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index e24e9e022a..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 047c078bce..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 78c7496b7c..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 33ee500813..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index 4c1d4bb58c..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 75e4bc4e3e..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 3007a4db6f..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 198e54631b..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index c12fa4e7bd..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 82f782ce57..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index d11bf3dd27..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 53bd8056d0..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 44e78041be..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 6f54702d24..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 141b79110e..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index e23e6092eb..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index f5db8f744e..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 44ce223183..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 55fca11183..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 31b952913e..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 887bfb4c09..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 71625e0d81..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index cd045703ff..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index abbd0f8429..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 5ac12d8648..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 50ed4f48c3..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index f83f5faa20..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index c99684ef90..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index c0c1bb9c81..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index cfef96b18a..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index c16e189352..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 3b404d2411..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 21148463c7..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 8d5eed4f8e..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 7a590129d5..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 7ad5bfa4dc..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp deleted file mode 100644 index be7a7cb21c..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index df2d4b1767..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index 29b3cc8ee9..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 1bbc8c414c..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index e04cee2c2a..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 0849086c3a..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 6b50b7ca7d..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index a3592cabac..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index ce16f2a705..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 29c6670a87..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index aa343fcb8d..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 1043a55fd6..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 9f2d095653..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 02b4d10874..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index c83fe0bfb9..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index d97cb633f9..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 988dd30917..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index b537f31ec2..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 4163489a31..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index e954a0b037..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 7f56eb8d21..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index be9a665fb9..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index c82e8d12a2..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index 0789ace2e2..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 1b9f8a6159..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 92ae8f9a98..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 1cf105fe53..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 7e66193302..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index c347f77004..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 607eeed51c..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 86ce1f81ad..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index 38edea565b..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index c11ba480b6..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 12973de44d..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 57f00f62bf..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index 5a73ab7e96..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 1b928f18f4..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index c3b3949d82..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index c9736ad22a..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index 93d7a16c98..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index ad9546fa67..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index a62946d97a..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 20826a0378..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 9d629f9ff6..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 39a7dbef81..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 33bb9f577c..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 1d052babb4..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 6533f33f56..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index a8b7a9615c..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 33517ed85c..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 2bd62e5607..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index fd1bb8862f..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 33a23913e6..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 1bcab4c130..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 0a8d0676d4..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 47ccf94a8a..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index acc4187d91..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 01a0fd28e4..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index b31813ca3d..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index bf52b9f938..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 61e5dc06a6..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index cb6906991e..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index b3afb8f5a4..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index f742ae330b..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 44b7724186..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 2a08a72d8a..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 5e9bd50d16..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 9d3ebb948a..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index f77e685c77..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 57ae0a1fd5..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index d86407b2c6..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 0abf26b478..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 6e8cd9f288..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index ff91ded36f..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/Threads/Makefile.eti_Threads b/lib/kokkos/core/src/eti/Threads/Makefile.eti_Threads deleted file mode 100644 index 26d0ce2809..0000000000 --- a/lib/kokkos/core/src/eti/Threads/Makefile.eti_Threads +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/lib/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp b/lib/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp deleted file mode 100644 index 6196dbf355..0000000000 --- a/lib/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp +++ /dev/null @@ -1,1440 +0,0 @@ -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) diff --git a/lib/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp b/lib/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp deleted file mode 100644 index 98d9791eeb..0000000000 --- a/lib/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp +++ /dev/null @@ -1,1152 +0,0 @@ -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) diff --git a/lib/kokkos/core/src/impl/CMakeLists.txt b/lib/kokkos/core/src/impl/CMakeLists.txt index 361a85b738..9ff02a2eae 100644 --- a/lib/kokkos/core/src/impl/CMakeLists.txt +++ b/lib/kokkos/core/src/impl/CMakeLists.txt @@ -2,7 +2,7 @@ SET(HEADERS "") SET(SOURCES "") -FILE(GLOB HEADERS *.hpp) +FILE(GLOB HEADERS *.hpp *.h) FILE(GLOB SOURCES *.cpp) TRIBITS_ADD_LIBRARY( diff --git a/lib/kokkos/core/src/impl/KokkosExp_Host_IterateTile.hpp b/lib/kokkos/core/src/impl/KokkosExp_Host_IterateTile.hpp index 09ed79a5fd..d9f02b47ac 100644 --- a/lib/kokkos/core/src/impl/KokkosExp_Host_IterateTile.hpp +++ b/lib/kokkos/core/src/impl/KokkosExp_Host_IterateTile.hpp @@ -57,9 +57,7 @@ #define KOKKOS_ENABLE_IVDEP_MDRANGE #endif -#include #include -#include namespace Kokkos { namespace Impl { @@ -1574,7 +1572,7 @@ struct HostIterateTile< template struct RankTag { - typedef RankTag type; + using type = RankTag; enum { value = (int)Rank }; }; @@ -1995,7 +1993,7 @@ struct HostIterateTile< template struct RankTag { - typedef RankTag type; + using type = RankTag; enum { value = (int)Rank }; }; @@ -2418,7 +2416,7 @@ struct HostIterateTile< template struct RankTag { - typedef RankTag type; + using type = RankTag; enum { value = (int)Rank }; }; @@ -2793,111 +2791,6 @@ struct HostIterateTile< // ------------------------------------------------------------------ // -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -// MDFunctor - wraps the range_policy and functor to pass to IterateTile -// Used for md_parallel_{for,reduce} with Serial, Threads, OpenMP -// Cuda uses DeviceIterateTile directly within md_parallel_for -// TODO Once md_parallel_{for,reduce} removed, this can be removed - -namespace Experimental { - -// ParallelReduce - scalar reductions -template -struct MDFunctor { - using range_policy = MDRange; - using functor_type = Functor; - using value_type = ValueType; - using work_tag = typename range_policy::work_tag; - using index_type = typename range_policy::index_type; - using iterate_type = - typename Kokkos::Impl::HostIterateTile; - - inline MDFunctor(MDRange const& range, Functor const& f) - : m_range(range), m_func(f) {} - - inline MDFunctor(MDFunctor const&) = default; - - inline MDFunctor& operator=(MDFunctor const&) = default; - - inline MDFunctor(MDFunctor&&) = default; - - inline MDFunctor& operator=(MDFunctor&&) = default; - - inline void operator()(index_type t, value_type& v) const { - iterate_type(m_range, m_func, v)(t); - } - - MDRange m_range; - Functor m_func; -}; - -// ParallelReduce - array reductions -template -struct MDFunctor { - using range_policy = MDRange; - using functor_type = Functor; - using value_type = ValueType[]; - using work_tag = typename range_policy::work_tag; - using index_type = typename range_policy::index_type; - using iterate_type = - typename Kokkos::Impl::HostIterateTile; - - inline MDFunctor(MDRange const& range, Functor const& f) - : m_range(range), m_func(f), value_count(f.value_count) {} - - inline MDFunctor(MDFunctor const&) = default; - - inline MDFunctor& operator=(MDFunctor const&) = default; - - inline MDFunctor(MDFunctor&&) = default; - - inline MDFunctor& operator=(MDFunctor&&) = default; - - // FIXME Init and Join, as defined in m_func, are not working through the - // MDFunctor Best path forward is to eliminate need for MDFunctor, directly - // use MDRangePolicy within Parallel{For,Reduce} ?? - inline void operator()(index_type t, value_type v) const { - iterate_type(m_range, m_func, v)(t); - } - - MDRange m_range; - Functor m_func; - size_t value_count; -}; - -// ParallelFor -template -struct MDFunctor { - using range_policy = MDRange; - using functor_type = Functor; - using work_tag = typename range_policy::work_tag; - using index_type = typename range_policy::index_type; - using iterate_type = - typename Kokkos::Impl::HostIterateTile; - - inline MDFunctor(MDRange const& range, Functor const& f) - : m_range(range), m_func(f) {} - - inline MDFunctor(MDFunctor const&) = default; - - inline MDFunctor& operator=(MDFunctor const&) = default; - - inline MDFunctor(MDFunctor&&) = default; - - inline MDFunctor& operator=(MDFunctor&&) = default; - - inline void operator()(index_type t) const { - iterate_type(m_range, m_func)(t); - } - - MDRange m_range; - Functor m_func; -}; - -} // end namespace Experimental -#endif #undef KOKKOS_ENABLE_NEW_LOOP_MACROS } // namespace Impl diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp index c25b80a825..c61aa3be32 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp @@ -103,7 +103,7 @@ __inline__ __device__ T atomic_compare_exchange( typename std::enable_if::type val) { - typedef unsigned long long int type; + using type = unsigned long long int; const type tmp = atomicCAS((type*)dest, *((type*)&compare), *((type*)&val)); return *((T*)&tmp); } @@ -126,8 +126,10 @@ __inline__ __device__ T atomic_compare_exchange( while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { + Kokkos::memory_fence(); return_val = *dest; if (return_val == compare) *dest = val; + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -263,6 +265,7 @@ inline T atomic_compare_exchange( while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; if (return_val == compare) { // Don't use the following line of code here: @@ -279,6 +282,7 @@ inline T atomic_compare_exchange( #ifndef KOKKOS_COMPILER_CLANG (void)tmp; #endif + Kokkos::memory_fence(); } Impl::unlock_address_host_space((void*)dest); return return_val; diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp index e3fd1c53db..638b8e573e 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp @@ -343,6 +343,7 @@ inline T atomic_compare_exchange( while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; if (return_val == compare) { // Don't use the following line of code here: @@ -359,6 +360,7 @@ inline T atomic_compare_exchange( #ifndef KOKKOS_COMPILER_CLANG (void)tmp; #endif + Kokkos::memory_fence(); } Impl::unlock_address_host_space((void*)dest); return return_val; diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp index 4a9a786df4..8ed130d15f 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp @@ -100,7 +100,7 @@ __inline__ __device__ T atomic_exchange( typename std::enable_if::type val) { - typedef unsigned long long int type; + using type = unsigned long long int; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); @@ -133,8 +133,10 @@ atomic_exchange(volatile T* const dest, while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { + Kokkos::memory_fence(); return_val = *dest; *dest = val; + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -162,7 +164,7 @@ __inline__ __device__ void atomic_assign( typename std::enable_if::type val) { - typedef unsigned long long int type; + using type = unsigned long long int; // (void) __ullAtomicExch( (type*) dest , *((type*)&val) ); (void)atomicExch(((type*)dest), *((type*)&val)); } @@ -189,8 +191,8 @@ inline T atomic_exchange(volatile T* const dest, typename std::enable_if::type val) { - typedef typename Kokkos::Impl::if_c::type - type; + using type = + typename Kokkos::Impl::if_c::type; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); #endif @@ -257,6 +259,7 @@ inline T atomic_exchange( const T>::type& val) { while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; // Don't use the following line of code here: // @@ -272,6 +275,7 @@ inline T atomic_exchange( #ifndef KOKKOS_COMPILER_CLANG (void)tmp; #endif + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); return return_val; } @@ -281,8 +285,8 @@ inline void atomic_assign(volatile T* const dest, typename std::enable_if::type val) { - typedef typename Kokkos::Impl::if_c::type - type; + using type = + typename Kokkos::Impl::if_c::type; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); @@ -343,6 +347,7 @@ inline void atomic_assign( const T>::type& val) { while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); // This is likely an aggregate type with a defined // 'volatile T & operator = ( const T & ) volatile' // member. The volatile return value implicitly defines a @@ -350,7 +355,7 @@ inline void atomic_assign( // Suppress warning by casting return to void. //(void)( *dest = val ); *dest = val; - + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); } //---------------------------------------------------------------------------- diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp index 0a6900f840..131beb94f0 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp @@ -160,8 +160,10 @@ atomic_fetch_add(volatile T* const dest, if (!done) { bool locked = Impl::lock_address_cuda_space((void*)dest); if (locked) { + Kokkos::memory_fence(); return_val = *dest; *dest = return_val + val; + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -329,6 +331,7 @@ inline T atomic_fetch_add( const T>::type& val) { while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; // Don't use the following line of code here: @@ -343,6 +346,7 @@ inline T atomic_fetch_add( *dest = return_val + val; const T tmp = *dest; (void)tmp; + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); return return_val; diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp index c14749f1b7..1acdfa4483 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp @@ -154,8 +154,10 @@ atomic_fetch_sub(volatile T* const dest, while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { + Kokkos::memory_fence(); return_val = *dest; *dest = return_val - val; + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -274,8 +276,10 @@ inline T atomic_fetch_sub( while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; *dest = return_val - val; + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); return return_val; } diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp index 49ee86b2c4..8092c5de18 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp @@ -250,8 +250,10 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( #ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; *dest = op.apply(return_val, val); + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); return return_val; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA) @@ -268,8 +270,10 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { + Kokkos::memory_fence(); return_val = *dest; *dest = op.apply(return_val, val); + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -318,8 +322,10 @@ atomic_oper_fetch(const Oper& op, volatile T* const dest, #ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = op.apply(*dest, val); *dest = return_val; + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); return return_val; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA) @@ -336,8 +342,10 @@ atomic_oper_fetch(const Oper& op, volatile T* const dest, while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { + Kokkos::memory_fence(); return_val = op.apply(*dest, val); *dest = return_val; + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp index 9d0172b653..7ab6358434 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp @@ -72,5 +72,15 @@ KOKKOS_INLINE_FUNCTION void atomic_sub(volatile T* const dest, const T val) { (void)atomic_fetch_sub(dest, val); } +template +KOKKOS_INLINE_FUNCTION void atomic_mul(volatile T* const dest, const T val) { + (void)atomic_fetch_mul(dest, val); +} + +template +KOKKOS_INLINE_FUNCTION void atomic_div(volatile T* const dest, const T val) { + (void)atomic_fetch_div(dest, val); +} + } // namespace Kokkos #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_View.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_View.hpp index c3719bed22..3916a1b03d 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_View.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_View.hpp @@ -57,9 +57,9 @@ struct AtomicViewConstTag {}; template class AtomicDataElement { public: - typedef typename ViewTraits::value_type value_type; - typedef typename ViewTraits::const_value_type const_value_type; - typedef typename ViewTraits::non_const_value_type non_const_value_type; + using value_type = typename ViewTraits::value_type; + using const_value_type = typename ViewTraits::const_value_type; + using non_const_value_type = typename ViewTraits::non_const_value_type; volatile value_type* const ptr; KOKKOS_INLINE_FUNCTION @@ -367,12 +367,12 @@ struct Kokkos_Atomic_is_only_allowed_with_32bit_and_64bit_scalars; template <> struct Kokkos_Atomic_is_only_allowed_with_32bit_and_64bit_scalars<4> { - typedef int type; + using type = int; }; template <> struct Kokkos_Atomic_is_only_allowed_with_32bit_and_64bit_scalars<8> { - typedef int64_t type; + using type = int64_t; }; } // namespace Impl diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp index c5d3466c6c..9be58a3edc 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp @@ -73,8 +73,9 @@ __attribute__((aligned(16))) ; } // namespace Impl +#ifndef __CUDA_ARCH__ template -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( +inline T atomic_compare_exchange( volatile T* const dest, const T& compare, typename std::enable_if::type val) { union U { @@ -89,7 +90,7 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( } template -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( +inline T atomic_compare_exchange( volatile T* const dest, const T& compare, typename std::enable_if::type val) { union U { @@ -104,7 +105,7 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( } template -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( +inline T atomic_compare_exchange( volatile T* const dest, const T& compare, typename std::enable_if::type val) { union U { @@ -119,7 +120,7 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( } template -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( +inline T atomic_compare_exchange( volatile T* const dest, const T& compare, typename std::enable_if::type val) { @@ -135,7 +136,7 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( } template -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( +inline T atomic_compare_exchange( volatile T* const dest, const T& compare, typename std::enable_if::type val) { @@ -153,12 +154,11 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( } template -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange_strong(volatile T* const dest, - const T& compare, - const T& val) { +inline T atomic_compare_exchange_strong(volatile T* const dest, + const T& compare, const T& val) { return atomic_compare_exchange(dest, compare, val); } - +#endif } // namespace Kokkos #endif #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_BitOps.hpp b/lib/kokkos/core/src/impl/Kokkos_BitOps.hpp index 7d2cdf0d4a..59011e6675 100644 --- a/lib/kokkos/core/src/impl/Kokkos_BitOps.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_BitOps.hpp @@ -53,19 +53,13 @@ #include #endif -#if defined(__HCC_ACCELERATOR__) -#include -#endif - namespace Kokkos { KOKKOS_FORCEINLINE_FUNCTION int log2(unsigned i) { enum : int { shift = sizeof(unsigned) * CHAR_BIT - 1 }; -#if defined(__CUDA_ARCH__) +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) return shift - __clz(i); -#elif defined(__HCC_ACCELERATOR__) - return (int)hc::__firstbit_u32_u32(i); #elif defined(KOKKOS_COMPILER_INTEL) return _bit_scan_reverse(i); #elif defined(KOKKOS_COMPILER_IBM) @@ -94,10 +88,8 @@ KOKKOS_FORCEINLINE_FUNCTION int bit_first_zero(unsigned i) noexcept { enum : unsigned { full = ~0u }; -#if defined(__CUDA_ARCH__) +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) return full != i ? __ffs(~i) - 1 : -1; -#elif defined(__HCC_ACCELERATOR__) - return full != i ? (int)hc::__firstbit_u32_u32(~i) : -1; #elif defined(KOKKOS_COMPILER_INTEL) return full != i ? _bit_scan_forward(~i) : -1; #elif defined(KOKKOS_COMPILER_IBM) @@ -118,10 +110,8 @@ int bit_first_zero(unsigned i) noexcept { KOKKOS_FORCEINLINE_FUNCTION int bit_scan_forward(unsigned i) { -#if defined(__CUDA_ARCH__) +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) return __ffs(i) - 1; -#elif defined(__HCC_ACCELERATOR__) - return (int)hc::__firstbit_u32_u32(i); #elif defined(KOKKOS_COMPILER_INTEL) return _bit_scan_forward(i); #elif defined(KOKKOS_COMPILER_IBM) @@ -143,10 +133,8 @@ int bit_scan_forward(unsigned i) { /// Count the number of bits set. KOKKOS_FORCEINLINE_FUNCTION int bit_count(unsigned i) { -#if defined(__CUDA_ARCH__) +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) return __popc(i); -#elif defined(__HCC_ACCELERATOR__) - return (int)hc::__popcount_u32_b32(i); #elif defined(__INTEL_COMPILER) return _popcnt32(i); #elif defined(KOKKOS_COMPILER_IBM) diff --git a/lib/kokkos/core/src/impl/Kokkos_CPUDiscovery.cpp b/lib/kokkos/core/src/impl/Kokkos_CPUDiscovery.cpp index 3b003f84eb..3251cb0f5c 100644 --- a/lib/kokkos/core/src/impl/Kokkos_CPUDiscovery.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_CPUDiscovery.cpp @@ -45,13 +45,17 @@ #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN #include -#elif !defined(__APPLE__) +#elif defined(__APPLE__) +#include +#include +#else #include #endif #include #include #include #include +#include namespace Kokkos { namespace Impl { @@ -64,6 +68,16 @@ int processors_per_node() { return -1; } return num_procs; +#elif defined(__APPLE__) + int ncpu; + int activecpu; + size_t size = sizeof(int); + sysctlbyname("hw.ncpu", &ncpu, &size, nullptr, 0); + sysctlbyname("hw.activecpu", &activecpu, &size, nullptr, 0); + if (ncpu < 1 || activecpu < 1) + return -1; + else + return activecpu; #else return -1; #endif @@ -73,15 +87,15 @@ int mpi_ranks_per_node() { char *str; int ppn = 1; // if ((str = getenv("SLURM_TASKS_PER_NODE"))) { - // ppn = atoi(str); + // ppn = std::stoi(str); // if(ppn<=0) ppn = 1; //} if ((str = getenv("MV2_COMM_WORLD_LOCAL_SIZE"))) { - ppn = atoi(str); + ppn = std::stoi(str); if (ppn <= 0) ppn = 1; } if ((str = getenv("OMPI_COMM_WORLD_LOCAL_SIZE"))) { - ppn = atoi(str); + ppn = std::stoi(str); if (ppn <= 0) ppn = 1; } return ppn; @@ -91,13 +105,13 @@ int mpi_local_rank_on_node() { char *str; int local_rank = 0; // if ((str = getenv("SLURM_LOCALID"))) { - // local_rank = atoi(str); + // local_rank = std::stoi(str); //} if ((str = getenv("MV2_COMM_WORLD_LOCAL_RANK"))) { - local_rank = atoi(str); + local_rank = std::stoi(str); } if ((str = getenv("OMPI_COMM_WORLD_LOCAL_RANK"))) { - local_rank = atoi(str); + local_rank = std::stoi(str); } return local_rank; } diff --git a/lib/kokkos/core/src/impl/Kokkos_ClockTic.hpp b/lib/kokkos/core/src/impl/Kokkos_ClockTic.hpp index 386b5918d0..ab83f0aabd 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ClockTic.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ClockTic.hpp @@ -48,6 +48,9 @@ #include #include #include +#ifdef KOKKOS_ENABLE_OPENMPTARGET +#include +#endif namespace Kokkos { namespace Impl { @@ -64,9 +67,10 @@ namespace Impl { * concurrent threads will have high likelihood of * having different index-seed values. */ + KOKKOS_FORCEINLINE_FUNCTION uint64_t clock_tic(void) noexcept { -#if defined(__CUDA_ARCH__) +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) // Return value of 64-bit hi-res clock register. @@ -76,9 +80,7 @@ uint64_t clock_tic(void) noexcept { // Get clock register return hc::__clock_u64(); #elif defined(KOKKOS_ENABLE_OPENMPTARGET) - return (uint64_t)std::chrono::high_resolution_clock::now() - .time_since_epoch() - .count(); + return uint64_t(omp_get_wtime() * 1.e9); #elif defined(__i386__) || defined(__x86_64) // Return value of 64-bit hi-res clock register. diff --git a/lib/kokkos/core/src/impl/Kokkos_Combined_Reducer.hpp b/lib/kokkos/core/src/impl/Kokkos_Combined_Reducer.hpp new file mode 100644 index 0000000000..093ce70d88 --- /dev/null +++ b/lib/kokkos/core/src/impl/Kokkos_Combined_Reducer.hpp @@ -0,0 +1,689 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_COMBINED_REDUCER_HPP +#define KOKKOS_COMBINED_REDUCER_HPP + +#include +#include + +#include +#include +#include + +namespace Kokkos { +namespace Impl { + +// TODO move this to a more general backporting facilities file + +// acts like void for comma fold emulation +struct _fold_comma_emulation_return {}; + +template +KOKKOS_INLINE_FUNCTION void emulate_fold_comma_operator(Ts&&...) noexcept {} + +//============================================================================== +// {{{1 + +// Note: the index is only to avoid repeating the same base class multiple times +template +struct CombinedReducerValueItemImpl { + public: + using value_type = ValueType; + + private: + value_type m_value; + + public: + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerValueItemImpl() = default; + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerValueItemImpl( + CombinedReducerValueItemImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerValueItemImpl( + CombinedReducerValueItemImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 CombinedReducerValueItemImpl& + operator=(CombinedReducerValueItemImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 CombinedReducerValueItemImpl& + operator=(CombinedReducerValueItemImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION + ~CombinedReducerValueItemImpl() = default; + explicit KOKKOS_FUNCTION CombinedReducerValueItemImpl(value_type arg_value) + : m_value(std::move(arg_value)) {} + + KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_CONSTEXPR_14 value_type& ref() & noexcept { return m_value; } + KOKKOS_FORCEINLINE_FUNCTION + constexpr value_type const& ref() const& noexcept { return m_value; } + KOKKOS_FORCEINLINE_FUNCTION + value_type volatile& ref() volatile& noexcept { return m_value; } + KOKKOS_FORCEINLINE_FUNCTION + value_type const volatile& ref() const volatile& noexcept { return m_value; } +}; + +//============================================================================== + +template +struct CombinedReducerValueImpl; + +template +struct CombinedReducerValueImpl, + ValueTypes...> + : CombinedReducerValueItemImpl... { + public: + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReducerValueImpl() = default; + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReducerValueImpl(CombinedReducerValueImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReducerValueImpl(CombinedReducerValueImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION + KOKKOS_CONSTEXPR_14 CombinedReducerValueImpl& operator=( + CombinedReducerValueImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION + KOKKOS_CONSTEXPR_14 CombinedReducerValueImpl& operator=( + CombinedReducerValueImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION + ~CombinedReducerValueImpl() = default; + + KOKKOS_FUNCTION + explicit CombinedReducerValueImpl(ValueTypes... arg_values) + : CombinedReducerValueItemImpl( + std::move(arg_values))... {} + + template + KOKKOS_INLINE_FUNCTION ValueType& get() & noexcept { + return this->CombinedReducerValueItemImpl::ref(); + } + template + KOKKOS_INLINE_FUNCTION ValueType const& get() const& noexcept { + return this->CombinedReducerValueItemImpl::ref(); + } + template + KOKKOS_INLINE_FUNCTION ValueType volatile& get() volatile& noexcept { + return this->CombinedReducerValueItemImpl::ref(); + } + template + KOKKOS_INLINE_FUNCTION ValueType const volatile& get() const + volatile& noexcept { + return this->CombinedReducerValueItemImpl::ref(); + } +}; + +//============================================================================== + +// TODO Empty base optmization? +template +// requires Kokkos::is_reducer +struct CombinedReducerStorageImpl { + public: + using value_type = typename Reducer::value_type; + + private: + Reducer m_reducer; + + public: + KOKKOS_INLINE_FUNCTION + explicit constexpr CombinedReducerStorageImpl(Reducer arg_reducer) + : m_reducer(std::move(arg_reducer)) {} + + // Leading underscores to make it clear that this class is not intended to + // model Reducer + + KOKKOS_INLINE_FUNCTION + KOKKOS_CONSTEXPR_14 _fold_comma_emulation_return + _init(value_type& val) const { + m_reducer.init(val); + return _fold_comma_emulation_return{}; + } + + KOKKOS_INLINE_FUNCTION KOKKOS_CONSTEXPR_14 _fold_comma_emulation_return + _join(value_type& dest, value_type const& src) const { + m_reducer.join(dest, src); + return _fold_comma_emulation_return{}; + } + + KOKKOS_INLINE_FUNCTION KOKKOS_CONSTEXPR_14 _fold_comma_emulation_return + _join(value_type volatile& dest, value_type const volatile& src) const { + m_reducer.join(dest, src); + return _fold_comma_emulation_return{}; + } +}; + +// end CombinedReducerStorage }}}1 +//============================================================================== + +//============================================================================== +// {{{1 + +struct _construct_combined_reducer_from_args_tag {}; + +template +KOKKOS_INLINE_FUNCTION auto _get_value_from_combined_reducer_ctor_arg( + T&& arg) noexcept -> + typename std::enable_if< + !is_view::type>::value && + !is_reducer::type>::value, + typename std::decay::type>::type { + return arg; +} + +template +KOKKOS_INLINE_FUNCTION auto _get_value_from_combined_reducer_ctor_arg( + T&& arg) noexcept -> + typename std::enable_if::type>::value, + typename std::decay::type>::type::value_type { + return arg(); +} + +template +KOKKOS_INLINE_FUNCTION auto _get_value_from_combined_reducer_ctor_arg( + T&& arg) noexcept -> + typename std::enable_if::type>::value, + typename std::decay::type>::type::value_type { + return arg.reference(); +} + +template +struct CombinedReducerImpl; + +template +struct CombinedReducerImpl, Space, + Reducers...> + : private CombinedReducerStorageImpl... { + public: + using reducer = CombinedReducerImpl, Space, + Reducers...>; + using value_type = CombinedReducerValueImpl, + typename Reducers::value_type...>; + using result_view_type = + Kokkos::View; + + private: + result_view_type m_value_view; + + public: + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerImpl() = default; + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerImpl( + CombinedReducerImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerImpl( + CombinedReducerImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 CombinedReducerImpl& operator=( + CombinedReducerImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 CombinedReducerImpl& operator=( + CombinedReducerImpl&&) = default; + + KOKKOS_DEFAULTED_FUNCTION ~CombinedReducerImpl() = default; + + template + KOKKOS_FUNCTION constexpr explicit CombinedReducerImpl( + value_type& value, ReducersDeduced&&... reducers) noexcept + : CombinedReducerStorageImpl((ReducersDeduced &&) + reducers)..., + m_value_view(&value) {} + + KOKKOS_FUNCTION KOKKOS_CONSTEXPR_14 void join(value_type& dest, + value_type const& src) const + noexcept { + emulate_fold_comma_operator( + this->CombinedReducerStorageImpl::_join( + dest.template get(), + src.template get())...); + } + + KOKKOS_FUNCTION void join(value_type volatile& dest, + value_type const volatile& src) const noexcept { + emulate_fold_comma_operator( + this->CombinedReducerStorageImpl::_join( + dest.template get(), + src.template get())...); + } + + KOKKOS_FUNCTION KOKKOS_CONSTEXPR_14 void init(value_type& dest) const + noexcept { + emulate_fold_comma_operator( + this->CombinedReducerStorageImpl::_init( + dest.template get())...); + } + + // TODO figure out if we also need to call through to final + + KOKKOS_FUNCTION + constexpr bool references_scalar() const noexcept { + // For now, always pretend that we reference a scalar since we need to + // block to do the write-back because the references may not be contiguous + // in memory and the backends currently assume this and just do a single + // deep copy back to a chunk of memory associated with the output argument + return true; + } + + KOKKOS_FUNCTION + constexpr result_view_type const& view() const noexcept { + return m_value_view; + } + + KOKKOS_FUNCTION + KOKKOS_CONSTEXPR_14 static void write_value_back_to_original_references( + value_type const& value, + Reducers const&... reducers_that_reference_original_values) noexcept { + emulate_fold_comma_operator( + (reducers_that_reference_original_values.view()() = + value.template get())...); + } +}; + +// Apparently this can't be an alias template because of a bug/unimplemented +// feature in GCC's name mangler. But in this case, this amounts to the same +// thing. +template +struct CombinedReducer + : CombinedReducerImpl, Space, + Reducers...> { + using base_t = CombinedReducerImpl, + Space, Reducers...>; + using base_t::base_t; + using reducer = CombinedReducer; +}; + +// end CombinedReducer }}}1 +//============================================================================== + +//============================================================================== +// {{{1 + +template +struct CombinedReductionFunctorWrapperImpl; + +template +struct CombinedReductionFunctorWrapperImpl, + Functor, Space, Reducers...> { + private: + Functor m_functor; + + public: + //------------------------------------------------------------------------------ + // {{{2 + + using reducer_type = CombinedReducer; + + // Prevent Kokkos from attempting to deduce value_type + using value_type = typename reducer_type::value_type; + + // end type aliases }}}2 + //------------------------------------------------------------------------------ + + //---------------------------------------------------------------------------- + // {{{2 + + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReductionFunctorWrapperImpl() noexcept = default; + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReductionFunctorWrapperImpl( + CombinedReductionFunctorWrapperImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReductionFunctorWrapperImpl( + CombinedReductionFunctorWrapperImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION + KOKKOS_CONSTEXPR_14 CombinedReductionFunctorWrapperImpl& operator=( + CombinedReductionFunctorWrapperImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION + KOKKOS_CONSTEXPR_14 CombinedReductionFunctorWrapperImpl& operator=( + CombinedReductionFunctorWrapperImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION + ~CombinedReductionFunctorWrapperImpl() = default; + + KOKKOS_INLINE_FUNCTION + constexpr explicit CombinedReductionFunctorWrapperImpl(Functor arg_functor) + : m_functor(std::move(arg_functor)) {} + + // end Ctors, destructor, and assignment }}}2 + //---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- + // {{{2 + + template + KOKKOS_FUNCTION void operator()(IndexOrMemberType&& arg_first, + value_type& out) const { + m_functor((IndexOrMemberType &&) arg_first, + out.template get()...); + } + + // Tagged version + template + KOKKOS_FUNCTION void operator()(Tag&& arg_tag, IndexOrMemberType&& arg_first, + value_type& out) const { + m_functor((Tag &&) arg_tag, (IndexOrMemberType &&) arg_first, + out.template get()...); + } + + // end call operator }}}2 + //---------------------------------------------------------------------------- + + // These are things that need to be done if we decide to ever support + // functor-customized join/init/final hooks with combined reducers. For now, + // they are explicitly not supported. + // TODO: forward join() function to user functor hook, or just ignore it? + // TODO: forward init() function to user functor hook, or just ignore it? + // TODO: forward final() function to user functor hook, or just ignore it? +}; + +template +struct CombinedReductionFunctorWrapper + : CombinedReductionFunctorWrapperImpl< + make_index_sequence, Functor, Space, + Reducers...> { + using base_t = CombinedReductionFunctorWrapperImpl< + make_index_sequence, Functor, Space, Reducers...>; + using base_t::base_t; +}; + +// end CombinedReductionFunctorWrapper }}}1 +//============================================================================== + +//------------------------------------------------------------------------------ +// {{{2 + +template +KOKKOS_INLINE_FUNCTION constexpr typename std::enable_if< + Kokkos::is_reducer::type>::value, + typename std::decay::type>::type +_make_reducer_from_arg(Reducer&& arg_reducer) noexcept { + return arg_reducer; +} + +// Two purposes: SFINAE-safety for the `View` case and laziness for the return +// value otherwise to prevent extra instantiations of the Kokkos::Sum template +template +struct _wrap_with_kokkos_sum { + using type = Kokkos::Sum; +}; + +template +struct _wrap_with_kokkos_sum< + Space, T, typename std::enable_if::value>::type> { + using type = Kokkos::Sum; +}; + +// TODO better error message for the case when a const& to a scalar is passed in +// (this is needed in general, though) +template +KOKKOS_INLINE_FUNCTION constexpr typename std::enable_if< + !Kokkos::is_reducer::type>::value, + _wrap_with_kokkos_sum::type>>::type::type +_make_reducer_from_arg(T&& arg_scalar) noexcept { + return + typename _wrap_with_kokkos_sum::type>::type{ + arg_scalar}; +} + +// This can't be an alias template because GCC doesn't know how to mangle +// decltype expressions in return statements (and, even though every compiler +// is supposed to, GCC is the only one that does dependent alias template +// substitution correctly and tries to do the mangling, aparently). +template +struct _reducer_from_arg { + using type = decltype(Impl::_make_reducer_from_arg( + std::declval())); +}; +template +using _reducer_from_arg_t = + typename _reducer_from_arg::type; + +// end _make_reducer_from_arg }}}2 +//------------------------------------------------------------------------------ + +template +KOKKOS_INLINE_FUNCTION constexpr CombinedReducerValueImpl< + make_index_sequence, + typename _reducer_from_arg_t::value_type...> +make_combined_reducer_value(ReferencesOrViewsOrReducers&&... args) { + //---------------------------------------- + // This is a bit round-about and we should make sure it doesn't have + // any performance implications. Basically, we make a reducer out of anything + // just to get the value back out here (for the sake of uniformity). Most + // compilers should figure out what's going on, but we should double-check + // that. + return CombinedReducerValueImpl< + make_index_sequence, + typename _reducer_from_arg_t::value_type...>{ + // This helper function is now poorly named after refactoring. + _get_value_from_combined_reducer_ctor_arg((ReferencesOrViewsOrReducers &&) + args)...}; + //---------------------------------------- +} + +template +KOKKOS_INLINE_FUNCTION constexpr CombinedReducer< + Space, _reducer_from_arg_t...> +make_combined_reducer(ValueType& value, ReferencesOrViewsOrReducers&&... args) { + //---------------------------------------- + // This is doing more or less the same thing of making every argument into + // a reducer, just in a different place than in `make_combined_reducer_value`, + // so we should probably eventually make this read a little more similarly + using reducer_type = CombinedReducer< + Space, _reducer_from_arg_t...>; + return reducer_type(value, + _reducer_from_arg_t{ + (ReferencesOrViewsOrReducers &&) args}...); + //---------------------------------------- +} + +template +KOKKOS_INLINE_FUNCTION constexpr CombinedReductionFunctorWrapper< + Functor, Space, _reducer_from_arg_t...> +make_wrapped_combined_functor(Functor const& functor, Space, + ReferencesOrViewsOrReducers&&...) { + //---------------------------------------- + return CombinedReductionFunctorWrapper< + Functor, Space, + _reducer_from_arg_t...>(functor); + //---------------------------------------- +} + +} // end namespace Impl + +//============================================================================== +// {{{1 + +// These need to be forwarding references so that we can deduce const-ness, +// but none of them should be forwarded (and, indeed, none of them should be +// rvalue references) +template +auto parallel_reduce(std::string const& label, PolicyType const& policy, + Functor const& functor, ReturnType1&& returnType1, + ReturnType2&& returnType2, + ReturnTypes&&... returnTypes) noexcept -> + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type { + //---------------------------------------- + // Since we don't support asynchronous combined reducers yet for various + // reasons, we actually just want to work with the pointers and references + // directly + using space_type = Kokkos::DefaultHostExecutionSpace::memory_space; + + auto value = Impl::make_combined_reducer_value( + returnType1, returnType2, returnTypes...); + + using combined_reducer_type = Impl::CombinedReducer< + space_type, Impl::_reducer_from_arg_t, + Impl::_reducer_from_arg_t, + Impl::_reducer_from_arg_t...>; + auto combined_reducer = Impl::make_combined_reducer( + value, returnType1, returnType2, returnTypes...); + + auto combined_functor = Impl::make_wrapped_combined_functor( + functor, space_type{}, returnType1, returnType2, returnTypes...); + + using combined_functor_type = decltype(combined_functor); + static_assert( + Impl::FunctorDeclaresValueType::value, + "value_type not properly detected"); + using reduce_adaptor_t = + Impl::ParallelReduceAdaptor; + + reduce_adaptor_t::execute(label, policy, combined_functor, combined_reducer); + Impl::ParallelReduceFence::fence(policy.space(), + combined_reducer); + combined_reducer.write_value_back_to_original_references( + value, Impl::_make_reducer_from_arg(returnType1), + Impl::_make_reducer_from_arg(returnType2), + Impl::_make_reducer_from_arg(returnTypes)...); + //---------------------------------------- +} + +template +auto parallel_reduce(PolicyType const& policy, Functor const& functor, + ReturnType1&& returnType1, ReturnType2&& returnType2, + ReturnTypes&&... returnTypes) noexcept -> + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type { + //---------------------------------------- + Kokkos::parallel_reduce("", policy, functor, + std::forward(returnType1), + std::forward(returnType2), + std::forward(returnTypes)...); + //---------------------------------------- +} + +template +void parallel_reduce(std::string const& label, size_t n, Functor const& functor, + ReturnType1&& returnType1, ReturnType2&& returnType2, + ReturnTypes&&... returnTypes) noexcept { + Kokkos::parallel_reduce(label, + RangePolicy(0, n), + functor, std::forward(returnType1), + std::forward(returnType2), + std::forward(returnTypes)...); +} + +template +void parallel_reduce(size_t n, Functor const& functor, + ReturnType1&& returnType1, ReturnType2&& returnType2, + ReturnTypes&&... returnTypes) noexcept { + Kokkos::parallel_reduce("", n, functor, + std::forward(returnType1), + std::forward(returnType2), + std::forward(returnTypes)...); +} + +//------------------------------------------------------------------------------ +// {{{2 + +// Copied three times because that's the best way we have right now to match +// Impl::TeamThreadRangeBoundariesStruct, +// Impl::ThreadVectorRangeBoundariesStruct, and +// Impl::TeamVectorRangeBoundariesStruct. +// TODO make these work after restructuring + +// template +// KOKKOS_INLINE_FUNCTION void parallel_reduce( +// std::string const& label, +// Impl::TeamThreadRangeBoundariesStruct const& +// boundaries, Functor const& functor, ReturnType1&& returnType1, +// ReturnType2&& returnType2, ReturnTypes&&... returnTypes) noexcept { +// const auto combined_reducer = +// Impl::make_combined_reducer( +// returnType1, returnType2, returnTypes...); +// +// auto combined_functor = Impl::make_wrapped_combined_functor( +// functor, Kokkos::AnonymousSpace{}, returnType1, returnType2, +// returnTypes...); +// +// parallel_reduce(label, boundaries, combined_functor, combined_reducer); +//} +// +// template +// KOKKOS_INLINE_FUNCTION void parallel_reduce( +// std::string const& label, +// Impl::ThreadVectorRangeBoundariesStruct const& +// boundaries, +// Functor const& functor, ReturnType1&& returnType1, +// ReturnType2&& returnType2, ReturnTypes&&... returnTypes) noexcept { +// const auto combined_reducer = +// Impl::make_combined_reducer( +// returnType1, returnType2, returnTypes...); +// +// auto combined_functor = Impl::make_wrapped_combined_functor( +// functor, Kokkos::AnonymousSpace{}, returnType1, returnType2, +// returnTypes...); +// +// parallel_reduce(label, boundaries, combined_functor, combined_reducer); +//} + +// template +// KOKKOS_INLINE_FUNCTION void parallel_reduce( +// std::string const& label, +// Impl::TeamVectorRangeBoundariesStruct const& +// boundaries, Functor const& functor, ReturnType1&& returnType1, +// ReturnType2&& returnType2, ReturnTypes&&... returnTypes) noexcept { +// const auto combined_reducer = +// Impl::make_combined_reducer( +// returnType1, returnType2, returnTypes...); +// +// auto combined_functor = Impl::make_wrapped_combined_functor( +// functor, Kokkos::AnonymousSpace{}, returnType1, returnType2, +// returnTypes...); +// +// parallel_reduce(label, boundaries, combined_functor, combined_reducer); +//} + +// end Team overloads }}}2 +//------------------------------------------------------------------------------ + +// end Overloads of parallel_reduce for multiple outputs }}}1 +//============================================================================== + +} // namespace Kokkos + +#endif // KOKKOS_COMBINED_REDUCER_HPP diff --git a/lib/kokkos/core/src/impl/Kokkos_ConcurrentBitset.hpp b/lib/kokkos/core/src/impl/Kokkos_ConcurrentBitset.hpp index 4f10fb141e..9cdc888e33 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ConcurrentBitset.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ConcurrentBitset.hpp @@ -123,7 +123,7 @@ struct concurrent_bitset { , uint32_t const state_header = 0 /* optional header */ ) noexcept { - typedef Kokkos::pair type; + using type = Kokkos::pair; const uint32_t bit_bound = 1 << bit_bound_lg2; const uint32_t word_count = bit_bound >> bits_per_int_lg2; @@ -208,7 +208,7 @@ struct concurrent_bitset { , uint32_t const state_header = 0 /* optional header */ ) noexcept { - typedef Kokkos::pair type; + using type = Kokkos::pair; if ((max_bit_count < bit_bound) || (state_header & ~state_header_mask) || (bit_bound <= bit)) { diff --git a/lib/kokkos/core/src/impl/Kokkos_Core.cpp b/lib/kokkos/core/src/impl/Kokkos_Core.cpp index 9640e0fccb..27f89bca8a 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Core.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_Core.cpp @@ -91,8 +91,8 @@ int get_ctest_gpu(const char* local_rank_str) { } // Make sure rank is within bounds of resource groups specified by CTest - auto resource_group_count = std::atoi(ctest_resource_group_count_str); - auto local_rank = std::atoi(local_rank_str); + auto resource_group_count = std::stoi(ctest_resource_group_count_str); + auto local_rank = std::stoi(local_rank_str); if (local_rank >= resource_group_count) { std::ostringstream ss; ss << "Error: local rank " << local_rank @@ -163,42 +163,18 @@ int get_ctest_gpu(const char* local_rank_str) { } std::string id(resource_str + 3, comma - resource_str - 3); - return std::atoi(id.c_str()); + return std::stoi(id.c_str()); } namespace { -bool is_unsigned_int(const char* str) { - const size_t len = strlen(str); - for (size_t i = 0; i < len; ++i) { - if (!isdigit(str[i])) { - return false; - } - } - return true; -} - -void initialize_backends(const InitArguments& args) { -// This is an experimental setting -// For KNL in Flat mode this variable should be set, so that -// memkind allocates high bandwidth memory correctly. -#ifdef KOKKOS_ENABLE_HBWSPACE - setenv("MEMKIND_HBW_NODES", "1", 0); -#endif - - // Protect declarations, to prevent "unused variable" warnings. -#if defined(KOKKOS_ENABLE_OPENMP) || defined(KOKKOS_ENABLE_THREADS) || \ - defined(KOKKOS_ENABLE_OPENMPTARGET) || defined(KOKKOS_ENABLE_HPX) - const int num_threads = args.num_threads; -#endif -#if defined(KOKKOS_ENABLE_THREADS) || defined(KOKKOS_ENABLE_OPENMPTARGET) - const int use_numa = args.num_numa; -#endif #if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) || \ defined(KOKKOS_ENABLE_HIP) +int get_gpu(const InitArguments& args) { int use_gpu = args.device_id; const int ndevices = args.ndevices; const int skip_device = args.skip_device; + // if the exact device is not set, but ndevices was given, assign round-robin // using on-node MPI rank if (use_gpu < 0) { @@ -220,7 +196,7 @@ void initialize_backends(const InitArguments& args) { } else if (ndevices >= 0) { // Use the device assigned by the rank if (local_rank_str) { - auto local_rank = std::atoi(local_rank_str); + auto local_rank = std::stoi(local_rank_str); use_gpu = local_rank % ndevices; } else { // user only gave use ndevices, but the MPI environment variable wasn't @@ -231,16 +207,45 @@ void initialize_backends(const InitArguments& args) { // shift assignments over by one so no one is assigned to "skip_device" if (use_gpu >= skip_device) ++use_gpu; } + return use_gpu; +} +#endif // KOKKOS_ENABLE_CUDA || KOKKOS_ENABLE_ROCM || KOKKOS_ENABLE_HIP + +bool is_unsigned_int(const char* str) { + const size_t len = strlen(str); + for (size_t i = 0; i < len; ++i) { + if (!isdigit(str[i])) { + return false; + } + } + return true; +} + +void initialize_backends(const InitArguments& args) { +// This is an experimental setting +// For KNL in Flat mode this variable should be set, so that +// memkind allocates high bandwidth memory correctly. +#ifdef KOKKOS_ENABLE_HBWSPACE + setenv("MEMKIND_HBW_NODES", "1", 0); +#endif + + // Protect declarations, to prevent "unused variable" warnings. +#if defined(KOKKOS_ENABLE_OPENMP) || defined(KOKKOS_ENABLE_THREADS) || \ + defined(KOKKOS_ENABLE_OPENMPTARGET) || defined(KOKKOS_ENABLE_HPX) + const int num_threads = args.num_threads; +#endif +#if defined(KOKKOS_ENABLE_THREADS) || defined(KOKKOS_ENABLE_OPENMPTARGET) + const int use_numa = args.num_numa; +#endif +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) || \ + defined(KOKKOS_ENABLE_HIP) + int use_gpu = get_gpu(args); #endif // defined( KOKKOS_ENABLE_CUDA ) #if defined(KOKKOS_ENABLE_OPENMP) if (std::is_same::value || std::is_same::value) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Kokkos::OpenMP::initialize(num_threads); -#else Kokkos::OpenMP::impl_initialize(num_threads); -#endif } else { // std::cout << "Kokkos::initialize() fyi: OpenMP enabled but not // initialized" << std::endl ; @@ -251,17 +256,6 @@ void initialize_backends(const InitArguments& args) { if (std::is_same::value || std::is_same::value) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (num_threads > 0) { - if (use_numa > 0) { - Kokkos::Threads::initialize(num_threads, use_numa); - } else { - Kokkos::Threads::initialize(num_threads); - } - } else { - Kokkos::Threads::initialize(); - } -#else if (num_threads > 0) { if (use_numa > 0) { Kokkos::Threads::impl_initialize(num_threads, use_numa); @@ -271,7 +265,6 @@ void initialize_backends(const InitArguments& args) { } else { Kokkos::Threads::impl_initialize(); } -#endif // std::cout << "Kokkos::initialize() fyi: Pthread enabled and initialized" // << std::endl ; } else { @@ -305,12 +298,8 @@ void initialize_backends(const InitArguments& args) { (void)args; // Always initialize Serial if it is configure time enabled -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Kokkos::Serial::initialize(); -#else Kokkos::Serial::impl_initialize(); #endif -#endif #if defined(KOKKOS_ENABLE_OPENMPTARGET) if (std::is_same::value || 0 < use_gpu) { if (use_gpu > -1) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Kokkos::Cuda::initialize(Kokkos::Cuda::SelectDevice(use_gpu)); -#else Kokkos::Cuda::impl_initialize(Kokkos::Cuda::SelectDevice(use_gpu)); -#endif } else { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Kokkos::Cuda::initialize(); -#else Kokkos::Cuda::impl_initialize(); -#endif } // std::cout << "Kokkos::initialize() fyi: Cuda enabled and initialized" << // std::endl ; @@ -370,22 +351,12 @@ void initialize_backends(const InitArguments& args) { } else { Kokkos::Experimental::HIP::impl_initialize(); } - std::cout << "Kokkos::initialize() fyi: HIP enabled and initialized" - << std::endl; } #endif } void initialize_profiling(const InitArguments&) { -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::initialize(); -#else - if (getenv("KOKKOS_PROFILE_LIBRARY") != nullptr) { - std::cerr << "Kokkos::initialize() warning: Requested Kokkos Profiling, " - "but Kokkos was built without Profiling support" - << std::endl; - } -#endif } void pre_initialize_internal(const InitArguments& args) { @@ -431,18 +402,12 @@ void finalize_internal(const bool all_spaces = false) { ++numSuccessfulCalls; } -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::finalize(); -#endif #if defined(KOKKOS_ENABLE_CUDA) if (std::is_same::value || all_spaces) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::Cuda::is_initialized()) Kokkos::Cuda::finalize(); -#else if (Kokkos::Cuda::impl_is_initialized()) Kokkos::Cuda::impl_finalize(); -#endif } #else (void)all_spaces; @@ -478,11 +443,7 @@ void finalize_internal(const bool all_spaces = false) { if (std::is_same::value || std::is_same::value || all_spaces) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::OpenMP::is_initialized()) Kokkos::OpenMP::finalize(); -#else if (Kokkos::OpenMP::impl_is_initialized()) Kokkos::OpenMP::impl_finalize(); -#endif } #endif @@ -502,21 +463,13 @@ void finalize_internal(const bool all_spaces = false) { std::is_same::value || all_spaces) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::Threads::is_initialized()) Kokkos::Threads::finalize(); -#else if (Kokkos::Threads::impl_is_initialized()) Kokkos::Threads::impl_finalize(); -#endif } #endif #if defined(KOKKOS_ENABLE_SERIAL) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::Serial::is_initialized()) Kokkos::Serial::finalize(); -#else if (Kokkos::Serial::impl_is_initialized()) Kokkos::Serial::impl_finalize(); -#endif #endif g_is_initialized = false; @@ -533,7 +486,7 @@ void fence_internal() { #endif #if defined(KOKKOS_ENABLE_HIP) - Kokkos::Experimental::HIP().fence(); + Kokkos::Experimental::HIP::impl_static_fence(); #endif #if defined(KOKKOS_ENABLE_OPENMP) @@ -541,7 +494,7 @@ void fence_internal() { #endif #if defined(KOKKOS_ENABLE_HPX) - Kokkos::Experimental::HPX::impl_static_fence(); + Kokkos::Experimental::HPX().fence(); #endif #if defined(KOKKOS_ENABLE_THREADS) @@ -577,7 +530,7 @@ bool check_int_arg(char const* arg, char const* expected, int* value) { if (arg_len == exp_len || arg[exp_len] != '=') okay = false; char const* number = arg + exp_len + 1; if (!Impl::is_unsigned_int(number) || strlen(number) == 0) okay = false; - *value = std::atoi(number); + *value = std::stoi(number); if (!okay) { std::ostringstream ss; ss << "Error: expecting an '=INT' after command line argument '" << expected @@ -614,10 +567,10 @@ void parse_command_line_arguments(int& narg, char* arg[], auto& skip_device = arguments.skip_device; auto& disable_warnings = arguments.disable_warnings; - int kokkos_threads_found = 0; - int kokkos_numa_found = 0; - int kokkos_device_found = 0; - int kokkos_ndevices_found = 0; + bool kokkos_threads_found = false; + bool kokkos_numa_found = false; + bool kokkos_device_found = false; + bool kokkos_ndevices_found = false; int iarg = 0; @@ -626,7 +579,7 @@ void parse_command_line_arguments(int& narg, char* arg[], for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } - kokkos_threads_found = 1; + kokkos_threads_found = true; narg--; } else if (!kokkos_threads_found && check_int_arg(arg[iarg], "--threads", &num_threads)) { @@ -635,7 +588,7 @@ void parse_command_line_arguments(int& narg, char* arg[], for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } - kokkos_numa_found = 1; + kokkos_numa_found = true; narg--; } else if (!kokkos_numa_found && check_int_arg(arg[iarg], "--numa", &numa)) { @@ -649,7 +602,7 @@ void parse_command_line_arguments(int& narg, char* arg[], for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } - kokkos_device_found = 1; + kokkos_device_found = true; narg--; } else if (!kokkos_device_found && (check_int_arg(arg[iarg], "--device-id", &device) || @@ -694,7 +647,7 @@ void parse_command_line_arguments(int& narg, char* arg[], } if (check_arg(arg[iarg], "--kokkos-num-devices") || check_arg(arg[iarg], "--kokkos-ndevices") || !kokkos_ndevices_found) - ndevices = atoi(num1_only); + ndevices = std::stoi(num1_only); delete[] num1_only; if (num2 != nullptr) { @@ -706,7 +659,7 @@ void parse_command_line_arguments(int& narg, char* arg[], if (check_arg(arg[iarg], "--kokkos-num-devices") || check_arg(arg[iarg], "--kokkos-ndevices") || !kokkos_ndevices_found) - skip_device = atoi(num2 + 1); + skip_device = std::stoi(num2 + 1); } // Remove the --kokkos-num-devices argument from the list but leave @@ -716,7 +669,7 @@ void parse_command_line_arguments(int& narg, char* arg[], for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } - kokkos_ndevices_found = 1; + kokkos_ndevices_found = true; narg--; } else { iarg++; @@ -1237,12 +1190,6 @@ void print_configuration(std::ostream& out, const bool detail) { #else msg << "no" << std::endl; #endif - msg << " KOKKOS_ENABLE_PROFILING: "; -#ifdef KOKKOS_ENABLE_PROFILING - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif #ifdef KOKKOS_ENABLE_CUDA msg << "Cuda Options:" << std::endl; diff --git a/lib/kokkos/core/src/impl/Kokkos_Error.cpp b/lib/kokkos/core/src/impl/Kokkos_Error.cpp index a42b916f80..fd372b8e5e 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Error.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_Error.cpp @@ -51,6 +51,7 @@ #include #include #include +#include //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -156,4 +157,19 @@ void traceback_callstack(std::ostream &msg) { } } // namespace Impl + +#ifdef KOKKOS_ENABLE_CUDA +namespace Experimental { + +void CudaRawMemoryAllocationFailure::append_additional_error_information( + std::ostream &o) const { + if (m_error_code != cudaSuccess) { + o << " The Cuda allocation returned the error code \"\"" + << cudaGetErrorName(m_error_code) << "\"."; + } +} + +} // end namespace Experimental +#endif + } // namespace Kokkos diff --git a/lib/kokkos/core/src/impl/Kokkos_Error.hpp b/lib/kokkos/core/src/impl/Kokkos_Error.hpp index 41be6737e7..48be687d4b 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Error.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Error.hpp @@ -62,7 +62,7 @@ namespace Kokkos { namespace Impl { -void host_abort(const char *const); +[[noreturn]] void host_abort(const char *const); void throw_runtime_exception(const std::string &); @@ -164,9 +164,32 @@ class RawMemoryAllocationFailure : public std::bad_alloc { //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- +#if defined(KOKKOS_ENABLE_CUDA) && defined(__CUDA_ARCH__) + +#if defined(__APPLE__) || defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) +// cuda_abort does not abort when building for macOS. +// required to workaround failures in random number generator unit tests with +// pre-volta architectures +#define KOKKOS_IMPL_ABORT_NORETURN +#else +// cuda_abort aborts when building for other platforms than macOS +#define KOKKOS_IMPL_ABORT_NORETURN [[noreturn]] +#endif + +#elif defined(KOKKOS_ENABLE_HIP) && defined(__HIP_DEVICE_COMPILE__) +// HIP aborts +#define KOKKOS_IMPL_ABORT_NORETURN [[noreturn]] +#elif !defined(KOKKOS_ENABLE_OPENMPTARGET) && !defined(__HCC_ACCELERATOR__) +// Host aborts +#define KOKKOS_IMPL_ABORT_NORETURN [[noreturn]] +#else +// Everything else does not abort +#define KOKKOS_IMPL_ABORT_NORETURN +#endif + namespace Kokkos { -KOKKOS_INLINE_FUNCTION -void abort(const char *const message) { +KOKKOS_IMPL_ABORT_NORETURN KOKKOS_INLINE_FUNCTION void abort( + const char *const message) { #if defined(KOKKOS_ENABLE_CUDA) && defined(__CUDA_ARCH__) Kokkos::Impl::cuda_abort(message); #elif defined(KOKKOS_ENABLE_HIP) && defined(__HIP_DEVICE_COMPILE__) diff --git a/lib/kokkos/core/src/impl/Kokkos_ExecPolicy.cpp b/lib/kokkos/core/src/impl/Kokkos_ExecPolicy.cpp index eada15fe99..1c337b9575 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ExecPolicy.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_ExecPolicy.cpp @@ -43,6 +43,8 @@ */ #include +#include + namespace Kokkos { namespace Impl { PerTeamValue::PerTeamValue(int arg) : value(arg) {} @@ -56,4 +58,13 @@ Impl::PerThreadValue PerThread(const int& arg) { return Impl::PerThreadValue(arg); } +void team_policy_check_valid_storage_level_argument(int level) { + if (!(level == 0 || level == 1)) { + std::stringstream ss; + ss << "TeamPolicy::set_scratch_size(/*level*/ " << level + << ", ...) storage level argument must be 0 or 1 to be valid\n"; + Impl::throw_runtime_exception(ss.str()); + } +} + } // namespace Kokkos diff --git a/lib/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp b/lib/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp index b777dac021..b5e01e33a1 100644 --- a/lib/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp @@ -61,48 +61,99 @@ struct ReduceFunctorHasInit { enum { value = false }; }; +// The else clause idiom failed with NVCC+MSVC, causing some symbols not being +// compiled for the device. The code in there is anyway sketchy, and likely not +// standard compliant (just happens to work on all compilers we ever used) +// We intend to replace all of this long term with proper detection idiom. +#if defined(KOKKOS_COMPILER_MSVC) || defined(KOKKOS_IMPL_WINDOWS_CUDA) +template +using impl_void_t_workaround = void; + +template +using init_archetype = decltype(&F::init); + +template +struct ReduceFunctorHasInit< + FunctorType, impl_void_t_workaround>> { + enum { value = true }; +}; +#else template struct ReduceFunctorHasInit< FunctorType, typename std::enable_if<0 < sizeof(&FunctorType::init)>::type> { enum { value = true }; }; +#endif template struct ReduceFunctorHasJoin { enum { value = false }; }; +#if defined(KOKKOS_COMPILER_MSVC) || defined(KOKKOS_IMPL_WINDOWS_CUDA) +template +using join_archetype = decltype(&F::join); + +template +struct ReduceFunctorHasJoin< + FunctorType, impl_void_t_workaround>> { + enum { value = true }; +}; +#else template struct ReduceFunctorHasJoin< FunctorType, typename std::enable_if<0 < sizeof(&FunctorType::join)>::type> { enum { value = true }; }; +#endif template struct ReduceFunctorHasFinal { enum { value = false }; }; +#if defined(KOKKOS_COMPILER_MSVC) || defined(KOKKOS_IMPL_WINDOWS_CUDA) +template +using final_archetype = decltype(&F::final); + +template +struct ReduceFunctorHasFinal< + FunctorType, impl_void_t_workaround>> { + enum { value = true }; +}; +#else template struct ReduceFunctorHasFinal< FunctorType, typename std::enable_if<0 < sizeof(&FunctorType::final)>::type> { enum { value = true }; }; +#endif template struct ReduceFunctorHasShmemSize { enum { value = false }; }; +#if defined(KOKKOS_COMPILER_MSVC) || defined(KOKKOS_IMPL_WINDOWS_CUDA) +template +using shmemsize_archetype = decltype(&F::team_shmem_size); + +template +struct ReduceFunctorHasShmemSize< + FunctorType, impl_void_t_workaround>> { + enum { value = true }; +}; +#else template struct ReduceFunctorHasShmemSize< FunctorType, typename std::enable_if<0 < sizeof(&FunctorType::team_shmem_size)>::type> { enum { value = true }; }; +#endif template struct FunctorDeclaresValueType : public std::false_type {}; @@ -136,10 +187,10 @@ struct IsNonTrivialReduceFunctor { template ::value> struct FunctorValueTraits { - typedef void value_type; - typedef void pointer_type; - typedef void reference_type; - typedef void functor_type; + using value_type = void; + using pointer_type = void; + using reference_type = void; + using functor_type = void; enum { StaticValueSize = 0 }; @@ -154,10 +205,10 @@ struct FunctorValueTraits { template struct FunctorValueTraits { - typedef void value_type; - typedef void pointer_type; - typedef void reference_type; - typedef void functor_type; + using value_type = void; + using pointer_type = void; + using reference_type = void; + using functor_type = void; }; /** \brief FunctorType::value_type is explicitly declared so use it. @@ -165,18 +216,18 @@ struct FunctorValueTraits { * Two options for declaration * * 1) A plain-old-data (POD) type - * typedef {pod_type} value_type ; + * using value_type = {pod_type}; * * 2) An array of POD of a runtime specified count. - * typedef {pod_type} value_type[] ; + * using value_type = {pod_type}[]; * const unsigned value_count ; */ template struct FunctorValueTraits { - typedef typename std::remove_extent::type - value_type; - typedef FunctorType functor_type; + using value_type = + typename std::remove_extent::type; + using functor_type = FunctorType; static_assert((sizeof(value_type) < sizeof(int)) || 0 == (sizeof(value_type) % sizeof(int)), @@ -192,13 +243,13 @@ struct FunctorValueTraits::type - reference_type; + using reference_type = + typename Impl::if_c::type; // Number of values if single value template @@ -236,8 +287,8 @@ struct FunctorValueTraits::value, VOIDTAG, - ArgTag>::type tag_type; + using tag_type = typename Impl::if_c::value, + VOIDTAG, ArgTag>::type; //---------------------------------------- // parallel_for operator without a tag: @@ -1271,20 +1322,20 @@ struct FunctorValueTraits::value }; enum { IS_REJECT = std::is_same::value }; public: - typedef typename Impl::if_c::type - value_type; - typedef typename Impl::if_c::type - pointer_type; - typedef typename Impl::if_c::type - reference_type; - typedef FunctorType functor_type; + using value_type = + typename Impl::if_c::type; + using pointer_type = + typename Impl::if_c::type; + using reference_type = + typename Impl::if_c::type; + using functor_type = FunctorType; static_assert( IS_VOID || IS_REJECT || 0 == (sizeof(ValueType) % sizeof(int)), @@ -1316,8 +1367,8 @@ namespace Impl { */ template struct FunctorValueInitFunction { - typedef typename FunctorValueTraits::reference_type - reference_type; + using reference_type = + typename FunctorValueTraits::reference_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(ArgTag, reference_type) const); @@ -1334,8 +1385,8 @@ struct FunctorValueInitFunction { */ template struct FunctorValueInitFunction { - typedef typename FunctorValueTraits::reference_type - reference_type; + using reference_type = + typename FunctorValueTraits::reference_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(reference_type) const); @@ -1455,11 +1506,11 @@ template ::StaticValueSize> struct FunctorValueJoinFunction { - typedef - typename FunctorValueTraits::value_type value_type; + using value_type = + typename FunctorValueTraits::value_type; - typedef volatile value_type& vref_type; - typedef const volatile value_type& cvref_type; + using vref_type = volatile value_type&; + using cvref_type = const volatile value_type&; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(ArgTag, vref_type, cvref_type) const); @@ -1474,11 +1525,11 @@ struct FunctorValueJoinFunction { // Signatures for compatible FunctorType::join with tag and is an array template struct FunctorValueJoinFunction { - typedef - typename FunctorValueTraits::value_type value_type; + using value_type = + typename FunctorValueTraits::value_type; - typedef volatile value_type* vptr_type; - typedef const volatile value_type* cvptr_type; + using vptr_type = volatile value_type*; + using cvptr_type = const volatile value_type*; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(ArgTag, vptr_type, cvptr_type) const); @@ -1493,10 +1544,10 @@ struct FunctorValueJoinFunction { // Signatures for compatible FunctorType::join without tag and not an array template struct FunctorValueJoinFunction { - typedef typename FunctorValueTraits::value_type value_type; + using value_type = typename FunctorValueTraits::value_type; - typedef volatile value_type& vref_type; - typedef const volatile value_type& cvref_type; + using vref_type = volatile value_type&; + using cvref_type = const volatile value_type&; KOKKOS_INLINE_FUNCTION static void enable_if(void (FunctorType::*)(vref_type, cvref_type) @@ -1507,10 +1558,10 @@ struct FunctorValueJoinFunction { // Signatures for compatible FunctorType::join without tag and is an array template struct FunctorValueJoinFunction { - typedef typename FunctorValueTraits::value_type value_type; + using value_type = typename FunctorValueTraits::value_type; - typedef volatile value_type* vptr_type; - typedef const volatile value_type* cvptr_type; + using vptr_type = volatile value_type*; + using cvptr_type = const volatile value_type*; KOKKOS_INLINE_FUNCTION static void enable_if(void (FunctorType::*)(vptr_type, cvptr_type) @@ -1701,7 +1752,7 @@ namespace Impl { template struct JoinLambdaAdapter { - typedef ValueType value_type; + using value_type = ValueType; const JoinOp& lambda; KOKKOS_INLINE_FUNCTION JoinLambdaAdapter(const JoinOp& lambda_) : lambda(lambda_) {} @@ -1730,7 +1781,7 @@ template struct JoinLambdaAdapter::enable_if(&JoinOp::join))> { - typedef ValueType value_type; + using value_type = ValueType; static_assert( std::is_same::value, "JoinLambdaAdapter static_assert Fail: ValueType != JoinOp::value_type"); @@ -1763,7 +1814,7 @@ struct JoinLambdaAdapter struct JoinAdd { - typedef ValueType value_type; + using value_type = ValueType; KOKKOS_DEFAULTED_FUNCTION JoinAdd() = default; @@ -1839,8 +1890,8 @@ template ::StaticValueSize> struct FunctorFinalFunction { - typedef - typename FunctorValueTraits::value_type value_type; + using value_type = + typename FunctorValueTraits::value_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(ArgTag, value_type&) const); @@ -1893,8 +1944,8 @@ struct FunctorFinalFunction { // Compatible functions for 'final' function and value_type is an array template struct FunctorFinalFunction { - typedef - typename FunctorValueTraits::value_type value_type; + using value_type = + typename FunctorValueTraits::value_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(ArgTag, value_type*) const); @@ -1946,7 +1997,7 @@ struct FunctorFinalFunction { template struct FunctorFinalFunction { - typedef typename FunctorValueTraits::value_type value_type; + using value_type = typename FunctorValueTraits::value_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(value_type&) const); @@ -1963,7 +2014,7 @@ struct FunctorFinalFunction { template struct FunctorFinalFunction { - typedef typename FunctorValueTraits::value_type value_type; + using value_type = typename FunctorValueTraits::value_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(value_type*) const); diff --git a/lib/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp b/lib/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp index 827a9f346d..1d7b9809bb 100644 --- a/lib/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp @@ -391,8 +391,8 @@ struct FunctorAnalysis { template struct has_join_function { - typedef volatile ValueType& vref_type; - typedef volatile const ValueType& cvref_type; + using vref_type = volatile ValueType&; + using cvref_type = const volatile ValueType&; KOKKOS_INLINE_FUNCTION static void enable_if(void (F::*)(vref_type, cvref_type) const); @@ -409,8 +409,8 @@ struct FunctorAnalysis { template struct has_join_function { - typedef volatile ValueType* vref_type; - typedef volatile const ValueType* cvref_type; + using vref_type = volatile ValueType*; + using cvref_type = const volatile ValueType*; KOKKOS_INLINE_FUNCTION static void enable_if(void (F::*)(vref_type, cvref_type) const); @@ -427,8 +427,8 @@ struct FunctorAnalysis { template struct has_join_function { - typedef volatile ValueType& vref_type; - typedef volatile const ValueType& cvref_type; + using vref_type = volatile ValueType&; + using cvref_type = const volatile ValueType&; KOKKOS_INLINE_FUNCTION static void enable_if(void (F::*)(WTag, vref_type, cvref_type) const); @@ -453,8 +453,8 @@ struct FunctorAnalysis { template struct has_join_function { - typedef volatile ValueType* vref_type; - typedef volatile const ValueType* cvref_type; + using vref_type = volatile ValueType*; + using cvref_type = const volatile ValueType*; KOKKOS_INLINE_FUNCTION static void enable_if(void (F::*)(WTag, vref_type, cvref_type) const); diff --git a/lib/kokkos/core/src/impl/Kokkos_HBWSpace.cpp b/lib/kokkos/core/src/impl/Kokkos_HBWSpace.cpp index 9b5bee2279..fad36c02f1 100644 --- a/lib/kokkos/core/src/impl/Kokkos_HBWSpace.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_HBWSpace.cpp @@ -62,9 +62,7 @@ #include #endif -#if defined(KOKKOS_ENABLE_PROFILING) -#include -#endif +#include //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -93,6 +91,10 @@ HBWSpace::HBWSpace(const HBWSpace::AllocationMechanism &arg_alloc_mech) } void *HBWSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void *HBWSpace::allocate(const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size) const { static_assert(sizeof(void *) == sizeof(uintptr_t), "Error sizeof(void*) != sizeof(uintptr_t)"); @@ -147,13 +149,30 @@ void *HBWSpace::allocate(const size_t arg_alloc_size) const { Kokkos::Impl::throw_runtime_exception(msg.str()); } + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData(name(), arg_label, ptr, reported_size); + } return ptr; } void HBWSpace::deallocate(void *const arg_alloc_ptr, const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} +void HBWSpace::deallocate(const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { if (arg_alloc_ptr) { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData(name(), arg_label, arg_alloc_ptr, + reported_size); + } + if (m_alloc_mech == STD_MALLOC) { void *alloc_ptr = *(reinterpret_cast(arg_alloc_ptr) - 1); memkind_free(MEMKIND_TYPE, alloc_ptr); @@ -187,16 +206,12 @@ SharedAllocationRecordm_label, data(), size()); - } -#endif - m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, - SharedAllocationRecord::m_alloc_size); + m_space.deallocate(RecordBase::m_alloc_ptr->m_label, + SharedAllocationRecord::m_alloc_ptr, + SharedAllocationRecord::m_alloc_size, + (SharedAllocationRecord::m_alloc_size - + sizeof(SharedAllocationHeader))); } SharedAllocationRecord:: @@ -215,14 +230,6 @@ SharedAllocationRecord:: arg_alloc_size), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif - // Fill in the Header information RecordBase::m_alloc_ptr->m_record = static_cast *>(this); @@ -279,9 +286,9 @@ void *SharedAllocationRecord:: SharedAllocationRecord *SharedAllocationRecord::get_record( void *alloc_ptr) { - typedef SharedAllocationHeader Header; - typedef SharedAllocationRecord - RecordHost; + using Header = SharedAllocationHeader; + using RecordHost = + SharedAllocationRecord; SharedAllocationHeader const *const head = alloc_ptr ? Header::get_header(alloc_ptr) : (SharedAllocationHeader *)0; diff --git a/lib/kokkos/core/src/impl/Kokkos_HostSpace.cpp b/lib/kokkos/core/src/impl/Kokkos_HostSpace.cpp index 59d14e5392..2a4539cb84 100644 --- a/lib/kokkos/core/src/impl/Kokkos_HostSpace.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_HostSpace.cpp @@ -47,9 +47,7 @@ #include #include #include -#if defined(KOKKOS_ENABLE_PROFILING) -#include -#endif +#include /*--------------------------------------------------------------------------*/ @@ -166,6 +164,14 @@ HostSpace::HostSpace(const HostSpace::AllocationMechanism &arg_alloc_mech) } void *HostSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void *HostSpace::allocate(const char *arg_label, const size_t arg_alloc_size, + const size_t + + arg_logical_size) const { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; static_assert(sizeof(void *) == sizeof(uintptr_t), "Error sizeof(void*) != sizeof(uintptr_t)"); @@ -274,16 +280,32 @@ void *HostSpace::allocate(const size_t arg_alloc_size) const { throw Kokkos::Experimental::RawMemoryAllocationFailure( arg_alloc_size, alignment, failure_mode, alloc_mec); } - + if (Kokkos::Profiling::profileLibraryLoaded()) { + Kokkos::Profiling::allocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, ptr, + reported_size); + } return ptr; } -void HostSpace::deallocate(void *const arg_alloc_ptr, const size_t -#if defined(KOKKOS_IMPL_POSIX_MMAP_FLAGS) - arg_alloc_size -#endif - ) const { +void HostSpace::deallocate(void *const arg_alloc_ptr, + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} + +void HostSpace::deallocate(const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t + + arg_logical_size) const { if (arg_alloc_ptr) { + size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + if (Kokkos::Profiling::profileLibraryLoaded()) { + Kokkos::Profiling::deallocateData( + Kokkos::Profiling::make_space_handle(name()), arg_label, + arg_alloc_ptr, reported_size); + } if (m_alloc_mech == STD_MALLOC) { void *alloc_ptr = *(reinterpret_cast(arg_alloc_ptr) - 1); free(alloc_ptr); @@ -332,16 +354,12 @@ SharedAllocationRecord::~SharedAllocationRecord() noexcept #endif { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), - RecordBase::m_alloc_ptr->m_label, data(), size()); - } -#endif - m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, - SharedAllocationRecord::m_alloc_size); + m_space.deallocate(RecordBase::m_alloc_ptr->m_label, + SharedAllocationRecord::m_alloc_ptr, + SharedAllocationRecord::m_alloc_size, + (SharedAllocationRecord::m_alloc_size - + sizeof(SharedAllocationHeader))); } SharedAllocationHeader *_do_allocation(Kokkos::HostSpace const &space, @@ -380,13 +398,6 @@ SharedAllocationRecord::SharedAllocationRecord( arg_alloc_size), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif // Fill in the Header information RecordBase::m_alloc_ptr->m_record = static_cast *>(this); @@ -439,8 +450,8 @@ void *SharedAllocationRecord::reallocate_tracked( SharedAllocationRecord * SharedAllocationRecord::get_record(void *alloc_ptr) { - typedef SharedAllocationHeader Header; - typedef SharedAllocationRecord RecordHost; + using Header = SharedAllocationHeader; + using RecordHost = SharedAllocationRecord; SharedAllocationHeader const *const head = alloc_ptr ? Header::get_header(alloc_ptr) : nullptr; diff --git a/lib/kokkos/core/src/impl/Kokkos_HostSpace_deepcopy.cpp b/lib/kokkos/core/src/impl/Kokkos_HostSpace_deepcopy.cpp index 35eee40ab7..b86670346c 100644 --- a/lib/kokkos/core/src/impl/Kokkos_HostSpace_deepcopy.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_HostSpace_deepcopy.cpp @@ -60,7 +60,7 @@ void hostspace_parallel_deepcopy(void* dst, const void* src, ptrdiff_t n) { return; } - typedef Kokkos::RangePolicy policy_t; + using policy_t = Kokkos::RangePolicy; // Both src and dst are aligned the same way with respect to 8 byte words if (reinterpret_cast(src) % 8 == diff --git a/lib/kokkos/core/src/impl/Kokkos_MemoryPool.cpp b/lib/kokkos/core/src/impl/Kokkos_MemoryPool.cpp index d48368f761..889d821bb1 100644 --- a/lib/kokkos/core/src/impl/Kokkos_MemoryPool.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_MemoryPool.cpp @@ -42,9 +42,10 @@ //@HEADER */ +#include + #include #include -#include //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -106,5 +107,29 @@ void memory_pool_bounds_verification(size_t min_block_alloc_size, } } +// This has way too many parameters, but it is entirely for moving the iostream +// inclusion out of the header file with as few changes as possible +void _print_memory_pool_state(std::ostream& s, uint32_t const* sb_state_ptr, + int32_t sb_count, uint32_t sb_size_lg2, + uint32_t sb_state_size, uint32_t state_shift, + uint32_t state_used_mask) { + s << "pool_size(" << (size_t(sb_count) << sb_size_lg2) << ")" + << " superblock_size(" << (1LU << sb_size_lg2) << ")" << std::endl; + + for (int32_t i = 0; i < sb_count; ++i, sb_state_ptr += sb_state_size) { + if (*sb_state_ptr) { + const uint32_t block_count_lg2 = (*sb_state_ptr) >> state_shift; + const uint32_t block_size_lg2 = sb_size_lg2 - block_count_lg2; + const uint32_t block_count = 1u << block_count_lg2; + const uint32_t block_used = (*sb_state_ptr) & state_used_mask; + + s << "Superblock[ " << i << " / " << sb_count << " ] {" + << " block_size(" << (1 << block_size_lg2) << ")" + << " block_count( " << block_used << " / " << block_count << " )" + << std::endl; + } + } +} + } // namespace Impl } // namespace Kokkos diff --git a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/src/impl/Kokkos_MemorySpace.cpp similarity index 53% rename from lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp rename to lib/kokkos/core/src/impl/Kokkos_MemorySpace.cpp index 5a52ee9e86..ec2e573c04 100644 --- a/lib/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_MemorySpace.cpp @@ -1,15 +1,13 @@ +/* //@HEADER // ************************************************************************ // // Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). +// Copyright (2019) Sandia Corporation // // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,18 +39,57 @@ // // ************************************************************************ //@HEADER +*/ + +/** @file Kokkos_MemorySpace.cpp + * + * Operations common to memory space instances, or at least default + * implementations thereof. + */ + +#include + +#include +#include +#include -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include namespace Kokkos { namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Experimental::ROCm, int64_t) -} // namespace Impl -} // namespace Kokkos +void safe_throw_allocation_with_header_failure( + std::string const& space_name, std::string const& label, + Kokkos::Experimental::RawMemoryAllocationFailure const& failure) { + auto generate_failure_message = [&](std::ostream& o) { + o << "Kokkos failed to allocate memory for label \"" << label + << "\". Allocation using MemorySpace named \"" << space_name + << "\" failed with the following error: "; + failure.print_error_message(o); + if (failure.failure_mode() == + Kokkos::Experimental::RawMemoryAllocationFailure::FailureMode:: + AllocationNotAligned) { + // TODO: delete the misaligned memory? + o << "Warning: Allocation failed due to misalignment; memory may " + "be leaked.\n"; + } + o.flush(); + }; + try { + std::ostringstream sstr; + generate_failure_message(sstr); + Kokkos::Impl::throw_runtime_exception(sstr.str()); + } catch (std::bad_alloc const&) { + // Probably failed to allocate the string because we're so close to out + // of memory. Try printing to std::cerr instead + try { + generate_failure_message(std::cerr); + } catch (std::bad_alloc const&) { + // oh well, we tried... + } + Kokkos::Impl::throw_runtime_exception( + "Kokkos encountered an allocation failure, then another allocation " + "failure while trying to create the error message."); + } +} + +} // end namespace Impl +} // end namespace Kokkos diff --git a/lib/kokkos/core/src/impl/Kokkos_MemorySpace.hpp b/lib/kokkos/core/src/impl/Kokkos_MemorySpace.hpp index 650cf8a70c..5b3764686f 100644 --- a/lib/kokkos/core/src/impl/Kokkos_MemorySpace.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_MemorySpace.hpp @@ -55,51 +55,25 @@ #include #include -#include -#include namespace Kokkos { namespace Impl { +// Defined in implementation file to avoid having to include iostream +void safe_throw_allocation_with_header_failure( + std::string const &space_name, std::string const &label, + Kokkos::Experimental::RawMemoryAllocationFailure const &failure); + template SharedAllocationHeader *checked_allocation_with_header(MemorySpace const &space, std::string const &label, size_t alloc_size) { try { - return reinterpret_cast( - space.allocate(alloc_size + sizeof(SharedAllocationHeader))); + return reinterpret_cast(space.allocate( + label.c_str(), alloc_size + sizeof(SharedAllocationHeader), + alloc_size)); } catch (Kokkos::Experimental::RawMemoryAllocationFailure const &failure) { - auto generate_failure_message = [&](std::ostream &o) { - o << "Kokkos failed to allocate memory for label \"" << label - << "\". Allocation using MemorySpace named \"" << space.name() - << "\" failed with the following error: "; - failure.print_error_message(o); - if (failure.failure_mode() == - Kokkos::Experimental::RawMemoryAllocationFailure::FailureMode:: - AllocationNotAligned) { - // TODO: delete the misaligned memory? - o << "Warning: Allocation failed due to misalignment; memory may " - "be leaked." - << std::endl; - } - o.flush(); - }; - try { - std::ostringstream sstr; - generate_failure_message(sstr); - Kokkos::Impl::throw_runtime_exception(sstr.str()); - } catch (std::bad_alloc const &) { - // Probably failed to allocate the string because we're so close to out - // of memory. Try printing to std::cerr instead - try { - generate_failure_message(std::cerr); - } catch (std::bad_alloc const &) { - // oh well, we tried... - } - Kokkos::Impl::throw_runtime_exception( - "Kokkos encountered an allocation failure, then another allocation " - "failure while trying to create the error message."); - } + safe_throw_allocation_with_header_failure(space.name(), label, failure); } return nullptr; // unreachable } diff --git a/lib/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp b/lib/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp index eae14a92d5..a7f0830a68 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp @@ -53,9 +53,11 @@ KOKKOS_FORCEINLINE_FUNCTION void memory_fence() { #if defined(__CUDA_ARCH__) __threadfence(); +#elif defined(KOKKOS_ENABLE_OPENMPTARGET) +#pragma omp flush #elif defined(KOKKOS_ENABLE_ROCM_ATOMICS) amp_barrier(CLK_LOCAL_MEM_FENCE | CLK_GLOBAL_MEM_FENCE); -#elif defined(KOKKOS_ENABLE_HIP_ATOMICS) +#elif defined(__HIP_DEVICE_COMPILE__) __threadfence(); #elif defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) asm volatile("mfence" ::: "memory"); diff --git a/lib/kokkos/core/src/impl/Kokkos_OldMacros.hpp b/lib/kokkos/core/src/impl/Kokkos_OldMacros.hpp deleted file mode 100644 index fbb921d7f2..0000000000 --- a/lib/kokkos/core/src/impl/Kokkos_OldMacros.hpp +++ /dev/null @@ -1,526 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_IMPL_OLD_MACROS_HPP -#define KOKKOS_IMPL_OLD_MACROS_HPP - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - -#ifdef KOKKOS_ATOMICS_USE_CUDA -#ifndef KOKKOS_ENABLE_CUDA_ATOMICS -#define KOKKOS_ENABLE_CUDA_ATOMICS KOKKOS_ATOMICS_USE_CUDA -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_GCC -#ifndef KOKKOS_ENABLE_GNU_ATOMICS -#define KOKKOS_ENABLE_GNU_ATOMICS KOKKOS_ATOMICS_USE_GCC -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_GNU -#ifndef KOKKOS_ENABLE_GNU_ATOMICS -#define KOKKOS_ENABLE_GNU_ATOMICS KOKKOS_ATOMICS_USE_GNU -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_INTEL -#ifndef KOKKOS_ENABLE_INTEL_ATOMICS -#define KOKKOS_ENABLE_INTEL_ATOMICS KOKKOS_ATOMICS_USE_INTEL -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_OMP31 -#ifndef KOKKOS_ENABLE_OPENMP_ATOMICS -#define KOKKOS_ENABLE_OPENMP_ATOMICS KOKKOS_ATOMICS_USE_OMP31 -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_OPENMP31 -#ifndef KOKKOS_ENABLE_OPENMP_ATOMICS -#define KOKKOS_ENABLE_OPENMP_ATOMICS KOKKOS_ATOMICS_USE_OPENMP31 -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_WINDOWS -#ifndef KOKKOS_ENABLE_WINDOWS_ATOMICS -#define KOKKOS_ENABLE_WINDOWS_ATOMICS KOKKOS_ATOMICS_USE_WINDOWS -#endif -#endif - -#ifdef KOKKOS_CUDA_CLANG_WORKAROUND -#ifndef KOKKOS_IMPL_CUDA_CLANG_WORKAROUND -#define KOKKOS_IMPL_CUDA_CLANG_WORKAROUND KOKKOS_CUDA_CLANG_WORKAROUND -#endif -#endif - -#ifdef KOKKOS_CUDA_USE_LAMBDA -#ifndef KOKKOS_ENABLE_CUDA_LAMBDA -#define KOKKOS_ENABLE_CUDA_LAMBDA KOKKOS_CUDA_USE_LAMBDA -#endif -#endif - -#ifdef KOKKOS_CUDA_USE_LDG_INTRINSIC -#ifndef KOKKOS_ENABLE_CUDA_LDG_INTRINSIC -#define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC KOKKOS_CUDA_USE_LDG_INTRINSIC -#endif -#endif - -#ifdef KOKKOS_CUDA_USE_RELOCATABLE_DEVICE_CODE -#ifndef KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE -#define KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE \ - KOKKOS_CUDA_USE_RELOCATABLE_DEVICE_CODE -#endif -#endif - -#ifdef KOKKOS_CUDA_USE_UVM -#ifndef KOKKOS_ENABLE_CUDA_UVM -#define KOKKOS_ENABLE_CUDA_UVM KOKKOS_CUDA_USE_UVM -#endif -#endif - -#ifdef KOKKOS_HAVE_CUDA -#ifndef KOKKOS_ENABLE_CUDA -#define KOKKOS_ENABLE_CUDA KOKKOS_HAVE_CUDA -#endif -#endif - -#ifdef KOKKOS_HAVE_CUDA_LAMBDA -#ifndef KOKKOS_ENABLE_CUDA_LAMBDA -#define KOKKOS_ENABLE_CUDA_LAMBDA KOKKOS_HAVE_CUDA_LAMBDA -#endif -#endif - -#ifdef KOKKOS_HAVE_CUDA_RDC -#ifndef KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE -#define KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE KOKKOS_HAVE_CUDA_RDC -#endif -#endif - -#ifdef KOKKOS_HAVE_CUSPARSE -#ifndef KOKKOS_ENABLE_CUSPARSE -#define KOKKOS_ENABLE_CUSPARSE KOKKOS_HAVE_CUSPARSE -#endif -#endif - -#if defined(KOKKOS_HAVE_CXX1Z) || defined(KOKKOS_ENABLE_CXX17) -#ifndef KOKKOS_ENABLE_CXX1Z -#define KOKKOS_ENABLE_CXX1Z KOKKOS_HAVE_CXX1Z -#endif -#endif - -#ifdef KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_CUDA -#ifndef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA -#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA \ - KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_CUDA -#endif -#endif - -#ifdef KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_OPENMP -#ifndef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP -#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP \ - KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_OPENMP -#endif -#endif - -#ifdef KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_SERIAL -#ifndef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL -#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL \ - KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_SERIAL -#endif -#endif - -#ifdef KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_THREADS -#ifndef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS -#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS \ - KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_THREADS -#endif -#endif - -#ifdef KOKKOS_HAVE_HBWSPACE -#ifndef KOKKOS_ENABLE_HBWSPACE -#define KOKKOS_ENABLE_HBWSPACE KOKKOS_HAVE_HBWSPACE -#endif -#endif - -#ifdef KOKKOS_HAVE_HWLOC -#ifndef KOKKOS_ENABLE_HWLOC -#define KOKKOS_ENABLE_HWLOC KOKKOS_HAVE_HWLOC -#endif -#endif - -#ifdef KOKKOS_HAVE_MPI -#ifndef KOKKOS_ENABLE_MPI -#define KOKKOS_ENABLE_MPI KOKKOS_HAVE_MPI -#endif -#endif - -#ifdef KOKKOS_HAVE_OPENMP -#ifndef KOKKOS_ENABLE_OPENMP -#define KOKKOS_ENABLE_OPENMP KOKKOS_HAVE_OPENMP -#endif -#endif - -#ifdef KOKKOS_HAVE_PRAGMA_IVDEP -#ifndef KOKKOS_ENABLE_PRAGMA_IVDEP -#define KOKKOS_ENABLE_PRAGMA_IVDEP KOKKOS_HAVE_PRAGMA_IVDEP -#endif -#endif - -#ifdef KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION -#ifndef KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION -#define KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION \ - KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION -#endif -#endif - -#ifdef KOKKOS_HAVE_PRAGMA_LOOPCOUNT -#ifndef KOKKOS_ENABLE_PRAGMA_LOOPCOUNT -#define KOKKOS_ENABLE_PRAGMA_LOOPCOUNT KOKKOS_HAVE_PRAGMA_LOOPCOUNT -#endif -#endif - -#ifdef KOKKOS_HAVE_PRAGMA_SIMD -#ifndef KOKKOS_ENABLE_PRAGMA_SIMD -#define KOKKOS_ENABLE_PRAGMA_SIMD KOKKOS_HAVE_PRAGMA_SIMD -#endif -#endif - -#ifdef KOKKOS_HAVE_PRAGMA_UNROLL -#ifndef KOKKOS_ENABLE_PRAGMA_UNROLL -#define KOKKOS_ENABLE_PRAGMA_UNROLL KOKKOS_HAVE_PRAGMA_UNROLL -#endif -#endif - -#ifdef KOKKOS_HAVE_PRAGMA_VECTOR -#ifndef KOKKOS_ENABLE_PRAGMA_VECTOR -#define KOKKOS_ENABLE_PRAGMA_VECTOR KOKKOS_HAVE_PRAGMA_VECTOR -#endif -#endif - -#ifdef KOKKOS_HAVE_PTHREAD -#ifndef KOKKOS_ENABLE_PTHREAD -#define KOKKOS_ENABLE_PTHREAD KOKKOS_HAVE_PTHREAD -#endif -#endif - -#ifdef KOKKOS_HAVE_SERIAL -#ifndef KOKKOS_ENABLE_SERIAL -#define KOKKOS_ENABLE_SERIAL KOKKOS_HAVE_SERIAL -#endif -#endif - -#ifdef KOKKOS_HAVE_TYPE -#ifndef KOKKOS_IMPL_HAS_TYPE -#define KOKKOS_IMPL_HAS_TYPE KOKKOS_HAVE_TYPE -#endif -#endif - -#ifdef KOKKOS_HAVE_WINTHREAD -#ifndef KOKKOS_ENABLE_WINTHREAD -#define KOKKOS_ENABLE_WINTHREAD KOKKOS_HAVE_WINTHREAD -#endif -#endif - -#ifdef KOKKOS_HAVE_Winthread -#ifndef KOKKOS_ENABLE_WINTHREAD -#define KOKKOS_ENABLE_WINTHREAD KOKKOS_HAVE_Winthread -#endif -#endif - -#ifdef KOKKOS_INTEL_MM_ALLOC_AVAILABLE -#ifndef KOKKOS_ENABLE_INTEL_MM_ALLOC -#define KOKKOS_ENABLE_INTEL_MM_ALLOC KOKKOS_INTEL_MM_ALLOC_AVAILABLE -#endif -#endif - -#ifdef KOKKOS_MACRO_IMPL_TO_STRING -#ifndef KOKKOS_IMPL_MACRO_TO_STRING -#define KOKKOS_IMPL_MACRO_TO_STRING KOKKOS_MACRO_IMPL_TO_STRING -#endif -#endif - -#ifdef KOKKOS_MACRO_TO_STRING -#ifndef KOKKOS_MACRO_TO_STRING -#define KOKKOS_MACRO_TO_STRING KOKKOS_MACRO_TO_STRING -#endif -#endif - -#ifdef KOKKOS_MAY_ALIAS -#ifndef KOKKOS_IMPL_MAY_ALIAS -#define KOKKOS_IMPL_MAY_ALIAS KOKKOS_MAY_ALIAS -#endif -#endif - -#ifdef KOKKOS_MDRANGE_IVDEP -#ifndef KOKKOS_IMPL_MDRANGE_IVDEP -#define KOKKOS_IMPL_MDRANGE_IVDEP KOKKOS_MDRANGE_IVDEP -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINTERR -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINTERR -#define KOKKOS_ENABLE_MEMPOOL_PRINTERR KOKKOS_MEMPOOL_PRINTERR -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_ACTIVE_SUPERBLOCKS -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_ACTIVE_SUPERBLOCKS -#define KOKKOS_ENABLE_MEMPOOL_PRINT_ACTIVE_SUPERBLOCKS \ - KOKKOS_MEMPOOL_PRINT_ACTIVE_SUPERBLOCKS -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_BLOCKSIZE_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_BLOCKSIZE_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_BLOCKSIZE_INFO \ - KOKKOS_MEMPOOL_PRINT_BLOCKSIZE_INFO -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_CONSTRUCTOR_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_CONSTRUCTOR_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_CONSTRUCTOR_INFO \ - KOKKOS_MEMPOOL_PRINT_CONSTRUCTOR_INFO -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_INDIVIDUAL_PAGE_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_INDIVIDUAL_PAGE_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_INDIVIDUAL_PAGE_INFO \ - KOKKOS_MEMPOOL_PRINT_INDIVIDUAL_PAGE_INFO -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_INFO KOKKOS_MEMPOOL_PRINT_INFO -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_PAGE_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_PAGE_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_PAGE_INFO KOKKOS_MEMPOOL_PRINT_PAGE_INFO -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_SUPERBLOCK_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_SUPERBLOCK_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_SUPERBLOCK_INFO \ - KOKKOS_MEMPOOL_PRINT_SUPERBLOCK_INFO -#endif -#endif - -#ifdef KOKKOS_POSIX_MEMALIGN_AVAILABLE -#ifndef KOKKOS_ENABLE_POSIX_MEMALIGN -#define KOKKOS_ENABLE_POSIX_MEMALIGN KOKKOS_POSIX_MEMALIGN_AVAILABLE -#endif -#endif - -#ifdef KOKKOS_POSIX_MMAP_FLAGS -#ifndef KOKKOS_IMPL_POSIX_MMAP_FLAGS -#define KOKKOS_IMPL_POSIX_MMAP_FLAGS KOKKOS_POSIX_MMAP_FLAGS -#endif -#endif - -#ifdef KOKKOS_POSIX_MMAP_FLAGS_HUGE -#ifndef KOKKOS_IMPL_POSIX_MMAP_FLAGS_HUGE -#define KOKKOS_IMPL_POSIX_MMAP_FLAGS_HUGE KOKKOS_POSIX_MMAP_FLAGS_HUGE -#endif -#endif - -#ifdef KOKKOS_SHARED_ALLOCATION_TRACKER_DECREMENT -#ifndef KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT -#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT \ - KOKKOS_SHARED_ALLOCATION_TRACKER_DECREMENT -#endif -#endif - -#ifdef KOKKOS_SHARED_ALLOCATION_TRACKER_ENABLED -#ifndef KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_ENABLED -#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_ENABLED \ - KOKKOS_SHARED_ALLOCATION_TRACKER_ENABLED -#endif -#endif - -#ifdef KOKKOS_SHARED_ALLOCATION_TRACKER_INCREMENT -#ifndef KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_INCREMENT -#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_INCREMENT \ - KOKKOS_SHARED_ALLOCATION_TRACKER_INCREMENT -#endif -#endif - -#ifdef KOKKOS_USE_CUDA_UVM -#ifndef KOKKOS_ENABLE_CUDA_UVM -#define KOKKOS_ENABLE_CUDA_UVM KOKKOS_USE_CUDA_UVM -#endif -#endif - -#ifdef KOKKOS_USE_ISA_KNC -#ifndef KOKKOS_ENABLE_ISA_KNC -#define KOKKOS_ENABLE_ISA_KNC KOKKOS_USE_ISA_KNC -#endif -#endif - -#ifdef KOKKOS_USE_ISA_POWERPCLE -#ifndef KOKKOS_ENABLE_ISA_POWERPCLE -#define KOKKOS_ENABLE_ISA_POWERPCLE KOKKOS_USE_ISA_POWERPCLE -#endif -#endif - -#ifdef KOKKOS_USE_ISA_X86_64 -#ifndef KOKKOS_ENABLE_ISA_X86_64 -#define KOKKOS_ENABLE_ISA_X86_64 KOKKOS_USE_ISA_X86_64 -#endif -#endif - -#ifdef KOKKOS_USE_LIBRT -#ifndef KOKKOS_ENABLE_LIBRT -#define KOKKOS_ENABLE_LIBRT KOKKOS_USE_LIBRT -#endif -#endif - -#ifdef KOKKOS_VIEW_OPERATOR_VERIFY -#ifndef KOKKOS_IMPL_VIEW_OPERATOR_VERIFY -#define KOKKOS_IMPL_VIEW_OPERATOR_VERIFY KOKKOS_VIEW_OPERATOR_VERIFY -#endif -#endif - -#if defined(KOKKOS_ENABLE_PTHREAD) || defined(KOKKOS_ENABLE_WINTHREAD) -#ifndef KOKKOS_ENABLE_THREADS -#define KOKKOS_ENABLE_THREADS -#endif -#endif - -//------------------------------------------------------------------------------ -// Deprecated macros -//------------------------------------------------------------------------------ -#ifdef KOKKOS_HAVE_CXX11 -#undef KOKKOS_HAVE_CXX11 -#endif -#ifdef KOKKOS_ENABLE_CXX11 -#undef KOKKOS_ENABLE_CXX11 -#endif -#ifdef KOKKOS_USING_EXP_VIEW -#undef KOKKOS_USING_EXP_VIEW -#endif -#ifdef KOKKOS_USING_EXPERIMENTAL_VIEW -#undef KOKKOS_USING_EXPERIMENTAL_VIEW -#endif - -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_CXX11 1 -#define KOKKOS_USING_EXP_VIEW 1 -#define KOKKOS_USING_EXPERIMENTAL_VIEW 1 - -// backwards compatibility of no-longer-defined HAVE macros -// https://github.com/kokkos/kokkos/pull/1576/files -#if (!defined(KOKKOS_HAVE_CUDA)) && defined(KOKKOS_ENABLE_CUDA) -#define KOKKOS_HAVE_CUDA 1 -#endif - -#if (!defined(KOKKOS_HAVE_OPENMP)) && defined(KOKKOS_ENABLE_OPENMP) -#define KOKKOS_HAVE_OPENMP 1 -#endif - -#if (!defined(KOKKOS_HAVE_PTHREAD)) && defined(KOKKOS_ENABLE_THREADS) -#define KOKKOS_HAVE_PTHREAD 1 -#endif - -#if (!defined(KOKKOS_HAVE_SERIAL)) && defined(KOKKOS_ENABLE_SERIAL) -#define KOKKOS_HAVE_SERIAL 1 -#endif - -#if (!defined(KOKKOS_HAVE_CXX1Z)) && defined(KOKKOS_ENABLE_CXX1Z) -#define KOKKOS_HAVE_CXX1Z 1 -#endif - -#if (!defined(KOKKOS_HAVE_DEBUG)) && defined(KOKKOS_ENABLE_DEBUG) -#define KOKKOS_HAVE_DEBUG 1 -#endif - -#ifdef KOKKOS_HAVE_DEBUG -#ifndef KOKKOS_DEBUG -#define KOKKOS_DEBUG KOKKOS_HAVE_DEBUG -#endif -#endif - -#if (!defined(KOKKOS_HAVE_HWLOC)) && defined(KOKKOS_ENABLE_HWLOC) -#define KOKKOS_HAVE_HWLOC 1 -#endif - -#if (!defined(KOKKOS_HAVE_HBWSPACE)) && defined(KOKKOS_ENABLE_HBWSPACE) -#define KOKKOS_HAVE_HBWSPACE 1 -#endif - -#if (!defined(KOKKOS_CUDA_USE_LDG_INTRINSIC)) && \ - defined(KOKKOS_ENABLE_CUDA_LDG_INTRINSIC) -#define KOKKOS_CUDA_USE_LDG_INTRINSIC 1 -#endif - -#if (!defined(KOKKOS_CUDA_USE_UVM)) && defined(KOKKOS_ENABLE_CUDA_UVM) -#define KOKKOS_CUDA_USE_UVM 1 -#endif - -#if (!defined(KOKKOS_CUDA_USE_RELOCATABLE_DEVICE_CODE)) && \ - defined(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) -#define KOKKOS_CUDA_USE_RELOCATABLE_DEVICE_CODE 1 -#endif - -#if (!defined(KOKKOS_CUDA_USE_LAMBDA)) && defined(KOKKOS_ENABLE_CUDA_LAMBDA) -#define KOKKOS_CUDA_USE_LAMBDA 1 -#endif - -#if (!defined(KOKKOS_CUDA_CLANG_WORKAROUND)) && \ - defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) -#define KOKKOS_CUDA_CLANG_WORKAROUND 1 -#endif - -#if (!defined(KOKKOS_HAVE_MPI)) && defined(KOKKOS_ENABLE_MPI) -#define KOKKOS_HAVE_MPI 1 -#endif - -#endif // KOKKOS_ENABLE_DEPRECATED_CODE - -#endif // KOKKOS_IMPL_OLD_MACROS_HPP diff --git a/lib/kokkos/core/src/impl/Kokkos_Profiling.cpp b/lib/kokkos/core/src/impl/Kokkos_Profiling.cpp new file mode 100644 index 0000000000..2a996f279f --- /dev/null +++ b/lib/kokkos/core/src/impl/Kokkos_Profiling.cpp @@ -0,0 +1,893 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include +#if defined(KOKKOS_ENABLE_LIBDL) +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Kokkos { + +namespace Tools { + +namespace Experimental { +#ifdef KOKKOS_ENABLE_TUNING +static size_t kernel_name_context_variable_id; +static size_t kernel_type_context_variable_id; +static std::unordered_map> + features_per_context; +static std::unordered_set active_features; +static std::unordered_map feature_values; +static std::unordered_map variable_metadata; +#endif + +static EventSet current_callbacks; +static EventSet backup_callbacks; +static EventSet no_profiling; + +bool eventSetsEqual(const EventSet& l, const EventSet& r) { + return l.init == r.init && l.finalize == r.finalize && + l.begin_parallel_for == r.begin_parallel_for && + l.end_parallel_for == r.end_parallel_for && + l.begin_parallel_reduce == r.begin_parallel_reduce && + l.end_parallel_reduce == r.end_parallel_reduce && + l.begin_parallel_scan == r.begin_parallel_scan && + l.end_parallel_scan == r.end_parallel_scan && + l.push_region == r.push_region && l.pop_region == r.pop_region && + l.allocate_data == r.allocate_data && + l.deallocate_data == r.deallocate_data && + l.create_profile_section == r.create_profile_section && + l.start_profile_section == r.start_profile_section && + l.stop_profile_section == r.stop_profile_section && + l.destroy_profile_section == r.destroy_profile_section && + l.profile_event == r.profile_event && + l.begin_deep_copy == r.begin_deep_copy && + l.end_deep_copy == r.end_deep_copy && + l.declare_input_type == r.declare_input_type && + l.declare_output_type == r.declare_output_type && + l.end_tuning_context == r.end_tuning_context && + l.begin_tuning_context == r.begin_tuning_context && + l.request_output_values == r.request_output_values && + l.declare_optimization_goal == r.declare_optimization_goal; +} +} // namespace Experimental +bool profileLibraryLoaded() { + return !Experimental::eventSetsEqual(Experimental::current_callbacks, + Experimental::no_profiling); +} + +void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + if (Experimental::current_callbacks.begin_parallel_for != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.begin_parallel_for)(kernelPrefix.c_str(), + devID, kernelID); +#ifdef KOKKOS_ENABLE_TUNING + auto context_id = Experimental::get_new_context_id(); + Experimental::begin_context(context_id); + Experimental::VariableValue contextValues[] = { + Experimental::make_variable_value( + Experimental::kernel_name_context_variable_id, kernelPrefix), + Experimental::make_variable_value( + Experimental::kernel_type_context_variable_id, "parallel_for")}; + Experimental::set_input_values(context_id, 2, contextValues); +#endif + } +} + +void endParallelFor(const uint64_t kernelID) { + if (Experimental::current_callbacks.end_parallel_for != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.end_parallel_for)(kernelID); +#ifdef KOKKOS_ENABLE_TUNING + Experimental::end_context(Experimental::get_current_context_id()); +#endif + } +} + +void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + if (Experimental::current_callbacks.begin_parallel_scan != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.begin_parallel_scan)(kernelPrefix.c_str(), + devID, kernelID); +#ifdef KOKKOS_ENABLE_TUNING + auto context_id = Experimental::get_new_context_id(); + Experimental::begin_context(context_id); + Experimental::VariableValue contextValues[] = { + Experimental::make_variable_value( + Experimental::kernel_name_context_variable_id, kernelPrefix), + Experimental::make_variable_value( + Experimental::kernel_type_context_variable_id, "parallel_for")}; + Experimental::set_input_values(context_id, 2, contextValues); +#endif + } +} + +void endParallelScan(const uint64_t kernelID) { + if (Experimental::current_callbacks.end_parallel_scan != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.end_parallel_scan)(kernelID); +#ifdef KOKKOS_ENABLE_TUNING + Experimental::end_context(Experimental::get_current_context_id()); +#endif + } +} + +void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + if (Experimental::current_callbacks.begin_parallel_reduce != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.begin_parallel_reduce)( + kernelPrefix.c_str(), devID, kernelID); +#ifdef KOKKOS_ENABLE_TUNING + auto context_id = Experimental::get_new_context_id(); + Experimental::begin_context(context_id); + Experimental::VariableValue contextValues[] = { + Experimental::make_variable_value( + Experimental::kernel_name_context_variable_id, kernelPrefix), + Experimental::make_variable_value( + Experimental::kernel_type_context_variable_id, "parallel_for")}; + Experimental::set_input_values(context_id, 2, contextValues); +#endif + } +} + +void endParallelReduce(const uint64_t kernelID) { + if (Experimental::current_callbacks.end_parallel_reduce != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.end_parallel_reduce)(kernelID); +#ifdef KOKKOS_ENABLE_TUNING + Experimental::end_context(Experimental::get_current_context_id()); +#endif + } +} + +void pushRegion(const std::string& kName) { + if (Experimental::current_callbacks.push_region != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.push_region)(kName.c_str()); + } +} + +void popRegion() { + if (Experimental::current_callbacks.pop_region != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.pop_region)(); + } +} + +void allocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size) { + if (Experimental::current_callbacks.allocate_data != nullptr) { + (*Experimental::current_callbacks.allocate_data)(space, label.c_str(), ptr, + size); + } +} + +void deallocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size) { + if (Experimental::current_callbacks.deallocate_data != nullptr) { + (*Experimental::current_callbacks.deallocate_data)(space, label.c_str(), + ptr, size); + } +} + +void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, + const void* dst_ptr, const SpaceHandle src_space, + const std::string src_label, const void* src_ptr, + const uint64_t size) { + if (Experimental::current_callbacks.begin_deep_copy != nullptr) { + (*Experimental::current_callbacks.begin_deep_copy)( + dst_space, dst_label.c_str(), dst_ptr, src_space, src_label.c_str(), + src_ptr, size); +#ifdef KOKKOS_ENABLE_TUNING + auto context_id = Experimental::get_new_context_id(); + Experimental::begin_context(context_id); + Experimental::VariableValue contextValues[] = { + Experimental::make_variable_value( + Experimental::kernel_name_context_variable_id, "deep_copy_kernel"), + Experimental::make_variable_value( + Experimental::kernel_type_context_variable_id, "deep_copy")}; + Experimental::set_input_values(context_id, 2, contextValues); +#endif + } +} + +void endDeepCopy() { + if (Experimental::current_callbacks.end_deep_copy != nullptr) { + (*Experimental::current_callbacks.end_deep_copy)(); +#ifdef KOKKOS_ENABLE_TUNING + Experimental::end_context(Experimental::get_current_context_id()); +#endif + } +} + +void createProfileSection(const std::string& sectionName, uint32_t* secID) { + if (Experimental::current_callbacks.create_profile_section != nullptr) { + (*Experimental::current_callbacks.create_profile_section)( + sectionName.c_str(), secID); + } +} + +void startSection(const uint32_t secID) { + if (Experimental::current_callbacks.start_profile_section != nullptr) { + (*Experimental::current_callbacks.start_profile_section)(secID); + } +} + +void stopSection(const uint32_t secID) { + if (Experimental::current_callbacks.stop_profile_section != nullptr) { + (*Experimental::current_callbacks.stop_profile_section)(secID); + } +} + +void destroyProfileSection(const uint32_t secID) { + if (Experimental::current_callbacks.destroy_profile_section != nullptr) { + (*Experimental::current_callbacks.destroy_profile_section)(secID); + } +} + +void markEvent(const std::string& eventName) { + if (Experimental::current_callbacks.profile_event != nullptr) { + (*Experimental::current_callbacks.profile_event)(eventName.c_str()); + } +} + +SpaceHandle make_space_handle(const char* space_name) { + SpaceHandle handle; + strncpy(handle.name, space_name, 63); + return handle; +} + +void initialize() { + // Make sure initialize calls happens only once + static int is_initialized = 0; + if (is_initialized) return; + is_initialized = 1; + +#ifdef KOKKOS_ENABLE_LIBDL + void* firstProfileLibrary = nullptr; + + char* envProfileLibrary = getenv("KOKKOS_PROFILE_LIBRARY"); + + // If we do not find a profiling library in the environment then exit + // early. + if (envProfileLibrary == nullptr) { + return; + } + + char* envProfileCopy = + (char*)malloc(sizeof(char) * (strlen(envProfileLibrary) + 1)); + sprintf(envProfileCopy, "%s", envProfileLibrary); + + char* profileLibraryName = strtok(envProfileCopy, ";"); + + if ((profileLibraryName != nullptr) && + (strcmp(profileLibraryName, "") != 0)) { + firstProfileLibrary = dlopen(profileLibraryName, RTLD_NOW | RTLD_GLOBAL); + + if (firstProfileLibrary == nullptr) { + std::cerr << "Error: Unable to load KokkosP library: " + << profileLibraryName << std::endl; + std::cerr << "dlopen(" << profileLibraryName + << ", RTLD_NOW | RTLD_GLOBAL) failed with " << dlerror() + << '\n'; + } else { +#ifdef KOKKOS_ENABLE_PROFILING_LOAD_PRINT + std::cout << "KokkosP: Library Loaded: " << profileLibraryName + << std::endl; +#endif + // dlsym returns a pointer to an object, while we want to assign to + // pointer to function A direct cast will give warnings hence, we have to + // workaround the issue by casting pointer to pointers. + auto p1 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_for"); + Experimental::set_begin_parallel_for_callback( + *reinterpret_cast(&p1)); + auto p2 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_scan"); + Experimental::set_begin_parallel_scan_callback( + *reinterpret_cast(&p2)); + auto p3 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_reduce"); + Experimental::set_begin_parallel_reduce_callback( + *reinterpret_cast(&p3)); + + auto p4 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_scan"); + Experimental::set_end_parallel_scan_callback( + *reinterpret_cast(&p4)); + auto p5 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_for"); + Experimental::set_end_parallel_for_callback( + *reinterpret_cast(&p5)); + auto p6 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_reduce"); + Experimental::set_end_parallel_reduce_callback( + *reinterpret_cast(&p6)); + + auto p7 = dlsym(firstProfileLibrary, "kokkosp_init_library"); + Experimental::set_init_callback(*reinterpret_cast(&p7)); + auto p8 = dlsym(firstProfileLibrary, "kokkosp_finalize_library"); + Experimental::set_finalize_callback( + *reinterpret_cast(&p8)); + + auto p9 = dlsym(firstProfileLibrary, "kokkosp_push_profile_region"); + Experimental::set_push_region_callback( + *reinterpret_cast(&p9)); + auto p10 = dlsym(firstProfileLibrary, "kokkosp_pop_profile_region"); + Experimental::set_pop_region_callback( + *reinterpret_cast(&p10)); + + auto p11 = dlsym(firstProfileLibrary, "kokkosp_allocate_data"); + Experimental::set_allocate_data_callback( + *reinterpret_cast(&p11)); + auto p12 = dlsym(firstProfileLibrary, "kokkosp_deallocate_data"); + Experimental::set_deallocate_data_callback( + *reinterpret_cast(&p12)); + + auto p13 = dlsym(firstProfileLibrary, "kokkosp_begin_deep_copy"); + Experimental::set_begin_deep_copy_callback( + *reinterpret_cast(&p13)); + auto p14 = dlsym(firstProfileLibrary, "kokkosp_end_deep_copy"); + Experimental::set_end_deep_copy_callback( + *reinterpret_cast(&p14)); + + auto p15 = dlsym(firstProfileLibrary, "kokkosp_create_profile_section"); + Experimental::set_create_profile_section_callback( + *(reinterpret_cast(&p15))); + auto p16 = dlsym(firstProfileLibrary, "kokkosp_start_profile_section"); + Experimental::set_start_profile_section_callback( + *reinterpret_cast(&p16)); + auto p17 = dlsym(firstProfileLibrary, "kokkosp_stop_profile_section"); + Experimental::set_stop_profile_section_callback( + *reinterpret_cast(&p17)); + auto p18 = dlsym(firstProfileLibrary, "kokkosp_destroy_profile_section"); + Experimental::set_destroy_profile_section_callback( + *(reinterpret_cast(&p18))); + + auto p19 = dlsym(firstProfileLibrary, "kokkosp_profile_event"); + Experimental::set_profile_event_callback( + *reinterpret_cast(&p19)); + +#ifdef KOKKOS_ENABLE_TUNING + auto p20 = dlsym(firstProfileLibrary, "kokkosp_declare_output_type"); + Experimental::set_declare_output_type_callback( + *reinterpret_cast( + &p20)); + + auto p21 = dlsym(firstProfileLibrary, "kokkosp_declare_input_type"); + Experimental::set_declare_input_type_callback( + *reinterpret_cast(&p21)); + auto p22 = dlsym(firstProfileLibrary, "kokkosp_request_values"); + Experimental::set_request_output_values_callback( + *reinterpret_cast(&p22)); + auto p23 = dlsym(firstProfileLibrary, "kokkosp_end_context"); + Experimental::set_end_context_callback( + *reinterpret_cast(&p23)); + auto p24 = dlsym(firstProfileLibrary, "kokkosp_begin_context"); + Experimental::set_begin_context_callback( + *reinterpret_cast(&p24)); + auto p25 = + dlsym(firstProfileLibrary, "kokkosp_declare_optimization_goal"); + Experimental::set_declare_optimization_goal_callback( + *reinterpret_cast( + &p25)); +#endif // KOKKOS_ENABLE_TUNING + } + } +#endif // KOKKOS_ENABLE_LIBDL + if (Experimental::current_callbacks.init != nullptr) { + (*Experimental::current_callbacks.init)( + 0, (uint64_t)KOKKOSP_INTERFACE_VERSION, (uint32_t)0, nullptr); + } + +#ifdef KOKKOS_ENABLE_TUNING + Experimental::VariableInfo kernel_name; + kernel_name.type = Experimental::ValueType::kokkos_value_string; + kernel_name.category = + Experimental::StatisticalCategory::kokkos_value_categorical; + kernel_name.valueQuantity = + Experimental::CandidateValueType::kokkos_value_unbounded; + + std::array candidate_values = { + "parallel_for", + "parallel_reduce", + "parallel_scan", + "parallel_copy", + }; + + Experimental::SetOrRange kernel_type_variable_candidates = + Experimental::make_candidate_set(4, candidate_values.data()); + + Experimental::kernel_name_context_variable_id = + Experimental::declare_input_type("kokkos.kernel_name", kernel_name); + + Experimental::VariableInfo kernel_type; + kernel_type.type = Experimental::ValueType::kokkos_value_string; + kernel_type.category = + Experimental::StatisticalCategory::kokkos_value_categorical; + kernel_type.valueQuantity = + Experimental::CandidateValueType::kokkos_value_set; + kernel_type.candidates = kernel_type_variable_candidates; + Experimental::kernel_type_context_variable_id = + Experimental::declare_input_type("kokkos.kernel_type", kernel_type); + +#endif + + Experimental::no_profiling.init = nullptr; + Experimental::no_profiling.finalize = nullptr; + + Experimental::no_profiling.begin_parallel_for = nullptr; + Experimental::no_profiling.begin_parallel_scan = nullptr; + Experimental::no_profiling.begin_parallel_reduce = nullptr; + Experimental::no_profiling.end_parallel_scan = nullptr; + Experimental::no_profiling.end_parallel_for = nullptr; + Experimental::no_profiling.end_parallel_reduce = nullptr; + + Experimental::no_profiling.push_region = nullptr; + Experimental::no_profiling.pop_region = nullptr; + Experimental::no_profiling.allocate_data = nullptr; + Experimental::no_profiling.deallocate_data = nullptr; + + Experimental::no_profiling.begin_deep_copy = nullptr; + Experimental::no_profiling.end_deep_copy = nullptr; + + Experimental::no_profiling.create_profile_section = nullptr; + Experimental::no_profiling.start_profile_section = nullptr; + Experimental::no_profiling.stop_profile_section = nullptr; + Experimental::no_profiling.destroy_profile_section = nullptr; + + Experimental::no_profiling.profile_event = nullptr; + + Experimental::no_profiling.declare_input_type = nullptr; + Experimental::no_profiling.declare_output_type = nullptr; + Experimental::no_profiling.request_output_values = nullptr; + Experimental::no_profiling.end_tuning_context = nullptr; +#ifdef KOKKOS_ENABLE_LIBDL + free(envProfileCopy); +#endif +} + +void finalize() { + // Make sure finalize calls happens only once + static int is_finalized = 0; + if (is_finalized) return; + is_finalized = 1; + + if (Experimental::current_callbacks.finalize != nullptr) { + (*Experimental::current_callbacks.finalize)(); + + Experimental::pause_tools(); + } +#ifdef KOKKOS_ENABLE_TUNING + // clean up string candidate set + for (auto& metadata_pair : Experimental::variable_metadata) { + auto metadata = metadata_pair.second; + if ((metadata.type == Experimental::ValueType::kokkos_value_string) && + (metadata.valueQuantity == + Experimental::CandidateValueType::kokkos_value_set)) { + auto candidate_set = metadata.candidates.set; + delete[] candidate_set.values.string_value; + } + } +#endif +} + +} // namespace Tools + +namespace Tools { +namespace Experimental { +void set_init_callback(initFunction callback) { + current_callbacks.init = callback; +} +void set_finalize_callback(finalizeFunction callback) { + current_callbacks.finalize = callback; +} +void set_begin_parallel_for_callback(beginFunction callback) { + current_callbacks.begin_parallel_for = callback; +} +void set_end_parallel_for_callback(endFunction callback) { + current_callbacks.end_parallel_for = callback; +} +void set_begin_parallel_reduce_callback(beginFunction callback) { + current_callbacks.begin_parallel_reduce = callback; +} +void set_end_parallel_reduce_callback(endFunction callback) { + current_callbacks.end_parallel_reduce = callback; +} +void set_begin_parallel_scan_callback(beginFunction callback) { + current_callbacks.begin_parallel_scan = callback; +} +void set_end_parallel_scan_callback(endFunction callback) { + current_callbacks.end_parallel_scan = callback; +} +void set_push_region_callback(pushFunction callback) { + current_callbacks.push_region = callback; +} +void set_pop_region_callback(popFunction callback) { + current_callbacks.pop_region = callback; +} +void set_allocate_data_callback(allocateDataFunction callback) { + current_callbacks.allocate_data = callback; +} +void set_deallocate_data_callback(deallocateDataFunction callback) { + current_callbacks.deallocate_data = callback; +} +void set_create_profile_section_callback( + createProfileSectionFunction callback) { + current_callbacks.create_profile_section = callback; +} +void set_start_profile_section_callback(startProfileSectionFunction callback) { + current_callbacks.start_profile_section = callback; +} +void set_stop_profile_section_callback(stopProfileSectionFunction callback) { + current_callbacks.stop_profile_section = callback; +} +void set_destroy_profile_section_callback( + destroyProfileSectionFunction callback) { + current_callbacks.destroy_profile_section = callback; +} +void set_profile_event_callback(profileEventFunction callback) { + current_callbacks.profile_event = callback; +} +void set_begin_deep_copy_callback(beginDeepCopyFunction callback) { + current_callbacks.begin_deep_copy = callback; +} +void set_end_deep_copy_callback(endDeepCopyFunction callback) { + current_callbacks.end_deep_copy = callback; +} + +void set_declare_output_type_callback(outputTypeDeclarationFunction callback) { + current_callbacks.declare_output_type = callback; +} +void set_declare_input_type_callback(inputTypeDeclarationFunction callback) { + current_callbacks.declare_input_type = callback; +} +void set_request_output_values_callback(requestValueFunction callback) { + current_callbacks.request_output_values = callback; +} +void set_end_context_callback(contextEndFunction callback) { + current_callbacks.end_tuning_context = callback; +} +void set_begin_context_callback(contextBeginFunction callback) { + current_callbacks.begin_tuning_context = callback; +} +void set_declare_optimization_goal_callback( + optimizationGoalDeclarationFunction callback) { + current_callbacks.declare_optimization_goal = callback; +} + +void pause_tools() { + backup_callbacks = current_callbacks; + current_callbacks = no_profiling; +} + +void resume_tools() { current_callbacks = backup_callbacks; } + +EventSet get_callbacks() { return current_callbacks; } +void set_callbacks(EventSet new_events) { current_callbacks = new_events; } +} // namespace Experimental +} // namespace Tools + +namespace Profiling { +bool profileLibraryLoaded() { return Kokkos::Tools::profileLibraryLoaded(); } + +void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + Kokkos::Tools::beginParallelFor(kernelPrefix, devID, kernelID); +} +void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + Kokkos::Tools::beginParallelReduce(kernelPrefix, devID, kernelID); +} +void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + Kokkos::Tools::beginParallelScan(kernelPrefix, devID, kernelID); +} +void endParallelFor(const uint64_t kernelID) { + Kokkos::Tools::endParallelFor(kernelID); +} +void endParallelReduce(const uint64_t kernelID) { + Kokkos::Tools::endParallelReduce(kernelID); +} +void endParallelScan(const uint64_t kernelID) { + Kokkos::Tools::endParallelScan(kernelID); +} + +void pushRegion(const std::string& kName) { Kokkos::Tools::pushRegion(kName); } +void popRegion() { Kokkos::Tools::popRegion(); } + +void createProfileSection(const std::string& sectionName, uint32_t* secID) { + Kokkos::Tools::createProfileSection(sectionName, secID); +} +void destroyProfileSection(const uint32_t secID) { + Kokkos::Tools::destroyProfileSection(secID); +} + +void startSection(const uint32_t secID) { Kokkos::Tools::startSection(secID); } + +void stopSection(const uint32_t secID) { Kokkos::Tools::stopSection(secID); } + +void markEvent(const std::string& eventName) { + Kokkos::Tools::markEvent(eventName); +} +void allocateData(const SpaceHandle handle, const std::string name, + const void* data, const uint64_t size) { + Kokkos::Tools::allocateData(handle, name, data, size); +} +void deallocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size) { + Kokkos::Tools::deallocateData(space, label, ptr, size); +} + +void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, + const void* dst_ptr, const SpaceHandle src_space, + const std::string src_label, const void* src_ptr, + const uint64_t size) { + Kokkos::Tools::beginDeepCopy(dst_space, dst_label, dst_ptr, src_space, + src_label, src_ptr, size); +} +void endDeepCopy() { Kokkos::Tools::endDeepCopy(); } + +void finalize() { Kokkos::Tools::finalize(); } +void initialize() { Kokkos::Tools::initialize(); } + +SpaceHandle make_space_handle(const char* space_name) { + return Kokkos::Tools::make_space_handle(space_name); +} +} // namespace Profiling + +} // namespace Kokkos + +// Tuning + +namespace Kokkos { +namespace Tools { +namespace Experimental { +static size_t& get_context_counter() { + static size_t x; + return x; +} +static size_t& get_variable_counter() { + static size_t x; + return ++x; +} + +size_t get_new_context_id() { return ++get_context_counter(); } +size_t get_current_context_id() { return get_context_counter(); } +void decrement_current_context_id() { --get_context_counter(); } +size_t get_new_variable_id() { return get_variable_counter(); } + +size_t declare_output_type(const std::string& variableName, VariableInfo info) { + size_t variableId = get_new_variable_id(); +#ifdef KOKKOS_ENABLE_TUNING + if (Experimental::current_callbacks.declare_output_type != nullptr) { + (*Experimental::current_callbacks.declare_output_type)(variableName.c_str(), + variableId, &info); + } + variable_metadata[variableId] = info; +#else + (void)variableName; + (void)info; +#endif + return variableId; +} + +size_t declare_input_type(const std::string& variableName, VariableInfo info) { + size_t variableId = get_new_variable_id(); +#ifdef KOKKOS_ENABLE_TUNING + if (Experimental::current_callbacks.declare_input_type != nullptr) { + (*Experimental::current_callbacks.declare_input_type)(variableName.c_str(), + variableId, &info); + } + variable_metadata[variableId] = info; +#else + (void)variableName; + (void)info; +#endif + return variableId; +} + +void set_input_values(size_t contextId, size_t count, VariableValue* values) { +#ifdef KOKKOS_ENABLE_TUNING + if (features_per_context.find(contextId) == features_per_context.end()) { + features_per_context[contextId] = std::unordered_set(); + } + for (size_t x = 0; x < count; ++x) { + values[x].metadata = &variable_metadata[values[x].type_id]; + features_per_context[contextId].insert(values[x].type_id); + active_features.insert(values[x].type_id); + feature_values[values[x].type_id] = values[x]; + } +#else + (void)contextId; + (void)count; + (void)values; +#endif +} +#include +void request_output_values(size_t contextId, size_t count, + VariableValue* values) { +#ifdef KOKKOS_ENABLE_TUNING + std::vector context_ids; + std::vector context_values; + for (auto id : active_features) { + context_values.push_back(feature_values[id]); + } + if (Experimental::current_callbacks.request_output_values != nullptr) { + for (size_t x = 0; x < count; ++x) { + values[x].metadata = &variable_metadata[values[x].type_id]; + } + (*Experimental::current_callbacks.request_output_values)( + contextId, context_values.size(), context_values.data(), count, values); + } +#else + (void)contextId; + (void)count; + (void)values; +#endif +} + +static std::unordered_map optimization_goals; + +void begin_context(size_t contextId) { + if (Experimental::current_callbacks.begin_tuning_context != nullptr) { + (*Experimental::current_callbacks.begin_tuning_context)(contextId); + } +} +void end_context(size_t contextId) { +#ifdef KOKKOS_ENABLE_TUNING + for (auto id : features_per_context[contextId]) { + active_features.erase(id); + } + if (Experimental::current_callbacks.end_tuning_context != nullptr) { + (*Experimental::current_callbacks.end_tuning_context)( + contextId, feature_values[optimization_goals[contextId]]); + } + optimization_goals.erase(contextId); + decrement_current_context_id(); +#else + (void)contextId; +#endif +} + +bool have_tuning_tool() { +#ifdef KOKKOS_ENABLE_TUNING + return (Experimental::current_callbacks.request_output_values != nullptr); +#else + return false; +#endif +} + +VariableValue make_variable_value(size_t id, int64_t val) { + VariableValue variable_value; + variable_value.type_id = id; + variable_value.value.int_value = val; + return variable_value; +} +VariableValue make_variable_value(size_t id, double val) { + VariableValue variable_value; + variable_value.type_id = id; + variable_value.value.double_value = val; + return variable_value; +} +VariableValue make_variable_value(size_t id, const std::string& val) { + VariableValue variable_value; + variable_value.type_id = id; + strncpy(variable_value.value.string_value, val.c_str(), + KOKKOS_TOOLS_TUNING_STRING_LENGTH - 1); + return variable_value; +} +SetOrRange make_candidate_set(size_t size, std::string* data) { + SetOrRange value_set; + value_set.set.values.string_value = new TuningString[size]; + for (size_t x = 0; x < size; ++x) { + strncpy(value_set.set.values.string_value[x], data[x].c_str(), + KOKKOS_TOOLS_TUNING_STRING_LENGTH - 1); + } + value_set.set.size = size; + return value_set; +} +SetOrRange make_candidate_set(size_t size, int64_t* data) { + SetOrRange value_set; + value_set.set.size = size; + value_set.set.values.int_value = data; + return value_set; +} +SetOrRange make_candidate_set(size_t size, double* data) { + SetOrRange value_set; + value_set.set.size = size; + value_set.set.values.double_value = data; + return value_set; +} +SetOrRange make_candidate_range(double lower, double upper, double step, + bool openLower = false, + bool openUpper = false) { + SetOrRange value_range; + value_range.range.lower.double_value = lower; + value_range.range.upper.double_value = upper; + value_range.range.step.double_value = step; + value_range.range.openLower = openLower; + value_range.range.openUpper = openUpper; + return value_range; +} + +SetOrRange make_candidate_range(int64_t lower, int64_t upper, int64_t step, + bool openLower = false, + bool openUpper = false) { + SetOrRange value_range; + value_range.range.lower.int_value = lower; + value_range.range.upper.int_value = upper; + value_range.range.step.int_value = step; + value_range.range.openLower = openLower; + value_range.range.openUpper = openUpper; + return value_range; +} + +size_t get_new_context_id(); +size_t get_current_context_id(); +void decrement_current_context_id(); +size_t get_new_variable_id(); +void declare_optimization_goal(const size_t context, + const OptimizationGoal& goal) { +#ifdef KOKKOS_ENABLE_TUNING + if (Experimental::current_callbacks.declare_optimization_goal != nullptr) { + (*Experimental::current_callbacks.declare_optimization_goal)(context, goal); + } + optimization_goals[context] = goal.type_id; +#else + (void)context; + (void)goal; +#endif +} +} // end namespace Experimental +} // end namespace Tools + +} // end namespace Kokkos diff --git a/lib/kokkos/core/src/impl/Kokkos_Profiling.hpp b/lib/kokkos/core/src/impl/Kokkos_Profiling.hpp new file mode 100644 index 0000000000..4cc1df8041 --- /dev/null +++ b/lib/kokkos/core/src/impl/Kokkos_Profiling.hpp @@ -0,0 +1,244 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_IMPL_KOKKOS_PROFILING_HPP +#define KOKKOS_IMPL_KOKKOS_PROFILING_HPP + +#include +#include +#include + +#include + +namespace Kokkos { +namespace Tools { + +bool profileLibraryLoaded(); + +void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void endParallelFor(const uint64_t kernelID); +void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void endParallelScan(const uint64_t kernelID); +void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void endParallelReduce(const uint64_t kernelID); + +void pushRegion(const std::string& kName); +void popRegion(); + +void createProfileSection(const std::string& sectionName, uint32_t* secID); +void startSection(const uint32_t secID); +void stopSection(const uint32_t secID); +void destroyProfileSection(const uint32_t secID); + +void markEvent(const std::string& evName); + +void allocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size); +void deallocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size); + +void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, + const void* dst_ptr, const SpaceHandle src_space, + const std::string src_label, const void* src_ptr, + const uint64_t size); +void endDeepCopy(); + +void initialize(); +void finalize(); + +Kokkos_Profiling_SpaceHandle make_space_handle(const char* space_name); + +namespace Experimental { + +void set_init_callback(initFunction callback); +void set_finalize_callback(finalizeFunction callback); +void set_begin_parallel_for_callback(beginFunction callback); +void set_end_parallel_for_callback(endFunction callback); +void set_begin_parallel_reduce_callback(beginFunction callback); +void set_end_parallel_reduce_callback(endFunction callback); +void set_begin_parallel_scan_callback(beginFunction callback); +void set_end_parallel_scan_callback(endFunction callback); +void set_push_region_callback(pushFunction callback); +void set_pop_region_callback(popFunction callback); +void set_allocate_data_callback(allocateDataFunction callback); +void set_deallocate_data_callback(deallocateDataFunction callback); +void set_create_profile_section_callback(createProfileSectionFunction callback); +void set_start_profile_section_callback(startProfileSectionFunction callback); +void set_stop_profile_section_callback(stopProfileSectionFunction callback); +void set_destroy_profile_section_callback( + destroyProfileSectionFunction callback); +void set_profile_event_callback(profileEventFunction callback); +void set_begin_deep_copy_callback(beginDeepCopyFunction callback); +void set_end_deep_copy_callback(endDeepCopyFunction callback); + +void set_declare_output_type_callback(outputTypeDeclarationFunction callback); +void set_declare_input_type_callback(inputTypeDeclarationFunction callback); +void set_request_output_values_callback(requestValueFunction callback); +void set_declare_optimization_goal_callback( + optimizationGoalDeclarationFunction callback); +void set_end_context_callback(contextEndFunction callback); +void set_begin_context_callback(contextBeginFunction callback); + +void pause_tools(); +void resume_tools(); + +EventSet get_callbacks(); +void set_callbacks(EventSet new_events); +} // namespace Experimental +} // namespace Tools +namespace Profiling { + +bool profileLibraryLoaded(); + +void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void endParallelFor(const uint64_t kernelID); +void endParallelReduce(const uint64_t kernelID); +void endParallelScan(const uint64_t kernelID); +void pushRegion(const std::string& kName); +void popRegion(); + +void createProfileSection(const std::string& sectionName, uint32_t* secID); +void destroyProfileSection(const uint32_t secID); +void startSection(const uint32_t secID); + +void stopSection(const uint32_t secID); + +void markEvent(const std::string& eventName); +void allocateData(const SpaceHandle handle, const std::string name, + const void* data, const uint64_t size); +void deallocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size); +void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, + const void* dst_ptr, const SpaceHandle src_space, + const std::string src_label, const void* src_ptr, + const uint64_t size); +void endDeepCopy(); + +void finalize(); +void initialize(); +SpaceHandle make_space_handle(const char* space_name); + +namespace Experimental { +using Kokkos::Tools::Experimental::set_allocate_data_callback; +using Kokkos::Tools::Experimental::set_begin_deep_copy_callback; +using Kokkos::Tools::Experimental::set_begin_parallel_for_callback; +using Kokkos::Tools::Experimental::set_begin_parallel_reduce_callback; +using Kokkos::Tools::Experimental::set_begin_parallel_scan_callback; +using Kokkos::Tools::Experimental::set_create_profile_section_callback; +using Kokkos::Tools::Experimental::set_deallocate_data_callback; +using Kokkos::Tools::Experimental::set_destroy_profile_section_callback; +using Kokkos::Tools::Experimental::set_end_deep_copy_callback; +using Kokkos::Tools::Experimental::set_end_parallel_for_callback; +using Kokkos::Tools::Experimental::set_end_parallel_reduce_callback; +using Kokkos::Tools::Experimental::set_end_parallel_scan_callback; +using Kokkos::Tools::Experimental::set_finalize_callback; +using Kokkos::Tools::Experimental::set_init_callback; +using Kokkos::Tools::Experimental::set_pop_region_callback; +using Kokkos::Tools::Experimental::set_profile_event_callback; +using Kokkos::Tools::Experimental::set_push_region_callback; +using Kokkos::Tools::Experimental::set_start_profile_section_callback; +using Kokkos::Tools::Experimental::set_stop_profile_section_callback; + +using Kokkos::Tools::Experimental::EventSet; + +using Kokkos::Tools::Experimental::pause_tools; +using Kokkos::Tools::Experimental::resume_tools; + +using Kokkos::Tools::Experimental::get_callbacks; +using Kokkos::Tools::Experimental::set_callbacks; + +} // namespace Experimental +} // namespace Profiling + +namespace Tools { +namespace Experimental { + +VariableValue make_variable_value(size_t id, int64_t val); +VariableValue make_variable_value(size_t id, double val); +VariableValue make_variable_value(size_t id, const std::string& val); + +SetOrRange make_candidate_set(size_t size, std::string* data); +SetOrRange make_candidate_set(size_t size, int64_t* data); +SetOrRange make_candidate_set(size_t size, double* data); +SetOrRange make_candidate_range(double lower, double upper, double step, + bool openLower, bool openUpper); + +SetOrRange make_candidate_range(int64_t lower, int64_t upper, int64_t step, + bool openLower, bool openUpper); + +void declare_optimization_goal(const size_t context, + const OptimizationGoal& goal); + +size_t declare_output_type(const std::string& typeName, VariableInfo info); + +size_t declare_input_type(const std::string& typeName, VariableInfo info); + +void set_input_values(size_t contextId, size_t count, VariableValue* values); + +void end_context(size_t contextId); +void begin_context(size_t contextId); + +void request_output_values(size_t contextId, size_t count, + VariableValue* values); + +bool have_tuning_tool(); + +size_t get_new_context_id(); +size_t get_current_context_id(); + +size_t get_new_variable_id(); +} // namespace Experimental +} // namespace Tools + +} // namespace Kokkos + +#endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Profiling_C_Interface.h b/lib/kokkos/core/src/impl/Kokkos_Profiling_C_Interface.h new file mode 100644 index 0000000000..04189d5268 --- /dev/null +++ b/lib/kokkos/core/src/impl/Kokkos_Profiling_C_Interface.h @@ -0,0 +1,244 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_PROFILING_C_INTERFACE_HPP +#define KOKKOS_PROFILING_C_INTERFACE_HPP + +#ifdef __cplusplus +#include +#include +#else +#include +#include +#include +#endif + +#define KOKKOSP_INTERFACE_VERSION 20200625 + +// Profiling + +struct Kokkos_Profiling_KokkosPDeviceInfo { + size_t deviceID; +}; + +struct Kokkos_Profiling_SpaceHandle { + char name[64]; +}; + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_initFunction)( + const int, const uint64_t, const uint32_t, + struct Kokkos_Profiling_KokkosPDeviceInfo*); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_finalizeFunction)(); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_beginFunction)(const char*, const uint32_t, + uint64_t*); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_endFunction)(uint64_t); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_pushFunction)(const char*); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_popFunction)(); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_allocateDataFunction)( + const struct Kokkos_Profiling_SpaceHandle, const char*, const void*, + const uint64_t); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_deallocateDataFunction)( + const struct Kokkos_Profiling_SpaceHandle, const char*, const void*, + const uint64_t); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_createProfileSectionFunction)(const char*, + uint32_t*); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_startProfileSectionFunction)(const uint32_t); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_stopProfileSectionFunction)(const uint32_t); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_destroyProfileSectionFunction)(const uint32_t); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_profileEventFunction)(const char*); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_beginDeepCopyFunction)( + struct Kokkos_Profiling_SpaceHandle, const char*, const void*, + struct Kokkos_Profiling_SpaceHandle, const char*, const void*, uint64_t); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_endDeepCopyFunction)(); + +// Tuning + +#define KOKKOS_TOOLS_TUNING_STRING_LENGTH 64 +typedef char Kokkos_Tools_Tuning_String[KOKKOS_TOOLS_TUNING_STRING_LENGTH]; +union Kokkos_Tools_VariableValue_ValueUnion { + int64_t int_value; + double double_value; + Kokkos_Tools_Tuning_String string_value; +}; + +union Kokkos_Tools_VariableValue_ValueUnionSet { + int64_t* int_value; + double* double_value; + Kokkos_Tools_Tuning_String* string_value; +}; + +struct Kokkos_Tools_ValueSet { + size_t size; + union Kokkos_Tools_VariableValue_ValueUnionSet values; +}; + +enum Kokkos_Tools_OptimizationType { + Kokkos_Tools_Minimize, + Kokkos_Tools_Maximize +}; + +struct Kokkos_Tools_OptimzationGoal { + size_t type_id; + enum Kokkos_Tools_OptimizationType goal; +}; + +struct Kokkos_Tools_ValueRange { + union Kokkos_Tools_VariableValue_ValueUnion lower; + union Kokkos_Tools_VariableValue_ValueUnion upper; + union Kokkos_Tools_VariableValue_ValueUnion step; + bool openLower; + bool openUpper; +}; + +enum Kokkos_Tools_VariableInfo_ValueType { + kokkos_value_double, + kokkos_value_int64, + kokkos_value_string, +}; + +enum Kokkos_Tools_VariableInfo_StatisticalCategory { + kokkos_value_categorical, // unordered distinct objects + kokkos_value_ordinal, // ordered distinct objects + kokkos_value_interval, // ordered distinct objects for which distance matters + kokkos_value_ratio // ordered distinct objects for which distance matters, + // division matters, and the concept of zero exists +}; + +enum Kokkos_Tools_VariableInfo_CandidateValueType { + kokkos_value_set, // I am one of [2,3,4,5] + kokkos_value_range, // I am somewhere in [2,12) + kokkos_value_unbounded // I am [text/int/float], but we don't know at + // declaration time what values are appropriate. Only + // valid for Context Variables +}; + +union Kokkos_Tools_VariableInfo_SetOrRange { + struct Kokkos_Tools_ValueSet set; + struct Kokkos_Tools_ValueRange range; +}; + +struct Kokkos_Tools_VariableInfo { + enum Kokkos_Tools_VariableInfo_ValueType type; + enum Kokkos_Tools_VariableInfo_StatisticalCategory category; + enum Kokkos_Tools_VariableInfo_CandidateValueType valueQuantity; + union Kokkos_Tools_VariableInfo_SetOrRange candidates; + void* toolProvidedInfo; +}; + +struct Kokkos_Tools_VariableValue { + size_t type_id; + union Kokkos_Tools_VariableValue_ValueUnion value; + struct Kokkos_Tools_VariableInfo* metadata; +}; + +typedef void (*Kokkos_Tools_outputTypeDeclarationFunction)( + const char*, const size_t, struct Kokkos_Tools_VariableInfo* info); +typedef void (*Kokkos_Tools_inputTypeDeclarationFunction)( + const char*, const size_t, struct Kokkos_Tools_VariableInfo* info); + +typedef void (*Kokkos_Tools_requestValueFunction)( + const size_t, const size_t, const struct Kokkos_Tools_VariableValue*, + const size_t count, struct Kokkos_Tools_VariableValue*); +typedef void (*Kokkos_Tools_contextBeginFunction)(const size_t); +typedef void (*Kokkos_Tools_contextEndFunction)( + const size_t, struct Kokkos_Tools_VariableValue); +typedef void (*Kokkos_Tools_optimizationGoalDeclarationFunction)( + const size_t, const struct Kokkos_Tools_OptimzationGoal goal); + +typedef void (*function_pointer)(); + +struct Kokkos_Profiling_EventSet { + Kokkos_Profiling_initFunction init; + Kokkos_Profiling_finalizeFunction finalize; + Kokkos_Profiling_beginFunction begin_parallel_for; + Kokkos_Profiling_endFunction end_parallel_for; + Kokkos_Profiling_beginFunction begin_parallel_reduce; + Kokkos_Profiling_endFunction end_parallel_reduce; + Kokkos_Profiling_beginFunction begin_parallel_scan; + Kokkos_Profiling_endFunction end_parallel_scan; + Kokkos_Profiling_pushFunction push_region; + Kokkos_Profiling_popFunction pop_region; + Kokkos_Profiling_allocateDataFunction allocate_data; + Kokkos_Profiling_deallocateDataFunction deallocate_data; + Kokkos_Profiling_createProfileSectionFunction create_profile_section; + Kokkos_Profiling_startProfileSectionFunction start_profile_section; + Kokkos_Profiling_stopProfileSectionFunction stop_profile_section; + Kokkos_Profiling_destroyProfileSectionFunction destroy_profile_section; + Kokkos_Profiling_profileEventFunction profile_event; + Kokkos_Profiling_beginDeepCopyFunction begin_deep_copy; + Kokkos_Profiling_endDeepCopyFunction end_deep_copy; + char profiling_padding[16 * sizeof(function_pointer)]; + Kokkos_Tools_outputTypeDeclarationFunction declare_output_type; + Kokkos_Tools_inputTypeDeclarationFunction declare_input_type; + Kokkos_Tools_requestValueFunction request_output_values; + Kokkos_Tools_contextBeginFunction begin_tuning_context; + Kokkos_Tools_contextEndFunction end_tuning_context; + Kokkos_Tools_optimizationGoalDeclarationFunction declare_optimization_goal; + char padding[234 * + sizeof(function_pointer)]; // allows us to add another 256 + // events to the Tools interface + // without changing struct layout +}; + +#endif // KOKKOS_PROFILING_C_INTERFACE_HPP diff --git a/lib/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp b/lib/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp index 51d1446ef5..be6f756d0c 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp @@ -46,14 +46,10 @@ #define KOKKOSP_DEVICE_INFO_HPP #include - +#include namespace Kokkos { namespace Profiling { - -struct KokkosPDeviceInfo { - uint32_t deviceID; -}; - +using KokkosPDeviceInfo = Kokkos_Profiling_KokkosPDeviceInfo; } // namespace Profiling } // namespace Kokkos diff --git a/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp b/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp deleted file mode 100644 index cf52caea90..0000000000 --- a/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp +++ /dev/null @@ -1,387 +0,0 @@ -/* - //@HEADER - // ************************************************************************ - // - // Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). - // - // Under the terms of Contract DE-NA0003525 with NTESS, - // the U.S. Government retains certain rights in this software. - // - // Redistribution and use in source and binary forms, with or without - // modification, are permitted provided that the following conditions are - // met: - // - // 1. Redistributions of source code must retain the above copyright - // notice, this list of conditions and the following disclaimer. - // - // 2. Redistributions in binary form must reproduce the above copyright - // notice, this list of conditions and the following disclaimer in the - // documentation and/or other materials provided with the distribution. - // - // 3. Neither the name of the Corporation nor the names of the - // contributors may be used to endorse or promote products derived from - // this software without specific prior written permission. - // - // THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY - // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE - // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - // - // Questions? Contact Christian R. Trott (crtrott@sandia.gov) - // - // ************************************************************************ - //@HEADER - */ - -#include - -#if defined(KOKKOS_ENABLE_PROFILING) - -#include -#include - -namespace Kokkos { -namespace Profiling { - -static initFunction initProfileLibrary = nullptr; -static finalizeFunction finalizeProfileLibrary = nullptr; - -static beginFunction beginForCallee = nullptr; -static beginFunction beginScanCallee = nullptr; -static beginFunction beginReduceCallee = nullptr; -static endFunction endForCallee = nullptr; -static endFunction endScanCallee = nullptr; -static endFunction endReduceCallee = nullptr; - -static pushFunction pushRegionCallee = nullptr; -static popFunction popRegionCallee = nullptr; - -static allocateDataFunction allocateDataCallee = nullptr; -static deallocateDataFunction deallocateDataCallee = nullptr; - -static beginDeepCopyFunction beginDeepCopyCallee = nullptr; -static endDeepCopyFunction endDeepCopyCallee = nullptr; - -static createProfileSectionFunction createSectionCallee = nullptr; -static startProfileSectionFunction startSectionCallee = nullptr; -static stopProfileSectionFunction stopSectionCallee = nullptr; -static destroyProfileSectionFunction destroySectionCallee = nullptr; - -static profileEventFunction profileEventCallee = nullptr; - -SpaceHandle::SpaceHandle(const char* space_name) { - strncpy(name, space_name, 64); -} - -bool profileLibraryLoaded() { return (nullptr != initProfileLibrary); } - -void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID) { - if (nullptr != beginForCallee) { - Kokkos::fence(); - (*beginForCallee)(kernelPrefix.c_str(), devID, kernelID); - } -} - -void endParallelFor(const uint64_t kernelID) { - if (nullptr != endForCallee) { - Kokkos::fence(); - (*endForCallee)(kernelID); - } -} - -void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID) { - if (nullptr != beginScanCallee) { - Kokkos::fence(); - (*beginScanCallee)(kernelPrefix.c_str(), devID, kernelID); - } -} - -void endParallelScan(const uint64_t kernelID) { - if (nullptr != endScanCallee) { - Kokkos::fence(); - (*endScanCallee)(kernelID); - } -} - -void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID) { - if (nullptr != beginReduceCallee) { - Kokkos::fence(); - (*beginReduceCallee)(kernelPrefix.c_str(), devID, kernelID); - } -} - -void endParallelReduce(const uint64_t kernelID) { - if (nullptr != endReduceCallee) { - Kokkos::fence(); - (*endReduceCallee)(kernelID); - } -} - -void pushRegion(const std::string& kName) { - if (nullptr != pushRegionCallee) { - Kokkos::fence(); - (*pushRegionCallee)(kName.c_str()); - } -} - -void popRegion() { - if (nullptr != popRegionCallee) { - Kokkos::fence(); - (*popRegionCallee)(); - } -} - -void allocateData(const SpaceHandle space, const std::string label, - const void* ptr, const uint64_t size) { - if (nullptr != allocateDataCallee) { - (*allocateDataCallee)(space, label.c_str(), ptr, size); - } -} - -void deallocateData(const SpaceHandle space, const std::string label, - const void* ptr, const uint64_t size) { - if (nullptr != deallocateDataCallee) { - (*deallocateDataCallee)(space, label.c_str(), ptr, size); - } -} - -void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, - const void* dst_ptr, const SpaceHandle src_space, - const std::string src_label, const void* src_ptr, - const uint64_t size) { - if (nullptr != beginDeepCopyCallee) { - (*beginDeepCopyCallee)(dst_space, dst_label.c_str(), dst_ptr, src_space, - src_label.c_str(), src_ptr, size); - } -} - -void endDeepCopy() { - if (nullptr != endDeepCopyCallee) { - (*endDeepCopyCallee)(); - } -} - -void createProfileSection(const std::string& sectionName, uint32_t* secID) { - if (nullptr != createSectionCallee) { - (*createSectionCallee)(sectionName.c_str(), secID); - } -} - -void startSection(const uint32_t secID) { - if (nullptr != startSectionCallee) { - (*startSectionCallee)(secID); - } -} - -void stopSection(const uint32_t secID) { - if (nullptr != stopSectionCallee) { - (*stopSectionCallee)(secID); - } -} - -void destroyProfileSection(const uint32_t secID) { - if (nullptr != destroySectionCallee) { - (*destroySectionCallee)(secID); - } -} - -void markEvent(const std::string& eventName) { - if (nullptr != profileEventCallee) { - (*profileEventCallee)(eventName.c_str()); - } -} - -void initialize() { - // Make sure initialize calls happens only once - static int is_initialized = 0; - if (is_initialized) return; - is_initialized = 1; - - void* firstProfileLibrary; - - char* envProfileLibrary = getenv("KOKKOS_PROFILE_LIBRARY"); - - // If we do not find a profiling library in the environment then exit - // early. - if (nullptr == envProfileLibrary) { - return; - } - - char* envProfileCopy = - (char*)malloc(sizeof(char) * (strlen(envProfileLibrary) + 1)); - sprintf(envProfileCopy, "%s", envProfileLibrary); - - char* profileLibraryName = strtok(envProfileCopy, ";"); - - if ((nullptr != profileLibraryName) && - (strcmp(profileLibraryName, "") != 0)) { - firstProfileLibrary = dlopen(profileLibraryName, RTLD_NOW | RTLD_GLOBAL); - - if (nullptr == firstProfileLibrary) { - std::cerr << "Error: Unable to load KokkosP library: " - << profileLibraryName << std::endl; - std::cerr << "dlopen(" << profileLibraryName - << ", RTLD_NOW | RTLD_GLOBAL) failed with " << dlerror() - << '\n'; - } else { -#ifdef KOKKOS_ENABLE_PROFILING_LOAD_PRINT - std::cout << "KokkosP: Library Loaded: " << profileLibraryName - << std::endl; -#endif - - // dlsym returns a pointer to an object, while we want to assign to - // pointer to function A direct cast will give warnings hence, we have to - // workaround the issue by casting pointer to pointers. - auto p1 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_for"); - beginForCallee = *((beginFunction*)&p1); - auto p2 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_scan"); - beginScanCallee = *((beginFunction*)&p2); - auto p3 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_reduce"); - beginReduceCallee = *((beginFunction*)&p3); - - auto p4 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_scan"); - endScanCallee = *((endFunction*)&p4); - auto p5 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_for"); - endForCallee = *((endFunction*)&p5); - auto p6 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_reduce"); - endReduceCallee = *((endFunction*)&p6); - - auto p7 = dlsym(firstProfileLibrary, "kokkosp_init_library"); - initProfileLibrary = *((initFunction*)&p7); - auto p8 = dlsym(firstProfileLibrary, "kokkosp_finalize_library"); - finalizeProfileLibrary = *((finalizeFunction*)&p8); - - auto p9 = dlsym(firstProfileLibrary, "kokkosp_push_profile_region"); - pushRegionCallee = *((pushFunction*)&p9); - auto p10 = dlsym(firstProfileLibrary, "kokkosp_pop_profile_region"); - popRegionCallee = *((popFunction*)&p10); - - auto p11 = dlsym(firstProfileLibrary, "kokkosp_allocate_data"); - allocateDataCallee = *((allocateDataFunction*)&p11); - auto p12 = dlsym(firstProfileLibrary, "kokkosp_deallocate_data"); - deallocateDataCallee = *((deallocateDataFunction*)&p12); - - auto p13 = dlsym(firstProfileLibrary, "kokkosp_begin_deep_copy"); - beginDeepCopyCallee = *((beginDeepCopyFunction*)&p13); - auto p14 = dlsym(firstProfileLibrary, "kokkosp_end_deep_copy"); - endDeepCopyCallee = *((endDeepCopyFunction*)&p14); - - auto p15 = dlsym(firstProfileLibrary, "kokkosp_create_profile_section"); - createSectionCallee = *((createProfileSectionFunction*)&p15); - auto p16 = dlsym(firstProfileLibrary, "kokkosp_start_profile_section"); - startSectionCallee = *((startProfileSectionFunction*)&p16); - auto p17 = dlsym(firstProfileLibrary, "kokkosp_stop_profile_section"); - stopSectionCallee = *((stopProfileSectionFunction*)&p17); - auto p18 = dlsym(firstProfileLibrary, "kokkosp_destroy_profile_section"); - destroySectionCallee = *((destroyProfileSectionFunction*)&p18); - - auto p19 = dlsym(firstProfileLibrary, "kokkosp_profile_event"); - profileEventCallee = *((profileEventFunction*)&p19); - } - } - - if (nullptr != initProfileLibrary) { - (*initProfileLibrary)(0, (uint64_t)KOKKOSP_INTERFACE_VERSION, (uint32_t)0, - nullptr); - } - - free(envProfileCopy); -} - -void finalize() { - // Make sure finalize calls happens only once - static int is_finalized = 0; - if (is_finalized) return; - is_finalized = 1; - - if (nullptr != finalizeProfileLibrary) { - (*finalizeProfileLibrary)(); - - // Set all profile hooks to nullptr to prevent - // any additional calls. Once we are told to - // finalize, we mean it - initProfileLibrary = nullptr; - finalizeProfileLibrary = nullptr; - - beginForCallee = nullptr; - beginScanCallee = nullptr; - beginReduceCallee = nullptr; - endScanCallee = nullptr; - endForCallee = nullptr; - endReduceCallee = nullptr; - - pushRegionCallee = nullptr; - popRegionCallee = nullptr; - - allocateDataCallee = nullptr; - deallocateDataCallee = nullptr; - - beginDeepCopyCallee = nullptr; - endDeepCopyCallee = nullptr; - - createSectionCallee = nullptr; - startSectionCallee = nullptr; - stopSectionCallee = nullptr; - destroySectionCallee = nullptr; - - profileEventCallee = nullptr; - } -} -} // namespace Profiling -} // namespace Kokkos - -#else - -#include -#include - -namespace Kokkos { -namespace Profiling { - -bool profileLibraryLoaded() { return false; } - -void beginParallelFor(const std::string&, const uint32_t, uint64_t*) {} -void endParallelFor(const uint64_t) {} -void beginParallelScan(const std::string&, const uint32_t, uint64_t*) {} -void endParallelScan(const uint64_t) {} -void beginParallelReduce(const std::string&, const uint32_t, uint64_t*) {} -void endParallelReduce(const uint64_t) {} - -void pushRegion(const std::string&) {} -void popRegion() {} -void createProfileSection(const std::string&, uint32_t*) {} -void startSection(const uint32_t) {} -void stopSection(const uint32_t) {} -void destroyProfileSection(const uint32_t) {} - -void markEvent(const std::string&) {} - -void allocateData(const SpaceHandle, const std::string, const void*, - const uint64_t) {} -void deallocateData(const SpaceHandle, const std::string, const void*, - const uint64_t) {} - -void beginDeepCopy(const SpaceHandle, const std::string, const void*, - const SpaceHandle, const std::string, const void*, - const uint64_t) {} -void endDeepCopy() {} - -void initialize() {} -void finalize() {} - -} // namespace Profiling -} // namespace Kokkos - -#endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp b/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp index df17501ff4..5e0ba8f3d6 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp @@ -45,20 +45,16 @@ #ifndef KOKKOSP_INTERFACE_HPP #define KOKKOSP_INTERFACE_HPP -#include #include #include -#include -#include -#include #include // NOTE: in this Kokkos::Profiling block, do not define anything that shouldn't // exist should Profiling be disabled namespace Kokkos { -namespace Profiling { +namespace Tools { namespace Experimental { enum struct DeviceType { Serial, @@ -80,132 +76,121 @@ inline uint32_t device_id(ExecutionSpace const& space) noexcept { return (device_id << instance_bits) + space.impl_instance_id(); } } // namespace Experimental -} // namespace Profiling +} // namespace Tools } // end namespace Kokkos -#if defined(KOKKOS_ENABLE_PROFILING) +#if defined(KOKKOS_ENABLE_LIBDL) // We check at configure time that libdl is available. #include +#endif #include - -#define KOKKOSP_INTERFACE_VERSION 20171029 +#include namespace Kokkos { -namespace Profiling { - -struct SpaceHandle { - SpaceHandle(const char* space_name); - char name[64]; -}; - -typedef void (*initFunction)(const int, const uint64_t, const uint32_t, - KokkosPDeviceInfo*); -typedef void (*finalizeFunction)(); -typedef void (*beginFunction)(const char*, const uint32_t, uint64_t*); -typedef void (*endFunction)(uint64_t); +namespace Tools { -typedef void (*pushFunction)(const char*); -typedef void (*popFunction)(); +using SpaceHandle = Kokkos_Profiling_SpaceHandle; -typedef void (*allocateDataFunction)(const SpaceHandle, const char*, - const void*, const uint64_t); -typedef void (*deallocateDataFunction)(const SpaceHandle, const char*, - const void*, const uint64_t); +} // namespace Tools -typedef void (*createProfileSectionFunction)(const char*, uint32_t*); -typedef void (*startProfileSectionFunction)(const uint32_t); -typedef void (*stopProfileSectionFunction)(const uint32_t); -typedef void (*destroyProfileSectionFunction)(const uint32_t); +namespace Tools { -typedef void (*profileEventFunction)(const char*); +namespace Experimental { +using EventSet = Kokkos_Profiling_EventSet; +static_assert(sizeof(EventSet) / sizeof(function_pointer) == 275, + "sizeof EventSet has changed, this is an error on the part of a " + "Kokkos developer"); +} // namespace Experimental +using initFunction = Kokkos_Profiling_initFunction; +using finalizeFunction = Kokkos_Profiling_finalizeFunction; +using beginFunction = Kokkos_Profiling_beginFunction; +using endFunction = Kokkos_Profiling_endFunction; +using pushFunction = Kokkos_Profiling_pushFunction; +using popFunction = Kokkos_Profiling_popFunction; +using allocateDataFunction = Kokkos_Profiling_allocateDataFunction; +using deallocateDataFunction = Kokkos_Profiling_deallocateDataFunction; +using createProfileSectionFunction = + Kokkos_Profiling_createProfileSectionFunction; +using startProfileSectionFunction = + Kokkos_Profiling_startProfileSectionFunction; +using stopProfileSectionFunction = Kokkos_Profiling_stopProfileSectionFunction; +using destroyProfileSectionFunction = + Kokkos_Profiling_destroyProfileSectionFunction; +using profileEventFunction = Kokkos_Profiling_profileEventFunction; +using beginDeepCopyFunction = Kokkos_Profiling_beginDeepCopyFunction; +using endDeepCopyFunction = Kokkos_Profiling_endDeepCopyFunction; + +} // namespace Tools -typedef void (*beginDeepCopyFunction)(SpaceHandle, const char*, const void*, - SpaceHandle, const char*, const void*, - uint64_t); -typedef void (*endDeepCopyFunction)(); +} // namespace Kokkos -bool profileLibraryLoaded(); +// Profiling -void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID); -void endParallelFor(const uint64_t kernelID); -void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID); -void endParallelScan(const uint64_t kernelID); -void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID); -void endParallelReduce(const uint64_t kernelID); +namespace Kokkos { -void pushRegion(const std::string& kName); -void popRegion(); +namespace Profiling { -void createProfileSection(const std::string& sectionName, uint32_t* secID); -void startSection(const uint32_t secID); -void stopSection(const uint32_t secID); -void destroyProfileSection(const uint32_t secID); +/** The Profiling namespace is being renamed to Tools. + * This is reexposing the contents of what used to be the Profiling + * Interface with their original names, to avoid breaking old code + */ -void markEvent(const std::string* evName); +namespace Experimental { -void allocateData(const SpaceHandle space, const std::string label, - const void* ptr, const uint64_t size); -void deallocateData(const SpaceHandle space, const std::string label, - const void* ptr, const uint64_t size); +using Kokkos::Tools::Experimental::device_id; +using Kokkos::Tools::Experimental::DeviceType; +using Kokkos::Tools::Experimental::DeviceTypeTraits; -void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, - const void* dst_ptr, const SpaceHandle src_space, - const std::string src_label, const void* src_ptr, - const uint64_t size); -void endDeepCopy(); +} // namespace Experimental -void initialize(); -void finalize(); +using Kokkos::Tools::allocateDataFunction; +using Kokkos::Tools::beginDeepCopyFunction; +using Kokkos::Tools::beginFunction; +using Kokkos::Tools::createProfileSectionFunction; +using Kokkos::Tools::deallocateDataFunction; +using Kokkos::Tools::destroyProfileSectionFunction; +using Kokkos::Tools::endDeepCopyFunction; +using Kokkos::Tools::endFunction; +using Kokkos::Tools::finalizeFunction; +using Kokkos::Tools::initFunction; +using Kokkos::Tools::popFunction; +using Kokkos::Tools::profileEventFunction; +using Kokkos::Tools::pushFunction; +using Kokkos::Tools::SpaceHandle; +using Kokkos::Tools::startProfileSectionFunction; +using Kokkos::Tools::stopProfileSectionFunction; } // namespace Profiling } // namespace Kokkos -#else -namespace Kokkos { -namespace Profiling { - -struct SpaceHandle { - SpaceHandle(const char* space_name); - char name[64]; -}; - -bool profileLibraryLoaded(); - -void beginParallelFor(const std::string&, const uint32_t, uint64_t*); -void endParallelFor(const uint64_t); -void beginParallelScan(const std::string&, const uint32_t, uint64_t*); -void endParallelScan(const uint64_t); -void beginParallelReduce(const std::string&, const uint32_t, uint64_t*); -void endParallelReduce(const uint64_t); - -void pushRegion(const std::string&); -void popRegion(); -void createProfileSection(const std::string&, uint32_t*); -void startSection(const uint32_t); -void stopSection(const uint32_t); -void destroyProfileSection(const uint32_t); - -void markEvent(const std::string&); +// Tuning -void allocateData(const SpaceHandle, const std::string, const void*, - const uint64_t); -void deallocateData(const SpaceHandle, const std::string, const void*, - const uint64_t); - -void beginDeepCopy(const SpaceHandle, const std::string, const void*, - const SpaceHandle, const std::string, const void*, - const uint64_t); -void endDeepCopy(); - -void initialize(); -void finalize(); +namespace Kokkos { +namespace Tools { +namespace Experimental { +using ValueSet = Kokkos_Tools_ValueSet; +using ValueRange = Kokkos_Tools_ValueRange; +using StatisticalCategory = Kokkos_Tools_VariableInfo_StatisticalCategory; +using ValueType = Kokkos_Tools_VariableInfo_ValueType; +using CandidateValueType = Kokkos_Tools_VariableInfo_CandidateValueType; +using SetOrRange = Kokkos_Tools_VariableInfo_SetOrRange; +using VariableInfo = Kokkos_Tools_VariableInfo; +using OptimizationGoal = Kokkos_Tools_OptimzationGoal; +using TuningString = Kokkos_Tools_Tuning_String; +using VariableValue = Kokkos_Tools_VariableValue; + +using outputTypeDeclarationFunction = + Kokkos_Tools_outputTypeDeclarationFunction; +using inputTypeDeclarationFunction = Kokkos_Tools_inputTypeDeclarationFunction; +using requestValueFunction = Kokkos_Tools_requestValueFunction; +using contextBeginFunction = Kokkos_Tools_contextBeginFunction; +using contextEndFunction = Kokkos_Tools_contextEndFunction; +using optimizationGoalDeclarationFunction = + Kokkos_Tools_optimizationGoalDeclarationFunction; +} // end namespace Experimental +} // end namespace Tools -} // namespace Profiling -} // namespace Kokkos +} // end namespace Kokkos #endif -#endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Serial.cpp b/lib/kokkos/core/src/impl/Kokkos_Serial.cpp index b39f9dfeea..76ffd0db35 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Serial.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_Serial.cpp @@ -94,7 +94,8 @@ void serial_resize_thread_team_data(size_t pool_reduce_bytes, g_serial_thread_team_data.disband_team(); g_serial_thread_team_data.disband_pool(); - space.deallocate(g_serial_thread_team_data.scratch_buffer(), + space.deallocate("Kokkos::Serial::scratch_mem", + g_serial_thread_team_data.scratch_buffer(), g_serial_thread_team_data.scratch_bytes()); } @@ -117,7 +118,7 @@ void serial_resize_thread_team_data(size_t pool_reduce_bytes, void* ptr = nullptr; try { - ptr = space.allocate(alloc_bytes); + ptr = space.allocate("Kokkos::Serial::scratch_mem", alloc_bytes); } catch (Kokkos::Experimental::RawMemoryAllocationFailure const& failure) { // For now, just rethrow the error message the existing way Kokkos::Impl::throw_runtime_exception(failure.get_error_message()); @@ -145,44 +146,18 @@ HostThreadTeamData* serial_get_thread_team_data() { namespace Kokkos { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -bool Serial::is_initialized() -#else -bool Serial::impl_is_initialized() -#endif -{ - return Impl::g_serial_is_initialized; -} +bool Serial::impl_is_initialized() { return Impl::g_serial_is_initialized; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void Serial::initialize(unsigned threads_count, unsigned use_numa_count, - unsigned use_cores_per_numa, - bool allow_asynchronous_threadpool) { - (void)threads_count; - (void)use_numa_count; - (void)use_cores_per_numa; - (void)allow_asynchronous_threadpool; -#else void Serial::impl_initialize() { -#endif - Impl::SharedAllocationRecord::tracking_enable(); // Init the array of locks used for arbitrarily sized atomics Impl::init_lock_array_host_space(); -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) && defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif Impl::g_serial_is_initialized = true; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void Serial::finalize() -#else -void Serial::impl_finalize() -#endif -{ +void Serial::impl_finalize() { if (Impl::g_serial_thread_team_data.scratch_buffer()) { Impl::g_serial_thread_team_data.disband_team(); Impl::g_serial_thread_team_data.disband_pool(); @@ -195,9 +170,7 @@ void Serial::impl_finalize() Impl::g_serial_thread_team_data.scratch_assign(nullptr, 0, 0, 0, 0, 0); } -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::finalize(); -#endif Impl::g_serial_is_initialized = false; } diff --git a/lib/kokkos/core/src/impl/Kokkos_Serial_WorkGraphPolicy.hpp b/lib/kokkos/core/src/impl/Kokkos_Serial_WorkGraphPolicy.hpp index 4e26e0b138..0f6ad5cb03 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Serial_WorkGraphPolicy.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Serial_WorkGraphPolicy.hpp @@ -52,7 +52,7 @@ template class ParallelFor, Kokkos::Serial> { private: - typedef Kokkos::WorkGraphPolicy Policy; + using Policy = Kokkos::WorkGraphPolicy; Policy m_policy; FunctorType m_functor; diff --git a/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp b/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp index 6a054f73a1..a9a2778813 100644 --- a/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp @@ -240,13 +240,7 @@ SharedAllocationRecord* SharedAllocationRecord< ss << arg_record->get_label(); ss << "\" is being deallocated after Kokkos::finalize was called\n"; auto s = ss.str(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - std::cerr << s; - std::cerr << "This behavior is incorrect Kokkos usage, and will crash in " - "future releases\n"; -#else Kokkos::Impl::throw_runtime_exception(s); -#endif } #ifdef KOKKOS_DEBUG diff --git a/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp b/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp index 6e954e8f27..dcff5be835 100644 --- a/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp @@ -48,6 +48,18 @@ #include #include +// undefined at end of file +#if defined(KOKKOS_ENABLE_OPENMPTARGET) +#if defined(KOKKOS_COMPILER_PGI) +#define KOKKOS_IMPL_IF_ON_HOST if (!__builtin_is_device_code()) +#else +// Note: OpenMPTarget enforces C++17 at configure time +#define KOKKOS_IMPL_IF_ON_HOST if constexpr (omp_is_initial_device()) +#endif +#else +#define KOKKOS_IMPL_IF_ON_HOST if (true) +#endif + namespace Kokkos { namespace Impl { @@ -56,7 +68,7 @@ class SharedAllocationRecord; class SharedAllocationHeader { private: - typedef SharedAllocationRecord Record; + using Record = SharedAllocationRecord; static constexpr unsigned maximum_label_length = (1u << 7 /* 128 */) - sizeof(Record*); @@ -120,17 +132,33 @@ class SharedAllocationRecord { public: virtual std::string get_label() const { return std::string("Unmanaged"); } - static int tracking_enabled() { return t_tracking_enabled; } +#ifdef KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE + /* Device tracking_enabled -- always disabled */ + KOKKOS_IMPL_DEVICE_FUNCTION + static int tracking_enabled() { return 0; } +#endif + + KOKKOS_IMPL_HOST_FUNCTION + static int tracking_enabled() { + KOKKOS_IMPL_IF_ON_HOST { return t_tracking_enabled; } + else { + return 0; + } + } /**\brief A host process thread claims and disables the * shared allocation tracking flag. */ - static void tracking_disable() { t_tracking_enabled = 0; } + static void tracking_disable() { + KOKKOS_IMPL_IF_ON_HOST { t_tracking_enabled = 0; } + } /**\brief A host process thread releases and enables the * shared allocation tracking flag. */ - static void tracking_enable() { t_tracking_enabled = 1; } + static void tracking_enable() { + KOKKOS_IMPL_IF_ON_HOST { t_tracking_enabled = 1; } + } virtual ~SharedAllocationRecord() = default; @@ -164,11 +192,25 @@ class SharedAllocationRecord { /* Cannot be 'constexpr' because 'm_count' is volatile */ int use_count() const { return *static_cast(&m_count); } +#ifdef KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE + /* Device tracking_enabled -- always disabled */ + KOKKOS_IMPL_DEVICE_FUNCTION + static void increment(SharedAllocationRecord*){}; +#endif + /* Increment use count */ + KOKKOS_IMPL_HOST_FUNCTION static void increment(SharedAllocationRecord*); +#ifdef KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE + /* Device tracking_enabled -- always disabled */ + KOKKOS_IMPL_DEVICE_FUNCTION + static void decrement(SharedAllocationRecord*){}; +#endif + /* Decrement use count. If 1->0 then remove from the tracking list and invoke * m_dealloc */ + KOKKOS_IMPL_HOST_FUNCTION static SharedAllocationRecord* decrement(SharedAllocationRecord*); /* Given a root record and data pointer find the record */ @@ -192,8 +234,8 @@ namespace { /* Taking the address of this function so make sure it is unique */ template void deallocate(SharedAllocationRecord* record_ptr) { - typedef SharedAllocationRecord base_type; - typedef SharedAllocationRecord this_type; + using base_type = SharedAllocationRecord; + using this_type = SharedAllocationRecord; this_type* const ptr = static_cast(static_cast(record_ptr)); @@ -259,7 +301,7 @@ class SharedAllocationRecord union SharedAllocationTracker { private: - typedef SharedAllocationRecord Record; + using Record = SharedAllocationRecord; enum : uintptr_t { DO_NOT_DEREF_FLAG = 0x01ul }; @@ -272,15 +314,36 @@ union SharedAllocationTracker { // pressure on compiler optimization by reducing // number of symbols and inline functions. -#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) +#if defined(KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE) #define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_ENABLED Record::tracking_enabled() +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST +#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_CONDITION \ + (!(m_record_bits & DO_NOT_DEREF_FLAG)) +#else +#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_CONDITION (0) +#endif + #define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_INCREMENT \ - if (!(m_record_bits & DO_NOT_DEREF_FLAG)) Record::increment(m_record); + if (KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_CONDITION) \ + KOKKOS_IMPL_IF_ON_HOST Record::increment(m_record); #define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT \ - if (!(m_record_bits & DO_NOT_DEREF_FLAG)) Record::decrement(m_record); + if (KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_CONDITION) \ + KOKKOS_IMPL_IF_ON_HOST Record::decrement(m_record); + +#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + +#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_ENABLED Record::tracking_enabled() + +#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_INCREMENT \ + if (!(m_record_bits & DO_NOT_DEREF_FLAG)) \ + KOKKOS_IMPL_IF_ON_HOST Record::increment(m_record); + +#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT \ + if (!(m_record_bits & DO_NOT_DEREF_FLAG)) \ + KOKKOS_IMPL_IF_ON_HOST Record::decrement(m_record); #else @@ -312,7 +375,7 @@ union SharedAllocationTracker { constexpr SharedAllocationRecord* get_record() const noexcept { return (m_record_bits & DO_NOT_DEREF_FLAG) - ? (SharedAllocationRecord*)0 + ? nullptr : static_cast*>( m_record); } @@ -397,6 +460,38 @@ union SharedAllocationTracker { return *this; } + /* The following functions (assign_direct and assign_force_disable) + * are the result of deconstructing the + * KOKKOS_IMPL_SHARED_ALLOCATION_CARRY_RECORD_BITS macro. This + * allows the caller to do the check for tracking enabled and managed + * apart from the assignement of the record because the tracking + * enabled / managed question may be important for other tasks as well + */ + + /** \brief Copy assignment without the carry bits logic + * This assumes that externally defined tracking is explicitly enabled + */ + KOKKOS_FORCEINLINE_FUNCTION + void assign_direct(const SharedAllocationTracker& rhs) { + KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT + m_record_bits = rhs.m_record_bits; + KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_INCREMENT + } + + /** \brief Copy assignment without the increment + * we cannot assume that current record is unmanaged + * but with externally defined tracking explicitly disabled + * we can go straight to the do not deref flag */ + KOKKOS_FORCEINLINE_FUNCTION + void assign_force_disable(const SharedAllocationTracker& rhs) { + KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT + m_record_bits = rhs.m_record_bits | DO_NOT_DEREF_FLAG; + } + + // report if record is tracking or not + KOKKOS_FORCEINLINE_FUNCTION + bool tracking_enabled() { return (!(m_record_bits & DO_NOT_DEREF_FLAG)); } + /** \brief Copy assignment may disable tracking */ KOKKOS_FORCEINLINE_FUNCTION void assign(const SharedAllocationTracker& rhs, const bool enable_tracking) { @@ -413,5 +508,5 @@ union SharedAllocationTracker { } /* namespace Impl */ } /* namespace Kokkos */ - +#undef KOKKOS_IMPL_IF_ON_HOST #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp b/lib/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp index a01b22e4e9..b8d1f1df0d 100644 --- a/lib/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp @@ -366,20 +366,6 @@ class SimpleTaskScheduler //---------------------------------------------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // For backwards compatibility purposes only - KOKKOS_DEPRECATED - KOKKOS_INLINE_FUNCTION - memory_pool* memory() const noexcept KOKKOS_DEPRECATED_TRAILING_ATTRIBUTE { - if (m_queue != nullptr) - return &(m_queue->get_memory_pool()); - else - return nullptr; - } -#endif - - //---------------------------------------------------------------------------- - template KOKKOS_FUNCTION static Kokkos::BasicFuture diff --git a/lib/kokkos/core/src/impl/Kokkos_Tags.hpp b/lib/kokkos/core/src/impl/Kokkos_Tags.hpp index 1b33180ed2..eea4c93866 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Tags.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Tags.hpp @@ -54,8 +54,8 @@ /** KOKKOS_IMPL_HAS_TYPE( Type ) * - * defines a meta-function that check if a type expose an internal typedef or - * type alias which matches Type + * defines a meta-function that check if a type expose an internal alias which + * matches Type * * e.g. * KOKKOS_IMPL_HAS_TYPE( array_layout ); @@ -73,7 +73,7 @@ : std::true_type {}; \ \ public: \ - typedef typename X::type type; \ + using type = typename X::type; \ enum : bool { value = type::value }; \ }; diff --git a/lib/kokkos/core/src/impl/Kokkos_TaskBase.hpp b/lib/kokkos/core/src/impl/Kokkos_TaskBase.hpp index 8078c68dbd..2d0f62a563 100644 --- a/lib/kokkos/core/src/impl/Kokkos_TaskBase.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_TaskBase.hpp @@ -148,7 +148,7 @@ class TaskBase { using queue_type = TaskQueueBase; using function_type = void (*)(TaskBase*, void*); - typedef void (*destroy_type)(TaskBase*); + using destroy_type = void (*)(TaskBase*); // sizeof(TaskBase) == 48 diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIDecl.hpp b/lib/kokkos/core/src/impl/Kokkos_Tools.hpp similarity index 86% rename from lib/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIDecl.hpp rename to lib/kokkos/core/src/impl/Kokkos_Tools.hpp index 18e56aa32d..8d6ec64685 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIDecl.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Tools.hpp @@ -42,16 +42,13 @@ //@HEADER */ -#ifndef KOKKOS_CUDA_VIEWETIDECL_HPP -#define KOKKOS_CUDA_VIEWETIDECL_HPP +/** + * Header file to include all of Kokkos Tooling support + */ -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Cuda +#ifndef KOKKOS_IMPL_KOKKOS_TOOLS_HPP +#define KOKKOS_IMPL_KOKKOS_TOOLS_HPP -#include +#include -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Traits.hpp b/lib/kokkos/core/src/impl/Kokkos_Traits.hpp index 32e78b7f5f..770c7b002e 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Traits.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Traits.hpp @@ -60,17 +60,17 @@ namespace Impl { template struct get_type { - typedef void type; + using type = void; }; template struct get_type<0, T, Pack...> { - typedef T type; + using type = T; }; template struct get_type { - typedef typename get_type::type type; + using type = typename get_type::type; }; template @@ -83,7 +83,7 @@ struct has_type { private: enum { self_value = std::is_same::value }; - typedef has_type next; + using next = has_type; static_assert( !(self_value && next::value), @@ -97,7 +97,7 @@ template class Condition, typename... Pack> struct has_condition { enum { value = false }; - typedef DefaultType type; + using type = DefaultType; }; template class Condition, typename S, @@ -106,7 +106,7 @@ struct has_condition { private: enum { self_value = Condition::value }; - typedef has_condition next; + using next = has_condition; static_assert( !(self_value && next::value), @@ -115,8 +115,8 @@ struct has_condition { public: enum { value = self_value || next::value }; - typedef - typename std::conditional::type type; + using type = + typename std::conditional::type; }; template @@ -151,7 +151,7 @@ namespace Impl { template struct enable_if_type { - typedef T type; + using type = T; }; //---------------------------------------------------------------------------- @@ -161,12 +161,12 @@ template struct if_c { enum { value = Cond }; - typedef FalseType type; + using type = FalseType; - typedef typename std::remove_const< - typename std::remove_reference::type>::type value_type; + using value_type = typename std::remove_const< + typename std::remove_reference::type>::type; - typedef typename std::add_const::type const_value_type; + using const_value_type = typename std::add_const::type; static KOKKOS_INLINE_FUNCTION const_value_type& select(const_value_type& v) { return v; @@ -196,12 +196,12 @@ template struct if_c { enum { value = true }; - typedef TrueType type; + using type = TrueType; - typedef typename std::remove_const< - typename std::remove_reference::type>::type value_type; + using value_type = typename std::remove_const< + typename std::remove_reference::type>::type; - typedef typename std::add_const::type const_value_type; + using const_value_type = typename std::add_const::type; static KOKKOS_INLINE_FUNCTION const_value_type& select(const_value_type& v) { return v; @@ -231,16 +231,16 @@ template struct if_c { enum { value = false }; - typedef void type; - typedef void value_type; + using type = void; + using value_type = void; }; template struct if_c { enum { value = true }; - typedef void type; - typedef void value_type; + using type = void; + using value_type = void; }; template @@ -337,16 +337,16 @@ struct integral_nonzero_constant { // Declaration of 'static const' causes an unresolved linker symbol in debug // static const T value = v ; enum { value = T(v) }; - typedef T value_type; - typedef integral_nonzero_constant type; + using value_type = T; + using type = integral_nonzero_constant; KOKKOS_INLINE_FUNCTION integral_nonzero_constant(const T&) {} }; template struct integral_nonzero_constant { const T value; - typedef T value_type; - typedef integral_nonzero_constant type; + using value_type = T; + using type = integral_nonzero_constant; KOKKOS_INLINE_FUNCTION integral_nonzero_constant(const T& v) : value(v) {} }; diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewArray.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewArray.hpp index 119ad4eccf..de1c0750f0 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewArray.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewArray.hpp @@ -51,21 +51,21 @@ namespace Kokkos { namespace Impl { template -struct ViewDataAnalysis > { +struct ViewDataAnalysis> { private: - typedef ViewArrayAnalysis array_analysis; + using array_analysis = ViewArrayAnalysis; static_assert(std::is_same::value, ""); static_assert(std::is_same >::value, + Kokkos::Array>::value, ""); static_assert(std::is_scalar::value, "View of Array type must be of a scalar type"); public: - typedef Kokkos::Array<> specialize; + using specialize = Kokkos::Array<>; - typedef typename array_analysis::dimension dimension; + using dimension = typename array_analysis::dimension; private: enum { @@ -73,29 +73,29 @@ struct ViewDataAnalysis > { typename array_analysis::const_value_type>::value }; - typedef typename dimension::template append::type array_scalar_dimension; + using array_scalar_dimension = typename dimension::template append::type; - typedef typename std::conditional::type scalar_type; - typedef V non_const_scalar_type; - typedef const V const_scalar_type; + using scalar_type = typename std::conditional::type; + using non_const_scalar_type = V; + using const_scalar_type = const V; public: - typedef typename array_analysis::value_type value_type; - typedef typename array_analysis::const_value_type const_value_type; - typedef typename array_analysis::non_const_value_type non_const_value_type; - - typedef typename ViewDataType::type type; - typedef typename ViewDataType::type const_type; - typedef typename ViewDataType::type - non_const_type; - - typedef typename ViewDataType::type - scalar_array_type; - typedef typename ViewDataType::type - const_scalar_array_type; - typedef - typename ViewDataType::type - non_const_scalar_array_type; + using value_type = typename array_analysis::value_type; + using const_value_type = typename array_analysis::const_value_type; + using non_const_value_type = typename array_analysis::non_const_value_type; + + using type = typename ViewDataType::type; + using const_type = typename ViewDataType::type; + using non_const_type = + typename ViewDataType::type; + + using scalar_array_type = + typename ViewDataType::type; + using const_scalar_array_type = + typename ViewDataType::type; + using non_const_scalar_array_type = + typename ViewDataType::type; }; } // namespace Impl @@ -109,31 +109,28 @@ namespace Impl { /** \brief View mapping for non-specialized data type and standard layout */ template -class ViewMapping > { +class ViewMapping> { private: template friend class ViewMapping; template friend class Kokkos::View; - typedef ViewOffset - offset_type; + using offset_type = ViewOffset; - typedef typename Traits::value_type::pointer handle_type; + using handle_type = typename Traits::value_type::pointer; handle_type m_impl_handle; offset_type m_impl_offset; size_t m_stride; - typedef typename Traits::value_type::value_type scalar_type; + using scalar_type = typename Traits::value_type::value_type; - typedef Kokkos::Array::contiguous> - contiguous_reference; - typedef Kokkos::Array::strided> - strided_reference; + using contiguous_reference = Kokkos::Array::contiguous>; + using strided_reference = + Kokkos::Array::strided>; enum { is_contiguous_reference = @@ -232,11 +229,11 @@ class ViewMapping > { return m_impl_offset.span_is_contiguous(); } - typedef + using reference_type = typename std::conditional::type reference_type; + strided_reference>::type; - typedef handle_type pointer_type; + using pointer_type = handle_type; /** \brief If data references are lvalue_reference than can query pointer to * memory */ @@ -377,31 +374,33 @@ class ViewMapping > { Kokkos::Impl::SharedAllocationRecord<> *allocate_shared( Kokkos::Impl::ViewCtorProp const &arg_prop, typename Traits::array_layout const &arg_layout) { - typedef Kokkos::Impl::ViewCtorProp alloc_prop; + using alloc_prop = Kokkos::Impl::ViewCtorProp; - typedef typename alloc_prop::execution_space execution_space; - typedef typename Traits::memory_space memory_space; - typedef ViewValueFunctor functor_type; - typedef Kokkos::Impl::SharedAllocationRecord - record_type; + using execution_space = typename alloc_prop::execution_space; + using memory_space = typename Traits::memory_space; + using functor_type = ViewValueFunctor; + using record_type = + Kokkos::Impl::SharedAllocationRecord; // Query the mapping for byte-size of allocation. - typedef std::integral_constant< - unsigned, alloc_prop::allow_padding ? sizeof(scalar_type) : 0> - padding; + using padding = std::integral_constant< + unsigned int, alloc_prop::allow_padding ? sizeof(scalar_type) : 0>; m_impl_offset = offset_type(padding(), arg_layout); const size_t alloc_size = (m_impl_offset.span() * Array_N * MemorySpanSize + MemorySpanMask) & ~size_t(MemorySpanMask); - + const auto &alloc_name = + static_cast const &>( + arg_prop) + .value; // Allocate memory from the memory space and create tracking record. record_type *const record = record_type::allocate( - ((Kokkos::Impl::ViewCtorProp const &)arg_prop) + static_cast const &>( + arg_prop) .value, - ((Kokkos::Impl::ViewCtorProp const &)arg_prop).value, - alloc_size); + alloc_name, alloc_size); if (alloc_size) { m_impl_handle = @@ -410,10 +409,11 @@ class ViewMapping > { if (alloc_prop::initialize) { // The functor constructs and destroys record->m_destroy = functor_type( - ((Kokkos::Impl::ViewCtorProp const &) - arg_prop) + static_cast const + &>(arg_prop) .value, - (pointer_type)m_impl_handle, m_impl_offset.span() * Array_N); + (pointer_type)m_impl_handle, m_impl_offset.span() * Array_N, + alloc_name); record->m_destroy.construct_shared_allocation(); } @@ -438,7 +438,7 @@ class ViewMapping< Kokkos::LayoutRight>::value || std::is_same::value) && - std::is_same >::value && + std::is_same>::value && (std::is_same::value || std::is_same::value }; - typedef Kokkos::Impl::SharedAllocationTracker TrackType; - typedef ViewMapping DstType; - typedef ViewMapping > SrcType; + using TrackType = Kokkos::Impl::SharedAllocationTracker; + using DstType = ViewMapping; + using SrcType = ViewMapping>; KOKKOS_INLINE_FUNCTION static void assign(DstType &dst, const SrcType &src, const TrackType & /*src_track*/) { static_assert(is_assignable, "Can only convert to array_type"); - typedef typename DstType::offset_type dst_offset_type; + using dst_offset_type = typename DstType::offset_type; // Array dimension becomes the last dimension. // Arguments beyond the destination rank are ignored. @@ -496,9 +496,8 @@ class ViewMapping< (7 < SrcType::Rank ? src.dimension_7() : SrcTraits::value_type::size()))); } else { // is padded - typedef std::integral_constant< - unsigned, sizeof(typename SrcTraits::value_type::value_type)> - padded; + using padded = std::integral_constant< + unsigned int, sizeof(typename SrcTraits::value_type::value_type)>; dst.m_impl_offset = dst_offset_type( padded(), typename DstTraits::array_layout( @@ -530,7 +529,7 @@ class ViewMapping< template struct ViewMapping< typename std::enable_if<( - std::is_same >::value && + std::is_same>::value && (std::is_same::value || std::is_same::value) || - // OutputRank 1 or 2, InputLayout Right, Interval [InputRank-1] - // because single stride one or second index has a stride. - (rank <= 2 && R0_rev && - std::is_same::value)), - typename SrcTraits::array_layout, Kokkos::LayoutStride>::type - array_layout; - - typedef typename SrcTraits::value_type value_type; - - typedef typename std::conditional< + using array_layout = + typename std::conditional<((rank == 0) || + (rank <= 2 && R0 && + std::is_same::value) || + (rank <= 2 && R0_rev && + std::is_same::value)), + typename SrcTraits::array_layout, + Kokkos::LayoutStride>::type; + + using value_type = typename SrcTraits::value_type; + + using data_type = typename std::conditional< rank == 0, value_type, typename std::conditional< rank == 1, value_type *, @@ -616,25 +609,24 @@ struct ViewMapping< typename std::conditional< rank == 7, value_type *******, value_type ********>::type>::type>::type>:: - type>::type>::type>::type>::type data_type; + type>::type>::type>::type>::type; public: - typedef Kokkos::ViewTraits - traits_type; + using traits_type = Kokkos::ViewTraits; - typedef Kokkos::View - type; + using type = + Kokkos::View; KOKKOS_INLINE_FUNCTION static void assign(ViewMapping &dst, ViewMapping const &src, Args... args) { - typedef ViewMapping DstType; + using DstType = ViewMapping; - typedef typename DstType::offset_type dst_offset_type; - typedef typename DstType::handle_type dst_handle_type; + using dst_offset_type = typename DstType::offset_type; + using dst_handle_type = typename DstType::handle_type; const SubviewExtents extents(src.m_impl_offset.m_dim, args...); diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewCtor.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewCtor.hpp index 93a267ffa3..a817784dc0 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewCtor.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewCtor.hpp @@ -141,7 +141,7 @@ struct ViewCtorProp::value>::type, ViewCtorProp(const ViewCtorProp &) = default; ViewCtorProp &operator=(const ViewCtorProp &) = default; - typedef std::string type; + using type = std::string; ViewCtorProp(const type &arg) : value(arg) {} ViewCtorProp(type &&arg) : value(arg) {} @@ -173,7 +173,7 @@ struct ViewCtorProp { ViewCtorProp(const ViewCtorProp &) = default; ViewCtorProp &operator=(const ViewCtorProp &) = default; - typedef T *type; + using type = T *; KOKKOS_INLINE_FUNCTION ViewCtorProp(const type arg) : value(arg) {} @@ -194,20 +194,49 @@ struct ViewCtorProp { type value; }; +// For some reason I don't understand I needed this specialization explicitly +// for NVCC/MSVC +template +struct ViewCtorProp { + ViewCtorProp() = default; + ViewCtorProp(const ViewCtorProp &) = default; + ViewCtorProp &operator=(const ViewCtorProp &) = default; + + using type = T *; + + KOKKOS_INLINE_FUNCTION + ViewCtorProp(const type arg) : value(arg) {} + + enum { has_pointer = true }; + using pointer_type = type; + type value; +}; + +// If we use `ViewCtorProp` and `ViewCtorProp...` directly +// in the parameter lists and base class initializers, respectively, as far as +// we can tell MSVC 16.5.5+CUDA 10.2 thinks that `ViewCtorProp` refers to the +// current instantiation, not the template itself, and gets all kinds of +// confused. To work around this, we just use a couple of alias templates that +// amount to the same thing. +template +using view_ctor_prop_args = ViewCtorProp; + +template +using view_ctor_prop_base = ViewCtorProp; + template struct ViewCtorProp : public ViewCtorProp... { private: - typedef Kokkos::Impl::has_condition - var_memory_space; + using var_memory_space = + Kokkos::Impl::has_condition; - typedef Kokkos::Impl::has_condition - var_execution_space; + using var_execution_space = + Kokkos::Impl::has_condition; struct VOIDDUMMY {}; - typedef Kokkos::Impl::has_condition - var_pointer; + using var_pointer = + Kokkos::Impl::has_condition; public: /* Flags for the common properties */ @@ -220,9 +249,9 @@ struct ViewCtorProp : public ViewCtorProp... { initialize = !Kokkos::Impl::has_type::value }; - typedef typename var_memory_space::type memory_space; - typedef typename var_execution_space::type execution_space; - typedef typename var_pointer::type pointer_type; + using memory_space = typename var_memory_space::type; + using execution_space = typename var_execution_space::type; + using pointer_type = typename var_pointer::type; /* Copy from a matching argument list. * Requires std::is_same< P , ViewCtorProp< void , Args >::value ... @@ -236,10 +265,20 @@ struct ViewCtorProp : public ViewCtorProp... { ViewCtorProp::type>(args)... {} /* Copy from a matching property subset */ + KOKKOS_INLINE_FUNCTION ViewCtorProp(pointer_type arg0) + : ViewCtorProp(arg0) {} + + // If we use `ViewCtorProp` and `ViewCtorProp...` here + // directly, MSVC 16.5.5+CUDA 10.2 appears to think that `ViewCtorProp` refers + // to the current instantiation, not the template itself, and gets all kinds + // of confused. To work around this, we just use a couple of alias templates + // that amount to the same thing. template - ViewCtorProp(ViewCtorProp const &arg) - : ViewCtorProp( - static_cast const &>(arg))... { + ViewCtorProp(view_ctor_prop_args const &arg) + : view_ctor_prop_base( + static_cast const &>(arg))... { + // Suppress an unused argument warning that (at least at one point) would + // show up if sizeof...(Args) == 0 (void)arg; } }; diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewFillCopyETIAvail.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewFillCopyETIAvail.hpp deleted file mode 100644 index b415cb6d50..0000000000 --- a/lib/kokkos/core/src/impl/Kokkos_ViewFillCopyETIAvail.hpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_EXPERIMENTAL_VIEWETIAVAIL_HPP -#define KOKKOS_EXPERIMENTAL_VIEWETIAVAIL_HPP - -namespace Kokkos { -namespace Impl { - -template -struct ViewCopyETIAvail { - enum { value = false }; -}; - -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(DATATYPE, LAYOUTA, LAYOUTB, EXECSPACE, \ - ITYPE) \ - template <> \ - struct ViewCopyETIAvail< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View::rank, ITYPE> { \ - enum { value = true }; \ - }; \ - template <> \ - struct ViewCopyETIAvail< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View::rank, ITYPE> { \ - enum { value = true }; \ - }; - -template -struct ViewFillETIAvail { - enum { value = false }; -}; - -#define KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(DATATYPE, LAYOUT, EXECSPACE, ITYPE) \ - template <> \ - struct ViewFillETIAvail< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View::rank, ITYPE> { \ - enum { value = true }; \ - }; \ - template <> \ - struct ViewFillETIAvail< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View::rank, ITYPE> { \ - enum { value = true }; \ - }; - -} // namespace Impl -} // namespace Kokkos -#ifdef KOKKOS_ENABLE_ETI -#ifdef KOKKOS_ENABLE_Serial -#include -#endif -#ifdef KOKKOS_ENABLE_OPENMP -#include -#endif -#ifdef KOKKOS_ENABLE_THREADS -#include -#endif -#ifdef KOKKOS_ENABLE_CUDA -#include -#endif -#ifdef KOKKOS_ENABLE_ROCM -#include -#endif -#endif - -#endif diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewFillCopyETIDecl.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewFillCopyETIDecl.hpp deleted file mode 100644 index e23dabd840..0000000000 --- a/lib/kokkos/core/src/impl/Kokkos_ViewFillCopyETIDecl.hpp +++ /dev/null @@ -1,140 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_EXPERIMENTAL_VIEWETIDECL_HPP -#define KOKKOS_EXPERIMENTAL_VIEWETIDECL_HPP - -namespace Kokkos { -namespace Impl { - -#define KOKKOS_IMPL_VIEWCOPY_ETI_DECL(DATATYPE, LAYOUTA, LAYOUTB, EXECSPACE, \ - ITYPE) \ - extern template struct ViewCopy< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View::rank, ITYPE, \ - true>; \ - extern template struct ViewCopy< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View::rank, ITYPE, \ - true>; - -#define KOKKOS_IMPL_VIEWFILL_ETI_DECL(DATATYPE, LAYOUT, EXECSPACE, ITYPE) \ - extern template struct ViewFill< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View::rank, ITYPE, \ - true>; \ - extern template struct ViewFill< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View::rank, ITYPE, \ - true>; - -#define KOKKOS_IMPL_VIEWCOPY_ETI_INST(DATATYPE, LAYOUTA, LAYOUTB, EXECSPACE, \ - ITYPE) \ - template struct ViewCopy< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View::rank, ITYPE, \ - true>; \ - template struct ViewCopy< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View::rank, ITYPE, \ - true>; - -#define KOKKOS_IMPL_VIEWFILL_ETI_INST(DATATYPE, LAYOUT, EXECSPACE, ITYPE) \ - template struct ViewFill< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View::rank, ITYPE, \ - true>; \ - template struct ViewFill< \ - Kokkos::View, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View::rank, ITYPE, \ - true>; - -} // namespace Impl -} // namespace Kokkos -#ifdef KOKKOS_ENABLE_ETI -#ifdef KOKKOS_ENABLE_Serial -#include -#endif -#ifdef KOKKOS_ENABLE_OPENMP -#include -#endif -#ifdef KOKKOS_ENABLE_THREADS -#include -#endif -#ifdef KOKKOS_ENABLE_CUDA -#include -#endif -#ifdef KOKKOS_ENABLE_ROCM -#include -#endif -#endif -#endif diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp index 27f4375e56..b171f5feeb 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp @@ -45,8 +45,6 @@ #ifndef KOKKOS_EXPERIMENTAL_VIEWLAYOUTTILE_HPP #define KOKKOS_EXPERIMENTAL_VIEWLAYOUTTILE_HPP -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE - #include #include @@ -131,14 +129,14 @@ struct ViewOffset< enum { VORank = Dimension::rank }; - enum { SHIFT_0 = Kokkos::Impl::integral_power_of_two(Layout::N0) }; - enum { SHIFT_1 = Kokkos::Impl::integral_power_of_two(Layout::N1) }; - enum { SHIFT_2 = Kokkos::Impl::integral_power_of_two(Layout::N2) }; - enum { SHIFT_3 = Kokkos::Impl::integral_power_of_two(Layout::N3) }; - enum { SHIFT_4 = Kokkos::Impl::integral_power_of_two(Layout::N4) }; - enum { SHIFT_5 = Kokkos::Impl::integral_power_of_two(Layout::N5) }; - enum { SHIFT_6 = Kokkos::Impl::integral_power_of_two(Layout::N6) }; - enum { SHIFT_7 = Kokkos::Impl::integral_power_of_two(Layout::N7) }; + enum : unsigned { SHIFT_0 = Kokkos::Impl::integral_power_of_two(Layout::N0) }; + enum : unsigned { SHIFT_1 = Kokkos::Impl::integral_power_of_two(Layout::N1) }; + enum : unsigned { SHIFT_2 = Kokkos::Impl::integral_power_of_two(Layout::N2) }; + enum : unsigned { SHIFT_3 = Kokkos::Impl::integral_power_of_two(Layout::N3) }; + enum : unsigned { SHIFT_4 = Kokkos::Impl::integral_power_of_two(Layout::N4) }; + enum : unsigned { SHIFT_5 = Kokkos::Impl::integral_power_of_two(Layout::N5) }; + enum : unsigned { SHIFT_6 = Kokkos::Impl::integral_power_of_two(Layout::N6) }; + enum : unsigned { SHIFT_7 = Kokkos::Impl::integral_power_of_two(Layout::N7) }; enum { MASK_0 = Layout::N0 - 1 }; enum { MASK_1 = Layout::N1 - 1 }; enum { MASK_2 = Layout::N2 - 1 }; @@ -148,16 +146,20 @@ struct ViewOffset< enum { MASK_6 = Layout::N6 - 1 }; enum { MASK_7 = Layout::N7 - 1 }; - enum { SHIFT_2T = SHIFT_0 + SHIFT_1 }; - enum { SHIFT_3T = SHIFT_0 + SHIFT_1 + SHIFT_2 }; - enum { SHIFT_4T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 }; - enum { SHIFT_5T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 }; - enum { SHIFT_6T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 + SHIFT_5 }; - enum { + enum : unsigned { SHIFT_2T = SHIFT_0 + SHIFT_1 }; + enum : unsigned { SHIFT_3T = SHIFT_0 + SHIFT_1 + SHIFT_2 }; + enum : unsigned { SHIFT_4T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 }; + enum : unsigned { + SHIFT_5T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 + }; + enum : unsigned { + SHIFT_6T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 + SHIFT_5 + }; + enum : unsigned { SHIFT_7T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 + SHIFT_5 + SHIFT_6 }; - enum { + enum : unsigned { SHIFT_8T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 + SHIFT_5 + SHIFT_6 + SHIFT_7 }; @@ -166,9 +168,9 @@ struct ViewOffset< using is_mapping_plugin = std::true_type; using is_regular = std::false_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Layout array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Layout; dimension_type m_dim; size_type m_tile_N0; // Num tiles dim 0 @@ -600,11 +602,37 @@ struct ViewOffset< } //---------------------------------------- - +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { + m_dim = src.m_dim; + m_tile_N0 = src.m_tile_N0; + m_tile_N1 = src.m_tile_N1; + m_tile_N2 = src.m_tile_N2; + m_tile_N3 = src.m_tile_N3; + m_tile_N4 = src.m_tile_N4; + m_tile_N5 = src.m_tile_N5; + m_tile_N6 = src.m_tile_N6; + m_tile_N7 = src.m_tile_N7; + } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + m_tile_N0 = src.m_tile_N0; + m_tile_N1 = src.m_tile_N1; + m_tile_N2 = src.m_tile_N2; + m_tile_N3 = src.m_tile_N3; + m_tile_N4 = src.m_tile_N4; + m_tile_N5 = src.m_tile_N5; + m_tile_N6 = src.m_tile_N6; + m_tile_N7 = src.m_tile_N7; + return *this; + } +#else KOKKOS_DEFAULTED_FUNCTION ~ViewOffset() = default; KOKKOS_DEFAULTED_FUNCTION ViewOffset() = default; KOKKOS_DEFAULTED_FUNCTION ViewOffset(const ViewOffset&) = default; KOKKOS_DEFAULTED_FUNCTION ViewOffset& operator=(const ViewOffset&) = default; +#endif template KOKKOS_INLINE_FUNCTION constexpr ViewOffset( @@ -653,26 +681,27 @@ struct ViewMapping< Kokkos::Experimental::LayoutTiled, iType0, iType1> { - typedef Kokkos::Experimental::LayoutTiled - src_layout; - typedef Kokkos::ViewTraits src_traits; + using src_layout = + Kokkos::Experimental::LayoutTiled; + using src_traits = Kokkos::ViewTraits; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional::type array_layout; - typedef Kokkos::ViewTraits traits; - typedef Kokkos::View type; + using array_layout = + typename std::conditional::type; + using traits = Kokkos::ViewTraits; + using type = Kokkos::View; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping& dst, const ViewMapping& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1) { - typedef ViewMapping dst_map_type; - typedef ViewMapping src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping; + using src_map_type = ViewMapping; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -703,27 +732,28 @@ struct ViewMapping, iType0, iType1, iType2> { - typedef Kokkos::Experimental::LayoutTiled - src_layout; - typedef Kokkos::ViewTraits src_traits; + using src_layout = + Kokkos::Experimental::LayoutTiled; + using src_traits = Kokkos::ViewTraits; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional::type array_layout; - typedef Kokkos::ViewTraits traits; - typedef Kokkos::View type; + using array_layout = + typename std::conditional::type; + using traits = Kokkos::ViewTraits; + using type = Kokkos::View; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping& dst, const ViewMapping& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2) { - typedef ViewMapping dst_map_type; - typedef ViewMapping src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping; + using src_map_type = ViewMapping; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -759,27 +789,28 @@ struct ViewMapping, iType0, iType1, iType2, iType3> { - typedef Kokkos::Experimental::LayoutTiled - src_layout; - typedef Kokkos::ViewTraits src_traits; + using src_layout = + Kokkos::Experimental::LayoutTiled; + using src_traits = Kokkos::ViewTraits; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional::type array_layout; - typedef Kokkos::ViewTraits traits; - typedef Kokkos::View type; + using array_layout = + typename std::conditional::type; + using traits = Kokkos::ViewTraits; + using type = Kokkos::View; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping& dst, const ViewMapping& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2, const iType3 i_tile3) { - typedef ViewMapping dst_map_type; - typedef ViewMapping src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping; + using src_map_type = ViewMapping; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -820,27 +851,28 @@ struct ViewMapping< Kokkos::Experimental::LayoutTiled, iType0, iType1, iType2, iType3, iType4> { - typedef Kokkos::Experimental::LayoutTiled - src_layout; - typedef Kokkos::ViewTraits src_traits; + using src_layout = + Kokkos::Experimental::LayoutTiled; + using src_traits = Kokkos::ViewTraits; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional::type array_layout; - typedef Kokkos::ViewTraits traits; - typedef Kokkos::View type; + using array_layout = + typename std::conditional::type; + using traits = Kokkos::ViewTraits; + using type = Kokkos::View; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping& dst, const ViewMapping& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2, const iType3 i_tile3, const iType4 i_tile4) { - typedef ViewMapping dst_map_type; - typedef ViewMapping src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping; + using src_map_type = ViewMapping; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -886,29 +918,30 @@ struct ViewMapping::type // void Kokkos::Experimental::LayoutTiled, iType0, iType1, iType2, iType3, iType4, iType5> { - typedef Kokkos::Experimental::LayoutTiled - src_layout; - typedef Kokkos::ViewTraits src_traits; + using src_layout = + Kokkos::Experimental::LayoutTiled; + using src_traits = Kokkos::ViewTraits; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional::type array_layout; - typedef Kokkos::ViewTraits - traits; - typedef Kokkos::View type; + using array_layout = + typename std::conditional::type; + using traits = + Kokkos::ViewTraits; + using type = Kokkos::View; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping& dst, const ViewMapping& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2, const iType3 i_tile3, const iType4 i_tile4, const iType5 i_tile5) { - typedef ViewMapping dst_map_type; - typedef ViewMapping src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping; + using src_map_type = ViewMapping; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -958,29 +991,30 @@ struct ViewMapping::type // void Kokkos::Experimental::LayoutTiled, iType0, iType1, iType2, iType3, iType4, iType5, iType6> { - typedef Kokkos::Experimental::LayoutTiled - src_layout; - typedef Kokkos::ViewTraits src_traits; + using src_layout = + Kokkos::Experimental::LayoutTiled; + using src_traits = Kokkos::ViewTraits; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional::type array_layout; - typedef Kokkos::ViewTraits - traits; - typedef Kokkos::View type; + using array_layout = + typename std::conditional::type; + using traits = + Kokkos::ViewTraits; + using type = Kokkos::View; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping& dst, const ViewMapping& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2, const iType3 i_tile3, const iType4 i_tile4, const iType5 i_tile5, const iType6 i_tile6) { - typedef ViewMapping dst_map_type; - typedef ViewMapping src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping; + using src_map_type = ViewMapping; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -1039,31 +1073,31 @@ struct ViewMapping< Kokkos::Experimental::LayoutTiled, iType0, iType1, iType2, iType3, iType4, iType5, iType6, iType7> { - typedef Kokkos::Experimental::LayoutTiled - src_layout; - typedef Kokkos::ViewTraits src_traits; + using src_layout = + Kokkos::Experimental::LayoutTiled; + using src_traits = Kokkos::ViewTraits; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional::type array_layout; - typedef Kokkos::ViewTraits - traits; - typedef Kokkos::View - type; + using array_layout = + typename std::conditional::type; + using traits = + Kokkos::ViewTraits; + using type = + Kokkos::View; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping& dst, const ViewMapping& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2, const iType3 i_tile3, const iType4 i_tile4, const iType5 i_tile5, const iType6 i_tile6, const iType7 i_tile7) { - typedef ViewMapping dst_map_type; - typedef ViewMapping src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping; + using src_map_type = ViewMapping; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -1131,13 +1165,12 @@ tile_subview(const Kokkos::View< const size_t i_tile0, const size_t i_tile1) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled; return Kokkos::View(src, SrcLayout(), i_tile0, i_tile1); @@ -1160,13 +1193,12 @@ tile_subview(const Kokkos::View< const size_t i_tile0, const size_t i_tile1, const size_t i_tile2) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled; return Kokkos::View( src, SrcLayout(), i_tile0, i_tile1, i_tile2); @@ -1190,13 +1222,12 @@ tile_subview(const Kokkos::View< const size_t i_tile3) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled; return Kokkos::View( src, SrcLayout(), i_tile0, i_tile1, i_tile2, i_tile3); @@ -1220,13 +1251,12 @@ tile_subview(const Kokkos::View< const size_t i_tile3, const size_t i_tile4) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled; return Kokkos::View( src, SrcLayout(), i_tile0, i_tile1, i_tile2, i_tile3, i_tile4); @@ -1250,13 +1280,12 @@ tile_subview(const Kokkos::View< const size_t i_tile3, const size_t i_tile4, const size_t i_tile5) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled; return Kokkos::View( src, SrcLayout(), i_tile0, i_tile1, i_tile2, i_tile3, i_tile4, i_tile5); @@ -1281,13 +1310,12 @@ tile_subview(const Kokkos::View< const size_t i_tile6) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled; return Kokkos::View( src, SrcLayout(), i_tile0, i_tile1, i_tile2, i_tile3, i_tile4, i_tile5, @@ -1313,13 +1341,12 @@ tile_subview(const Kokkos::View< const size_t i_tile6, const size_t i_tile7) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled; return Kokkos::View( src, SrcLayout(), i_tile0, i_tile1, i_tile2, i_tile3, i_tile4, i_tile5, @@ -1327,7 +1354,6 @@ tile_subview(const Kokkos::View< } } /* namespace Kokkos */ -#endif //! defined(KOKKOS_ENABLE_DEPRECATED_CODE //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp index c8230169e7..61e23f72b8 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp @@ -54,11 +54,10 @@ #include #include #include +#include #include #include -#if defined(KOKKOS_ENABLE_PROFILING) -#include -#endif +#include //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -68,17 +67,17 @@ namespace Impl { template struct variadic_size_t { - enum { value = KOKKOS_INVALID_INDEX }; + enum : size_t { value = KOKKOS_INVALID_INDEX }; }; template struct variadic_size_t<0, Val, Args...> { - enum { value = Val }; + enum : size_t { value = Val }; }; template struct variadic_size_t { - enum { value = variadic_size_t::value }; + enum : size_t { value = variadic_size_t::value }; }; template @@ -86,27 +85,27 @@ struct rank_dynamic; template <> struct rank_dynamic<> { - enum { value = 0 }; + enum : unsigned { value = 0 }; }; template struct rank_dynamic { - enum { value = (Val == 0 ? 1 : 0) + rank_dynamic::value }; + enum : unsigned { value = (Val == 0 ? 1 : 0) + rank_dynamic::value }; }; #define KOKKOS_IMPL_VIEW_DIMENSION(R) \ template \ struct ViewDimension##R { \ - enum { ArgN##R = (V != KOKKOS_INVALID_INDEX ? V : 1) }; \ - enum { N##R = (V != KOKKOS_INVALID_INDEX ? V : 1) }; \ + enum : size_t { ArgN##R = (V != KOKKOS_INVALID_INDEX ? V : 1) }; \ + enum : size_t { N##R = (V != KOKKOS_INVALID_INDEX ? V : 1) }; \ KOKKOS_INLINE_FUNCTION explicit ViewDimension##R(size_t) {} \ ViewDimension##R() = default; \ ViewDimension##R(const ViewDimension##R&) = default; \ ViewDimension##R& operator=(const ViewDimension##R&) = default; \ }; \ template \ - struct ViewDimension##R<0, RD> { \ - enum { ArgN##R = 0 }; \ + struct ViewDimension##R<0u, RD> { \ + enum : size_t { ArgN##R = 0 }; \ typename std::conditional<(RD < 3), size_t, unsigned>::type N##R; \ ViewDimension##R() = default; \ ViewDimension##R(const ViewDimension##R&) = default; \ @@ -125,47 +124,42 @@ KOKKOS_IMPL_VIEW_DIMENSION(7) #undef KOKKOS_IMPL_VIEW_DIMENSION +// MSVC does not do empty base class optimization by default. +// Per standard it is required for standard layout types template -struct ViewDimension : public ViewDimension0::value, - rank_dynamic::value>, - public ViewDimension1::value, - rank_dynamic::value>, - public ViewDimension2::value, - rank_dynamic::value>, - public ViewDimension3::value, - rank_dynamic::value>, - public ViewDimension4::value, - rank_dynamic::value>, - public ViewDimension5::value, - rank_dynamic::value>, - public ViewDimension6::value, - rank_dynamic::value>, - public ViewDimension7::value, - rank_dynamic::value> { - typedef ViewDimension0::value, - rank_dynamic::value> - D0; - typedef ViewDimension1::value, - rank_dynamic::value> - D1; - typedef ViewDimension2::value, - rank_dynamic::value> - D2; - typedef ViewDimension3::value, - rank_dynamic::value> - D3; - typedef ViewDimension4::value, - rank_dynamic::value> - D4; - typedef ViewDimension5::value, - rank_dynamic::value> - D5; - typedef ViewDimension6::value, - rank_dynamic::value> - D6; - typedef ViewDimension7::value, - rank_dynamic::value> - D7; +struct KOKKOS_IMPL_ENFORCE_EMPTY_BASE_OPTIMIZATION ViewDimension + : public ViewDimension0::value, + rank_dynamic::value>, + public ViewDimension1::value, + rank_dynamic::value>, + public ViewDimension2::value, + rank_dynamic::value>, + public ViewDimension3::value, + rank_dynamic::value>, + public ViewDimension4::value, + rank_dynamic::value>, + public ViewDimension5::value, + rank_dynamic::value>, + public ViewDimension6::value, + rank_dynamic::value>, + public ViewDimension7::value, + rank_dynamic::value> { + using D0 = ViewDimension0::value, + rank_dynamic::value>; + using D1 = ViewDimension1::value, + rank_dynamic::value>; + using D2 = ViewDimension2::value, + rank_dynamic::value>; + using D3 = ViewDimension3::value, + rank_dynamic::value>; + using D4 = ViewDimension4::value, + rank_dynamic::value>; + using D5 = ViewDimension5::value, + rank_dynamic::value>; + using D6 = ViewDimension6::value, + rank_dynamic::value>; + using D7 = ViewDimension7::value, + rank_dynamic::value>; using D0::ArgN0; using D1::ArgN1; @@ -185,8 +179,8 @@ struct ViewDimension : public ViewDimension0::value, using D6::N6; using D7::N7; - enum { rank = sizeof...(Vals) }; - enum { rank_dynamic = Impl::rank_dynamic::value }; + enum : unsigned { rank = sizeof...(Vals) }; + enum : unsigned { rank_dynamic = Impl::rank_dynamic::value }; ViewDimension() = default; ViewDimension(const ViewDimension&) = default; @@ -239,12 +233,12 @@ struct ViewDimension : public ViewDimension0::value, template struct prepend { - typedef ViewDimension type; + using type = ViewDimension; }; template struct append { - typedef ViewDimension type; + using type = ViewDimension; }; }; @@ -253,7 +247,7 @@ struct ViewDimensionJoin; template struct ViewDimensionJoin, ViewDimension> { - typedef ViewDimension type; + using type = ViewDimension; }; //---------------------------------------------------------------------------- @@ -264,8 +258,8 @@ struct ViewDimensionAssignable; template struct ViewDimensionAssignable, ViewDimension> { - typedef ViewDimension dst; - typedef ViewDimension src; + using dst = ViewDimension; + using src = ViewDimension; enum { value = unsigned(dst::rank) == unsigned(src::rank) && @@ -345,8 +339,8 @@ struct is_integral_extent_type> { template struct is_integral_extent { // get_type is void when sizeof...(Args) <= I - typedef typename std::remove_cv::type>::type>::type type; + using type = typename std::remove_cv::type>::type>::type; enum { value = is_integral_extent_type::value }; @@ -731,17 +725,17 @@ struct ViewDataType; template struct ViewDataType> { - typedef T type; + using type = T; }; template struct ViewDataType> { - typedef typename ViewDataType>::type type; + using type = typename ViewDataType>::type; }; template struct ViewDataType> { - typedef typename ViewDataType>::type type[N]; + using type = typename ViewDataType>::type[N]; }; /**\brief Analysis of View data type. @@ -751,80 +745,80 @@ struct ViewDataType> { * {const} value_type ***[#][#][#] * Where the sum of counts of '*' and '[#]' is at most ten. * - * Provide typedef for the ViewDimension<...> and value_type. + * Provide alias for ViewDimension<...> and value_type. */ template struct ViewArrayAnalysis { - typedef T value_type; - typedef typename std::add_const::type const_value_type; - typedef typename std::remove_const::type non_const_value_type; - typedef ViewDimension<> static_dimension; - typedef ViewDimension<> dynamic_dimension; - typedef ViewDimension<> dimension; + using value_type = T; + using const_value_type = typename std::add_const::type; + using non_const_value_type = typename std::remove_const::type; + using static_dimension = ViewDimension<>; + using dynamic_dimension = ViewDimension<>; + using dimension = ViewDimension<>; }; template struct ViewArrayAnalysis { private: - typedef ViewArrayAnalysis nested; + using nested = ViewArrayAnalysis; public: - typedef typename nested::value_type value_type; - typedef typename nested::const_value_type const_value_type; - typedef typename nested::non_const_value_type non_const_value_type; + using value_type = typename nested::value_type; + using const_value_type = typename nested::const_value_type; + using non_const_value_type = typename nested::non_const_value_type; - typedef typename nested::static_dimension::template prepend::type - static_dimension; + using static_dimension = + typename nested::static_dimension::template prepend::type; - typedef typename nested::dynamic_dimension dynamic_dimension; + using dynamic_dimension = typename nested::dynamic_dimension; - typedef typename ViewDimensionJoin::type - dimension; + using dimension = + typename ViewDimensionJoin::type; }; template struct ViewArrayAnalysis { private: - typedef ViewArrayAnalysis nested; - typedef typename nested::dimension nested_dimension; + using nested = ViewArrayAnalysis; + using nested_dimension = typename nested::dimension; public: - typedef typename nested::value_type value_type; - typedef typename nested::const_value_type const_value_type; - typedef typename nested::non_const_value_type non_const_value_type; + using value_type = typename nested::value_type; + using const_value_type = typename nested::const_value_type; + using non_const_value_type = typename nested::non_const_value_type; - typedef typename nested::dynamic_dimension::template prepend<0>::type - dynamic_dimension; + using dynamic_dimension = + typename nested::dynamic_dimension::template prepend<0>::type; - typedef typename nested::static_dimension static_dimension; + using static_dimension = typename nested::static_dimension; - typedef typename ViewDimensionJoin::type - dimension; + using dimension = + typename ViewDimensionJoin::type; }; template struct ViewArrayAnalysis { private: - typedef ViewArrayAnalysis nested; + using nested = ViewArrayAnalysis; public: - typedef typename nested::value_type value_type; - typedef typename nested::const_value_type const_value_type; - typedef typename nested::non_const_value_type non_const_value_type; + using value_type = typename nested::value_type; + using const_value_type = typename nested::const_value_type; + using non_const_value_type = typename nested::non_const_value_type; - typedef typename nested::dynamic_dimension::template prepend<0>::type - dynamic_dimension; + using dynamic_dimension = + typename nested::dynamic_dimension::template prepend<0>::type; - typedef typename nested::static_dimension static_dimension; + using static_dimension = typename nested::static_dimension; - typedef typename ViewDimensionJoin::type - dimension; + using dimension = + typename ViewDimensionJoin::type; }; template struct ViewDataAnalysis { private: - typedef ViewArrayAnalysis array_analysis; + using array_analysis = ViewArrayAnalysis; // ValueType is opportunity for partial specialization. // Must match array analysis when this default template is used. @@ -834,23 +828,23 @@ struct ViewDataAnalysis { ""); public: - typedef void specialize; // No specialization + using specialize = void; // No specialization - typedef typename array_analysis::dimension dimension; - typedef typename array_analysis::value_type value_type; - typedef typename array_analysis::const_value_type const_value_type; - typedef typename array_analysis::non_const_value_type non_const_value_type; + using dimension = typename array_analysis::dimension; + using value_type = typename array_analysis::value_type; + using const_value_type = typename array_analysis::const_value_type; + using non_const_value_type = typename array_analysis::non_const_value_type; // Generate analogous multidimensional array specification type. - typedef typename ViewDataType::type type; - typedef typename ViewDataType::type const_type; - typedef typename ViewDataType::type - non_const_type; + using type = typename ViewDataType::type; + using const_type = typename ViewDataType::type; + using non_const_type = + typename ViewDataType::type; // Generate "flattened" multidimensional array specification type. - typedef type scalar_array_type; - typedef const_type const_scalar_array_type; - typedef non_const_type non_const_scalar_array_type; + using scalar_array_type = type; + using const_scalar_array_type = const_type; + using non_const_scalar_array_type = non_const_type; }; } // namespace Impl @@ -877,9 +871,9 @@ struct ViewOffset< using is_mapping_plugin = std::true_type; using is_regular = std::true_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Kokkos::LayoutLeft array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutLeft; dimension_type m_dim; @@ -1080,9 +1074,21 @@ struct ViewOffset< //---------------------------------------- + // MSVC (16.5.5) + CUDA (10.2) did not generate the defaulted functions + // correct and errors out during compilation. Same for the other places where + // I changed this. +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() : m_dim(dimension_type()) {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { m_dim = src.m_dim; } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + return *this; + } +#else ViewOffset() = default; ViewOffset(const ViewOffset&) = default; ViewOffset& operator=(const ViewOffset&) = default; +#endif template KOKKOS_INLINE_FUNCTION constexpr ViewOffset( @@ -1147,9 +1153,9 @@ struct ViewOffset< using is_mapping_plugin = std::true_type; using is_regular = std::true_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Kokkos::LayoutLeft array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutLeft; dimension_type m_dim; size_type m_stride; @@ -1385,9 +1391,26 @@ struct ViewOffset< }; public: + // MSVC (16.5.5) + CUDA (10.2) did not generate the defaulted functions + // correct and errors out during compilation. Same for the other places where + // I changed this. +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() : m_dim(dimension_type()), m_stride(0) {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + return *this; + } +#else + ViewOffset() = default; ViewOffset(const ViewOffset&) = default; ViewOffset& operator=(const ViewOffset&) = default; +#endif /* Enable padding for trivial scalar types with non-zero trivial scalar size */ @@ -1473,9 +1496,9 @@ struct ViewOffset< using is_mapping_plugin = std::true_type; using is_regular = std::true_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Kokkos::LayoutRight array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutRight; dimension_type m_dim; @@ -1685,10 +1708,23 @@ struct ViewOffset< } //---------------------------------------- + // MSVC (16.5.5) + CUDA (10.2) did not generate the defaulted functions + // correct and errors out during compilation. Same for the other places where + // I changed this. + +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() : m_dim(dimension_type()) {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { m_dim = src.m_dim; } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + return *this; + } +#else ViewOffset() = default; ViewOffset(const ViewOffset&) = default; ViewOffset& operator=(const ViewOffset&) = default; +#endif template KOKKOS_INLINE_FUNCTION constexpr ViewOffset( @@ -1747,9 +1783,9 @@ struct ViewOffset< using is_mapping_plugin = std::true_type; using is_regular = std::true_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Kokkos::LayoutRight array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutRight; dimension_type m_dim; size_type m_stride; @@ -1988,9 +2024,27 @@ struct ViewOffset< }; public: + // MSVC (16.5.5) + CUDA (10.2) did not generate the defaulted functions + // correct and errors out during compilation. Same for the other places where + // I changed this. + +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() : m_dim(dimension_type()), m_stride(0) {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + return *this; + } +#else + ViewOffset() = default; ViewOffset(const ViewOffset&) = default; ViewOffset& operator=(const ViewOffset&) = default; +#endif /* Enable padding for trivial scalar types with non-zero trivial scalar size. */ @@ -2259,15 +2313,15 @@ struct ViewStride<8> { template struct ViewOffset { private: - typedef ViewStride stride_type; + using stride_type = ViewStride; public: using is_mapping_plugin = std::true_type; using is_regular = std::true_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Kokkos::LayoutStride array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutStride; dimension_type m_dim; stride_type m_stride; @@ -2473,10 +2527,28 @@ struct ViewOffset { } //---------------------------------------- + // MSVC (16.5.5) + CUDA (10.2) did not generate the defaulted functions + // correct and errors out during compilation. Same for the other places where + // I changed this. + +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() + : m_dim(dimension_type()), m_stride(stride_type()) {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + return *this; + } +#else ViewOffset() = default; ViewOffset(const ViewOffset&) = default; ViewOffset& operator=(const ViewOffset&) = default; +#endif KOKKOS_INLINE_FUNCTION constexpr ViewOffset(std::integral_constant const&, @@ -2568,10 +2640,10 @@ namespace Impl { */ template struct ViewDataHandle { - typedef typename Traits::value_type value_type; - typedef typename Traits::value_type* handle_type; - typedef typename Traits::value_type& return_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using value_type = typename Traits::value_type; + using handle_type = typename Traits::value_type*; + using return_type = typename Traits::value_type&; + using track_type = Kokkos::Impl::SharedAllocationTracker; KOKKOS_INLINE_FUNCTION static handle_type assign(value_type* arg_data_ptr, @@ -2592,10 +2664,10 @@ struct ViewDataHandle< typename Traits::value_type>::value && std::is_same::value && Traits::memory_traits::is_atomic)>::type> { - typedef typename Traits::value_type value_type; - typedef typename Kokkos::Impl::AtomicViewDataHandle handle_type; - typedef typename Kokkos::Impl::AtomicDataElement return_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using value_type = typename Traits::value_type; + using handle_type = typename Kokkos::Impl::AtomicViewDataHandle; + using return_type = typename Kokkos::Impl::AtomicDataElement; + using track_type = Kokkos::Impl::SharedAllocationTracker; KOKKOS_INLINE_FUNCTION static handle_type assign(value_type* arg_data_ptr, @@ -2623,10 +2695,10 @@ struct ViewDataHandle< Kokkos::CudaUVMSpace>::value)) #endif && (!Traits::memory_traits::is_atomic))>::type> { - typedef typename Traits::value_type value_type; - typedef typename Traits::value_type* KOKKOS_RESTRICT handle_type; - typedef typename Traits::value_type& KOKKOS_RESTRICT return_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using value_type = typename Traits::value_type; + using handle_type = typename Traits::value_type*; + using return_type = typename Traits::value_type&; + using track_type = Kokkos::Impl::SharedAllocationTracker; KOKKOS_INLINE_FUNCTION static value_type* assign(value_type* arg_data_ptr, @@ -2653,11 +2725,10 @@ struct ViewDataHandle< Kokkos::CudaUVMSpace>::value)) #endif && (!Traits::memory_traits::is_atomic))>::type> { - typedef typename Traits::value_type value_type; - typedef typename Traits::value_type* KOKKOS_IMPL_ALIGN_PTR( - KOKKOS_MEMORY_ALIGNMENT) handle_type; - typedef typename Traits::value_type& return_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using value_type = typename Traits::value_type; + using handle_type = typename Traits::value_type*; + using return_type = typename Traits::value_type&; + using track_type = Kokkos::Impl::SharedAllocationTracker; KOKKOS_INLINE_FUNCTION static handle_type assign(value_type* arg_data_ptr, @@ -2695,11 +2766,10 @@ struct ViewDataHandle< Kokkos::CudaUVMSpace>::value)) #endif && (!Traits::memory_traits::is_atomic))>::type> { - typedef typename Traits::value_type value_type; - typedef typename Traits::value_type* KOKKOS_RESTRICT - KOKKOS_IMPL_ALIGN_PTR(KOKKOS_MEMORY_ALIGNMENT) handle_type; - typedef typename Traits::value_type& return_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using value_type = typename Traits::value_type; + using handle_type = typename Traits::value_type*; + using return_type = typename Traits::value_type&; + using track_type = Kokkos::Impl::SharedAllocationTracker; KOKKOS_INLINE_FUNCTION static value_type* assign(value_type* arg_data_ptr, @@ -2748,13 +2818,14 @@ struct ViewValueFunctor; template struct ViewValueFunctor { - typedef Kokkos::RangePolicy> PolicyType; - typedef typename ExecSpace::execution_space Exec; + using PolicyType = Kokkos::RangePolicy>; + using Exec = typename ExecSpace::execution_space; Exec space; ValueType* ptr; size_t n; bool destroy; + std::string name; KOKKOS_INLINE_FUNCTION void operator()(const size_t i) const { @@ -2772,21 +2843,23 @@ struct ViewValueFunctor { ViewValueFunctor& operator=(const ViewValueFunctor&) = default; ViewValueFunctor(ExecSpace const& arg_space, ValueType* const arg_ptr, - size_t const arg_n) - : space(arg_space), ptr(arg_ptr), n(arg_n), destroy(false) {} + size_t const arg_n, std::string arg_name) + : space(arg_space), + ptr(arg_ptr), + n(arg_n), + destroy(false), + name(std::move(arg_name)) {} void execute(bool arg) { destroy = arg; if (!space.in_parallel()) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::beginParallelFor( - (destroy ? "Kokkos::View::destruction" - : "Kokkos::View::initialization"), - 0, &kpID); + auto functor_name = + (destroy ? "Kokkos::View::destruction [" + name + "]" + : "Kokkos::View::initialization [" + name + "]"); + Kokkos::Profiling::beginParallelFor(functor_name.c_str(), 0, &kpID); } -#endif #ifdef KOKKOS_ENABLE_CUDA if (std::is_same::value) { Kokkos::Impl::cuda_prefetch_pointer(space, ptr, sizeof(ValueType) * n, @@ -2797,11 +2870,9 @@ struct ViewValueFunctor { *this, PolicyType(0, n)); closure.execute(); space.fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelFor(kpID); } -#endif } else { for (size_t i = 0; i < n; ++i) operator()(i); } @@ -2814,11 +2885,12 @@ struct ViewValueFunctor { template struct ViewValueFunctor { - typedef Kokkos::RangePolicy> PolicyType; + using PolicyType = Kokkos::RangePolicy>; ExecSpace space; ValueType* ptr; size_t n; + std::string name; KOKKOS_INLINE_FUNCTION void operator()(const size_t i) const { ptr[i] = ValueType(); } @@ -2828,18 +2900,16 @@ struct ViewValueFunctor { ViewValueFunctor& operator=(const ViewValueFunctor&) = default; ViewValueFunctor(ExecSpace const& arg_space, ValueType* const arg_ptr, - size_t const arg_n) - : space(arg_space), ptr(arg_ptr), n(arg_n) {} + size_t const arg_n, std::string arg_name) + : space(arg_space), ptr(arg_ptr), n(arg_n), name(std::move(arg_name)) {} void construct_shared_allocation() { if (!space.in_parallel()) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::beginParallelFor("Kokkos::View::initialization", 0, - &kpID); + Kokkos::Profiling::beginParallelFor( + "Kokkos::View::initialization [" + name + "]", 0, &kpID); } -#endif #ifdef KOKKOS_ENABLE_CUDA if (std::is_same::value) { Kokkos::Impl::cuda_prefetch_pointer(space, ptr, sizeof(ValueType) * n, @@ -2850,11 +2920,9 @@ struct ViewValueFunctor { *this, PolicyType(0, n)); closure.execute(); space.fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelFor(kpID); } -#endif } else { for (size_t i = 0; i < n; ++i) operator()(i); } @@ -2873,11 +2941,10 @@ class ViewMapping< ViewOffset::is_mapping_plugin::value)>::type> { public: - typedef ViewOffset - offset_type; + using offset_type = ViewOffset; - typedef typename ViewDataHandle::handle_type handle_type; + using handle_type = typename ViewDataHandle::handle_type; handle_type m_impl_handle; offset_type m_impl_offset; @@ -2891,7 +2958,7 @@ class ViewMapping< : m_impl_handle(arg_handle), m_impl_offset(arg_offset) {} public: - typedef void printable_label_typedef; + using printable_label_typedef = void; enum { is_managed = Traits::is_managed }; //---------------------------------------- @@ -2986,8 +3053,8 @@ class ViewMapping< return m_impl_offset.span_is_contiguous(); } - typedef typename ViewDataHandle::return_type reference_type; - typedef typename Traits::value_type* pointer_type; + using reference_type = typename ViewDataHandle::return_type; + using pointer_type = typename Traits::value_type*; /** \brief Query raw pointer to memory */ KOKKOS_INLINE_FUNCTION constexpr pointer_type data() const { @@ -3003,9 +3070,12 @@ class ViewMapping< template KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if::value && - !std::is_same::value, + typename std::enable_if<(std::is_integral::value && + // if layout is neither stride nor irregular, + // then just use the handle directly + !(std::is_same::value || + !is_regular::value)), reference_type>::type reference(const I0& i0) const { return m_impl_handle[i0]; @@ -3013,9 +3083,12 @@ class ViewMapping< template KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if::value && - std::is_same::value, + typename std::enable_if<(std::is_integral::value && + // if the layout is strided or irregular, then + // we have to use the offset + (std::is_same::value || + !is_regular::value)), reference_type>::type reference(const I0& i0) const { return m_impl_handle[m_impl_offset(i0)]; @@ -3091,21 +3164,13 @@ class ViewMapping< KOKKOS_DEFAULTED_FUNCTION ~ViewMapping() = default; KOKKOS_INLINE_FUNCTION ViewMapping() : m_impl_handle(), m_impl_offset() {} - KOKKOS_INLINE_FUNCTION ViewMapping(const ViewMapping& rhs) - : m_impl_handle(rhs.m_impl_handle), m_impl_offset(rhs.m_impl_offset) {} - KOKKOS_INLINE_FUNCTION ViewMapping& operator=(const ViewMapping& rhs) { - m_impl_handle = rhs.m_impl_handle; - m_impl_offset = rhs.m_impl_offset; - return *this; - } - KOKKOS_INLINE_FUNCTION ViewMapping(ViewMapping&& rhs) - : m_impl_handle(rhs.m_impl_handle), m_impl_offset(rhs.m_impl_offset) {} - KOKKOS_INLINE_FUNCTION ViewMapping& operator=(ViewMapping&& rhs) { - m_impl_handle = rhs.m_impl_handle; - m_impl_offset = rhs.m_impl_offset; - return *this; - } + KOKKOS_DEFAULTED_FUNCTION ViewMapping(const ViewMapping&) = default; + KOKKOS_DEFAULTED_FUNCTION ViewMapping& operator=(const ViewMapping&) = + default; + + KOKKOS_DEFAULTED_FUNCTION ViewMapping(ViewMapping&&) = default; + KOKKOS_DEFAULTED_FUNCTION ViewMapping& operator=(ViewMapping&&) = default; //---------------------------------------- @@ -3113,7 +3178,7 @@ class ViewMapping< KOKKOS_INLINE_FUNCTION static constexpr size_t memory_span( typename Traits::array_layout const& arg_layout) { - typedef std::integral_constant padding; + using padding = std::integral_constant; return (offset_type(padding(), arg_layout).span() * MemorySpanSize + MemorySpanMask) & ~size_t(MemorySpanMask); @@ -3144,43 +3209,39 @@ class ViewMapping< Kokkos::Impl::SharedAllocationRecord<>* allocate_shared( Kokkos::Impl::ViewCtorProp const& arg_prop, typename Traits::array_layout const& arg_layout) { - typedef Kokkos::Impl::ViewCtorProp alloc_prop; + using alloc_prop = Kokkos::Impl::ViewCtorProp; - typedef typename alloc_prop::execution_space execution_space; - typedef typename Traits::memory_space memory_space; - typedef typename Traits::value_type value_type; - typedef ViewValueFunctor functor_type; - typedef Kokkos::Impl::SharedAllocationRecord - record_type; + using execution_space = typename alloc_prop::execution_space; + using memory_space = typename Traits::memory_space; + using value_type = typename Traits::value_type; + using functor_type = ViewValueFunctor; + using record_type = + Kokkos::Impl::SharedAllocationRecord; // Query the mapping for byte-size of allocation. // If padding is allowed then pass in sizeof value type // for padding computation. - typedef std::integral_constant< - unsigned, alloc_prop::allow_padding ? sizeof(value_type) : 0> - padding; + using padding = std::integral_constant< + unsigned int, alloc_prop::allow_padding ? sizeof(value_type) : 0>; m_impl_offset = offset_type(padding(), arg_layout); const size_t alloc_size = (m_impl_offset.span() * MemorySpanSize + MemorySpanMask) & ~size_t(MemorySpanMask); - + const std::string& alloc_name = + static_cast const&>( + arg_prop) + .value; // Create shared memory tracking record with allocate memory from the memory // space record_type* const record = record_type::allocate( - ((Kokkos::Impl::ViewCtorProp const&)arg_prop).value, - ((Kokkos::Impl::ViewCtorProp const&)arg_prop).value, - alloc_size); + static_cast const&>( + arg_prop) + .value, + alloc_name, alloc_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (alloc_size) { -#endif - m_impl_handle = - handle_type(reinterpret_cast(record->data())); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - } -#endif + m_impl_handle = handle_type(reinterpret_cast(record->data())); // Only initialize if the allocation is non-zero. // May be zero if one of the dimensions is zero. @@ -3189,9 +3250,10 @@ class ViewMapping< // The ViewValueFunctor has both value construction and destruction // operators. record->m_destroy = functor_type( - ((Kokkos::Impl::ViewCtorProp const&)arg_prop) + static_cast const&>( + arg_prop) .value, - (value_type*)m_impl_handle, m_impl_offset.span()); + (value_type*)m_impl_handle, m_impl_offset.span(), alloc_name); // Construct values record->m_destroy.construct_shared_allocation(); @@ -3281,9 +3343,9 @@ class ViewMapping< is_assignable_dimension && is_assignable_layout }; - typedef Kokkos::Impl::SharedAllocationTracker TrackType; - typedef ViewMapping DstType; - typedef ViewMapping SrcType; + using TrackType = Kokkos::Impl::SharedAllocationTracker; + using DstType = ViewMapping; + using SrcType = ViewMapping; KOKKOS_INLINE_FUNCTION static void assign(DstType& dst, const SrcType& src, @@ -3302,11 +3364,11 @@ class ViewMapping< is_assignable_layout, "View assignment must have compatible layout or have rank <= 1"); - typedef typename DstType::offset_type dst_offset_type; + using dst_offset_type = typename DstType::offset_type; if (size_t(DstTraits::dimension::rank_dynamic) < size_t(SrcTraits::dimension::rank_dynamic)) { - typedef typename DstTraits::dimension dst_dim; + using dst_dim = typename DstTraits::dimension; bool assignable = ((1 > DstTraits::dimension::rank_dynamic && 1 <= SrcTraits::dimension::rank_dynamic) ? dst_dim::ArgN0 == src.dimension_0() @@ -3403,9 +3465,9 @@ class ViewMapping< is_assignable_dimension }; - typedef Kokkos::Impl::SharedAllocationTracker TrackType; - typedef ViewMapping DstType; - typedef ViewMapping SrcType; + using TrackType = Kokkos::Impl::SharedAllocationTracker; + using DstType = ViewMapping; + using SrcType = ViewMapping; KOKKOS_INLINE_FUNCTION static bool assignable_layout_check(DstType&, @@ -3455,11 +3517,11 @@ class ViewMapping< if (!assignable_layout) Kokkos::abort("View assignment must have compatible layouts\n"); - typedef typename DstType::offset_type dst_offset_type; + using dst_offset_type = typename DstType::offset_type; if (size_t(DstTraits::dimension::rank_dynamic) < size_t(SrcTraits::dimension::rank_dynamic)) { - typedef typename DstTraits::dimension dst_dim; + using dst_dim = typename DstTraits::dimension; bool assignable = ((1 > DstTraits::dimension::rank_dynamic && 1 <= SrcTraits::dimension::rank_dynamic) ? dst_dim::ArgN0 == src.dimension_0() @@ -3609,7 +3671,7 @@ struct ViewMapping< }; // Subview's layout - typedef typename std::conditional< + using array_layout = typename std::conditional< ( /* Same array layout IF */ (rank == 0) /* output rank zero */ || SubviewLegalArgsCompileTime::value) // replace input rank ), - typename SrcTraits::array_layout, Kokkos::LayoutStride>::type - array_layout; + typename SrcTraits::array_layout, Kokkos::LayoutStride>::type; - typedef typename SrcTraits::value_type value_type; + using value_type = typename SrcTraits::value_type; using data_type = typename SubViewDataType::type, Args...>::type; - // typedef typename std::conditional< rank == 0 , value_type , - // typename std::conditional< rank == 1 , value_type * , - // typename std::conditional< rank == 2 , value_type ** , - // typename std::conditional< rank == 3 , value_type *** , - // typename std::conditional< rank == 4 , value_type **** , - // typename std::conditional< rank == 5 , value_type ***** , - // typename std::conditional< rank == 6 , value_type ****** , - // typename std::conditional< rank == 7 , value_type ******* , - // value_type ******** - // >::type >::type >::type >::type >::type >::type >::type >::type - // data_type ; public: - typedef Kokkos::ViewTraits - traits_type; + using traits_type = Kokkos::ViewTraits; - typedef Kokkos::View - type; + using type = + Kokkos::View; template struct apply { static_assert(Kokkos::Impl::is_memory_traits::value, ""); - typedef Kokkos::ViewTraits - traits_type; + using traits_type = + Kokkos::ViewTraits; - typedef Kokkos::View - type; + using type = Kokkos::View; }; // The presumed type is 'ViewMapping< traits_type , void >' @@ -3682,9 +3730,9 @@ struct ViewMapping< "Subview destination type must be compatible with subview " "derived type"); - typedef ViewMapping DstType; + using DstType = ViewMapping; - typedef typename DstType::offset_type dst_offset_type; + using dst_offset_type = typename DstType::offset_type; const SubviewExtents extents(src.m_impl_offset.m_dim, args...); @@ -3774,7 +3822,7 @@ struct OperatorBoundsErrorOnDevice { /* Check #2: does the ViewMapping have the printable_label_typedef defined? See above that only the non-specialized standard-layout ViewMapping has this defined by default. - The existence of this typedef indicates the existence of MapType::is_managed + The existence of this alias indicates the existence of MapType::is_managed */ template struct has_printable_label_typedef : public std::false_type {}; @@ -3798,15 +3846,16 @@ KOKKOS_INLINE_FUNCTION void operator_bounds_error_on_device(MapType const& map, #endif // ! defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) -template +template KOKKOS_INLINE_FUNCTION void view_verify_operator_bounds( - Kokkos::Impl::SharedAllocationTracker const& tracker, const MapType& map, + Kokkos::Impl::ViewTracker const& tracker, const MapType& map, Args... args) { if (!view_verify_operator_bounds<0>(map, args...)) { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) enum { LEN = 1024 }; char buffer[LEN]; - const std::string label = tracker.template get_label(); + const std::string label = + tracker.m_tracker.template get_label(); int n = snprintf(buffer, LEN, "View bounds error of view %s (", label.c_str()); view_error_operator_bounds<0>(buffer + n, LEN - n, map, args...); @@ -3817,7 +3866,7 @@ KOKKOS_INLINE_FUNCTION void view_verify_operator_bounds( a corresponding SharedAllocationHeader containing a label). This check should cover the case of Views that don't have the Unmanaged trait but were initialized by pointer. */ - if (tracker.has_record()) { + if (tracker.m_tracker.has_record()) { operator_bounds_error_on_device( map, has_printable_label_typedef()); } else { diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewTile.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewTile.hpp deleted file mode 100644 index 342927ef77..0000000000 --- a/lib/kokkos/core/src/impl/Kokkos_ViewTile.hpp +++ /dev/null @@ -1,222 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_EXPERIMENTAL_VIEWTILE_HPP -#define KOKKOS_EXPERIMENTAL_VIEWTILE_HPP - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -// =========================================================================== -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - -// View mapping for rank two tiled array - -template -struct is_layout_tile : public std::false_type {}; - -template -struct is_layout_tile > - : public std::true_type {}; - -template -struct ViewOffset< - Dimension, Layout, - typename std::enable_if<((Dimension::rank == 2) && - is_layout_tile::value)>::type> { - public: - enum { SHIFT_0 = Kokkos::Impl::integral_power_of_two(Layout::N0) }; - enum { SHIFT_1 = Kokkos::Impl::integral_power_of_two(Layout::N1) }; - enum { SHIFT_T = SHIFT_0 + SHIFT_1 }; - enum { MASK_0 = Layout::N0 - 1 }; - enum { MASK_1 = Layout::N1 - 1 }; - - // Is an irregular layout that does not have uniform striding for each index. - using is_mapping_plugin = std::true_type; - using is_regular = std::false_type; - - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Layout array_layout; - - dimension_type m_dim; - size_type m_tile_N0; - - //---------------------------------------- - - // Only instantiated for rank 2 - template - KOKKOS_INLINE_FUNCTION constexpr size_type operator()(I0 const& i0, - I1 const& i1, int = 0, - int = 0, int = 0, - int = 0, int = 0, - int = 0) const { - return /* ( ( Tile offset ) * Tile size ) */ - (((i0 >> SHIFT_0) + m_tile_N0 * (i1 >> SHIFT_1)) << SHIFT_T) + - /* ( Offset within tile ) */ - ((i0 & MASK_0) + ((i1 & MASK_1) << SHIFT_0)); - } - - //---------------------------------------- - - KOKKOS_INLINE_FUNCTION constexpr array_layout layout() const { - return array_layout(m_dim.N0, m_dim.N1); - } - - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_0() const { - return m_dim.N0; - } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_1() const { - return m_dim.N1; - } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_2() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_3() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_4() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_5() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_6() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_7() const { return 1; } - - KOKKOS_INLINE_FUNCTION constexpr size_type size() const { - return m_dim.N0 * m_dim.N1; - } - - // Strides are meaningless due to irregularity - KOKKOS_INLINE_FUNCTION constexpr size_type stride_0() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_1() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_2() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_3() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_4() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_5() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_6() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_7() const { return 0; } - - KOKKOS_INLINE_FUNCTION constexpr size_type span() const { - // ( TileDim0 * ( TileDim1 ) ) * TileSize - return (m_tile_N0 * ((m_dim.N1 + MASK_1) >> SHIFT_1)) << SHIFT_T; - } - - KOKKOS_INLINE_FUNCTION constexpr bool span_is_contiguous() const { - // Only if dimensions align with tile size - return (m_dim.N0 & MASK_0) == 0 && (m_dim.N1 & MASK_1) == 0; - } - - //---------------------------------------- - - KOKKOS_DEFAULTED_FUNCTION ~ViewOffset() = default; - KOKKOS_DEFAULTED_FUNCTION ViewOffset() = default; - KOKKOS_DEFAULTED_FUNCTION ViewOffset(const ViewOffset&) = default; - KOKKOS_DEFAULTED_FUNCTION ViewOffset& operator=(const ViewOffset&) = default; - - template - KOKKOS_INLINE_FUNCTION constexpr ViewOffset( - std::integral_constant const&, - array_layout const arg_layout) - : m_dim(arg_layout.dimension[0], arg_layout.dimension[1], 0, 0, 0, 0, 0, - 0), - m_tile_N0((arg_layout.dimension[0] + MASK_0) >> - SHIFT_0 /* number of tiles in first dimension */) {} -}; - -template -struct ViewMapping< - void, Kokkos::ViewTraits, P...>, - Kokkos::LayoutTileLeft, iType0, iType1> { - typedef Kokkos::LayoutTileLeft src_layout; - typedef Kokkos::ViewTraits src_traits; - typedef Kokkos::ViewTraits traits; - typedef Kokkos::View type; - - KOKKOS_INLINE_FUNCTION static void assign( - ViewMapping& dst, const ViewMapping& src, - const src_layout&, const size_t i_tile0, const size_t i_tile1) { - typedef ViewMapping dst_map_type; - typedef ViewMapping src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; - - dst = dst_map_type( - dst_handle_type(src.m_impl_handle + - ((i_tile0 + src.m_impl_offset.m_tile_N0 * i_tile1) - << src_offset_type::SHIFT_T)), - dst_offset_type()); - } -}; - -#endif // KOKKOS_ENABLE_DEPRECATED_CODE -// =============================================================================== - -} /* namespace Impl */ -} /* namespace Kokkos */ - -namespace Kokkos { - -// ============================================================================== -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - -template -KOKKOS_INLINE_FUNCTION Kokkos::View tile_subview( - const Kokkos::View, P...>& src, - const size_t i_tile0, const size_t i_tile1) { - // Force the specialized ViewMapping for extracting a tile - // by using the first subview argument as the layout. - typedef Kokkos::LayoutTileLeft SrcLayout; - - return Kokkos::View(src, SrcLayout(), i_tile0, - i_tile1); -} - -#endif // KOKKOS_ENABLE_DEPRECATED_CODE -// =============================================================================== - -} /* namespace Kokkos */ - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -#endif /* #ifndef KOKKOS_EXPERIENTAL_VIEWTILE_HPP */ diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewTracker.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewTracker.hpp new file mode 100644 index 0000000000..9cfe9d7914 --- /dev/null +++ b/lib/kokkos/core/src/impl/Kokkos_ViewTracker.hpp @@ -0,0 +1,130 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_VIEW_TRACKER_HPP +#define KOKKOS_VIEW_TRACKER_HPP + +namespace Kokkos { + +template +class View; + +namespace Impl { + +/* + * \class ViewTracker + * \brief template class to wrap the shared allocation tracker + * + * \section This class is templated on the View and provides + * constructors that match the view. The constructors and assignments + * from view will externalize the logic needed to enable/disable + * ref counting to provide a single gate to enable further developments + * which may hing on the same logic. + * + */ +template +struct ViewTracker { + using track_type = Kokkos::Impl::SharedAllocationTracker; + using view_traits = typename ParentView::traits; + + track_type m_tracker; + + KOKKOS_INLINE_FUNCTION + ViewTracker() : m_tracker() {} + + KOKKOS_INLINE_FUNCTION + ViewTracker(const ViewTracker& vt) noexcept + : m_tracker(vt.m_tracker, view_traits::is_managed) {} + + KOKKOS_INLINE_FUNCTION + explicit ViewTracker(const ParentView& vt) noexcept : m_tracker() { + assign(vt); + } + + template + KOKKOS_INLINE_FUNCTION explicit ViewTracker( + const View& vt) noexcept + : m_tracker() { + assign(vt); + } + + template + KOKKOS_INLINE_FUNCTION void assign(const View& vt) noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (view_traits::is_managed && + Kokkos::Impl::SharedAllocationRecord::tracking_enabled()) { + m_tracker.assign_direct(vt.m_track.m_tracker); + } else { + m_tracker.assign_force_disable(vt.m_track.m_tracker); + } +#else + m_tracker.assign_force_disable(vt.m_track.m_tracker); +#endif + } + + KOKKOS_INLINE_FUNCTION + ViewTracker& operator=(const ViewTracker& rhs) noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (view_traits::is_managed && + Kokkos::Impl::SharedAllocationRecord::tracking_enabled()) { + m_tracker.assign_direct(rhs.m_tracker); + } else { + m_tracker.assign_force_disable(rhs.m_tracker); + } +#else + m_tracker.assign_force_disable(rhs.m_tracker); +#endif + return *this; + } + + KOKKOS_INLINE_FUNCTION + explicit ViewTracker(const track_type& tt) noexcept + : m_tracker(tt, view_traits::is_managed) {} +}; + +} // namespace Impl + +} // namespace Kokkos + +#endif // KOKKOS_VIEW_TRACKER_HPP diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewUniformType.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewUniformType.hpp index 7ce3a532b4..2eb8fc9e3b 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewUniformType.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewUniformType.hpp @@ -45,77 +45,77 @@ #ifndef KOKKOS_EXPERIMENTAL_VIEWUNIFORMTYPE_HPP #define KOKKOS_EXPERIMENTAL_VIEWUNIFORMTYPE_HPP +#include + namespace Kokkos { namespace Impl { template struct ViewScalarToDataType { - typedef typename ViewScalarToDataType::type* type; + using type = typename ViewScalarToDataType::type *; }; template struct ViewScalarToDataType { - typedef ScalarType type; + using type = ScalarType; }; template struct ViewUniformLayout { - typedef LayoutType array_layout; + using array_layout = LayoutType; }; template struct ViewUniformLayout { - typedef Kokkos::LayoutLeft array_layout; + using array_layout = Kokkos::LayoutLeft; }; template <> struct ViewUniformLayout { - typedef Kokkos::LayoutLeft array_layout; + using array_layout = Kokkos::LayoutLeft; }; template struct ViewUniformType { - typedef typename ViewType::data_type data_type; - typedef typename std::add_const::type - const_data_type; - typedef typename ViewScalarToDataType::type runtime_data_type; - typedef typename ViewScalarToDataType< + using data_type = typename ViewType::data_type; + using const_data_type = + typename std::add_const::type; + using runtime_data_type = + typename ViewScalarToDataType::type; + using runtime_const_data_type = typename ViewScalarToDataType< typename std::add_const::type, - ViewType::rank>::type runtime_const_data_type; + ViewType::rank>::type; - typedef typename ViewUniformLayout::array_layout array_layout; + using array_layout = + typename ViewUniformLayout::array_layout; - typedef typename ViewType::device_type device_type; - typedef typename Kokkos::Device - anonymous_device_type; + using device_type = typename ViewType::device_type; + using anonymous_device_type = + typename Kokkos::Device; - typedef typename Kokkos::MemoryTraits memory_traits; - typedef Kokkos::View - type; - typedef Kokkos::View - const_type; - typedef Kokkos::View - runtime_type; - typedef Kokkos::View - runtime_const_type; + using memory_traits = typename Kokkos::MemoryTraits; + using type = + Kokkos::View; + using const_type = + Kokkos::View; + using runtime_type = + Kokkos::View; + using runtime_const_type = Kokkos::View; - typedef Kokkos::View - nomemspace_type; - typedef Kokkos::View - const_nomemspace_type; - typedef Kokkos::View - runtime_nomemspace_type; - typedef Kokkos::View - runtime_const_nomemspace_type; + using nomemspace_type = Kokkos::View; + using const_nomemspace_type = + Kokkos::View; + using runtime_nomemspace_type = + Kokkos::View; + using runtime_const_nomemspace_type = + Kokkos::View; }; } // namespace Impl } // namespace Kokkos diff --git a/lib/kokkos/core/src/impl/Kokkos_Volatile_Load.hpp b/lib/kokkos/core/src/impl/Kokkos_Volatile_Load.hpp index 3626a1f17c..4af26dcc91 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Volatile_Load.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Volatile_Load.hpp @@ -42,6 +42,8 @@ //@HEADER */ +#include + #if defined(KOKKOS_ATOMIC_HPP) && !defined(KOKKOS_VOLATILE_LOAD_HPP) #define KOKKOS_VOLATILE_LOAD_HPP @@ -62,10 +64,10 @@ namespace Kokkos { template KOKKOS_FORCEINLINE_FUNCTION T volatile_load(T const volatile* const src_ptr) { - typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; - typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; - typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; - typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; + typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; // NOLINT(modernize-use-using) + typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; // NOLINT(modernize-use-using) + typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; // NOLINT(modernize-use-using) + typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; // NOLINT(modernize-use-using) enum { NUM_8 = sizeof(T), @@ -114,10 +116,10 @@ KOKKOS_FORCEINLINE_FUNCTION T volatile_load(T const volatile* const src_ptr) { template KOKKOS_FORCEINLINE_FUNCTION void volatile_store( T volatile* const dst_ptr, T const volatile* const src_ptr) { - typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; - typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; - typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; - typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; + typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; // NOLINT(modernize-use-using) + typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; // NOLINT(modernize-use-using) + typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; // NOLINT(modernize-use-using) + typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; // NOLINT(modernize-use-using) enum { NUM_8 = sizeof(T), @@ -162,10 +164,10 @@ KOKKOS_FORCEINLINE_FUNCTION void volatile_store( template KOKKOS_FORCEINLINE_FUNCTION void volatile_store(T volatile* const dst_ptr, T const* const src_ptr) { - typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; - typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; - typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; - typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; + typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; // NOLINT(modernize-use-using) + typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; // NOLINT(modernize-use-using) + typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; // NOLINT(modernize-use-using) + typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; // NOLINT(modernize-use-using) enum { NUM_8 = sizeof(T), diff --git a/lib/kokkos/core/unit_test/CMakeLists.txt b/lib/kokkos/core/unit_test/CMakeLists.txt index dec2f5e920..d87acdadfd 100644 --- a/lib/kokkos/core/unit_test/CMakeLists.txt +++ b/lib/kokkos/core/unit_test/CMakeLists.txt @@ -12,18 +12,20 @@ KOKKOS_ADD_TEST_LIBRARY( HEADERS ${GTEST_SOURCE_DIR}/gtest/gtest.h SOURCES ${GTEST_SOURCE_DIR}/gtest/gtest-all.cc ) -#These can be direct, no need for Tribits or Kokkos wrappers -# WORKAROUND FOR HIPCC -IF(Kokkos_ENABLE_HIP) - TARGET_COMPILE_DEFINITIONS(kokkos_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0 --amdgpu-target=gfx906") -ELSE() - TARGET_COMPILE_DEFINITIONS(kokkos_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0") -ENDIF() +# avoid deprecation warnings from MSVC +TARGET_COMPILE_DEFINITIONS(kokkos_gtest PUBLIC GTEST_HAS_TR1_TUPLE=0 GTEST_HAS_PTHREAD=0) TARGET_INCLUDE_DIRECTORIES(kokkos_gtest PUBLIC ${GTEST_SOURCE_DIR}) #Gtest minimally requires C++11 +IF(NOT (Kokkos_ENABLE_CUDA AND WIN32)) TARGET_COMPILE_FEATURES(kokkos_gtest PUBLIC cxx_std_11) +ENDIF() + +# Suppress clang-tidy diagnostics on code that we do not have control over +IF(CMAKE_CXX_CLANG_TIDY) + SET_TARGET_PROPERTIES(kokkos_gtest PROPERTIES CXX_CLANG_TIDY "") +ENDIF() # # Define Incremental Testing Feature Levels @@ -63,8 +65,10 @@ foreach(Tag Threads;Serial;OpenMP;Cuda;HPX;OpenMPTarget;HIP) endif() string(TOLOWER ${Tag} dir) - SET(${Tag}_SOURCES - UnitTestMainInit.cpp + # Needed to split this for Windows NVCC, since it ends up putting everything on the + # command line in an intermediate compilation step even if CMake generated a response + # file. That then exceeded the shell comand line max length. + SET(${Tag}_SOURCES1 ${dir}/Test${Tag}_AtomicOperations_int.cpp ${dir}/Test${Tag}_AtomicOperations_unsignedint.cpp ${dir}/Test${Tag}_AtomicOperations_longint.cpp @@ -99,6 +103,9 @@ foreach(Tag Threads;Serial;OpenMP;Cuda;HPX;OpenMPTarget;HIP) ${dir}/Test${Tag}_Reductions_DeviceView.cpp ${dir}/Test${Tag}_Scan.cpp ${dir}/Test${Tag}_SharedAlloc.cpp + ) + + SET(${Tag}_SOURCES2 ${dir}/Test${Tag}_SubView_a.cpp ${dir}/Test${Tag}_SubView_b.cpp ${dir}/Test${Tag}_SubView_c01.cpp @@ -134,10 +141,13 @@ foreach(Tag Threads;Serial;OpenMP;Cuda;HPX;OpenMPTarget;HIP) ${dir}/Test${Tag}_View_64bit.cpp ${dir}/Test${Tag}_ViewResize.cpp ) + SET(${Tag}_SOURCES ${${Tag}_SOURCES1} ${${Tag}_SOURCES2}) + endforeach() if(Kokkos_ENABLE_OPENMPTARGET) list(REMOVE_ITEM OpenMPTarget_SOURCES + openmptarget/TestOpenMPTarget_AtomicOperations_complexfloat.cpp openmptarget/TestOpenMPTarget_AtomicOperations_complexdouble.cpp openmptarget/TestOpenMPTarget_MDRange_a.cpp openmptarget/TestOpenMPTarget_MDRange_b.cpp @@ -151,28 +161,31 @@ if(Kokkos_ENABLE_OPENMPTARGET) openmptarget/TestOpenMPTarget_ViewAPI_e.cpp openmptarget/TestOpenMPTarget_ViewMapping_subview.cpp openmptarget/TestOpenMPTarget_ViewOfClass.cpp - ) -endif() -if(Kokkos_ENABLE_HIP) - # FIXME Linktime error: undefined reference to - # Kokkos::Impl::ViewDimensin<0ul, ...>(unsigned int, ...) - list(REMOVE_ITEM Serial_SOURCES serial/TestSerial_ViewLayoutStrideAssignment.cpp) + ) endif() if(Kokkos_ENABLE_SERIAL) KOKKOS_ADD_EXECUTABLE_AND_TEST( - UnitTest_Serial + UnitTest_Serial1 SOURCES - ${Serial_SOURCES} + UnitTestMainInit.cpp + ${Serial_SOURCES1} serial/TestSerial_Task.cpp ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_Serial2 + SOURCES + UnitTestMainInit.cpp + ${Serial_SOURCES2} + ) endif() if(Kokkos_ENABLE_PTHREAD) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_Threads SOURCES ${Threads_SOURCES} + UnitTestMainInit.cpp ) endif() @@ -180,6 +193,7 @@ if(Kokkos_ENABLE_OPENMP) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_OpenMP SOURCES + UnitTestMainInit.cpp ${OpenMP_SOURCES} openmp/TestOpenMP_Task.cpp ) @@ -195,6 +209,7 @@ if(Kokkos_ENABLE_HPX) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_HPX SOURCES + UnitTestMainInit.cpp ${HPX_SOURCES} hpx/TestHPX_Task.cpp ) @@ -204,21 +219,60 @@ if(Kokkos_ENABLE_HPX) UnitTestMain.cpp hpx/TestHPX_InterOp.cpp ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HPX_IndependentInstances + SOURCES + UnitTestMain.cpp + hpx/TestHPX_IndependentInstances.cpp + ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HPX_IndependentInstancesDelayedExecution + SOURCES + UnitTestMain.cpp + hpx/TestHPX_IndependentInstancesDelayedExecution.cpp + ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HPX_IndependentInstancesInstanceIds + SOURCES + UnitTestMain.cpp + hpx/TestHPX_IndependentInstancesInstanceIds.cpp + ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HPX_IndependentInstancesRefCounting + SOURCES + UnitTestMain.cpp + hpx/TestHPX_IndependentInstancesRefCounting.cpp + ) endif() if(Kokkos_ENABLE_OPENMPTARGET) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_OpenMPTarget SOURCES + UnitTestMainInit.cpp ${OpenMPTarget_SOURCES} ) endif() if(Kokkos_ENABLE_CUDA) - KOKKOS_ADD_EXECUTABLE_AND_TEST( - UnitTest_Cuda + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_Cuda1 + SOURCES + UnitTestMainInit.cpp + ${Cuda_SOURCES1} + ) + + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_Cuda2 + SOURCES + UnitTestMainInit.cpp + ${Cuda_SOURCES2} + ) + + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_Cuda3 SOURCES - ${Cuda_SOURCES} + UnitTestMainInit.cpp cuda/TestCuda_Task.cpp cuda/TestCudaHostPinned_SharedAlloc.cpp cuda/TestCudaHostPinned_ViewCopy.cpp @@ -244,6 +298,7 @@ if(Kokkos_ENABLE_CUDA) cuda/TestCuda_DebugSerialExecution.cpp cuda/TestCuda_DebugPinUVMSpace.cpp ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_CudaInterOpInit SOURCES @@ -262,25 +317,16 @@ if(Kokkos_ENABLE_HIP) # FIXME_HIP LIST(REMOVE_ITEM HIP_SOURCES hip/TestHIP_AtomicOperations_complexdouble.cpp - hip/TestHIP_Other.cpp - hip/TestHIP_Reductions_DeviceView.cpp - hip/TestHIP_Team.cpp - hip/TestHIP_TeamReductionScan.cpp - hip/TestHIP_TeamScratch.cpp hip/TestHIP_TeamTeamSize.cpp hip/TestHIP_TeamVectorRange.cpp - hip/TestHIP_UniqueToken.cpp - hip/TestHIP_ViewAPI_a.cpp - hip/TestHIP_ViewAPI_b.cpp - hip/TestHIP_ViewAPI_e.cpp - hip/TestHIP_ViewLayoutStrideAssignment.cpp - hip/TestHIP_WorkGraph.cpp ) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_HIP SOURCES + UnitTestMainInit.cpp ${HIP_SOURCES} + hip/TestHIP_ScanUnit.cpp hip/TestHIPHostPinned_ViewAPI_a.cpp hip/TestHIPHostPinned_ViewAPI_b.cpp hip/TestHIPHostPinned_ViewAPI_c.cpp @@ -297,6 +343,12 @@ if(Kokkos_ENABLE_HIP) UnitTestMain.cpp hip/TestHIP_InterOp_Init.cpp ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HIPInterOpStreams + SOURCES + UnitTestMain.cpp + hip/TestHIP_InterOp_Streams.cpp + ) endif() SET(DEFAULT_DEVICE_SOURCES @@ -326,6 +378,15 @@ KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_PushFinalizeHook.cpp ) +# This test is intended for development and debugging by putting code +# into TestDefaultDeviceDevelop.cpp. By default its empty. +KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_Develop + SOURCES + UnitTestMainInit.cpp + default/TestDefaultDeviceDevelop.cpp +) + # This test is special, because it passes exactly when it prints the # message "PASSED: I am the custom std::terminate handler.", AND calls # std::terminate. This means that we can't use @@ -344,6 +405,36 @@ KOKKOS_ADD_ADVANCED_TEST( UnitTest_PushFinalizeHook_terminate ALWAYS_FAIL_ON_ZERO_RETURN ) + if(KOKKOS_ENABLE_TUNING) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_TuningBasics + SOURCES + tools/TestTuning.cpp + ) + endif() + if(KOKKOS_ENABLE_LIBDL) + + KOKKOS_ADD_LIBRARY( + printer-tool SHARED + SOURCES tools/printing-tool.cpp + ) + + KOKKOS_ADD_TEST_EXECUTABLE( + ProfilingAllCalls + tools/TestAllCalls.cpp + ) + + set(ADDRESS_REGEX "0x[0-9a-f]*") + set(MEMSPACE_REGEX "[HC][ou][sd][ta][a-zA-Z]*") + set(SIZE_REGEX "[0-9]*") + set(SKIP_SCRATCH_INITIALIZATION_REGEX ".*") + + KOKKOS_ADD_TEST( NAME ProfilingTestLibraryLoad + EXE ProfilingAllCalls + TOOL printer-tool + PASS_REGULAR_EXPRESSION "kokkosp_init_library::kokkosp_allocate_data:${MEMSPACE_REGEX}:source:${ADDRESS_REGEX}:40::kokkosp_begin_parallel_for:Kokkos::View::initialization [[]source]:0:0::kokkosp_end_parallel_for:0::kokkosp_allocate_data:${MEMSPACE_REGEX}:destination:${ADDRESS_REGEX}:40::kokkosp_begin_parallel_for:Kokkos::View::initialization [[]destination]:0:0::kokkosp_end_parallel_for:0::kokkosp_begin_deep_copy:${MEMSPACE_REGEX}:destination:${ADDRESS_REGEX}:${MEMSPACE_REGEX}:source:${ADDRESS_REGEX}:40::kokkosp_end_deep_copy::kokkosp_begin_parallel_for:parallel_for:${SIZE_REGEX}:0::kokkosp_end_parallel_for:0::kokkosp_begin_parallel_reduce:parallel_reduce:0:1${SKIP_SCRATCH_INITIALIZATION_REGEX}::kokkosp_end_parallel_reduce:1::kokkosp_begin_parallel_scan:parallel_scan:${SIZE_REGEX}:2::kokkosp_end_parallel_scan:2::kokkosp_push_profile_region:push_region::kokkosp_pop_profile_region::kokkosp_create_profile_section:created_section:3::kokkosp_start_profile_section:3::kokkosp_stop_profile_section:3::kokkosp_destroy_profile_section:3::kokkosp_profile_event:profiling_event::kokkosp_deallocate_data:${MEMSPACE_REGEX}:destination:${ADDRESS_REGEX}:40::kokkosp_deallocate_data:${MEMSPACE_REGEX}:source:${ADDRESS_REGEX}:40::kokkosp_finalize_library::" + ) + endif() #KOKKOS_ENABLE_LIBDL if(NOT KOKKOS_HAS_TRILINOS) KOKKOS_ADD_TEST_EXECUTABLE( StackTraceTestExec @@ -433,3 +524,5 @@ KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_CTestDevice SOURCES UnitTestMain.cpp TestCTestDevice.cpp ) + +add_subdirectory(headers_self_contained) diff --git a/lib/kokkos/core/unit_test/TestAggregate.hpp b/lib/kokkos/core/unit_test/TestAggregate.hpp index 1f812cc11e..3151143a6f 100644 --- a/lib/kokkos/core/unit_test/TestAggregate.hpp +++ b/lib/kokkos/core/unit_test/TestAggregate.hpp @@ -57,18 +57,18 @@ namespace Test { template void TestViewAggregate() { - typedef Kokkos::Array value_type; - typedef Kokkos::Impl::ViewDataAnalysis - analysis_1d; + using value_type = Kokkos::Array; + using analysis_1d = + Kokkos::Impl::ViewDataAnalysis; static_assert( std::is_same >::value, ""); - typedef Kokkos::ViewTraits a32_traits; - typedef Kokkos::ViewTraits - flat_traits; + using a32_traits = Kokkos::ViewTraits; + using flat_traits = + Kokkos::ViewTraits; static_assert( std::is_same >::value, @@ -84,8 +84,8 @@ void TestViewAggregate() { static_assert(flat_traits::rank_dynamic == 2, ""); static_assert(flat_traits::dimension::N2 == 32, ""); - typedef Kokkos::View **, DeviceType> a32_type; - typedef typename a32_type::array_type a32_flat_type; + using a32_type = Kokkos::View **, DeviceType>; + using a32_flat_type = typename a32_type::array_type; static_assert(std::is_same::value, ""); diff --git a/lib/kokkos/core/unit_test/TestAtomic.hpp b/lib/kokkos/core/unit_test/TestAtomic.hpp index 809f9dc01f..1051ae20f6 100644 --- a/lib/kokkos/core/unit_test/TestAtomic.hpp +++ b/lib/kokkos/core/unit_test/TestAtomic.hpp @@ -160,9 +160,9 @@ std::ostream& operator<<(std::ostream& os, const SuperScalar& dt) { template struct ZeroFunctor { - typedef DEVICE_TYPE execution_space; - typedef typename Kokkos::View type; - typedef typename Kokkos::View::HostMirror h_type; + using execution_space = DEVICE_TYPE; + using type = typename Kokkos::View; + using h_type = typename Kokkos::View::HostMirror; type data; @@ -176,8 +176,8 @@ struct ZeroFunctor { template struct AddFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; @@ -187,8 +187,8 @@ struct AddFunctor { template struct AddFunctorReduce { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; @@ -246,8 +246,8 @@ T AddLoopSerial(int loop) { template struct CASFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; @@ -266,8 +266,8 @@ struct CASFunctor { template struct CASFunctorReduce { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; @@ -341,8 +341,8 @@ T CASLoopSerial(int loop) { template struct ExchFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data, data2; @@ -355,8 +355,8 @@ struct ExchFunctor { template struct ExchFunctorReduce { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data, data2; diff --git a/lib/kokkos/core/unit_test/TestAtomicOperations.hpp b/lib/kokkos/core/unit_test/TestAtomicOperations.hpp index 109adaa1b3..04362125c0 100644 --- a/lib/kokkos/core/unit_test/TestAtomicOperations.hpp +++ b/lib/kokkos/core/unit_test/TestAtomicOperations.hpp @@ -52,9 +52,9 @@ namespace TestAtomicOperations { template struct ZeroFunctor { - typedef DEVICE_TYPE execution_space; - typedef typename Kokkos::View type; - typedef typename Kokkos::View::HostMirror h_type; + using execution_space = DEVICE_TYPE; + using type = typename Kokkos::View; + using h_type = typename Kokkos::View::HostMirror; type data; @@ -68,9 +68,9 @@ struct ZeroFunctor { template struct InitFunctor { - typedef DEVICE_TYPE execution_space; - typedef typename Kokkos::View type; - typedef typename Kokkos::View::HostMirror h_type; + using execution_space = DEVICE_TYPE; + using type = typename Kokkos::View; + using h_type = typename Kokkos::View::HostMirror; type data; T init_value; @@ -87,8 +87,8 @@ struct InitFunctor { template struct MaxFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -160,8 +160,8 @@ bool MaxAtomicTest(T i0, T i1) { template struct MinFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -231,8 +231,8 @@ bool MinAtomicTest(T i0, T i1) { template struct IncFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -301,8 +301,8 @@ bool IncAtomicTest(T i0) { template struct DecFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -371,8 +371,8 @@ bool DecAtomicTest(T i0) { template struct MulFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -442,8 +442,8 @@ bool MulAtomicTest(T i0, T i1) { template struct DivFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -515,8 +515,8 @@ bool DivAtomicTest(T i0, T i1) { template struct ModFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -586,8 +586,8 @@ bool ModAtomicTest(T i0, T i1) { template struct AndFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -657,8 +657,8 @@ bool AndAtomicTest(T i0, T i1) { template struct OrFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -728,8 +728,8 @@ bool OrAtomicTest(T i0, T i1) { template struct XorFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -799,8 +799,8 @@ bool XorAtomicTest(T i0, T i1) { template struct LShiftFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; @@ -870,8 +870,8 @@ bool LShiftAtomicTest(T i0, T i1) { template struct RShiftFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View; type data; T i0; diff --git a/lib/kokkos/core/unit_test/TestAtomicViews.hpp b/lib/kokkos/core/unit_test/TestAtomicViews.hpp index 109598e8c6..6b79b3d642 100644 --- a/lib/kokkos/core/unit_test/TestAtomicViews.hpp +++ b/lib/kokkos/core/unit_test/TestAtomicViews.hpp @@ -66,11 +66,11 @@ struct TestViewOperator_LeftAndRight; template struct TestViewOperator_LeftAndRight { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -81,17 +81,16 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::View > - left_view; + using left_view = Kokkos::View >; - typedef Kokkos::View > - right_view; + using right_view = + Kokkos::View >; - typedef Kokkos::View > - stride_view; + using stride_view = + Kokkos::View >; left_view left; right_view right; @@ -123,21 +122,12 @@ struct TestViewOperator_LeftAndRight { for (unsigned i0 = 0; i0 < unsigned(left.extent(0)); ++i0) { // Below checks that values match, but unable to check the references. // Should this be able to be checked? -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (left(i0) != left(i0, 0, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } - if (right(i0) != right(i0, 0, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } -#else if (left(i0) != left.access(i0, 0, 0, 0, 0, 0, 0, 0)) { update |= 3; } if (right(i0) != right.access(i0, 0, 0, 0, 0, 0, 0, 0)) { update |= 3; } -#endif if (left(i0) != left_stride(i0)) { update |= 4; } @@ -157,39 +147,36 @@ struct TestViewOperator_LeftAndRight { template class TestAtomicViewAPI { public: - typedef DeviceType device; + using device = DeviceType; enum { N0 = 1000, N1 = 3, N2 = 5, N3 = 7 }; - typedef Kokkos::View dView0; - typedef Kokkos::View dView1; - typedef Kokkos::View dView2; - typedef Kokkos::View dView3; - typedef Kokkos::View dView4; - typedef Kokkos::View const_dView4; - typedef Kokkos::View dView4_unmanaged; - typedef typename dView0::host_mirror_space host; - - typedef Kokkos::View > aView0; - typedef Kokkos::View > - aView1; - typedef Kokkos::View > - aView2; - typedef Kokkos::View > - aView3; - typedef Kokkos::View > - aView4; - typedef Kokkos::View > - const_aView4; - - typedef Kokkos::View< - T****, device, Kokkos::MemoryTraits > - aView4_unmanaged; - - typedef typename aView0::host_mirror_space host_atomic; + using dView0 = Kokkos::View; + using dView1 = Kokkos::View; + using dView2 = Kokkos::View; + using dView3 = Kokkos::View; + using dView4 = Kokkos::View; + using const_dView4 = Kokkos::View; + using dView4_unmanaged = Kokkos::View; + using host = typename dView0::host_mirror_space; + + using aView0 = Kokkos::View >; + using aView1 = + Kokkos::View >; + using aView2 = + Kokkos::View >; + using aView3 = + Kokkos::View >; + using aView4 = Kokkos::View >; + using const_aView4 = Kokkos::View >; + + using aView4_unmanaged = + Kokkos::View >; + + using host_atomic = typename aView0::host_mirror_space; TestAtomicViewAPI() { TestViewOperator_LeftAndRight::testit(); @@ -281,7 +268,7 @@ class TestAtomicViewAPI { unsigned(N0) * unsigned(N1) * unsigned(N2) * unsigned(N3)); } - typedef T DataType[2]; + using DataType = T[2]; static void check_auto_conversion_to_const( const Kokkos::View > - typeX; - typedef Kokkos::View > - const_typeX; + using typeX = + Kokkos::View >; + using const_typeX = Kokkos::View >; typeX x("X"); const_typeX xc = x; @@ -315,7 +300,7 @@ class TestAtomicViewAPI { template struct InitFunctor_Seq { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type input; const int64_t length; @@ -333,7 +318,7 @@ struct InitFunctor_Seq { template struct InitFunctor_ModTimes { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type input; const int64_t length; @@ -357,7 +342,7 @@ struct InitFunctor_ModTimes { template struct InitFunctor_ModShift { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type input; const int64_t length; @@ -383,10 +368,9 @@ struct InitFunctor_ModShift { template struct PlusEqualAtomicViewFunctor { - typedef Kokkos::View > - atomic_view_type; - typedef Kokkos::View view_type; + using atomic_view_type = + Kokkos::View >; + using view_type = Kokkos::View; view_type input; atomic_view_type even_odd_result; @@ -411,8 +395,8 @@ struct PlusEqualAtomicViewFunctor { template T PlusEqualAtomicView(const int64_t input_length) { - typedef Kokkos::View view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; @@ -480,10 +464,9 @@ bool PlusEqualAtomicViewTest(int64_t input_length) { template struct MinusEqualAtomicViewFunctor { - typedef Kokkos::View > - atomic_view_type; - typedef Kokkos::View view_type; + using atomic_view_type = + Kokkos::View >; + using view_type = Kokkos::View; view_type input; atomic_view_type even_odd_result; @@ -509,8 +492,8 @@ struct MinusEqualAtomicViewFunctor { template T MinusEqualAtomicView(const int64_t input_length) { - typedef Kokkos::View view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; @@ -578,10 +561,9 @@ bool MinusEqualAtomicViewTest(int64_t input_length) { template struct TimesEqualAtomicViewFunctor { - typedef Kokkos::View > - atomic_view_type; - typedef Kokkos::View view_type; + using atomic_view_type = + Kokkos::View >; + using view_type = Kokkos::View; view_type input; atomic_view_type result; @@ -602,8 +584,8 @@ struct TimesEqualAtomicViewFunctor { template T TimesEqualAtomicView(const int64_t input_length, const int64_t remainder) { - typedef Kokkos::View view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; @@ -669,11 +651,10 @@ bool TimesEqualAtomicViewTest(const int64_t input_length) { template struct DivEqualAtomicViewFunctor { - typedef Kokkos::View > - atomic_view_type; - typedef Kokkos::View view_type; - typedef Kokkos::View scalar_view_type; + using atomic_view_type = + Kokkos::View >; + using view_type = Kokkos::View; + using scalar_view_type = Kokkos::View; view_type input; atomic_view_type result; @@ -694,9 +675,9 @@ struct DivEqualAtomicViewFunctor { template T DivEqualAtomicView(const int64_t input_length, const int64_t remainder) { - typedef Kokkos::View view_type; - typedef Kokkos::View scalar_view_type; - typedef typename scalar_view_type::HostMirror host_scalar_view_type; + using view_type = Kokkos::View; + using scalar_view_type = Kokkos::View; + using host_scalar_view_type = typename scalar_view_type::HostMirror; const int64_t length = input_length; @@ -760,11 +741,10 @@ bool DivEqualAtomicViewTest(const int64_t input_length) { template struct ModEqualAtomicViewFunctor { - typedef Kokkos::View > - atomic_view_type; - typedef Kokkos::View view_type; - typedef Kokkos::View scalar_view_type; + using atomic_view_type = + Kokkos::View >; + using view_type = Kokkos::View; + using scalar_view_type = Kokkos::View; view_type input; atomic_view_type result; @@ -785,9 +765,9 @@ struct ModEqualAtomicViewFunctor { template T ModEqualAtomicView(const int64_t input_length, const int64_t remainder) { - typedef Kokkos::View view_type; - typedef Kokkos::View scalar_view_type; - typedef typename scalar_view_type::HostMirror host_scalar_view_type; + using view_type = Kokkos::View; + using scalar_view_type = Kokkos::View; + using host_scalar_view_type = typename scalar_view_type::HostMirror; const int64_t length = input_length; @@ -855,11 +835,10 @@ bool ModEqualAtomicViewTest(const int64_t input_length) { template struct RSEqualAtomicViewFunctor { - typedef Kokkos::View > - atomic_view_type; - typedef Kokkos::View view_type; - typedef Kokkos::View result_view_type; + using atomic_view_type = Kokkos::View >; + using view_type = Kokkos::View; + using result_view_type = Kokkos::View; const view_type input; atomic_view_type result; @@ -890,9 +869,9 @@ struct RSEqualAtomicViewFunctor { template T RSEqualAtomicView(const int64_t input_length, const int64_t value, const int64_t remainder) { - typedef Kokkos::View view_type; - typedef Kokkos::View result_view_type; - typedef typename result_view_type::HostMirror host_scalar_view_type; + using view_type = Kokkos::View; + using result_view_type = Kokkos::View; + using host_scalar_view_type = typename result_view_type::HostMirror; const int64_t length = input_length; @@ -983,11 +962,10 @@ bool RSEqualAtomicViewTest(const int64_t input_length) { template struct LSEqualAtomicViewFunctor { - typedef Kokkos::View > - atomic_view_type; - typedef Kokkos::View view_type; - typedef Kokkos::View result_view_type; + using atomic_view_type = Kokkos::View >; + using view_type = Kokkos::View; + using result_view_type = Kokkos::View; view_type input; atomic_view_type result; @@ -1018,9 +996,9 @@ struct LSEqualAtomicViewFunctor { template T LSEqualAtomicView(const int64_t input_length, const int64_t value, const int64_t remainder) { - typedef Kokkos::View view_type; - typedef Kokkos::View result_view_type; - typedef typename result_view_type::HostMirror host_scalar_view_type; + using view_type = Kokkos::View; + using result_view_type = Kokkos::View; + using host_scalar_view_type = typename result_view_type::HostMirror; const int64_t length = input_length; @@ -1111,10 +1089,9 @@ bool LSEqualAtomicViewTest(const int64_t input_length) { template struct AndEqualAtomicViewFunctor { - typedef Kokkos::View > - atomic_view_type; - typedef Kokkos::View view_type; + using atomic_view_type = + Kokkos::View >; + using view_type = Kokkos::View; view_type input; atomic_view_type even_odd_result; @@ -1139,8 +1116,8 @@ struct AndEqualAtomicViewFunctor { template T AndEqualAtomicView(const int64_t input_length) { - typedef Kokkos::View view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; @@ -1205,10 +1182,9 @@ bool AndEqualAtomicViewTest(int64_t input_length) { template struct OrEqualAtomicViewFunctor { - typedef Kokkos::View > - atomic_view_type; - typedef Kokkos::View view_type; + using atomic_view_type = + Kokkos::View >; + using view_type = Kokkos::View; view_type input; atomic_view_type even_odd_result; @@ -1233,8 +1209,8 @@ struct OrEqualAtomicViewFunctor { template T OrEqualAtomicView(const int64_t input_length) { - typedef Kokkos::View view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; @@ -1298,10 +1274,9 @@ bool OrEqualAtomicViewTest(int64_t input_length) { template struct XOrEqualAtomicViewFunctor { - typedef Kokkos::View > - atomic_view_type; - typedef Kokkos::View view_type; + using atomic_view_type = + Kokkos::View >; + using view_type = Kokkos::View; view_type input; atomic_view_type even_odd_result; @@ -1326,8 +1301,8 @@ struct XOrEqualAtomicViewFunctor { template T XOrEqualAtomicView(const int64_t input_length) { - typedef Kokkos::View view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; diff --git a/lib/kokkos/core/unit_test/TestCXX11.hpp b/lib/kokkos/core/unit_test/TestCXX11.hpp index 405652b29e..59a8610955 100644 --- a/lib/kokkos/core/unit_test/TestCXX11.hpp +++ b/lib/kokkos/core/unit_test/TestCXX11.hpp @@ -48,9 +48,9 @@ namespace TestCXX11 { template struct FunctorAddTest { - typedef Kokkos::View view_type; - typedef DeviceType execution_space; - typedef typename Kokkos::TeamPolicy::member_type team_member; + using view_type = Kokkos::View; + using execution_space = DeviceType; + using team_member = typename Kokkos::TeamPolicy::member_type; view_type a_, b_; @@ -81,7 +81,7 @@ struct FunctorAddTest { template double AddTestFunctor() { - typedef Kokkos::TeamPolicy policy_type; + using policy_type = Kokkos::TeamPolicy; Kokkos::View a("A", 100, 5); Kokkos::View b("B", 100, 5); @@ -142,8 +142,8 @@ double AddTestLambda() { b(i, 4) = a(i, 3) + a(i, 4); }); } else { - typedef Kokkos::TeamPolicy policy_type; - typedef typename policy_type::member_type team_member; + using policy_type = Kokkos::TeamPolicy; + using team_member = typename policy_type::member_type; policy_type policy(25, Kokkos::AUTO); @@ -180,10 +180,10 @@ double AddTestLambda() { template struct FunctorReduceTest { - typedef Kokkos::View view_type; - typedef DeviceType execution_space; - typedef double value_type; - typedef typename Kokkos::TeamPolicy::member_type team_member; + using view_type = Kokkos::View; + using execution_space = DeviceType; + using value_type = double; + using team_member = typename Kokkos::TeamPolicy::member_type; view_type a_; @@ -223,10 +223,10 @@ struct FunctorReduceTest { template double ReduceTestFunctor() { - typedef Kokkos::TeamPolicy policy_type; - typedef Kokkos::View view_type; - typedef Kokkos::View - unmanaged_result; + using policy_type = Kokkos::TeamPolicy; + using view_type = Kokkos::View; + using unmanaged_result = + Kokkos::View; view_type a("A", 100, 5); typename view_type::HostMirror h_a = Kokkos::create_mirror_view(a); @@ -255,10 +255,10 @@ double ReduceTestFunctor() { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) template double ReduceTestLambda() { - typedef Kokkos::TeamPolicy policy_type; - typedef Kokkos::View view_type; - typedef Kokkos::View - unmanaged_result; + using policy_type = Kokkos::TeamPolicy; + using view_type = Kokkos::View; + using unmanaged_result = + Kokkos::View; view_type a("A", 100, 5); typename view_type::HostMirror h_a = Kokkos::create_mirror_view(a); @@ -284,7 +284,7 @@ double ReduceTestLambda() { }, unmanaged_result(&result)); } else { - typedef typename policy_type::member_type team_member; + using team_member = typename policy_type::member_type; Kokkos::parallel_reduce( policy_type(25, Kokkos::AUTO), KOKKOS_LAMBDA(const team_member& dev, double& sum) { diff --git a/lib/kokkos/core/unit_test/TestCXX11Deduction.hpp b/lib/kokkos/core/unit_test/TestCXX11Deduction.hpp index 0e60d91a89..c7efab2711 100644 --- a/lib/kokkos/core/unit_test/TestCXX11Deduction.hpp +++ b/lib/kokkos/core/unit_test/TestCXX11Deduction.hpp @@ -72,7 +72,7 @@ struct TestReductionDeductionFunctor { template void test_reduction_deduction() { - typedef TestReductionDeductionFunctor Functor; + using Functor = TestReductionDeductionFunctor; const long N = 50; // const long answer = N % 2 ? ( N * ( ( N + 1 ) / 2 ) ) : ( ( N / 2 ) * ( N diff --git a/lib/kokkos/core/unit_test/TestCompilerMacros.hpp b/lib/kokkos/core/unit_test/TestCompilerMacros.hpp index c644daca0e..5ba83f376b 100644 --- a/lib/kokkos/core/unit_test/TestCompilerMacros.hpp +++ b/lib/kokkos/core/unit_test/TestCompilerMacros.hpp @@ -60,8 +60,8 @@ namespace TestCompilerMacros { template struct AddFunctor { - typedef DEVICE_TYPE execution_space; - typedef typename Kokkos::View type; + using execution_space = DEVICE_TYPE; + using type = typename Kokkos::View; type a, b; int length; @@ -94,7 +94,7 @@ struct AddFunctor { template bool Test() { - typedef typename Kokkos::View type; + using type = typename Kokkos::View; type a("A", 1024, 128); type b("B", 1024, 128); diff --git a/lib/kokkos/core/unit_test/TestComplex.hpp b/lib/kokkos/core/unit_test/TestComplex.hpp index 2bb81052fe..2e04c209d8 100644 --- a/lib/kokkos/core/unit_test/TestComplex.hpp +++ b/lib/kokkos/core/unit_test/TestComplex.hpp @@ -86,7 +86,6 @@ struct TestComplexConstruction { // Copy construction conversion between // Kokkos::complex and std::complex doesn't compile -#ifndef KOKKOS_ENABLE_HIP // FIXME_HIP Kokkos::complex a(1.5, 2.5), b(3.25, 5.25), r_kk; std::complex sa(a), sb(3.25, 5.25), r; r = a; @@ -101,7 +100,6 @@ struct TestComplexConstruction { r_kk = a; ASSERT_FLOAT_EQ(r.real(), r_kk.real()); ASSERT_FLOAT_EQ(r.imag(), r_kk.imag()); -#endif } KOKKOS_INLINE_FUNCTION diff --git a/lib/kokkos/core/unit_test/TestConcurrentBitset.hpp b/lib/kokkos/core/unit_test/TestConcurrentBitset.hpp index db451495b4..5a7b8e4bae 100644 --- a/lib/kokkos/core/unit_test/TestConcurrentBitset.hpp +++ b/lib/kokkos/core/unit_test/TestConcurrentBitset.hpp @@ -57,8 +57,8 @@ namespace Test { template struct ConcurrentBitset { - typedef Kokkos::View view_unsigned_type; - typedef Kokkos::View view_int_type; + using view_unsigned_type = Kokkos::View; + using view_int_type = Kokkos::View; view_unsigned_type bitset; view_int_type acquired; @@ -117,9 +117,9 @@ struct ConcurrentBitset { template void test_concurrent_bitset(int bit_count) { - typedef ConcurrentBitset Functor; - typedef typename Functor::view_unsigned_type view_unsigned_type; - typedef typename Functor::view_int_type view_int_type; + using Functor = ConcurrentBitset; + using view_unsigned_type = typename Functor::view_unsigned_type; + using view_int_type = typename Functor::view_int_type; int bit_count_lg2 = 1; diff --git a/lib/kokkos/core/unit_test/TestCrs.hpp b/lib/kokkos/core/unit_test/TestCrs.hpp index 296235aad0..78208c9116 100644 --- a/lib/kokkos/core/unit_test/TestCrs.hpp +++ b/lib/kokkos/core/unit_test/TestCrs.hpp @@ -176,7 +176,7 @@ void test_count_fill(std::int32_t nrows) { template void test_constructor(std::int32_t nrows) { for (int nTest = 1; nTest < 5; nTest++) { - typedef Kokkos::Crs crs_type; + using crs_type = Kokkos::Crs; crs_type graph; Kokkos::count_and_fill_crs(graph, nrows, CountFillFunctor()); ASSERT_EQ(graph.numRows(), nrows); diff --git a/lib/kokkos/core/unit_test/TestDeepCopy.hpp b/lib/kokkos/core/unit_test/TestDeepCopy.hpp index 56c259ff6a..8158f40580 100644 --- a/lib/kokkos/core/unit_test/TestDeepCopy.hpp +++ b/lib/kokkos/core/unit_test/TestDeepCopy.hpp @@ -6,13 +6,13 @@ namespace Test { namespace Impl { template struct TestDeepCopy { - typedef Kokkos::View a_base_t; - typedef Kokkos::View b_base_t; - typedef Kokkos::View a_char_t; - typedef Kokkos::View b_char_t; + using a_base_t = Kokkos::View; + using b_base_t = Kokkos::View; + using a_char_t = Kokkos::View; + using b_char_t = Kokkos::View; - typedef Kokkos::RangePolicy policyA_t; - typedef Kokkos::RangePolicy policyB_t; + using policyA_t = Kokkos::RangePolicy; + using policyB_t = Kokkos::RangePolicy; static void reset_a_copy_and_b( Kokkos::View a_char_copy, @@ -213,8 +213,6 @@ TEST(TEST_CATEGORY, deep_copy_alignment) { } #endif -// KOKKOS_IMPL_HIP_CLANG_WORKAROUND -#ifndef KOKKOS_ENABLE_HIP namespace Impl { template struct TestDeepCopyScalarConversion { @@ -355,5 +353,4 @@ TEST(TEST_CATEGORY, deep_copy_conversion) { Impl::TestDeepCopyScalarConversion().run_tests( N0, N1); } -#endif } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestDefaultDeviceTypeInit.hpp b/lib/kokkos/core/unit_test/TestDefaultDeviceTypeInit.hpp index 33c736c5e0..2704cd7a71 100644 --- a/lib/kokkos/core/unit_test/TestDefaultDeviceTypeInit.hpp +++ b/lib/kokkos/core/unit_test/TestDefaultDeviceTypeInit.hpp @@ -117,7 +117,7 @@ char** init_kokkos_args(bool do_threads, bool do_numa, bool do_device, if (do_device) { init_args.device_id = 0; - sprintf(args_kokkos[device_idx], "--device=%i", 0); + sprintf(args_kokkos[device_idx], "--device-id=%i", 0); } if (do_other) { @@ -186,13 +186,8 @@ Kokkos::InitArguments init_initstruct(bool do_threads, bool do_numa, } void check_correct_initialization(const Kokkos::InitArguments& argstruct) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(Kokkos::DefaultExecutionSpace::is_initialized(), 1); - ASSERT_EQ(Kokkos::HostSpace::execution_space::is_initialized(), 1); -#else ASSERT_EQ(Kokkos::DefaultExecutionSpace::impl_is_initialized(), 1); ASSERT_EQ(Kokkos::HostSpace::execution_space::impl_is_initialized(), 1); -#endif // Figure out the number of threads the HostSpace ExecutionSpace should have // initialized to. @@ -258,13 +253,8 @@ void check_correct_initialization(const Kokkos::InitArguments& argstruct) { #endif } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(Kokkos::HostSpace::execution_space::thread_pool_size(), - expected_nthreads); -#else ASSERT_EQ(Kokkos::HostSpace::execution_space::impl_thread_pool_size(), expected_nthreads); -#endif #ifdef KOKKOS_ENABLE_CUDA if (std::is_same::value) { @@ -273,7 +263,7 @@ void check_correct_initialization(const Kokkos::InitArguments& argstruct) { int expected_device = argstruct.device_id; if (argstruct.device_id < 0) { - expected_device = 0; + expected_device = Kokkos::Cuda().cuda_device(); } ASSERT_EQ(expected_device, device); diff --git a/lib/kokkos/core/unit_test/TestFunctorAnalysis.hpp b/lib/kokkos/core/unit_test/TestFunctorAnalysis.hpp index 5e72972bed..d9e2486a4a 100644 --- a/lib/kokkos/core/unit_test/TestFunctorAnalysis.hpp +++ b/lib/kokkos/core/unit_test/TestFunctorAnalysis.hpp @@ -70,12 +70,12 @@ template void test_functor_analysis() { //------------------------------ auto c01 = KOKKOS_LAMBDA(int){}; - typedef Kokkos::Impl::FunctorAnalysis< - Kokkos::Impl::FunctorPatternInterface::FOR, - Kokkos::RangePolicy, decltype(c01)> - A01; + using A01 = + Kokkos::Impl::FunctorAnalysis, + decltype(c01)>; - typedef typename A01::template Reducer R01; + using R01 = typename A01::template Reducer; static_assert(std::is_same::value, ""); static_assert(std::is_same::value, ""); @@ -90,12 +90,11 @@ void test_functor_analysis() { ASSERT_EQ(R01(&c01).length(), 0); //------------------------------ - auto c02 = KOKKOS_LAMBDA(int, double&){}; - typedef Kokkos::Impl::FunctorAnalysis< + auto c02 = KOKKOS_LAMBDA(int, double&){}; + using A02 = Kokkos::Impl::FunctorAnalysis< Kokkos::Impl::FunctorPatternInterface::REDUCE, - Kokkos::RangePolicy, decltype(c02)> - A02; - typedef typename A02::template Reducer R02; + Kokkos::RangePolicy, decltype(c02)>; + using R02 = typename A02::template Reducer; static_assert(std::is_same::value, ""); static_assert(std::is_same::value, ""); @@ -112,11 +111,10 @@ void test_functor_analysis() { //------------------------------ TestFunctorAnalysis_03 c03; - typedef Kokkos::Impl::FunctorAnalysis< + using A03 = Kokkos::Impl::FunctorAnalysis< Kokkos::Impl::FunctorPatternInterface::REDUCE, - Kokkos::RangePolicy, TestFunctorAnalysis_03> - A03; - typedef typename A03::template Reducer R03; + Kokkos::RangePolicy, TestFunctorAnalysis_03>; + using R03 = typename A03::template Reducer; static_assert(std::is_same::value, diff --git a/lib/kokkos/core/unit_test/TestIrregularLayout.hpp b/lib/kokkos/core/unit_test/TestIrregularLayout.hpp new file mode 100644 index 0000000000..7e37e14655 --- /dev/null +++ b/lib/kokkos/core/unit_test/TestIrregularLayout.hpp @@ -0,0 +1,264 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include +#include +#include +#include +#define OFFSET_LIST_MAX_SIZE 100 + +namespace Kokkos { + +struct LayoutSelective { + //! Tag this class as a kokkos array layout + using array_layout = LayoutSelective; + + size_t offset_list[OFFSET_LIST_MAX_SIZE]; + size_t list_size; + + enum { is_extent_constructible = false }; + + KOKKOS_INLINE_FUNCTION + LayoutSelective() { + for (int i = 0; i < OFFSET_LIST_MAX_SIZE; i++) { + offset_list[i] = i; + } + } + + KOKKOS_INLINE_FUNCTION + void assign(const size_t ol_[], const size_t size_) { + list_size = size_; + for (int i = 0; i < (int)list_size; i++) { + offset_list[i] = ol_[i]; + } + } + + KOKKOS_INLINE_FUNCTION + LayoutSelective(LayoutSelective const& rhs) { + assign(rhs.offset_list, rhs.list_size); + } + + KOKKOS_INLINE_FUNCTION + LayoutSelective(LayoutSelective&& rhs) { + assign(rhs.offset_list, rhs.list_size); + } + KOKKOS_INLINE_FUNCTION + LayoutSelective& operator=(LayoutSelective const& rhs) { + assign(rhs.offset_list, rhs.list_size); + return *this; + } + KOKKOS_INLINE_FUNCTION + LayoutSelective& operator=(LayoutSelective&& rhs) { + assign(rhs.offset_list, rhs.list_size); + return *this; + } + + KOKKOS_INLINE_FUNCTION + explicit LayoutSelective(const size_t ol_[], const size_t size_) { + assign(ol_, size_); + } + + KOKKOS_INLINE_FUNCTION + size_t offset(size_t ndx) const { + KOKKOS_ASSERT(ndx < list_size); + return offset_list[ndx]; + } +}; + +namespace Impl { +template +struct ViewOffset { + public: + using is_mapping_plugin = std::true_type; + using is_regular = std::false_type; + + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutSelective; + + //---------------------------------------- + dimension_type m_dim; + array_layout m_selective; + + // rank 1 + template + KOKKOS_INLINE_FUNCTION size_type operator()(I0 const& i0) const { + return m_selective.offset(i0); + } + + // This ViewOffset and the underlying layout only supports rank 1 Views + + //---------------------------------------- + + KOKKOS_INLINE_FUNCTION + array_layout layout() const { return array_layout(); } + + KOKKOS_INLINE_FUNCTION constexpr size_type dimension_0() const { + return m_dim.N0; + } + + /* Cardinality of the domain index space */ + KOKKOS_INLINE_FUNCTION + constexpr size_type size() const { return m_dim.N0; } + + public: + /* Span of the range space, largest stride * dimension */ + KOKKOS_INLINE_FUNCTION + constexpr size_type span() const { return m_dim.N0; } + + KOKKOS_INLINE_FUNCTION constexpr bool span_is_contiguous() const { + return false; + } + + /* Strides of dimensions */ + KOKKOS_INLINE_FUNCTION constexpr size_type stride_0() const { return 1; } + + // Stride with [ rank ] value is the total length + template + KOKKOS_INLINE_FUNCTION void stride(iType* const s) const { + if (0 < dimension_type::rank) { + s[0] = 1; + } + for (int i = 1; i < 8; i++) s[i] = 0; + s[dimension_type::rank] = span(); + } + + //---------------------------------------- + ViewOffset() = default; + ViewOffset(const ViewOffset&) = default; + ViewOffset& operator=(const ViewOffset&) = default; + + KOKKOS_INLINE_FUNCTION + ViewOffset(std::integral_constant const&, + Kokkos::LayoutSelective const& rhs) + : m_dim(rhs.list_size, 0, 0, 0, 0, 0, 0, 0), m_selective(rhs) {} +}; + +} // namespace Impl +} // namespace Kokkos + +namespace Test { + +class InnerClass { + public: + long data[100]; + + KOKKOS_INLINE_FUNCTION + InnerClass() { + for (int i = 0; i < 100; i++) { + data[i] = (long)i; + } + } + + KOKKOS_INLINE_FUNCTION + void update(long d) { + for (int i = 0; i < 100; i++) { + data[i] += d; + } + } + + KOKKOS_INLINE_FUNCTION + void set(long d) { + for (int i = 0; i < 100; i++) { + data[i] = d; + } + } +}; + +template +struct TestLayout { + const int N = 100; + size_t offsets[2] = {20, 40}; + using Layout = Kokkos::LayoutRight; + using SubLayout = Kokkos::LayoutSelective; + + // Allocate y, x vectors and Matrix A on device. + using ViewVectorType = + Kokkos::View; + using SubViewVectorType = Kokkos::View; + struct InitTag {}; + struct UpdateTag {}; + + ViewVectorType a; + SubLayout sl; + SubViewVectorType b; + TestLayout() : a("a", N), sl(offsets, 2), b(a.data(), sl) {} + + void run_test() { + Kokkos::parallel_for(Kokkos::RangePolicy(0, N), + *this); + + Kokkos::parallel_for(Kokkos::RangePolicy(0, 2), + *this); + + validate_results(); + } + + // set all values + KOKKOS_INLINE_FUNCTION + void operator()(const InitTag&, const int i) const { a(i).update(i); } + + // update selective values + KOKKOS_INLINE_FUNCTION + void operator()(const UpdateTag&, const int i) const { + b(i).set(200 * (i + 1)); + } + + void validate_results() { + auto a_h = Kokkos::create_mirror_view(a); + Kokkos::deep_copy(a_h, a); + ASSERT_EQ(a_h(20).data[0], 200); + ASSERT_EQ(a_h(40).data[0], 400); + } +}; + +TEST(TEST_CATEGORY, view_irregular_layout) { + TestLayout tl; + tl.run_test(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/TestLocalDeepCopy.hpp b/lib/kokkos/core/unit_test/TestLocalDeepCopy.hpp index c776481c70..80feb11f9b 100644 --- a/lib/kokkos/core/unit_test/TestLocalDeepCopy.hpp +++ b/lib/kokkos/core/unit_test/TestLocalDeepCopy.hpp @@ -68,8 +68,8 @@ void impl_test_local_deepcopy_teampolicy_rank_1(const int N) { Kokkos::subview(A, 1, 1, 1, 1, 1, 1, Kokkos::ALL(), Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; // Deep Copy Kokkos::parallel_for( @@ -130,8 +130,8 @@ void impl_test_local_deepcopy_teampolicy_rank_2(const int N) { Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; // Deep Copy Kokkos::parallel_for( @@ -195,8 +195,8 @@ void impl_test_local_deepcopy_teampolicy_rank_3(const int N) { Kokkos::ALL(), Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; // Deep Copy Kokkos::parallel_for( @@ -260,8 +260,8 @@ void impl_test_local_deepcopy_teampolicy_rank_4(const int N) { Kokkos::ALL(), Kokkos::ALL(), Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; // Deep Copy Kokkos::parallel_for( @@ -329,8 +329,8 @@ void impl_test_local_deepcopy_teampolicy_rank_5(const int N) { Kokkos::ALL(), Kokkos::ALL(), Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; // Deep Copy Kokkos::parallel_for( @@ -398,8 +398,8 @@ void impl_test_local_deepcopy_teampolicy_rank_6(const int N) { Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; // Deep Copy Kokkos::parallel_for( @@ -464,8 +464,8 @@ void impl_test_local_deepcopy_teampolicy_rank_7(const int N) { // Initialize A matrix. Kokkos::deep_copy(A, 10.0); - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; // Deep Copy Kokkos::parallel_for( @@ -935,8 +935,8 @@ void impl_test_local_deepcopy_rangepolicy_rank_7(const int N) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) TEST(TEST_CATEGORY, local_deepcopy_teampolicy_layoutleft) { - typedef TEST_EXECSPACE ExecSpace; - typedef Kokkos::View ViewType; + using ExecSpace = TEST_EXECSPACE; + using ViewType = Kokkos::View; { // Rank-1 impl_test_local_deepcopy_teampolicy_rank_1(8); @@ -962,8 +962,8 @@ TEST(TEST_CATEGORY, local_deepcopy_teampolicy_layoutleft) { } //------------------------------------------------------------------------------------------------------------- TEST(TEST_CATEGORY, local_deepcopy_rangepolicy_layoutleft) { - typedef TEST_EXECSPACE ExecSpace; - typedef Kokkos::View ViewType; + using ExecSpace = TEST_EXECSPACE; + using ViewType = Kokkos::View; { // Rank-1 impl_test_local_deepcopy_rangepolicy_rank_1(8); @@ -989,8 +989,8 @@ TEST(TEST_CATEGORY, local_deepcopy_rangepolicy_layoutleft) { } //------------------------------------------------------------------------------------------------------------- TEST(TEST_CATEGORY, local_deepcopy_teampolicy_layoutright) { - typedef TEST_EXECSPACE ExecSpace; - typedef Kokkos::View ViewType; + using ExecSpace = TEST_EXECSPACE; + using ViewType = Kokkos::View; { // Rank-1 impl_test_local_deepcopy_teampolicy_rank_1(8); @@ -1016,8 +1016,8 @@ TEST(TEST_CATEGORY, local_deepcopy_teampolicy_layoutright) { } //------------------------------------------------------------------------------------------------------------- TEST(TEST_CATEGORY, local_deepcopy_rangepolicy_layoutright) { - typedef TEST_EXECSPACE ExecSpace; - typedef Kokkos::View ViewType; + using ExecSpace = TEST_EXECSPACE; + using ViewType = Kokkos::View; { // Rank-1 impl_test_local_deepcopy_rangepolicy_rank_1(8); diff --git a/lib/kokkos/core/unit_test/TestMDRange.hpp b/lib/kokkos/core/unit_test/TestMDRange.hpp index c4288f21a1..ceb68b314e 100644 --- a/lib/kokkos/core/unit_test/TestMDRange.hpp +++ b/lib/kokkos/core/unit_test/TestMDRange.hpp @@ -103,14 +103,14 @@ struct TestMDRange_ReduceArray_2D { static void test_arrayreduce2(const int N0, const int N1) { { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType, InitTag> - range_type_init; - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type_init = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType, InitTag>; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type_init range_init(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -190,14 +190,14 @@ struct TestMDRange_ReduceArray_3D { static void test_arrayreduce3(const int N0, const int N1, const int N2) { { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType, InitTag> - range_type_init; - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type_init = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType, InitTag>; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type_init range_init(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, @@ -257,11 +257,11 @@ struct TestMDRange_2D { static void test_reduce2(const int N0, const int N1) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -277,11 +277,11 @@ struct TestMDRange_2D { #endif { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -297,9 +297,9 @@ struct TestMDRange_2D { // Test with reducers - scalar { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; int s0 = 1; int s1 = 1; range_type range({{s0, s1}}, {{N0, N1}}, {{3, 3}}); @@ -317,9 +317,9 @@ struct TestMDRange_2D { } // Test with reducers - scalar + label { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; int s0 = 1; int s1 = 1; range_type range({{s0, s1}}, {{N0, N1}}, {{3, 3}}); @@ -337,9 +337,9 @@ struct TestMDRange_2D { } // Test with reducers - scalar view { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0}}, {{N0, N1}}, {{3, 3}}); TestMDRange_2D functor(N0, N1); @@ -360,9 +360,9 @@ struct TestMDRange_2D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{1, 1}}, {{N0, N1}}, {{3, 3}}); Kokkos::View v_in("v_in", N0, N1); @@ -387,12 +387,11 @@ struct TestMDRange_2D { #endif // Tagged operator test { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Default, Iterate::Default>, - Kokkos::IndexType, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 4}}); @@ -426,12 +425,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Default, Iterate::Default>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 6}}); @@ -446,12 +444,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Left, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 6}}); @@ -466,12 +463,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Left, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 6}}); @@ -486,12 +482,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Right, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 6}}); @@ -506,12 +501,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Right, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 6}}); @@ -529,11 +523,11 @@ struct TestMDRange_2D { static void test_for2(const int N0, const int N1) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -569,11 +563,11 @@ struct TestMDRange_2D { #endif { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -605,11 +599,10 @@ struct TestMDRange_2D { } { - typedef - typename Kokkos::MDRangePolicy, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -639,10 +632,9 @@ struct TestMDRange_2D { } { - typedef - typename Kokkos::MDRangePolicy, InitTag> - range_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, InitTag>; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}); TestMDRange_2D functor(N0, N1); @@ -671,11 +663,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -702,12 +694,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Default, Iterate::Default>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{4, 4}}); @@ -734,12 +725,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Left, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -766,12 +756,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Left, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{7, 7}}); @@ -798,12 +787,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Right, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{16, 16}}); @@ -830,12 +818,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Right, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{5, 16}}); @@ -904,11 +891,11 @@ struct TestMDRange_3D { static void test_reduce3(const int N0, const int N1, const int N2) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{3, 3, 3}}); @@ -923,11 +910,11 @@ struct TestMDRange_3D { #endif { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -946,9 +933,9 @@ struct TestMDRange_3D { // Test with reducers - scalar { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0}}, {{N0, N1, N2}}, {{3, 3, 3}}); TestMDRange_3D functor(N0, N1, N2); @@ -964,9 +951,9 @@ struct TestMDRange_3D { } // Test with reducers - scalar + label { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0}}, {{N0, N1, N2}}, {{3, 3, 3}}); TestMDRange_3D functor(N0, N1, N2); @@ -982,9 +969,9 @@ struct TestMDRange_3D { } // Test with reducers - scalar view { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0}}, {{N0, N1, N2}}, {{3, 3, 3}}); TestMDRange_3D functor(N0, N1, N2); @@ -1005,9 +992,9 @@ struct TestMDRange_3D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{1, 1, 1}}, {{N0, N1, N2}}, {{3, 3, 3}}); @@ -1040,12 +1027,11 @@ struct TestMDRange_3D { // Tagged operator test { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Default, Iterate::Default>, - Kokkos::IndexType, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1080,12 +1066,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Default, Iterate::Default>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1100,12 +1085,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Left, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1120,12 +1104,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Left, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1140,12 +1123,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Right, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1160,12 +1142,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Right, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1183,11 +1164,11 @@ struct TestMDRange_3D { static void test_for3(const int N0, const int N1, const int N2) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -1227,9 +1208,9 @@ struct TestMDRange_3D { #endif { - typedef typename Kokkos::MDRangePolicy > - range_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy >; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}); TestMDRange_3D functor(N0, N1, N2); @@ -1257,11 +1238,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -1295,11 +1276,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{3, 3, 3}}); @@ -1328,12 +1309,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Default, Iterate::Default>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{3, 3, 3}}); @@ -1361,12 +1341,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Left, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 2}}); @@ -1394,12 +1373,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Left, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{3, 5, 7}}); @@ -1427,12 +1405,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Right, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{8, 8, 8}}); @@ -1460,12 +1437,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Right, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 2}}); @@ -1537,11 +1513,11 @@ struct TestMDRange_4D { const int N3) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{3, 3, 3, 3}}); @@ -1556,11 +1532,11 @@ struct TestMDRange_4D { #endif { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -1580,9 +1556,9 @@ struct TestMDRange_4D { // Test with reducers - scalar { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0, 0}}, {{N0, N1, N2, N3}}, {{3, 3, 3, 3}}); TestMDRange_4D functor(N0, N1, N2, N3); @@ -1599,9 +1575,9 @@ struct TestMDRange_4D { // Test with reducers - scalar + label { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0, 0}}, {{N0, N1, N2, N3}}, {{3, 3, 3, 3}}); TestMDRange_4D functor(N0, N1, N2, N3); @@ -1618,9 +1594,9 @@ struct TestMDRange_4D { // Test with reducers - scalar view { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0, 0}}, {{N0, N1, N2, N3}}, {{3, 3, 3, 3}}); TestMDRange_4D functor(N0, N1, N2, N3); @@ -1642,9 +1618,9 @@ struct TestMDRange_4D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{1, 1, 1, 1}}, {{N0, N1, N2, N3}}, {{3, 3, 3, 3}}); @@ -1672,12 +1648,11 @@ struct TestMDRange_4D { // Tagged operator test { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Default, Iterate::Default>, - Kokkos::IndexType, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1714,12 +1689,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Default, Iterate::Default>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1734,12 +1708,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Left, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1754,12 +1727,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Left, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1774,12 +1746,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Right, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1794,12 +1765,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Right, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1818,11 +1788,11 @@ struct TestMDRange_4D { const int N3) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -1863,9 +1833,9 @@ struct TestMDRange_4D { #endif { - typedef typename Kokkos::MDRangePolicy > - range_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy >; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}); TestMDRange_4D functor(N0, N1, N2, N3); @@ -1894,11 +1864,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -1934,11 +1904,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -1968,12 +1938,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Default, Iterate::Default>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -2003,12 +1972,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Left, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -2038,12 +2006,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Left, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -2073,12 +2040,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Right, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -2108,12 +2074,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Right, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -2188,11 +2153,11 @@ struct TestMDRange_5D { const int N3, const int N4) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2209,11 +2174,11 @@ struct TestMDRange_5D { #endif { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -2236,9 +2201,9 @@ struct TestMDRange_5D { // Test with reducers - scalar { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4}}, {{3, 3, 3, 3, 3}}); @@ -2256,9 +2221,9 @@ struct TestMDRange_5D { // Test with reducers - scalar + label { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4}}, {{3, 3, 3, 3, 3}}); @@ -2276,9 +2241,9 @@ struct TestMDRange_5D { // Test with reducers - scalar view { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4}}, {{3, 3, 3, 3, 3}}); @@ -2301,9 +2266,9 @@ struct TestMDRange_5D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{1, 1, 1, 1, 1}}, {{N0, N1, N2, N3, N4}}, {{3, 3, 3, 2, 2}}); @@ -2335,12 +2300,11 @@ struct TestMDRange_5D { // Tagged operator test { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Default, Iterate::Default>, - Kokkos::IndexType, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2383,11 +2347,11 @@ struct TestMDRange_5D { const int N4) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -2432,9 +2396,9 @@ struct TestMDRange_5D { #endif { - typedef typename Kokkos::MDRangePolicy > - range_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy >; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}); @@ -2465,11 +2429,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -2508,11 +2472,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2544,12 +2508,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Default, Iterate::Default>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2581,12 +2544,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Left, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2618,12 +2580,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Left, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2655,12 +2616,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Right, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2692,12 +2652,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Right, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2775,11 +2734,11 @@ struct TestMDRange_6D { const int N3, const int N4, const int N5) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -2796,11 +2755,11 @@ struct TestMDRange_6D { #endif { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -2824,9 +2783,9 @@ struct TestMDRange_6D { // Test with reducers - scalar { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}}, {{3, 3, 3, 3, 3, 2}}); @@ -2844,9 +2803,9 @@ struct TestMDRange_6D { // Test with reducers - scalar + label { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}}, {{3, 3, 3, 3, 3, 2}}); @@ -2864,9 +2823,9 @@ struct TestMDRange_6D { // Test with reducers - scalar view { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}}, {{3, 3, 3, 3, 3, 2}}); @@ -2889,9 +2848,9 @@ struct TestMDRange_6D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; range_type range({{1, 1, 1, 1, 1, 1}}, {{N0, N1, N2, N3, N4, N5}}, {{3, 3, 3, 2, 2, 1}}); @@ -2925,12 +2884,11 @@ struct TestMDRange_6D { // Tagged operator test { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Default, Iterate::Default>, - Kokkos::IndexType, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -2974,11 +2932,11 @@ struct TestMDRange_6D { const int N4, const int N5) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -3025,9 +2983,9 @@ struct TestMDRange_6D { #endif { - typedef typename Kokkos::MDRangePolicy > - range_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy >; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}); @@ -3059,11 +3017,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -3106,11 +3064,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3143,12 +3101,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Default, Iterate::Default>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3181,12 +3138,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Left, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3219,12 +3175,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Left, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3257,12 +3212,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Right, Iterate::Left>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3295,12 +3249,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Right, Iterate::Right>, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3366,11 +3319,11 @@ struct TestMDRange_2D_NegIdx { static void test_2D_negidx(const int N0, const int N1) { { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const point_type lower{{-1, -1}}; const point_type upper{{N0, N1}}; @@ -3428,11 +3381,11 @@ struct TestMDRange_3D_NegIdx { static void test_3D_negidx(const int N0, const int N1, const int N2) { { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const point_type lower{{-1, -1, -1}}; const point_type upper{{N0, N1, N2}}; @@ -3495,11 +3448,11 @@ struct TestMDRange_4D_NegIdx { static void test_4D_negidx(const int N0, const int N1, const int N2, const int N3) { { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const point_type lower{{-1, -1, -1, -1}}; const point_type upper{{N0, N1, N2, N3}}; @@ -3566,11 +3519,11 @@ struct TestMDRange_5D_NegIdx { static void test_5D_negidx(const int N0, const int N1, const int N2, const int N3, const int N4) { { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const point_type lower{{-1, -1, -1, -1, -1}}; const point_type upper{{N0, N1, N2, N3, N4}}; @@ -3643,11 +3596,11 @@ struct TestMDRange_6D_NegIdx { static void test_6D_negidx(const int N0, const int N1, const int N2, const int N3, const int N4, const int N5) { { - typedef typename Kokkos::MDRangePolicy, - Kokkos::IndexType > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy, + Kokkos::IndexType >; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const point_type lower{{-1, -1, -1, -1, -1, -1}}; const point_type upper{{N0, N1, N2, N3, N4, N5}}; diff --git a/lib/kokkos/core/unit_test/TestMemoryPool.hpp b/lib/kokkos/core/unit_test/TestMemoryPool.hpp index cc18a90305..63895ad47d 100644 --- a/lib/kokkos/core/unit_test/TestMemoryPool.hpp +++ b/lib/kokkos/core/unit_test/TestMemoryPool.hpp @@ -56,8 +56,8 @@ namespace TestMemoryPool { template void test_host_memory_pool_defaults() { - typedef typename MemSpace::execution_space Space; - typedef typename Kokkos::MemoryPool MemPool; + using Space = typename MemSpace::execution_space; + using MemPool = typename Kokkos::MemoryPool; { const size_t MemoryCapacity = 32000; @@ -132,8 +132,8 @@ void test_host_memory_pool_defaults() { template void test_host_memory_pool_stats() { - typedef typename MemSpace::execution_space Space; - typedef typename Kokkos::MemoryPool MemPool; + using Space = typename MemSpace::execution_space; + using MemPool = typename Kokkos::MemoryPool; const size_t MemoryCapacity = 32000; const size_t MinBlockSize = 64; @@ -178,8 +178,8 @@ void test_host_memory_pool_stats() { template struct TestMemoryPool_Functor { - typedef Kokkos::View ptrs_type; - typedef Kokkos::MemoryPool pool_type; + using ptrs_type = Kokkos::View; + using pool_type = Kokkos::MemoryPool; pool_type pool; ptrs_type ptrs; @@ -268,15 +268,15 @@ void print_memory_pool_stats(typename PoolType::usage_statistics const& stats) { template void test_memory_pool_v2(const bool print_statistics, const bool print_superblocks) { - typedef typename DeviceType::memory_space memory_space; - typedef typename DeviceType::execution_space execution_space; - typedef Kokkos::MemoryPool pool_type; - typedef TestMemoryPool_Functor functor_type; + using memory_space = typename DeviceType::memory_space; + using execution_space = typename DeviceType::execution_space; + using pool_type = Kokkos::MemoryPool; + using functor_type = TestMemoryPool_Functor; - typedef typename functor_type::TagAlloc TagAlloc; - typedef typename functor_type::TagDealloc TagDealloc; - typedef typename functor_type::TagRealloc TagRealloc; - typedef typename functor_type::TagMixItUp TagMixItUp; + using TagAlloc = typename functor_type::TagAlloc; + using TagDealloc = typename functor_type::TagDealloc; + using TagRealloc = typename functor_type::TagRealloc; + using TagMixItUp = typename functor_type::TagMixItUp; const size_t total_alloc_size = 10000000; const unsigned min_block_size = 64; @@ -364,8 +364,8 @@ void test_memory_pool_v2(const bool print_statistics, template struct TestMemoryPoolCorners { - typedef Kokkos::View ptrs_type; - typedef Kokkos::MemoryPool pool_type; + using ptrs_type = Kokkos::View; + using pool_type = Kokkos::MemoryPool; pool_type pool; ptrs_type ptrs; @@ -407,11 +407,11 @@ struct TestMemoryPoolCorners { template void test_memory_pool_corners(const bool print_statistics, const bool print_superblocks) { - typedef typename DeviceType::memory_space memory_space; - typedef typename DeviceType::execution_space execution_space; - typedef Kokkos::MemoryPool pool_type; - typedef TestMemoryPoolCorners functor_type; - typedef typename functor_type::ptrs_type ptrs_type; + using memory_space = typename DeviceType::memory_space; + using execution_space = typename DeviceType::execution_space; + using pool_type = Kokkos::MemoryPool; + using functor_type = TestMemoryPoolCorners; + using ptrs_type = typename functor_type::ptrs_type; { // superblock size 1 << 14 @@ -491,9 +491,9 @@ struct TestMemoryPoolHuge< DeviceType, typename std::enable_if::value>::type> { - typedef Kokkos::View ptrs_type; - typedef Kokkos::MemoryPool pool_type; - typedef typename DeviceType::memory_space memory_space; + using ptrs_type = Kokkos::View; + using pool_type = Kokkos::MemoryPool; + using memory_space = typename DeviceType::memory_space; pool_type pool; ptrs_type ptrs; @@ -541,9 +541,9 @@ struct TestMemoryPoolHuge< template void test_memory_pool_huge() { - typedef typename DeviceType::execution_space execution_space; - typedef TestMemoryPoolHuge functor_type; - typedef Kokkos::RangePolicy policy_type; + using execution_space = typename DeviceType::execution_space; + using functor_type = TestMemoryPoolHuge; + using policy_type = Kokkos::RangePolicy; functor_type f; policy_type policy(0, functor_type::num_superblock); diff --git a/lib/kokkos/core/unit_test/TestNonTrivialScalarTypes.hpp b/lib/kokkos/core/unit_test/TestNonTrivialScalarTypes.hpp new file mode 100644 index 0000000000..3ee4a25ec0 --- /dev/null +++ b/lib/kokkos/core/unit_test/TestNonTrivialScalarTypes.hpp @@ -0,0 +1,338 @@ + +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef TESTNONTRIVIALSCALARTYPES_HPP_ +#define TESTNONTRIVIALSCALARTYPES_HPP_ + +#include + +#include +#include +#include +#include +#include + +namespace Test { + +struct my_complex { + double re, im; + int dummy; + + KOKKOS_INLINE_FUNCTION + my_complex() { + re = 0.0; + im = 0.0; + dummy = 0; + } + + KOKKOS_INLINE_FUNCTION + my_complex(const my_complex &src) { + re = src.re; + im = src.im; + dummy = src.dummy; + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator=(const my_complex &src) { + re = src.re; + im = src.im; + dummy = src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator=(const volatile my_complex &src) { + re = src.re; + im = src.im; + dummy = src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + volatile my_complex &operator=(const my_complex &src) volatile { + re = src.re; + im = src.im; + dummy = src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + volatile my_complex &operator=(const volatile my_complex &src) volatile { + re = src.re; + im = src.im; + dummy = src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + my_complex(const volatile my_complex &src) { + re = src.re; + im = src.im; + dummy = src.dummy; + } + + KOKKOS_INLINE_FUNCTION + my_complex(const double &val) { + re = val; + im = 0.0; + dummy = 0; + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator+=(const my_complex &src) { + re += src.re; + im += src.im; + dummy += src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + void operator+=(const volatile my_complex &src) volatile { + re += src.re; + im += src.im; + dummy += src.dummy; + } + + KOKKOS_INLINE_FUNCTION + my_complex operator+(const my_complex &src) { + my_complex tmp = *this; + tmp.re += src.re; + tmp.im += src.im; + tmp.dummy += src.dummy; + return tmp; + } + + KOKKOS_INLINE_FUNCTION + my_complex operator+(const volatile my_complex &src) volatile { + my_complex tmp = *this; + tmp.re += src.re; + tmp.im += src.im; + tmp.dummy += src.dummy; + return tmp; + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator*=(const my_complex &src) { + double re_tmp = re * src.re - im * src.im; + double im_tmp = re * src.im + im * src.re; + re = re_tmp; + im = im_tmp; + dummy *= src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + void operator*=(const volatile my_complex &src) volatile { + double re_tmp = re * src.re - im * src.im; + double im_tmp = re * src.im + im * src.re; + re = re_tmp; + im = im_tmp; + dummy *= src.dummy; + } + + KOKKOS_INLINE_FUNCTION + bool operator==(const my_complex &src) { + return (re == src.re) && (im == src.im) && (dummy == src.dummy); + } + + KOKKOS_INLINE_FUNCTION + bool operator!=(const my_complex &src) { + return (re != src.re) || (im != src.im) || (dummy != src.dummy); + } + + KOKKOS_INLINE_FUNCTION + bool operator!=(const double &val) { + return (re != val) || (im != 0) || (dummy != 0); + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator=(const int &val) { + re = val; + im = 0.0; + dummy = 0; + return *this; + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator=(const double &val) { + re = val; + im = 0.0; + dummy = 0; + return *this; + } + + KOKKOS_INLINE_FUNCTION + operator double() { return re; } +}; + +template +struct array_reduce { + scalar_t data[N]; + KOKKOS_INLINE_FUNCTION + array_reduce() { + for (int i = 0; i < N; i++) data[i] = scalar_t(); + } + KOKKOS_INLINE_FUNCTION + array_reduce(const array_reduce &rhs) { + for (int i = 0; i < N; i++) data[i] = rhs.data[i]; + } + KOKKOS_INLINE_FUNCTION + array_reduce(const scalar_t value) { + for (int i = 0; i < N; i++) data[i] = scalar_t(value); + } + + KOKKOS_INLINE_FUNCTION + array_reduce &operator=(const array_reduce &src) { + for (int i = 0; i < N; i++) data[i] = src.data[i]; + return *this; + } + + KOKKOS_INLINE_FUNCTION + array_reduce &operator=(const volatile array_reduce &src) { + for (int i = 0; i < N; i++) data[i] = src.data[i]; + return *this; + } + + KOKKOS_INLINE_FUNCTION // add operator + array_reduce & + operator=(const scalar_t val) { + for (int i = 0; i < N; i++) data[i] = val; + return *this; + } + KOKKOS_INLINE_FUNCTION // add operator + array_reduce & + operator=(const int val) { + for (int i = 0; i < N; i++) data[i] = val; + return *this; + } + + KOKKOS_INLINE_FUNCTION // add operator + array_reduce & + operator+=(const array_reduce &src) { + for (int i = 0; i < N; i++) data[i] += src.data[i]; + return *this; + } + KOKKOS_INLINE_FUNCTION // volatile add operator + void + operator+=(const volatile array_reduce &src) volatile { + for (int i = 0; i < N; i++) data[i] += src.data[i]; + } + KOKKOS_INLINE_FUNCTION // add operator + array_reduce + operator+(const array_reduce &src) const { + array_reduce result(*this); + for (int i = 0; i < N; i++) result.data[i] += src.data[i]; + return result; + } + KOKKOS_INLINE_FUNCTION // add operator + array_reduce + operator-(const array_reduce &src) const { + array_reduce result(*this); + for (int i = 0; i < N; i++) result.data[i] -= src.data[i]; + return result; + } + KOKKOS_INLINE_FUNCTION // add operator + array_reduce & + operator*=(const array_reduce &src) { + for (int i = 0; i < N; i++) data[i] *= src.data[i]; + return *this; + } + KOKKOS_INLINE_FUNCTION // volatile add operator + void + operator*=(const volatile array_reduce &src) volatile { + for (int i = 0; i < N; i++) data[i] *= src.data[i]; + } + KOKKOS_INLINE_FUNCTION // add operator + array_reduce + operator*(const array_reduce &src) const { + array_reduce result(*this); + for (int i = 0; i < N; i++) result.data[i] *= src.data[i]; + return result; + } + KOKKOS_INLINE_FUNCTION + bool operator==(const array_reduce &src) const { + bool equal = true; + for (int i = 0; i < N; i++) equal = equal && (data[i] == src.data[i]); + return equal; + } + KOKKOS_INLINE_FUNCTION + bool operator!=(const array_reduce &src) const { + bool equal = true; + for (int i = 0; i < N; i++) equal = equal && (data[i] == src.data[i]); + return !equal; + } + KOKKOS_INLINE_FUNCTION + explicit operator double() const { + double lsum = 0.0; + for (int i = 0; i < N; i++) lsum += data[i]; + return lsum; + } +}; +} // namespace Test + +namespace Kokkos { +template <> +struct reduction_identity { + using t_red_ident = reduction_identity; + KOKKOS_FORCEINLINE_FUNCTION static Test::my_complex sum() { + return Test::my_complex(t_red_ident::sum()); + } + KOKKOS_FORCEINLINE_FUNCTION static Test::my_complex prod() { + return Test::my_complex(t_red_ident::prod()); + } +}; + +template +struct reduction_identity> { + using t_red_ident = reduction_identity; + KOKKOS_FORCEINLINE_FUNCTION static Test::array_reduce sum() { + return Test::array_reduce(t_red_ident::sum()); + } + KOKKOS_FORCEINLINE_FUNCTION static Test::array_reduce prod() { + return Test::array_reduce(t_red_ident::prod()); + } +}; +} // namespace Kokkos +#endif // TESTNONTRIVIALSCALARTYPES_HPP_ diff --git a/lib/kokkos/core/unit_test/TestPolicyConstruction.hpp b/lib/kokkos/core/unit_test/TestPolicyConstruction.hpp index a5ec173205..f5f9a2fb66 100644 --- a/lib/kokkos/core/unit_test/TestPolicyConstruction.hpp +++ b/lib/kokkos/core/unit_test/TestPolicyConstruction.hpp @@ -68,264 +68,262 @@ class TestRangePolicyConstruction { } { - typedef Kokkos::RangePolicy<> policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy<>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy, - Kokkos::IndexType > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy, + Kokkos::IndexType>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy, ExecutionSpace, - Kokkos::Schedule > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy, ExecutionSpace, + Kokkos::Schedule>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy, - Kokkos::IndexType, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy, + Kokkos::IndexType, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy, - ExecutionSpace, Kokkos::IndexType, - SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy, ExecutionSpace, + Kokkos::IndexType, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy, - Kokkos::IndexType, ExecutionSpace> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy, + Kokkos::IndexType, ExecutionSpace>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy > policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy, - Kokkos::IndexType > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy, + Kokkos::IndexType>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy, - Kokkos::Schedule > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy, + Kokkos::Schedule>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy, - Kokkos::IndexType, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy, + Kokkos::IndexType, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy, - Kokkos::IndexType, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy, + Kokkos::IndexType, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::RangePolicy, - Kokkos::IndexType > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy, + Kokkos::IndexType>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } } void test_runtime_parameters() { + using policy_t = Kokkos::RangePolicy<>; { - typedef Kokkos::RangePolicy<> policy_t; policy_t p(5, 15); ASSERT_TRUE((p.begin() == 5)); ASSERT_TRUE((p.end() == 15)); } { - typedef Kokkos::RangePolicy<> policy_t; policy_t p(Kokkos::DefaultExecutionSpace(), 5, 15); ASSERT_TRUE((p.begin() == 5)); ASSERT_TRUE((p.end() == 15)); } { - typedef Kokkos::RangePolicy<> policy_t; policy_t p(5, 15, Kokkos::ChunkSize(10)); ASSERT_TRUE((p.begin() == 5)); ASSERT_TRUE((p.end() == 15)); ASSERT_TRUE((p.chunk_size() == 10)); } { - typedef Kokkos::RangePolicy<> policy_t; policy_t p(Kokkos::DefaultExecutionSpace(), 5, 15, Kokkos::ChunkSize(10)); ASSERT_TRUE((p.begin() == 5)); ASSERT_TRUE((p.end() == 15)); ASSERT_TRUE((p.chunk_size() == 10)); } + { + policy_t p; + ASSERT_TRUE((p.begin() == 0)); + ASSERT_TRUE((p.end() == 0)); + p = policy_t(5, 15, Kokkos::ChunkSize(10)); + ASSERT_TRUE((p.begin() == 5)); + ASSERT_TRUE((p.end() == 15)); + ASSERT_TRUE((p.chunk_size() == 10)); + } } }; @@ -340,234 +338,226 @@ class TestTeamPolicyConstruction { private: void test_compile_time_parameters() { { - typedef Kokkos::TeamPolicy<> policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy<>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy, - Kokkos::IndexType > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy, + Kokkos::IndexType>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy, ExecutionSpace, - Kokkos::Schedule > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy, ExecutionSpace, + Kokkos::Schedule>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy, - Kokkos::IndexType, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy, + Kokkos::IndexType, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy, - ExecutionSpace, Kokkos::IndexType, - SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy, ExecutionSpace, + Kokkos::IndexType, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy, - Kokkos::IndexType, ExecutionSpace> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy, + Kokkos::IndexType, ExecutionSpace>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy > policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy, - Kokkos::IndexType > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy, + Kokkos::IndexType>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy, - Kokkos::Schedule > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy, + Kokkos::Schedule>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy, - Kokkos::IndexType, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy, + Kokkos::IndexType, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy, - Kokkos::IndexType, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy, + Kokkos::IndexType, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } { - typedef Kokkos::TeamPolicy, - Kokkos::IndexType > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy, + Kokkos::IndexType>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same::value)); ASSERT_TRUE((std::is_same::value)); ASSERT_TRUE((std::is_same >::value)); + Kokkos::Schedule>::value)); ASSERT_TRUE((std::is_same::value)); } } @@ -585,9 +575,6 @@ class TestTeamPolicyConstruction { int per_team_scratch = 1024; int per_thread_scratch = 16; int scratch_size = per_team_scratch + per_thread_scratch * team_size; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int vector_length = 4; -#endif policy_t p1(league_size, team_size); ASSERT_EQ(p1.league_size(), league_size); @@ -598,11 +585,7 @@ class TestTeamPolicyConstruction { policy_t p2 = p1.set_chunk_size(chunk_size); ASSERT_EQ(p1.league_size(), league_size); ASSERT_EQ(p1.team_size(), team_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_TRUE(p1.chunk_size() > 0); -#else ASSERT_EQ(p1.chunk_size(), chunk_size); -#endif ASSERT_EQ(p1.scratch_size(0), 0); ASSERT_EQ(p2.league_size(), league_size); @@ -614,11 +597,7 @@ class TestTeamPolicyConstruction { ASSERT_EQ(p2.league_size(), league_size); ASSERT_EQ(p2.team_size(), team_size); ASSERT_EQ(p2.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p2.scratch_size(0), 0); -#else ASSERT_EQ(p2.scratch_size(0), per_team_scratch); -#endif ASSERT_EQ(p3.league_size(), league_size); ASSERT_EQ(p3.team_size(), team_size); ASSERT_EQ(p3.chunk_size(), chunk_size); @@ -628,30 +607,18 @@ class TestTeamPolicyConstruction { ASSERT_EQ(p2.league_size(), league_size); ASSERT_EQ(p2.team_size(), team_size); ASSERT_EQ(p2.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p2.scratch_size(0), 0); -#else ASSERT_EQ(p2.scratch_size(0), scratch_size); -#endif ASSERT_EQ(p4.league_size(), league_size); ASSERT_EQ(p4.team_size(), team_size); ASSERT_EQ(p4.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p4.scratch_size(0), per_thread_scratch * team_size); -#else ASSERT_EQ(p4.scratch_size(0), scratch_size); -#endif policy_t p5 = p2.set_scratch_size(0, Kokkos::PerThread(per_thread_scratch), Kokkos::PerTeam(per_team_scratch)); ASSERT_EQ(p2.league_size(), league_size); ASSERT_EQ(p2.team_size(), team_size); ASSERT_EQ(p2.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p2.scratch_size(0), 0); -#else ASSERT_EQ(p2.scratch_size(0), scratch_size); -#endif ASSERT_EQ(p5.league_size(), league_size); ASSERT_EQ(p5.team_size(), team_size); ASSERT_EQ(p5.chunk_size(), chunk_size); @@ -662,11 +629,7 @@ class TestTeamPolicyConstruction { ASSERT_EQ(p2.league_size(), league_size); ASSERT_EQ(p2.team_size(), team_size); ASSERT_EQ(p2.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p2.scratch_size(0), 0); -#else ASSERT_EQ(p2.scratch_size(0), scratch_size); -#endif ASSERT_EQ(p6.league_size(), league_size); ASSERT_EQ(p6.team_size(), team_size); ASSERT_EQ(p6.chunk_size(), chunk_size); @@ -677,206 +640,56 @@ class TestTeamPolicyConstruction { ASSERT_EQ(p3.league_size(), league_size); ASSERT_EQ(p3.team_size(), team_size); ASSERT_EQ(p3.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p3.scratch_size(0), per_team_scratch); -#else ASSERT_EQ(p3.scratch_size(0), scratch_size); -#endif ASSERT_EQ(p7.league_size(), league_size); ASSERT_EQ(p7.team_size(), team_size); ASSERT_EQ(p7.chunk_size(), chunk_size); ASSERT_EQ(p7.scratch_size(0), scratch_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - policy_t p8(league_size, team_size, Kokkos::ChunkSize(chunk_size)); + policy_t p8; // default constructed + ASSERT_EQ(p8.league_size(), 0); + ASSERT_EQ(p8.scratch_size(0), 0); + p8 = p3; // call assignment operator + ASSERT_EQ(p3.league_size(), league_size); + ASSERT_EQ(p3.team_size(), team_size); + ASSERT_EQ(p3.chunk_size(), chunk_size); + ASSERT_EQ(p3.scratch_size(0), scratch_size); ASSERT_EQ(p8.league_size(), league_size); ASSERT_EQ(p8.team_size(), team_size); ASSERT_EQ(p8.chunk_size(), chunk_size); - ASSERT_EQ(p8.scratch_size(0), 0); - - policy_t p10(league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p10.league_size(), league_size); - ASSERT_EQ(p10.team_size(), team_size); - ASSERT_TRUE(p10.chunk_size() > 0); - ASSERT_EQ(p10.scratch_size(0), per_team_scratch); - - policy_t p11( - league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p11.league_size(), league_size); - ASSERT_EQ(p11.team_size(), team_size); - ASSERT_TRUE(p11.chunk_size() > 0); - ASSERT_EQ(p11.scratch_size(0), per_thread_scratch * team_size); - - policy_t p12( - league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch), - Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p12.league_size(), league_size); - ASSERT_EQ(p12.team_size(), team_size); - ASSERT_TRUE(p12.chunk_size() > 0); - ASSERT_EQ(p12.scratch_size(0), scratch_size); - - policy_t p13(league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p13.league_size(), league_size); - ASSERT_EQ(p13.team_size(), team_size); - ASSERT_TRUE(p13.chunk_size() > 0); - ASSERT_EQ(p13.scratch_size(0), scratch_size); - - policy_t p14(league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p14.league_size(), league_size); - ASSERT_EQ(p14.team_size(), team_size); - ASSERT_TRUE(p14.chunk_size() > 0); - ASSERT_EQ(p14.scratch_size(0), scratch_size); - - policy_t p15(league_size, team_size, Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p15.league_size(), league_size); - ASSERT_EQ(p15.team_size(), team_size); - ASSERT_TRUE(p15.chunk_size() > 0); - ASSERT_EQ(p15.scratch_size(0), per_team_scratch); - - policy_t p16( - league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch)), - Kokkos::ChunkSize(chunk_size)); - ASSERT_EQ(p16.league_size(), league_size); - ASSERT_EQ(p16.team_size(), team_size); - ASSERT_EQ(p16.chunk_size(), chunk_size); - ASSERT_EQ(p16.scratch_size(0), per_thread_scratch * team_size); - - policy_t p17( - league_size, team_size, Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch), - Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p17.league_size(), league_size); - ASSERT_EQ(p17.team_size(), team_size); - ASSERT_EQ(p17.chunk_size(), chunk_size); - ASSERT_EQ(p17.scratch_size(0), scratch_size); - - policy_t p18(league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch)), - Kokkos::ChunkSize(chunk_size)); - ASSERT_EQ(p18.league_size(), league_size); - ASSERT_EQ(p18.team_size(), team_size); - ASSERT_EQ(p18.chunk_size(), chunk_size); - ASSERT_EQ(p18.scratch_size(0), scratch_size); - - policy_t p19(league_size, team_size, Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p19.league_size(), league_size); - ASSERT_EQ(p19.team_size(), team_size); - ASSERT_EQ(p19.chunk_size(), chunk_size); - ASSERT_EQ(p19.scratch_size(0), scratch_size); - - policy_t p20(league_size, team_size, vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p20.league_size(), league_size); - ASSERT_EQ(p20.team_size(), team_size); - ASSERT_TRUE(p20.chunk_size() > 0); - ASSERT_EQ(p20.scratch_size(0), per_team_scratch); - - policy_t p21( - league_size, team_size, vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p21.league_size(), league_size); - ASSERT_EQ(p21.team_size(), team_size); - ASSERT_TRUE(p21.chunk_size() > 0); - ASSERT_EQ(p21.scratch_size(0), per_thread_scratch * team_size); - - policy_t p22( - league_size, team_size, vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch), - Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p22.league_size(), league_size); - ASSERT_EQ(p22.team_size(), team_size); - ASSERT_TRUE(p22.chunk_size() > 0); - ASSERT_EQ(p22.scratch_size(0), scratch_size); - - policy_t p23(league_size, team_size, (size_t)vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p23.league_size(), league_size); - ASSERT_EQ(p23.team_size(), team_size); - ASSERT_TRUE(p23.chunk_size() > 0); - ASSERT_EQ(p23.scratch_size(0), scratch_size); - - policy_t p24(league_size, team_size, (size_t)vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p24.league_size(), league_size); - ASSERT_EQ(p24.team_size(), team_size); - ASSERT_TRUE(p24.chunk_size() > 0); - ASSERT_EQ(p24.scratch_size(0), scratch_size); - - policy_t p25(league_size, team_size, vector_length, - Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p25.league_size(), league_size); - ASSERT_EQ(p25.team_size(), team_size); - ASSERT_TRUE(p25.chunk_size() > 0); - ASSERT_EQ(p25.scratch_size(0), per_team_scratch); - - policy_t p26( - league_size, team_size, vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch)), - Kokkos::ChunkSize(chunk_size)); - ASSERT_EQ(p26.league_size(), league_size); - ASSERT_EQ(p26.team_size(), team_size); - ASSERT_EQ(p26.chunk_size(), chunk_size); - ASSERT_EQ(p26.scratch_size(0), per_thread_scratch * team_size); - - policy_t p27( - league_size, team_size, vector_length, Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch), - Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p27.league_size(), league_size); - ASSERT_EQ(p27.team_size(), team_size); - ASSERT_EQ(p27.chunk_size(), chunk_size); - ASSERT_EQ(p27.scratch_size(0), scratch_size); - - policy_t p28(league_size, team_size, (size_t)vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch)), - Kokkos::ChunkSize(chunk_size)); - ASSERT_EQ(p28.league_size(), league_size); - ASSERT_EQ(p28.team_size(), team_size); - ASSERT_EQ(p28.chunk_size(), chunk_size); - ASSERT_EQ(p28.scratch_size(0), scratch_size); - - policy_t p29(league_size, team_size, (size_t)vector_length, - Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p29.league_size(), league_size); - ASSERT_EQ(p29.team_size(), team_size); - ASSERT_EQ(p29.chunk_size(), chunk_size); - ASSERT_EQ(p29.scratch_size(0), scratch_size); -#endif + ASSERT_EQ(p8.scratch_size(0), scratch_size); } void test_run_time_parameters() { - test_run_time_parameters_type >(); + test_run_time_parameters_type>(); test_run_time_parameters_type< Kokkos::TeamPolicy, - Kokkos::IndexType > >(); + Kokkos::IndexType>>(); test_run_time_parameters_type< Kokkos::TeamPolicy, ExecutionSpace, - Kokkos::Schedule > >(); - test_run_time_parameters_type, Kokkos::IndexType, - ExecutionSpace, SomeTag> >(); + Kokkos::Schedule>>(); + test_run_time_parameters_type< + Kokkos::TeamPolicy, + Kokkos::IndexType, ExecutionSpace, SomeTag>>(); } }; +// semiregular is copyable and default initializable +// (regular requires equality comparable) +template +void check_semiregular() { + static_assert(std::is_default_constructible::value, ""); + static_assert(std::is_copy_constructible::value, ""); + static_assert(std::is_move_constructible::value, ""); + static_assert(std::is_copy_assignable::value, ""); + static_assert(std::is_move_assignable::value, ""); + static_assert(std::is_destructible::value, ""); +} + TEST(TEST_CATEGORY, policy_construction) { + check_semiregular>(); + check_semiregular>(); + TestRangePolicyConstruction(); TestTeamPolicyConstruction(); } diff --git a/lib/kokkos/core/unit_test/TestRange.hpp b/lib/kokkos/core/unit_test/TestRange.hpp index 9bd13ad239..83cc16d6c0 100644 --- a/lib/kokkos/core/unit_test/TestRange.hpp +++ b/lib/kokkos/core/unit_test/TestRange.hpp @@ -52,9 +52,9 @@ namespace { template struct TestRange { - typedef int value_type; ///< typedef required for the parallel_reduce + using value_type = int; ///< alias required for the parallel_reduce - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type m_flags; view_type result_view; @@ -87,9 +87,8 @@ struct TestRange { Kokkos::parallel_for(Kokkos::RangePolicy(0, N), *this); -#if defined(KOKKOS_ENABLE_PROFILING) { - typedef TestRange ThisType; + using ThisType = TestRange; std::string label("parallel_for"); Kokkos::Impl::ParallelConstructName pcn(label); ASSERT_EQ(pcn.get(), label); @@ -98,15 +97,13 @@ struct TestRange { empty_label); ASSERT_EQ(empty_pcn.get(), typeid(ThisType).name()); } -#endif Kokkos::parallel_for( Kokkos::RangePolicy(0, N), *this); -#if defined(KOKKOS_ENABLE_PROFILING) { - typedef TestRange ThisType; + using ThisType = TestRange; std::string label("parallel_for"); Kokkos::Impl::ParallelConstructName pcn(label); ASSERT_EQ(pcn.get(), label); @@ -116,7 +113,6 @@ struct TestRange { ASSERT_EQ(empty_pcn.get(), std::string(typeid(ThisType).name()) + "/" + typeid(VerifyInitTag).name()); } -#endif Kokkos::deep_copy(host_flags, m_flags); @@ -276,8 +272,8 @@ struct TestRange { void test_dynamic_policy() { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) auto const N_no_implicit_capture = N; - typedef Kokkos::RangePolicy > - policy_t; + using policy_t = + Kokkos::RangePolicy >; { Kokkos::View > @@ -290,11 +286,7 @@ struct TestRange { k++) { a(i)++; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - count(ExecSpace::hardware_thread_id())++; -#else - count( ExecSpace::impl_hardware_thread_id() )++; -#endif + count(ExecSpace::impl_hardware_thread_id())++; }); int error = 0; @@ -335,11 +327,7 @@ struct TestRange { k++) { a(i)++; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - count(ExecSpace::hardware_thread_id())++; -#else count(ExecSpace::impl_hardware_thread_id())++; -#endif lsum++; }, sum); diff --git a/lib/kokkos/core/unit_test/TestRangeRequire.hpp b/lib/kokkos/core/unit_test/TestRangeRequire.hpp index a75af0b95b..e70ea666b9 100644 --- a/lib/kokkos/core/unit_test/TestRangeRequire.hpp +++ b/lib/kokkos/core/unit_test/TestRangeRequire.hpp @@ -56,9 +56,9 @@ namespace { template struct TestRangeRequire { - typedef int value_type; ///< typedef required for the parallel_reduce + using value_type = int; ///< alias required for the parallel_reduce - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type m_flags; @@ -82,9 +82,8 @@ struct TestRangeRequire { Kokkos::RangePolicy(0, N), Property()), *this); -#if defined(KOKKOS_ENABLE_PROFILING) { - typedef TestRangeRequire ThisType; + using ThisType = TestRangeRequire; std::string label("parallel_for"); Kokkos::Impl::ParallelConstructName pcn(label); ASSERT_EQ(pcn.get(), label); @@ -93,7 +92,6 @@ struct TestRangeRequire { empty_label); ASSERT_EQ(empty_pcn.get(), typeid(ThisType).name()); } -#endif Kokkos::parallel_for( Kokkos::Experimental::require( @@ -101,9 +99,8 @@ struct TestRangeRequire { Property()), *this); -#if defined(KOKKOS_ENABLE_PROFILING) { - typedef TestRangeRequire ThisType; + using ThisType = TestRangeRequire; std::string label("parallel_for"); Kokkos::Impl::ParallelConstructName pcn(label); ASSERT_EQ(pcn.get(), label); @@ -113,7 +110,6 @@ struct TestRangeRequire { ASSERT_EQ(empty_pcn.get(), std::string(typeid(ThisType).name()) + "/" + typeid(VerifyInitTag).name()); } -#endif Kokkos::deep_copy(host_flags, m_flags); @@ -274,8 +270,8 @@ struct TestRangeRequire { void test_dynamic_policy() { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) auto const N_no_implicit_capture = N; - typedef Kokkos::RangePolicy > - policy_t; + using policy_t = + Kokkos::RangePolicy >; { Kokkos::View > @@ -288,11 +284,7 @@ struct TestRangeRequire { k++) { a(i)++; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - count(ExecSpace::hardware_thread_id())++; -#else - count( ExecSpace::impl_hardware_thread_id() )++; -#endif + count(ExecSpace::impl_hardware_thread_id())++; }); int error = 0; @@ -333,11 +325,7 @@ struct TestRangeRequire { k++) { a(i)++; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - count(ExecSpace::hardware_thread_id())++; -#else count(ExecSpace::impl_hardware_thread_id())++; -#endif lsum++; }, sum); diff --git a/lib/kokkos/core/unit_test/TestReduce.hpp b/lib/kokkos/core/unit_test/TestReduce.hpp index d63d5e8d4a..fd559f521c 100644 --- a/lib/kokkos/core/unit_test/TestReduce.hpp +++ b/lib/kokkos/core/unit_test/TestReduce.hpp @@ -54,8 +54,8 @@ namespace Test { template class ReduceFunctor { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; struct value_type { ScalarType value[3]; @@ -97,7 +97,7 @@ class ReduceFunctor { template class ReduceFunctorFinal : public ReduceFunctor { public: - typedef typename ReduceFunctor::value_type value_type; + using value_type = typename ReduceFunctor::value_type; KOKKOS_INLINE_FUNCTION ReduceFunctorFinal(const size_t n) : ReduceFunctor(n) {} @@ -114,13 +114,13 @@ template class RuntimeReduceFunctor { public: // Required for functor: - typedef DeviceType execution_space; - typedef ScalarType value_type[]; + using execution_space = DeviceType; + using value_type = ScalarType[]; const unsigned value_count; // Unit test details: - typedef typename execution_space::size_type size_type; + using size_type = typename execution_space::size_type; const size_type nwork; @@ -151,13 +151,13 @@ template class RuntimeReduceMinMax { public: // Required for functor: - typedef DeviceType execution_space; - typedef ScalarType value_type[]; + using execution_space = DeviceType; + using value_type = ScalarType[]; const unsigned value_count; // Unit test details: - typedef typename execution_space::size_type size_type; + using size_type = typename execution_space::size_type; const size_type nwork; const ScalarType amin; @@ -200,9 +200,9 @@ template class RuntimeReduceFunctorFinal : public RuntimeReduceFunctor { public: - typedef RuntimeReduceFunctor base_type; - typedef typename base_type::value_type value_type; - typedef int64_t scalar_type; + using base_type = RuntimeReduceFunctor; + using value_type = typename base_type::value_type; + using scalar_type = int64_t; RuntimeReduceFunctorFinal(const size_t theNwork, const size_t count) : base_type(theNwork, count) {} @@ -215,13 +215,38 @@ class RuntimeReduceFunctorFinal } }; +template +class CombinedReduceFunctorSameType { + public: + using execution_space = typename DeviceType::execution_space; + using size_type = typename execution_space::size_type; + + const size_type nwork; + + KOKKOS_INLINE_FUNCTION + constexpr explicit CombinedReduceFunctorSameType(const size_type& arg_nwork) + : nwork(arg_nwork) {} + + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReduceFunctorSameType( + const CombinedReduceFunctorSameType& rhs) = default; + + KOKKOS_INLINE_FUNCTION + void operator()(size_type iwork, ValueType& dst1, ValueType& dst2, + ValueType& dst3) const { + dst1 += 1; + dst2 += iwork + 1; + dst3 += nwork - iwork; + } +}; + namespace { template class TestReduce { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; TestReduce(const size_type& nwork) { run_test(nwork); @@ -229,8 +254,8 @@ class TestReduce { } void run_test(const size_type& nwork) { - typedef Test::ReduceFunctor functor_type; - typedef typename functor_type::value_type value_type; + using functor_type = Test::ReduceFunctor; + using value_type = typename functor_type::value_type; enum { Count = 3 }; enum { Repeat = 100 }; @@ -253,8 +278,8 @@ class TestReduce { } void run_test_final(const size_type& nwork) { - typedef Test::ReduceFunctorFinal functor_type; - typedef typename functor_type::value_type value_type; + using functor_type = Test::ReduceFunctorFinal; + using value_type = typename functor_type::value_type; enum { Count = 3 }; enum { Repeat = 100 }; @@ -285,8 +310,8 @@ class TestReduce { template class TestReduceDynamic { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; TestReduceDynamic(const size_type nwork) { run_test_dynamic(nwork); @@ -295,8 +320,8 @@ class TestReduceDynamic { } void run_test_dynamic(const size_type nwork) { - typedef Test::RuntimeReduceFunctor - functor_type; + using functor_type = + Test::RuntimeReduceFunctor; enum { Count = 3 }; enum { Repeat = 100 }; @@ -324,7 +349,7 @@ class TestReduceDynamic { } void run_test_dynamic_minmax(const size_type nwork) { - typedef Test::RuntimeReduceMinMax functor_type; + using functor_type = Test::RuntimeReduceMinMax; enum { Count = 2 }; enum { Repeat = 100 }; @@ -356,7 +381,7 @@ class TestReduceDynamic { } void run_test_dynamic_final(const size_type nwork) { - typedef Test::RuntimeReduceFunctorFinal functor_type; + using functor_type = Test::RuntimeReduceFunctorFinal; enum { Count = 3 }; enum { Repeat = 100 }; @@ -387,17 +412,17 @@ class TestReduceDynamic { template class TestReduceDynamicView { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; TestReduceDynamicView(const size_type nwork) { run_test_dynamic_view(nwork); } void run_test_dynamic_view(const size_type nwork) { - typedef Test::RuntimeReduceFunctor - functor_type; + using functor_type = + Test::RuntimeReduceFunctor; - typedef Kokkos::View result_type; - typedef typename result_type::HostMirror result_host_type; + using result_type = Kokkos::View; + using result_host_type = typename result_type::HostMirror; const unsigned CountLimit = 23; @@ -455,4 +480,45 @@ TEST(TEST_CATEGORY, int64_t_reduce_dynamic_view) { TestReduceDynamicView(1000000); } +TEST(TEST_CATEGORY, int_combined_reduce) { + using functor_type = CombinedReduceFunctorSameType; + constexpr uint64_t nw = 1000; + + uint64_t nsum = (nw / 2) * (nw + 1); + + int64_t result1 = 0; + int64_t result2 = 0; + int64_t result3 = 0; + + Kokkos::parallel_reduce("int_combined_reduce", + Kokkos::RangePolicy(0, nw), + functor_type(nw), result1, result2, result3); + + ASSERT_EQ(nw, result1); + ASSERT_EQ(nsum, result2); + ASSERT_EQ(nsum, result3); +} + +TEST(TEST_CATEGORY, int_combined_reduce_mixed) { + using functor_type = CombinedReduceFunctorSameType; + + constexpr uint64_t nw = 1000; + + uint64_t nsum = (nw / 2) * (nw + 1); + + auto result1_v = Kokkos::View{"result1_v"}; + + int64_t result2 = 0; + + auto result3_v = Kokkos::View{"result3_v"}; + + Kokkos::parallel_reduce("int_combined-reduce_mixed", + Kokkos::RangePolicy(0, nw), + functor_type(nw), result1_v, result2, + Kokkos::Sum{result3_v}); + + ASSERT_EQ(nw, result1_v()); + ASSERT_EQ(nsum, result2); + ASSERT_EQ(nsum, result3_v()); +} } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestReduceCombinatorical.hpp b/lib/kokkos/core/unit_test/TestReduceCombinatorical.hpp index fe85f360cb..199cec11a4 100644 --- a/lib/kokkos/core/unit_test/TestReduceCombinatorical.hpp +++ b/lib/kokkos/core/unit_test/TestReduceCombinatorical.hpp @@ -57,12 +57,11 @@ template struct AddPlus { public: // Required. - typedef AddPlus reducer; - typedef Scalar value_type; + using reducer = AddPlus; + using value_type = Scalar; - typedef Kokkos::View > - result_view_type; + using result_view_type = + Kokkos::View >; private: result_view_type result; @@ -105,7 +104,7 @@ struct FunctorScalar<0> { template <> struct FunctorScalar<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View result; @@ -135,7 +134,7 @@ struct FunctorScalarInit<0> { template <> struct FunctorScalarInit<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View result; @@ -168,7 +167,7 @@ struct FunctorScalarFinal<0> { template <> struct FunctorScalarFinal<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View result; @@ -203,7 +202,7 @@ struct FunctorScalarJoin<0> { template <> struct FunctorScalarJoin<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View result; @@ -243,7 +242,7 @@ struct FunctorScalarJoinFinal<0> { template <> struct FunctorScalarJoinFinal<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View result; @@ -286,7 +285,7 @@ struct FunctorScalarJoinInit<0> { template <> struct FunctorScalarJoinInit<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View result; @@ -332,7 +331,7 @@ struct FunctorScalarJoinFinalInit<0> { template <> struct FunctorScalarJoinFinalInit<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View result; @@ -361,7 +360,7 @@ struct Functor1 { }; struct Functor2 { - typedef double value_type[]; + using value_type = double[]; const unsigned value_count; @@ -425,6 +424,8 @@ struct TestReduceCombinatoricalInstantiation { ASSERT_EQ(expected_result, result_view_const_um()); value = 0; +// WORKAROUND OPENMPTARGET Custom Reducers not implemented +#ifndef KOKKOS_ENABLE_OPENMPTARGET CallParallelReduce(args..., Test::ReduceCombinatorical::AddPlus(value)); if ((Kokkos::DefaultExecutionSpace::concurrency() > 1) && @@ -449,6 +450,7 @@ struct TestReduceCombinatoricalInstantiation { } else { ASSERT_EQ(expected_result, value); } +#endif } template @@ -483,6 +485,9 @@ struct TestReduceCombinatoricalInstantiation { AddReturnArgument( args..., Test::ReduceCombinatorical::FunctorScalar(result_view)); +// WORKAROUND OPENMPTARGET: reductions with functor join/init/final not +// implemented +#ifndef KOKKOS_ENABLE_OPENMPTARGET AddReturnArgument( args..., Test::ReduceCombinatorical::FunctorScalarInit(result_view)); @@ -519,6 +524,7 @@ struct TestReduceCombinatoricalInstantiation { Kokkos::fence(); Kokkos::deep_copy(h_r, result_view); ASSERT_EQ(expected_result, h_r()); +#endif } template diff --git a/lib/kokkos/core/unit_test/TestReduceDeviceView.hpp b/lib/kokkos/core/unit_test/TestReduceDeviceView.hpp index d0562a2aa0..d82709b300 100644 --- a/lib/kokkos/core/unit_test/TestReduceDeviceView.hpp +++ b/lib/kokkos/core/unit_test/TestReduceDeviceView.hpp @@ -123,11 +123,13 @@ TEST(TEST_CATEGORY, reduce_device_view_mdrange_policy) { MDRangePolicyFunctor()); } +// FIXME_HIP +#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, reduce_device_view_team_policy) { int N = 1000 * 1024 * 1024; test_reduce_device_view( N, Kokkos::TeamPolicy(1000 * 1024, Kokkos::AUTO), TeamPolicyFunctor(1024)); } - +#endif } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestReducers.hpp b/lib/kokkos/core/unit_test/TestReducers.hpp index 04b4bd373f..b0b6fe7c85 100644 --- a/lib/kokkos/core/unit_test/TestReducers.hpp +++ b/lib/kokkos/core/unit_test/TestReducers.hpp @@ -493,7 +493,7 @@ struct TestReducers { } static void test_minloc(int N) { - typedef typename Kokkos::MinLoc::value_type value_type; + using value_type = typename Kokkos::MinLoc::value_type; Kokkos::View values("Values", N); auto h_values = Kokkos::create_mirror_view(values); @@ -556,7 +556,7 @@ struct TestReducers { } static void test_maxloc(int N) { - typedef typename Kokkos::MaxLoc::value_type value_type; + using value_type = typename Kokkos::MaxLoc::value_type; Kokkos::View values("Values", N); auto h_values = Kokkos::create_mirror_view(values); @@ -619,7 +619,7 @@ struct TestReducers { } static void test_minmaxloc(int N) { - typedef typename Kokkos::MinMaxLoc::value_type value_type; + using value_type = typename Kokkos::MinMaxLoc::value_type; Kokkos::View values("Values", N); auto h_values = Kokkos::create_mirror_view(values); diff --git a/lib/kokkos/core/unit_test/TestReducers_d.hpp b/lib/kokkos/core/unit_test/TestReducers_d.hpp index 2dc8ae5b5a..44545a89dd 100644 --- a/lib/kokkos/core/unit_test/TestReducers_d.hpp +++ b/lib/kokkos/core/unit_test/TestReducers_d.hpp @@ -42,11 +42,20 @@ //@HEADER */ +#include #include +#include namespace Test { TEST(TEST_CATEGORY, reducers_complex_double) { TestReducers, TEST_EXECSPACE>::execute_basic(); } +TEST(TEST_CATEGORY, reducers_struct) { + TestReducers, TEST_EXECSPACE>::test_sum(1031); + TestReducers, TEST_EXECSPACE>::test_sum(1031); + TestReducers, TEST_EXECSPACE>::test_sum(1031); + TestReducers, TEST_EXECSPACE>::test_sum(1031); + TestReducers, TEST_EXECSPACE>::test_sum(1031); +} } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestResize.hpp b/lib/kokkos/core/unit_test/TestResize.hpp index 32a85f03e9..cf5c0df6f9 100644 --- a/lib/kokkos/core/unit_test/TestResize.hpp +++ b/lib/kokkos/core/unit_test/TestResize.hpp @@ -68,7 +68,7 @@ void impl_testResize() { // Check #904 fix (no reallocation if dimensions didn't change). { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_1d("view_1d", sizes[0]); const int* oldPointer = view_1d.data(); EXPECT_TRUE(oldPointer != nullptr); @@ -77,7 +77,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_2d("view_2d", sizes[0], sizes[1]); const int* oldPointer = view_2d.data(); EXPECT_TRUE(oldPointer != nullptr); @@ -86,7 +86,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_3d("view_3d", sizes[0], sizes[1], sizes[2]); const int* oldPointer = view_3d.data(); EXPECT_TRUE(oldPointer != nullptr); @@ -95,7 +95,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_4d("view_4d", sizes[0], sizes[1], sizes[2], sizes[3]); const int* oldPointer = view_4d.data(); EXPECT_TRUE(oldPointer != nullptr); @@ -104,7 +104,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_5d("view_5d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4]); const int* oldPointer = view_5d.data(); @@ -115,7 +115,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_6d("view_6d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5]); const int* oldPointer = view_6d.data(); @@ -126,7 +126,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_7d("view_7d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6]); const int* oldPointer = view_7d.data(); @@ -137,7 +137,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_8d("view_8d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6], sizes[7]); const int* oldPointer = view_8d.data(); @@ -149,7 +149,7 @@ void impl_testResize() { } // Resize without initialization: check if data preserved { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_1d("view_1d", sizes[0]); typename view_type::HostMirror h_view_1d_old = Kokkos::create_mirror(view_1d); @@ -170,7 +170,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_2d("view_2d", sizes[0], sizes[1]); typename view_type::HostMirror h_view_2d_old = Kokkos::create_mirror(view_2d); @@ -193,7 +193,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_3d("view_3d", sizes[0], sizes[1], sizes[2]); typename view_type::HostMirror h_view_3d_old = Kokkos::create_mirror(view_3d); @@ -218,7 +218,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_4d("view_4d", sizes[0], sizes[1], sizes[2], sizes[3]); typename view_type::HostMirror h_view_4d_old = Kokkos::create_mirror(view_4d); @@ -245,7 +245,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_5d("view_5d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4]); typename view_type::HostMirror h_view_5d_old = @@ -277,7 +277,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_6d("view_6d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5]); typename view_type::HostMirror h_view_6d_old = @@ -311,7 +311,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_7d("view_7d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6]); typename view_type::HostMirror h_view_7d_old = @@ -347,7 +347,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; view_type view_8d("view_8d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6], sizes[7]); typename view_type::HostMirror h_view_8d_old = diff --git a/lib/kokkos/core/unit_test/TestScan.hpp b/lib/kokkos/core/unit_test/TestScan.hpp index f7ebbb62a3..0a2121a850 100644 --- a/lib/kokkos/core/unit_test/TestScan.hpp +++ b/lib/kokkos/core/unit_test/TestScan.hpp @@ -49,8 +49,8 @@ namespace Test { template struct TestScan { - typedef Device execution_space; - typedef int64_t value_type; + using execution_space = Device; + using value_type = int64_t; Kokkos::View > errors; @@ -76,7 +76,8 @@ struct TestScan { int fail = errors()++; if (fail < 20) { - printf("TestScan(%d,%ld) != %ld\n", iwork, update, answer); + printf("TestScan(%d,%ld) != %ld\n", iwork, static_cast(update), + static_cast(answer)); } } } @@ -108,7 +109,7 @@ struct TestScan { } TestScan(const WorkSpec& Start, const WorkSpec& N) { - typedef Kokkos::RangePolicy exec_policy; + using exec_policy = Kokkos::RangePolicy; Kokkos::View errors_a("Errors"); Kokkos::deep_copy(errors_a, 0); @@ -143,8 +144,8 @@ TEST(TEST_CATEGORY, scan) { /*TEST( TEST_CATEGORY, scan_small ) { - typedef TestScan< TEST_EXECSPACE, Kokkos::Impl::ThreadsExecUseScanSmall > -TestScanFunctor; + using TestScanFunctor = + TestScan< TEST_EXECSPACE, Kokkos::Impl::ThreadsExecUseScanSmall >; for ( int i = 0; i < 1000; ++i ) { TestScanFunctor( 10 ); diff --git a/lib/kokkos/core/unit_test/TestSharedAlloc.hpp b/lib/kokkos/core/unit_test/TestSharedAlloc.hpp index 1b67e29d70..6c89649530 100644 --- a/lib/kokkos/core/unit_test/TestSharedAlloc.hpp +++ b/lib/kokkos/core/unit_test/TestSharedAlloc.hpp @@ -66,12 +66,12 @@ struct SharedAllocDestroy { template void test_shared_alloc() { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - typedef const Kokkos::Impl::SharedAllocationHeader Header; - typedef Kokkos::Impl::SharedAllocationTracker Tracker; - typedef Kokkos::Impl::SharedAllocationRecord RecordBase; - typedef Kokkos::Impl::SharedAllocationRecord RecordMemS; - typedef Kokkos::Impl::SharedAllocationRecord - RecordFull; + using Header = const Kokkos::Impl::SharedAllocationHeader; + using Tracker = Kokkos::Impl::SharedAllocationTracker; + using RecordBase = Kokkos::Impl::SharedAllocationRecord; + using RecordMemS = Kokkos::Impl::SharedAllocationRecord; + using RecordFull = + Kokkos::Impl::SharedAllocationRecord; static_assert(sizeof(Tracker) == sizeof(int*), "SharedAllocationTracker has wrong size!"); diff --git a/lib/kokkos/core/unit_test/TestTaskScheduler.hpp b/lib/kokkos/core/unit_test/TestTaskScheduler.hpp index ebfdcf1df3..9435e8eccc 100644 --- a/lib/kokkos/core/unit_test/TestTaskScheduler.hpp +++ b/lib/kokkos/core/unit_test/TestTaskScheduler.hpp @@ -136,7 +136,7 @@ struct TestFib { } static void run(int i, size_t MemoryCapacity = 16000) { - typedef typename sched_type::memory_space memory_space; + using memory_space = typename sched_type::memory_space; enum { MinBlockSize = 64 }; enum { MaxBlockSize = 1024 }; @@ -185,10 +185,10 @@ namespace TestTaskScheduler { template struct TestTaskDependence { - typedef Scheduler sched_type; - typedef Kokkos::BasicFuture future_type; - typedef Kokkos::View accum_type; - typedef void value_type; + using sched_type = Scheduler; + using future_type = Kokkos::BasicFuture; + using accum_type = Kokkos::View; + using value_type = void; accum_type m_accum; long m_count; @@ -224,7 +224,7 @@ struct TestTaskDependence { } static void run(int n) { - typedef typename sched_type::memory_space memory_space; + using memory_space = typename sched_type::memory_space; enum { MemoryCapacity = 16000 }; enum { MinBlockSize = 64 }; @@ -264,11 +264,11 @@ struct TestTaskTeam { enum { SPAN = 33 }; // enum { SPAN = 1 }; - typedef void value_type; + using value_type = void; using sched_type = Scheduler; using future_type = Kokkos::BasicFuture; using ExecSpace = typename sched_type::execution_space; - typedef Kokkos::View view_type; + using view_type = Kokkos::View; future_type future; @@ -480,11 +480,11 @@ template struct TestTaskTeamValue { enum { SPAN = 8 }; - typedef long value_type; + using value_type = long; using sched_type = Scheduler; using future_type = Kokkos::BasicFuture; using ExecSpace = typename sched_type::execution_space; - typedef Kokkos::View view_type; + using view_type = Kokkos::View; future_type future; @@ -576,8 +576,8 @@ template struct TestTaskSpawnWithPool { using sched_type = Scheduler; using future_type = Kokkos::BasicFuture; - typedef void value_type; - using Space = typename sched_type::execution_space; + using value_type = void; + using Space = typename sched_type::execution_space; int m_count; Kokkos::MemoryPool m_pool; @@ -596,7 +596,7 @@ struct TestTaskSpawnWithPool { } static void run() { - typedef typename sched_type::memory_space memory_space; + using memory_space = typename sched_type::memory_space; enum { MemoryCapacity = 16000 }; enum { MinBlockSize = 64 }; @@ -793,7 +793,7 @@ struct TestMultipleDependence { } static void run(int depth) { - typedef typename sched_type::memory_space memory_space; + using memory_space = typename sched_type::memory_space; enum { MemoryCapacity = 1 << 30 }; enum { MinBlockSize = 64 }; diff --git a/lib/kokkos/core/unit_test/TestTeam.hpp b/lib/kokkos/core/unit_test/TestTeam.hpp index d1ee003969..023e3dfbb3 100644 --- a/lib/kokkos/core/unit_test/TestTeam.hpp +++ b/lib/kokkos/core/unit_test/TestTeam.hpp @@ -55,9 +55,9 @@ namespace { template struct TestTeamPolicy { - typedef typename Kokkos::TeamPolicy::member_type - team_member; - typedef Kokkos::View view_type; + using team_member = + typename Kokkos::TeamPolicy::member_type; + using view_type = Kokkos::View; view_type m_flags; @@ -120,9 +120,9 @@ struct TestTeamPolicy { static void test_for(const size_t league_size) { TestTeamPolicy functor(league_size); - typedef Kokkos::TeamPolicy policy_type; - typedef Kokkos::TeamPolicy - policy_type_init; + using policy_type = Kokkos::TeamPolicy; + using policy_type_init = + Kokkos::TeamPolicy; const int team_size = policy_type(league_size, 1) .team_size_max(functor, Kokkos::ParallelForTag()); @@ -139,7 +139,7 @@ struct TestTeamPolicy { struct ReduceTag {}; - typedef int64_t value_type; + using value_type = int64_t; KOKKOS_INLINE_FUNCTION void operator()(const team_member &member, value_type &update) const { @@ -156,9 +156,9 @@ struct TestTeamPolicy { static void test_reduce(const size_t league_size) { TestTeamPolicy functor(league_size); - typedef Kokkos::TeamPolicy policy_type; - typedef Kokkos::TeamPolicy - policy_type_reduce; + using policy_type = Kokkos::TeamPolicy; + using policy_type_reduce = + Kokkos::TeamPolicy; const int team_size = policy_type_reduce(league_size, 1) @@ -189,9 +189,9 @@ namespace Test { template class ReduceTeamFunctor { public: - typedef DeviceType execution_space; - typedef Kokkos::TeamPolicy policy_type; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using policy_type = Kokkos::TeamPolicy; + using size_type = typename execution_space::size_type; struct value_type { ScalarType value[3]; @@ -245,18 +245,18 @@ namespace { template class TestReduceTeam { public: - typedef DeviceType execution_space; - typedef Kokkos::TeamPolicy policy_type; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using policy_type = Kokkos::TeamPolicy; + using size_type = typename execution_space::size_type; TestReduceTeam(const size_type &nwork) { run_test(nwork); } void run_test(const size_type &nwork) { - typedef Test::ReduceTeamFunctor - functor_type; - typedef typename functor_type::value_type value_type; - typedef Kokkos::View - result_type; + using functor_type = + Test::ReduceTeamFunctor; + using value_type = typename functor_type::value_type; + using result_type = + Kokkos::View; enum { Count = 3 }; enum { Repeat = 100 }; @@ -299,9 +299,9 @@ namespace Test { template class ScanTeamFunctor { public: - typedef DeviceType execution_space; - typedef Kokkos::TeamPolicy policy_type; - typedef int64_t value_type; + using execution_space = DeviceType; + using policy_type = Kokkos::TeamPolicy; + using value_type = int64_t; Kokkos::View accum; Kokkos::View total; @@ -318,7 +318,7 @@ class ScanTeamFunctor { } struct JoinMax { - typedef int64_t value_type; + using value_type = int64_t; KOKKOS_INLINE_FUNCTION void join(value_type volatile &dst, @@ -341,11 +341,14 @@ class ScanTeamFunctor { if (m != ind.league_rank() + (ind.team_size() - 1)) { printf( - "ScanTeamFunctor[%d.%d of %d.%d] reduce_max_answer(%ld) != " - "reduce_max(%ld)\n", - ind.league_rank(), ind.team_rank(), ind.league_size(), - ind.team_size(), (int64_t)(ind.league_rank() + (ind.team_size() - 1)), - m); + "ScanTeamFunctor[%i.%i of %i.%i] reduce_max_answer(%li) != " + "reduce_max(%li)\n", + static_cast(ind.league_rank()), + static_cast(ind.team_rank()), + static_cast(ind.league_size()), + static_cast(ind.team_size()), + static_cast(ind.league_rank() + (ind.team_size() - 1)), + static_cast(m)); } // Scan: @@ -360,10 +363,13 @@ class ScanTeamFunctor { if (answer != result || answer != result2) { printf( - "ScanTeamFunctor[%d.%d of %d.%d] answer(%ld) != scan_first(%ld) or " - "scan_second(%ld)\n", - ind.league_rank(), ind.team_rank(), ind.league_size(), - ind.team_size(), answer, result, result2); + "ScanTeamFunctor[%i.%i of %i.%i] answer(%li) != scan_first(%li) or " + "scan_second(%li)\n", + static_cast(ind.league_rank()), + static_cast(ind.team_rank()), + static_cast(ind.league_size()), + static_cast(ind.team_size()), static_cast(answer), + static_cast(result), static_cast(result2)); error = 1; } @@ -377,16 +383,16 @@ class ScanTeamFunctor { template class TestScanTeam { public: - typedef DeviceType execution_space; - typedef int64_t value_type; - typedef Kokkos::TeamPolicy policy_type; - typedef Test::ScanTeamFunctor functor_type; + using execution_space = DeviceType; + using value_type = int64_t; + using policy_type = Kokkos::TeamPolicy; + using functor_type = Test::ScanTeamFunctor; TestScanTeam(const size_t nteam) { run_test(nteam); } void run_test(const size_t nteam) { - typedef Kokkos::View - result_type; + using result_type = + Kokkos::View; const unsigned REPEAT = 100000; unsigned Repeat; @@ -431,17 +437,17 @@ namespace Test { template struct SharedTeamFunctor { - typedef ExecSpace execution_space; - typedef int value_type; - typedef Kokkos::TeamPolicy policy_type; + using execution_space = ExecSpace; + using value_type = int; + using policy_type = Kokkos::TeamPolicy; enum { SHARED_COUNT = 1000 }; - typedef typename ExecSpace::scratch_memory_space shmem_space; + using shmem_space = typename ExecSpace::scratch_memory_space; // TBD: MemoryUnmanaged should be the default for shared memory space. - typedef Kokkos::View - shared_int_array_type; + using shared_int_array_type = + Kokkos::View; // Tell how much shared memory will be required by this functor. inline unsigned team_shmem_size(int /*team_size*/) const { @@ -458,10 +464,12 @@ struct SharedTeamFunctor { if ((shared_A.data() == nullptr && SHARED_COUNT > 0) || (shared_B.data() == nullptr && SHARED_COUNT > 0)) { printf( - "member( %d/%d , %d/%d ) Failed to allocate shared memory of size " + "member( %i/%i , %i/%i ) Failed to allocate shared memory of size " "%lu\n", - ind.league_rank(), ind.league_size(), ind.team_rank(), - ind.team_size(), static_cast(SHARED_COUNT)); + static_cast(ind.league_rank()), + static_cast(ind.league_size()), + static_cast(ind.team_rank()), static_cast(ind.team_size()), + static_cast(SHARED_COUNT)); ++update; // Failure to allocate is an error. } else { @@ -496,10 +504,10 @@ struct TestSharedTeam { TestSharedTeam() { run(); } void run() { - typedef Test::SharedTeamFunctor Functor; - typedef Kokkos::View - result_type; + using Functor = Test::SharedTeamFunctor; + using result_type = + Kokkos::View; const size_t team_size = Kokkos::TeamPolicy(8192, 1).team_size_max( @@ -527,18 +535,15 @@ struct TestLambdaSharedTeam { TestLambdaSharedTeam() { run(); } void run() { - typedef Test::SharedTeamFunctor Functor; - // typedef Kokkos::View< typename Functor::value_type, Kokkos::HostSpace, - // Kokkos::MemoryUnmanaged > result_type; - typedef Kokkos::View - result_type; + using Functor = Test::SharedTeamFunctor; + using result_type = Kokkos::View; - typedef typename ExecSpace::scratch_memory_space shmem_space; + using shmem_space = typename ExecSpace::scratch_memory_space; // TBD: MemoryUnmanaged should be the default for shared memory space. - typedef Kokkos::View - shared_int_array_type; + using shared_int_array_type = + Kokkos::View; const int SHARED_COUNT = 1000; int team_size = 1; @@ -566,7 +571,7 @@ struct TestLambdaSharedTeam { if ((shared_A.data() == nullptr && SHARED_COUNT > 0) || (shared_B.data() == nullptr && SHARED_COUNT > 0)) { printf("Failed to allocate shared memory of size %lu\n", - static_cast(SHARED_COUNT)); + static_cast(SHARED_COUNT)); ++update; // Failure to allocate is an error. } else { @@ -606,18 +611,18 @@ namespace Test { template struct ScratchTeamFunctor { - typedef ExecSpace execution_space; - typedef int value_type; - typedef Kokkos::TeamPolicy policy_type; + using execution_space = ExecSpace; + using value_type = int; + using policy_type = Kokkos::TeamPolicy; enum { SHARED_TEAM_COUNT = 100 }; enum { SHARED_THREAD_COUNT = 10 }; - typedef typename ExecSpace::scratch_memory_space shmem_space; + using shmem_space = typename ExecSpace::scratch_memory_space; // TBD: MemoryUnmanaged should be the default for shared memory space. - typedef Kokkos::View - shared_int_array_type; + using shared_int_array_type = + Kokkos::View; KOKKOS_INLINE_FUNCTION void operator()(const typename policy_type::member_type &ind, @@ -633,7 +638,7 @@ struct ScratchTeamFunctor { (scratch_A.data() == nullptr && SHARED_TEAM_COUNT > 0) || (scratch_B.data() == nullptr && SHARED_THREAD_COUNT > 0)) { printf("Failed to allocate shared memory of size %lu\n", - static_cast(SHARED_TEAM_COUNT)); + static_cast(SHARED_TEAM_COUNT)); ++update; // Failure to allocate is an error. } else { @@ -684,11 +689,11 @@ struct TestScratchTeam { TestScratchTeam() { run(); } void run() { - typedef Test::ScratchTeamFunctor Functor; - typedef Kokkos::View - result_type; - typedef Kokkos::TeamPolicy p_type; + using Functor = Test::ScratchTeamFunctor; + using result_type = + Kokkos::View; + using p_type = Kokkos::TeamPolicy; typename Functor::value_type error_count = 0; @@ -842,8 +847,8 @@ struct TagFor {}; template struct ClassNoShmemSizeFunction { - typedef typename Kokkos::TeamPolicy::member_type - member_type; + using member_type = + typename Kokkos::TeamPolicy::member_type; Kokkos::View > errors; @@ -924,8 +929,8 @@ struct ClassNoShmemSizeFunction { template struct ClassWithShmemSizeFunction { - typedef typename Kokkos::TeamPolicy::member_type - member_type; + using member_type = + typename Kokkos::TeamPolicy::member_type; Kokkos::View > errors; @@ -1097,7 +1102,7 @@ struct TestShmemSize { TestShmemSize() { run(); } void run() { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; size_t d1 = 5; size_t d2 = 6; @@ -1196,9 +1201,9 @@ struct TestTeamBroadcast< const value_type off) { TestTeamBroadcast functor(league_size, off); - typedef Kokkos::TeamPolicy policy_type; - typedef Kokkos::TeamPolicy - policy_type_f; + using policy_type = Kokkos::TeamPolicy; + using policy_type_f = + Kokkos::TeamPolicy; const int team_size = policy_type_f(league_size, 1) @@ -1341,9 +1346,9 @@ struct TestTeamBroadcast< const value_type off) { TestTeamBroadcast functor(league_size, off); - typedef Kokkos::TeamPolicy policy_type; - typedef Kokkos::TeamPolicy - policy_type_f; + using policy_type = Kokkos::TeamPolicy; + using policy_type_f = + Kokkos::TeamPolicy; const int team_size = policy_type_f(league_size, 1) @@ -1397,10 +1402,10 @@ struct TestScratchAlignment { test(true); test(false); } - typedef Kokkos::View - ScratchView; - typedef Kokkos::View - ScratchViewInt; + using ScratchView = + Kokkos::View; + using ScratchViewInt = + Kokkos::View; void test(bool allocate_small) { int shmem_size = ScratchView::shmem_size(11); if (allocate_small) shmem_size += ScratchViewInt::shmem_size(1); diff --git a/lib/kokkos/core/unit_test/TestTeamTeamSize.hpp b/lib/kokkos/core/unit_test/TestTeamTeamSize.hpp index 0703f90cf8..1780d074f6 100644 --- a/lib/kokkos/core/unit_test/TestTeamTeamSize.hpp +++ b/lib/kokkos/core/unit_test/TestTeamTeamSize.hpp @@ -91,11 +91,11 @@ struct FunctorReduce { }; } // namespace -typedef Kokkos::TeamPolicy policy_type; -typedef Kokkos::TeamPolicy > - policy_type_128_8; -typedef Kokkos::TeamPolicy > - policy_type_1024_2; +using policy_type = Kokkos::TeamPolicy; +using policy_type_128_8 = + Kokkos::TeamPolicy >; +using policy_type_1024_2 = + Kokkos::TeamPolicy >; template void test_team_policy_max_recommended_static_size(int scratch_size) { diff --git a/lib/kokkos/core/unit_test/TestTeamVector.hpp b/lib/kokkos/core/unit_test/TestTeamVector.hpp index c313988efc..659df5430f 100644 --- a/lib/kokkos/core/unit_test/TestTeamVector.hpp +++ b/lib/kokkos/core/unit_test/TestTeamVector.hpp @@ -49,196 +49,30 @@ #include #include #include - -namespace TestTeamVector { - -struct my_complex { - double re, im; - int dummy; - - KOKKOS_INLINE_FUNCTION - my_complex() { - re = 0.0; - im = 0.0; - dummy = 0; - } - - KOKKOS_INLINE_FUNCTION - my_complex(const my_complex &src) { - re = src.re; - im = src.im; - dummy = src.dummy; - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator=(const my_complex &src) { - re = src.re; - im = src.im; - dummy = src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator=(const volatile my_complex &src) { - re = src.re; - im = src.im; - dummy = src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - volatile my_complex &operator=(const my_complex &src) volatile { - re = src.re; - im = src.im; - dummy = src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - volatile my_complex &operator=(const volatile my_complex &src) volatile { - re = src.re; - im = src.im; - dummy = src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - my_complex(const volatile my_complex &src) { - re = src.re; - im = src.im; - dummy = src.dummy; - } - - KOKKOS_INLINE_FUNCTION - my_complex(const double &val) { - re = val; - im = 0.0; - dummy = 0; - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator+=(const my_complex &src) { - re += src.re; - im += src.im; - dummy += src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - void operator+=(const volatile my_complex &src) volatile { - re += src.re; - im += src.im; - dummy += src.dummy; - } - - KOKKOS_INLINE_FUNCTION - my_complex operator+(const my_complex &src) { - my_complex tmp = *this; - tmp.re += src.re; - tmp.im += src.im; - tmp.dummy += src.dummy; - return tmp; - } - - KOKKOS_INLINE_FUNCTION - my_complex operator+(const volatile my_complex &src) volatile { - my_complex tmp = *this; - tmp.re += src.re; - tmp.im += src.im; - tmp.dummy += src.dummy; - return tmp; - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator*=(const my_complex &src) { - double re_tmp = re * src.re - im * src.im; - double im_tmp = re * src.im + im * src.re; - re = re_tmp; - im = im_tmp; - dummy *= src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - void operator*=(const volatile my_complex &src) volatile { - double re_tmp = re * src.re - im * src.im; - double im_tmp = re * src.im + im * src.re; - re = re_tmp; - im = im_tmp; - dummy *= src.dummy; - } - - KOKKOS_INLINE_FUNCTION - bool operator==(const my_complex &src) { - return (re == src.re) && (im == src.im) && (dummy == src.dummy); - } - - KOKKOS_INLINE_FUNCTION - bool operator!=(const my_complex &src) { - return (re != src.re) || (im != src.im) || (dummy != src.dummy); - } - - KOKKOS_INLINE_FUNCTION - bool operator!=(const double &val) { - return (re != val) || (im != 0) || (dummy != 0); - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator=(const int &val) { - re = val; - im = 0.0; - dummy = 0; - return *this; - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator=(const double &val) { - re = val; - im = 0.0; - dummy = 0; - return *this; - } - - KOKKOS_INLINE_FUNCTION - operator double() { return re; } -}; -} // namespace TestTeamVector - -namespace Kokkos { -template <> -struct reduction_identity { - typedef reduction_identity t_red_ident; - KOKKOS_FORCEINLINE_FUNCTION static TestTeamVector::my_complex sum() { - return TestTeamVector::my_complex(t_red_ident::sum()); - } - KOKKOS_FORCEINLINE_FUNCTION static TestTeamVector::my_complex prod() { - return TestTeamVector::my_complex(t_red_ident::prod()); - } -}; -} // namespace Kokkos +#include namespace TestTeamVector { template struct functor_team_for { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; functor_team_for(Kokkos::View flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View; unsigned team_shmem_size(int team_size) const { return shared_int::shmem_size(team_size * 13); } KOKKOS_INLINE_FUNCTION void operator()(typename policy_type::member_type team) const { - typedef typename shmem_space::size_type size_type; + using size_type = typename shmem_space::size_type; const size_type shmemSize = team.team_size() * 13; shared_int values = shared_int(team.team_shmem(), shmemSize); @@ -286,8 +120,8 @@ struct functor_team_for { template struct functor_team_reduce { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; @@ -295,9 +129,9 @@ struct functor_team_reduce { Kokkos::View flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View - shared_scalar_t; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_scalar_t = + Kokkos::View; unsigned team_shmem_size(int team_size) const { return shared_scalar_t::shmem_size(team_size * 13); } @@ -335,7 +169,7 @@ struct functor_team_reduce { printf("FAILED team_parallel_reduce %i %i %lf %lf %lu\n", team.league_rank(), team.team_rank(), static_cast(test), static_cast(value), - sizeof(Scalar)); + static_cast(sizeof(Scalar))); } flag() = 1; @@ -346,7 +180,8 @@ struct functor_team_reduce { "FAILED team_parallel_reduce with shared result %i %i %lf %lf " "%lu\n", team.league_rank(), team.team_rank(), static_cast(test), - static_cast(shared_value(0)), sizeof(Scalar)); + static_cast(shared_value(0)), + static_cast(sizeof(Scalar))); } flag() = 1; @@ -357,8 +192,8 @@ struct functor_team_reduce { template struct functor_team_reduce_reducer { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; @@ -366,9 +201,9 @@ struct functor_team_reduce_reducer { Kokkos::View flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View - shared_scalar_t; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_scalar_t = + Kokkos::View; unsigned team_shmem_size(int team_size) const { return shared_scalar_t::shmem_size(team_size * 13); } @@ -423,8 +258,8 @@ struct functor_team_reduce_reducer { template struct functor_team_vector_for { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; @@ -432,16 +267,16 @@ struct functor_team_vector_for { Kokkos::View flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View; unsigned team_shmem_size(int team_size) const { return shared_int::shmem_size(team_size * 13); } KOKKOS_INLINE_FUNCTION void operator()(typename policy_type::member_type team) const { - typedef typename shared_int::size_type size_type; + using size_type = typename shared_int::size_type; const size_type shmemSize = team.team_size() * 13; shared_int values = shared_int(team.team_shmem(), shmemSize); @@ -491,17 +326,17 @@ struct functor_team_vector_for { template struct functor_team_vector_reduce { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; functor_team_vector_reduce( Kokkos::View flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View; unsigned team_shmem_size(int team_size) const { return shared_int::shmem_size(team_size * 13); } @@ -531,7 +366,7 @@ struct functor_team_vector_reduce { printf("FAILED team_vector_parallel_reduce %i %i %f %f %lu\n", team.league_rank(), team.team_rank(), static_cast(test), static_cast(value), - sizeof(Scalar)); + static_cast(sizeof(Scalar))); } flag() = 1; @@ -542,8 +377,8 @@ struct functor_team_vector_reduce { template struct functor_team_vector_reduce_reducer { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; @@ -551,9 +386,9 @@ struct functor_team_vector_reduce_reducer { Kokkos::View flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View; unsigned team_shmem_size(int team_size) const { return shared_int::shmem_size(team_size * 13); } @@ -591,8 +426,8 @@ struct functor_team_vector_reduce_reducer { template struct functor_vec_single { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; int nStart; @@ -624,7 +459,7 @@ struct functor_vec_single { Kokkos::ThreadVectorRange(team, nStart, nEnd), [&](int /*i*/, Scalar &val) { val += value; }, value2); - if (value2 != (value * (nEnd - nStart))) { + if (value2 != (value * Scalar(nEnd - nStart))) { printf("FAILED vector_single broadcast %i %i %f %f\n", team.league_rank(), team.team_rank(), (double)value2, (double)value); @@ -635,17 +470,17 @@ struct functor_vec_single { template struct functor_vec_for { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; functor_vec_for(Kokkos::View flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View; unsigned team_shmem_size(int team_size) const { return shared_int::shmem_size(team_size * 13); } @@ -690,8 +525,8 @@ struct functor_vec_for { template struct functor_vec_red { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; @@ -724,8 +559,8 @@ struct functor_vec_red { template struct functor_vec_red_reducer { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; @@ -763,8 +598,8 @@ struct functor_vec_red_reducer { template struct functor_vec_scan { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; functor_vec_scan(Kokkos::View flag_) @@ -794,9 +629,9 @@ struct functor_vec_scan { template struct functor_reduce { - typedef double value_type; - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using value_type = double; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; functor_reduce(Kokkos::View flag_) @@ -882,8 +717,14 @@ bool Test(int test) { test_scalar(317, team_size, test); passed = passed && test_scalar(317, team_size, test); passed = passed && test_scalar(317, team_size, test); - passed = - passed && test_scalar(317, team_size, test); + passed = passed && + test_scalar(317, team_size, test); + passed = passed && test_scalar, ExecutionSpace>( + 317, team_size, test); + passed = passed && test_scalar, ExecutionSpace>( + 317, team_size, test); + passed = passed && test_scalar, ExecutionSpace>( + 317, team_size, test); return passed; } @@ -899,8 +740,8 @@ namespace Test { template class TestTripleNestedReduce { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; TestTripleNestedReduce(const size_type &nrows, const size_type &ncols, const size_type &team_size, @@ -920,17 +761,17 @@ class TestTripleNestedReduce { } #endif - // typedef Kokkos::LayoutLeft Layout; - typedef Kokkos::LayoutRight Layout; + // using Layout = Kokkos::LayoutLeft; + using Layout = Kokkos::LayoutRight; - typedef Kokkos::View ViewVector; - typedef Kokkos::View ViewMatrix; + using ViewVector = Kokkos::View; + using ViewMatrix = Kokkos::View; ViewVector y("y", nrows); ViewVector x("x", ncols); ViewMatrix A("A", nrows, ncols); - typedef Kokkos::RangePolicy range_policy; + using range_policy = Kokkos::RangePolicy; // Initialize y vector. Kokkos::parallel_for( @@ -941,8 +782,8 @@ class TestTripleNestedReduce { range_policy(0, ncols), KOKKOS_LAMBDA(const int i) { x(i) = 1; }); Kokkos::fence(); - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; // Initialize A matrix, note 2D indexing computation. Kokkos::parallel_for( @@ -1000,8 +841,8 @@ class TestTripleNestedReduce { template class TestTripleNestedReduce { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; TestTripleNestedReduce(const size_type &, const size_type, const size_type &, const size_type) {} @@ -1009,7 +850,7 @@ class TestTripleNestedReduce { #endif -#if !defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) +#if !(defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) || defined(KOKKOS_ENABLE_HIP)) TEST(TEST_CATEGORY, team_vector) { ASSERT_TRUE((TestTeamVector::Test(0))); ASSERT_TRUE((TestTeamVector::Test(1))); diff --git a/lib/kokkos/core/unit_test/TestTeamVectorRange.hpp b/lib/kokkos/core/unit_test/TestTeamVectorRange.hpp index cc83785185..1b64fef050 100644 --- a/lib/kokkos/core/unit_test/TestTeamVectorRange.hpp +++ b/lib/kokkos/core/unit_test/TestTeamVectorRange.hpp @@ -207,7 +207,7 @@ struct my_complex { namespace Kokkos { template <> struct reduction_identity { - typedef reduction_identity t_red_ident; + using t_red_ident = reduction_identity; KOKKOS_FORCEINLINE_FUNCTION static TestTeamVectorRange::my_complex sum() { return TestTeamVectorRange::my_complex(t_red_ident::sum()); } @@ -221,8 +221,8 @@ namespace TestTeamVectorRange { template struct functor_teamvector_for { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; @@ -230,16 +230,16 @@ struct functor_teamvector_for { Kokkos::View flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View; unsigned team_shmem_size(int /*team_size*/) const { return shared_int::shmem_size(131); } KOKKOS_INLINE_FUNCTION void operator()(typename policy_type::member_type team) const { - typedef typename shmem_space::size_type size_type; + using size_type = typename shmem_space::size_type; const size_type shmemSize = 131; shared_int values = shared_int(team.team_shmem(), shmemSize); @@ -290,8 +290,8 @@ struct functor_teamvector_for { template struct functor_teamvector_reduce { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; @@ -299,9 +299,9 @@ struct functor_teamvector_reduce { Kokkos::View flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View - shared_scalar_t; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_scalar_t = + Kokkos::View; unsigned team_shmem_size(int team_size) const { return shared_scalar_t::shmem_size(team_size * 13); } @@ -345,9 +345,9 @@ struct functor_teamvector_reduce { if (test != value) { if (team.league_rank() == 0) { printf("FAILED teamvector_parallel_reduce %i %i %lf %lf %lu\n", - team.league_rank(), team.team_rank(), + (int)team.league_rank(), (int)team.team_rank(), static_cast(test), static_cast(value), - sizeof(Scalar)); + static_cast(sizeof(Scalar))); } flag() = 1; @@ -357,8 +357,10 @@ struct functor_teamvector_reduce { printf( "FAILED teamvector_parallel_reduce with shared result %i %i %lf " "%lf %lu\n", - team.league_rank(), team.team_rank(), static_cast(test), - static_cast(shared_value(0)), sizeof(Scalar)); + static_cast(team.league_rank()), + static_cast(team.team_rank()), static_cast(test), + static_cast(shared_value(0)), + static_cast(sizeof(Scalar))); } flag() = 1; @@ -369,8 +371,8 @@ struct functor_teamvector_reduce { template struct functor_teamvector_reduce_reducer { - typedef Kokkos::TeamPolicy policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy; + using execution_space = ExecutionSpace; Kokkos::View flag; @@ -378,9 +380,9 @@ struct functor_teamvector_reduce_reducer { Kokkos::View flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View - shared_scalar_t; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_scalar_t = + Kokkos::View; unsigned team_shmem_size(int team_size) const { return shared_scalar_t::shmem_size(team_size * 13); } diff --git a/lib/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp b/lib/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp index b9c16f506c..a0bc7c4304 100644 --- a/lib/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp +++ b/lib/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp @@ -50,8 +50,8 @@ namespace { template struct SumPlain { - typedef ExecutionSpace execution_space; - typedef typename Kokkos::View type; + using execution_space = ExecutionSpace; + using type = typename Kokkos::View; type view; @@ -63,9 +63,9 @@ struct SumPlain { template struct SumInitJoinFinalValueType { - typedef ExecutionSpace execution_space; - typedef typename Kokkos::View type; - typedef Scalar value_type; + using execution_space = ExecutionSpace; + using type = typename Kokkos::View; + using value_type = Scalar; type view; @@ -85,9 +85,9 @@ struct SumInitJoinFinalValueType { template struct SumInitJoinFinalValueType2 { - typedef ExecutionSpace execution_space; - typedef typename Kokkos::View type; - typedef Scalar value_type; + using execution_space = ExecutionSpace; + using type = typename Kokkos::View; + using value_type = Scalar; type view; @@ -107,9 +107,9 @@ struct SumInitJoinFinalValueType2 { template struct SumInitJoinFinalValueTypeArray { - typedef ExecutionSpace execution_space; - typedef typename Kokkos::View type; - typedef Scalar value_type[]; + using execution_space = ExecutionSpace; + using type = typename Kokkos::View; + using value_type = Scalar[]; type view; int n; @@ -140,9 +140,9 @@ struct SumInitJoinFinalValueTypeArray { template struct SumWrongInitJoinFinalValueType { - typedef ExecutionSpace execution_space; - typedef typename Kokkos::View type; - typedef Scalar value_type; + using execution_space = ExecutionSpace; + using type = typename Kokkos::View; + using value_type = Scalar; type view; @@ -162,7 +162,7 @@ struct SumWrongInitJoinFinalValueType { template void TestTemplateMetaFunctions() { - typedef typename Kokkos::View type; + using type = typename Kokkos::View; type a("A", 100); /* int sum_plain_has_init_arg = Kokkos::Impl::FunctorHasInit< SumPlain -#include - -namespace TestTile { - -template -struct ReduceTileErrors { - typedef Device execution_space; - typedef Kokkos::View array_type; - typedef Kokkos::View - tile_type; - typedef ptrdiff_t value_type; - - array_type m_array; - - ReduceTileErrors(array_type a) : m_array(a) {} - - KOKKOS_INLINE_FUNCTION - static void init(value_type& errors) { errors = 0; } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& errors, - const volatile value_type& src_errors) { - errors += src_errors; - } - - // Initialize. - KOKKOS_INLINE_FUNCTION - void operator()(size_t iwork) const { - const size_t i = iwork % m_array.extent(0); - const size_t j = iwork / m_array.extent(0); - - if (j < m_array.extent(1)) { - m_array(i, j) = &m_array(i, j) - &m_array(0, 0); - - // printf( "m_array(%d, %d) = %d\n", int( i ), int( j ), int( m_array( i, - // j ) ) ); - } - } - - // Verify: - KOKKOS_INLINE_FUNCTION - void operator()(size_t iwork, value_type& errors) const { - const size_t tile_dim0 = - (m_array.extent(0) + TileLayout::N0 - 1) / TileLayout::N0; - const size_t tile_dim1 = - (m_array.extent(1) + TileLayout::N1 - 1) / TileLayout::N1; - - const size_t itile = iwork % tile_dim0; - const size_t jtile = iwork / tile_dim0; - - if (jtile < tile_dim1) { - tile_type tile = Kokkos::tile_subview(m_array, itile, jtile); - - if (tile(0, 0) != ptrdiff_t((itile + jtile * tile_dim0) * TileLayout::N0 * - TileLayout::N1)) { - ++errors; - } else { - for (size_t j = 0; j < size_t(TileLayout::N1); ++j) { - for (size_t i = 0; i < size_t(TileLayout::N0); ++i) { - const size_t iglobal = i + itile * TileLayout::N0; - const size_t jglobal = j + jtile * TileLayout::N1; - - if (iglobal < m_array.extent(0) && jglobal < m_array.extent(1)) { - if (tile(i, j) != ptrdiff_t(tile(0, 0) + i + j * TileLayout::N0)) - ++errors; - - // printf( "tile(%d, %d)(%d, %d) = %d\n", int( itile ), int( jtile - // ), int( i ), int( j ), int( tile( i, j ) ) ); - } - } - } - } - } - } -}; - -template -void test(const size_t dim0, const size_t dim1) { - typedef Kokkos::LayoutTileLeft array_layout; - typedef ReduceTileErrors functor_type; - - const size_t tile_dim0 = (dim0 + N0 - 1) / N0; - const size_t tile_dim1 = (dim1 + N1 - 1) / N1; - - typename functor_type::array_type array("", dim0, dim1); - - Kokkos::parallel_for(Kokkos::RangePolicy(0, dim0 * dim1), - functor_type(array)); - - ptrdiff_t error = 0; - - Kokkos::parallel_reduce( - Kokkos::RangePolicy(0, tile_dim0 * tile_dim1), - functor_type(array), error); - - EXPECT_EQ(error, ptrdiff_t(0)); -} - -} // namespace TestTile - -namespace Test { -TEST(TEST_CATEGORY, tile_layout) { - TestTile::test(1, 1); - TestTile::test(2, 3); - TestTile::test(9, 10); - - TestTile::test(1, 1); - TestTile::test(2, 3); - TestTile::test(4, 4); - TestTile::test(9, 9); - - TestTile::test(9, 9); - TestTile::test(9, 9); - - TestTile::test(1, 1); - TestTile::test(4, 4); - TestTile::test(9, 9); - TestTile::test(9, 11); - - TestTile::test(1, 1); - TestTile::test(4, 4); - TestTile::test(9, 9); - TestTile::test(9, 11); -} - -} // namespace Test - -#endif // KOKKOS_ENABLE_DEPRECATED_CODE -//===================================================================== - -#endif // TEST_TILE_HPP diff --git a/lib/kokkos/core/unit_test/TestUniqueToken.hpp b/lib/kokkos/core/unit_test/TestUniqueToken.hpp index c85ba1afc3..e1455d7bbb 100644 --- a/lib/kokkos/core/unit_test/TestUniqueToken.hpp +++ b/lib/kokkos/core/unit_test/TestUniqueToken.hpp @@ -48,15 +48,13 @@ namespace Test { -template +template class TestUniqueToken { public: - typedef typename Space::execution_space execution_space; - typedef Kokkos::View view_type; + using execution_space = typename Space::execution_space; + using view_type = Kokkos::View; - Kokkos::Experimental::UniqueToken< - execution_space, Kokkos::Experimental::UniqueTokenScope::Global> - tokens; + Kokkos::Experimental::UniqueToken tokens; view_type verify; view_type counts; @@ -64,7 +62,9 @@ class TestUniqueToken { KOKKOS_INLINE_FUNCTION void operator()(long) const { - const int32_t t = tokens.acquire(); + Kokkos::Experimental::AcquireUniqueToken token_val( + tokens); + const int32_t t = token_val.value(); bool ok = true; @@ -79,8 +79,6 @@ class TestUniqueToken { if (!ok) { Kokkos::atomic_fetch_add(&errors(0), 1); } - - tokens.release(t); } TestUniqueToken() @@ -129,6 +127,118 @@ class TestUniqueToken { } }; -TEST(TEST_CATEGORY, unique_token) { TestUniqueToken::run(); } +TEST(TEST_CATEGORY, unique_token_global) { + TestUniqueToken::run(); +} + +TEST(TEST_CATEGORY, unique_token_instance) { + TestUniqueToken::run(); +} + +template +class TestAcquireTeamUniqueToken { + public: + using execution_space = typename Space::execution_space; + using view_type = Kokkos::View; + using scratch_view = + Kokkos::View; + using team_policy_type = Kokkos::TeamPolicy; + using team_member_type = typename team_policy_type::member_type; + using tokens_type = Kokkos::Experimental::UniqueToken; + + tokens_type tokens; + + view_type verify; + view_type counts; + view_type errors; + + KOKKOS_INLINE_FUNCTION + void operator()(team_member_type team) const { + Kokkos::Experimental::AcquireTeamUniqueToken token_val( + tokens, team); + scratch_view team_rank_0_token_val(team.team_scratch(0)); + const int32_t t = token_val.value(); + + bool ok = true; + + ok = ok && 0 <= t; + ok = ok && t < tokens.size(); + + Kokkos::single(Kokkos::PerTeam(team), [&]() { + ok = ok && 0 == Kokkos::atomic_fetch_add(&verify(t), 1); + + Kokkos::atomic_fetch_add(&counts(t), 1); + + ok = ok && 1 == Kokkos::atomic_fetch_add(&verify(t), -1); + }); + + if (team.team_rank() == 0) { + team_rank_0_token_val() = t; + } + team.team_barrier(); + ok = ok && team_rank_0_token_val() == t; + + if (!ok) { + Kokkos::atomic_fetch_add(&errors(0), 1); + } + } + + TestAcquireTeamUniqueToken(int team_size) + : tokens(execution_space::concurrency() / team_size, execution_space()), + verify("TestAcquireTeamUniqueTokenVerify", tokens.size()), + counts("TestAcquireTeamUniqueTokenCounts", tokens.size()), + errors("TestAcquireTeamUniqueTokenErrors", 1) {} + + static void run() { + const int max_team_size = team_policy_type(1, 1).team_size_max( + TestAcquireTeamUniqueToken(1), Kokkos::ParallelForTag()); + const int team_size = std::min(2, max_team_size); + TestAcquireTeamUniqueToken self(team_size); + + { + const int duplicate = 100; + const long n = duplicate * self.tokens.size(); + + team_policy_type team_policy(n, team_size); + team_policy.set_scratch_size( + 0, Kokkos::PerTeam(Kokkos::Experimental::AcquireTeamUniqueToken< + team_policy_type>::shmem_size() + + scratch_view::shmem_size())); + + Kokkos::parallel_for(team_policy, self); + Kokkos::fence(); + } + + typename view_type::HostMirror host_counts = + Kokkos::create_mirror_view(self.counts); + + Kokkos::deep_copy(host_counts, self.counts); + + int32_t max = 0; + + { + const long n = host_counts.extent(0); + for (long i = 0; i < n; ++i) { + if (max < host_counts[i]) max = host_counts[i]; + } + } + + std::cout << "TestAcquireTeamUniqueToken max reuse = " << max << std::endl; + + typename view_type::HostMirror host_errors = + Kokkos::create_mirror_view(self.errors); + + Kokkos::deep_copy(host_errors, self.errors); + + ASSERT_EQ(host_errors(0), 0); + } +}; + +TEST(TEST_CATEGORY, acquire_team_unique_token) { + TestAcquireTeamUniqueToken::run(); +} } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestViewAPI.hpp b/lib/kokkos/core/unit_test/TestViewAPI.hpp index b9847773b6..717d870719 100644 --- a/lib/kokkos/core/unit_test/TestViewAPI.hpp +++ b/lib/kokkos/core/unit_test/TestViewAPI.hpp @@ -65,12 +65,12 @@ size_t allocation_count(const Kokkos::View &view) { template struct TestViewOperator { - typedef typename DeviceType::execution_space execution_space; + using execution_space = typename DeviceType::execution_space; enum { N = 1000 }; enum { D = 3 }; - typedef Kokkos::View view_type; + using view_type = Kokkos::View; const view_type v1; const view_type v2; @@ -97,11 +97,11 @@ struct TestViewOperator_LeftAndRight; template struct TestViewOperator_LeftAndRight { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -112,11 +112,11 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View left_view; - typedef Kokkos::View - right_view; - typedef Kokkos::View - stride_view; + using left_view = Kokkos::View; + using right_view = + Kokkos::View; + using stride_view = + Kokkos::View; left_view left; right_view right; @@ -193,11 +193,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -208,9 +208,9 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View left_view; - typedef Kokkos::View - right_view; + using left_view = Kokkos::View; + using right_view = + Kokkos::View; left_view left; right_view right; @@ -271,11 +271,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -286,9 +286,9 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View left_view; - typedef Kokkos::View - right_view; + using left_view = Kokkos::View; + using right_view = + Kokkos::View; left_view left; right_view right; @@ -347,11 +347,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -362,11 +362,11 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View left_view; - typedef Kokkos::View - right_view; - typedef Kokkos::View - stride_view; + using left_view = Kokkos::View; + using right_view = + Kokkos::View; + using stride_view = + Kokkos::View; left_view left; right_view right; @@ -435,11 +435,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -450,9 +450,9 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View left_view; - typedef Kokkos::View - right_view; + using left_view = Kokkos::View; + using right_view = + Kokkos::View; left_view left; right_view right; @@ -505,11 +505,11 @@ struct TestViewOperator_LeftAndRight { template struct TestViewOperator_LeftAndRight { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -520,11 +520,11 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View left_view; - typedef Kokkos::View - right_view; - typedef Kokkos::View - stride_view; + using left_view = Kokkos::View; + using right_view = + Kokkos::View; + using stride_view = + Kokkos::View; left_view left; right_view right; @@ -586,32 +586,23 @@ struct TestViewOperator_LeftAndRight { for (unsigned i0 = 0; i0 < unsigned(left.extent(0)); ++i0) for (unsigned i1 = 0; i1 < unsigned(left.extent(1)); ++i1) for (unsigned i2 = 0; i2 < unsigned(left.extent(2)); ++i2) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (&left(i0, i1, i2) != &left(i0, i1, i2, 0, 0, 0, 0, 0)) { - update |= 3; - } - if (&right(i0, i1, i2) != &right(i0, i1, i2, 0, 0, 0, 0, 0)) { - update |= 3; - } -#else if (&left(i0, i1, i2) != &left.access(i0, i1, i2, 0, 0, 0, 0, 0)) { update |= 3; } if (&right(i0, i1, i2) != &right.access(i0, i1, i2, 0, 0, 0, 0, 0)) { update |= 3; } -#endif } } }; template struct TestViewOperator_LeftAndRight { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -622,9 +613,9 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View left_view; - typedef Kokkos::View - right_view; + using left_view = Kokkos::View; + using right_view = + Kokkos::View; left_view left; right_view right; @@ -671,32 +662,23 @@ struct TestViewOperator_LeftAndRight { for (unsigned i0 = 0; i0 < unsigned(left.extent(0)); ++i0) for (unsigned i1 = 0; i1 < unsigned(left.extent(1)); ++i1) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (&left(i0, i1) != &left(i0, i1, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } - if (&right(i0, i1) != &right(i0, i1, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } -#else if (&left(i0, i1) != &left.access(i0, i1, 0, 0, 0, 0, 0, 0)) { update |= 3; } if (&right(i0, i1) != &right.access(i0, i1, 0, 0, 0, 0, 0, 0)) { update |= 3; } -#endif } } }; template struct TestViewOperator_LeftAndRight { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -707,11 +689,11 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View left_view; - typedef Kokkos::View - right_view; - typedef Kokkos::View - stride_view; + using left_view = Kokkos::View; + using right_view = + Kokkos::View; + using stride_view = + Kokkos::View; left_view left; right_view right; @@ -741,21 +723,12 @@ struct TestViewOperator_LeftAndRight { KOKKOS_INLINE_FUNCTION void operator()(const size_type, value_type &update) const { for (unsigned i0 = 0; i0 < unsigned(left.extent(0)); ++i0) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (&left(i0) != &left(i0, 0, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } - if (&right(i0) != &right(i0, 0, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } -#else if (&left(i0) != &left.access(i0, 0, 0, 0, 0, 0, 0, 0)) { update |= 3; } if (&right(i0) != &right.access(i0, 0, 0, 0, 0, 0, 0, 0)) { update |= 3; } -#endif if (&left(i0) != &left_stride(i0)) { update |= 4; } @@ -846,6 +819,44 @@ struct TestViewMirror { return v; } + static void test_allocated() { + using ExecutionSpace = typename DeviceType::execution_space; + using dynamic_view = Kokkos::View; + using static_view = Kokkos::View; + using unmanaged_view = + Kokkos::View >; + int const N = 100; + + dynamic_view d1; + static_view s1; + unmanaged_view u1; + ASSERT_FALSE(d1.is_allocated()); + ASSERT_FALSE(s1.is_allocated()); + ASSERT_FALSE(u1.is_allocated()); + + d1 = dynamic_view("d1", N); + dynamic_view d2(d1); + dynamic_view d3("d3", N); + ASSERT_TRUE(d1.is_allocated()); + ASSERT_TRUE(d2.is_allocated()); + ASSERT_TRUE(d3.is_allocated()); + + s1 = static_view("s1"); + static_view s2(s1); + static_view s3("s3"); + ASSERT_TRUE(s1.is_allocated()); + ASSERT_TRUE(s2.is_allocated()); + ASSERT_TRUE(s3.is_allocated()); + + u1 = unmanaged_view(d1.data(), N); + unmanaged_view u2(u1); + unmanaged_view u3(d1.data(), N); + ASSERT_TRUE(u1.is_allocated()); + ASSERT_TRUE(u2.is_allocated()); + ASSERT_TRUE(u3.is_allocated()); + } + static void test_mirror_copy_const_data_type() { using ExecutionSpace = typename DeviceType::execution_space; int const N = 100; @@ -859,9 +870,8 @@ struct TestViewMirror { template struct CopyUnInit { - typedef typename Kokkos::Impl::MirrorViewType< - Space, double *, Layout, Kokkos::HostSpace, MemoryTraits>::view_type - mirror_view_type; + using mirror_view_type = typename Kokkos::Impl::MirrorViewType< + Space, double *, Layout, Kokkos::HostSpace, MemoryTraits>::view_type; mirror_view_type a_d; @@ -913,6 +923,7 @@ struct TestViewMirror { test_mirror_copy >(); test_mirror_copy >(); test_mirror_copy_const_data_type(); + test_allocated(); test_mirror_no_initialize >(); test_mirror_no_initialize >(); } @@ -923,19 +934,19 @@ struct TestViewMirror { template class TestViewAPI { public: - typedef DeviceType device; + using device = DeviceType; enum { N0 = 1000, N1 = 3, N2 = 5, N3 = 7 }; - typedef Kokkos::View dView0; - typedef Kokkos::View dView1; - typedef Kokkos::View dView2; - typedef Kokkos::View dView3; - typedef Kokkos::View dView4; - typedef Kokkos::View const_dView4; - typedef Kokkos::View - dView4_unmanaged; - typedef typename dView0::host_mirror_space host; + using dView0 = Kokkos::View; + using dView1 = Kokkos::View; + using dView2 = Kokkos::View; + using dView3 = Kokkos::View; + using dView4 = Kokkos::View; + using const_dView4 = Kokkos::View; + using dView4_unmanaged = + Kokkos::View; + using host = typename dView0::host_mirror_space; static void run_test_view_operator_a() { { @@ -974,8 +985,8 @@ class TestViewAPI { } static void run_test_mirror() { - typedef Kokkos::View view_type; - typedef typename view_type::HostMirror mirror_type; + using view_type = Kokkos::View; + using mirror_type = typename view_type::HostMirror; static_assert(std::is_same::value, @@ -991,7 +1002,7 @@ class TestViewAPI { } static void run_test_scalar() { - typedef typename dView0::HostMirror hView0; + using hView0 = typename dView0::HostMirror; dView0 dx, dy; hView0 hx, hy; @@ -1014,16 +1025,16 @@ class TestViewAPI { static void run_test() { // mfh 14 Feb 2014: This test doesn't actually create instances of - // these types. In order to avoid "declared but unused typedef" + // these types. In order to avoid "unused type alias" // warnings, we declare empty instances of these types, with the // usual "(void)" marker to avoid compiler warnings for unused // variables. - typedef typename dView0::HostMirror hView0; - typedef typename dView1::HostMirror hView1; - typedef typename dView2::HostMirror hView2; - typedef typename dView3::HostMirror hView3; - typedef typename dView4::HostMirror hView4; + using hView0 = typename dView0::HostMirror; + using hView1 = typename dView1::HostMirror; + using hView2 = typename dView2::HostMirror; + using hView3 = typename dView3::HostMirror; + using hView4 = typename dView4::HostMirror; { hView0 thing; @@ -1082,13 +1093,7 @@ class TestViewAPI { { // Destruction of this view should be harmless. - const_dView4 unmanaged_from_ptr_const_dx(dx.data(), dx.extent(0) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - , - dx.extent(1), dx.extent(2), - dx.extent(3) -#endif - ); + const_dView4 unmanaged_from_ptr_const_dx(dx.data(), dx.extent(0)); } const_dView4 const_dx = dx; @@ -1294,7 +1299,7 @@ class TestViewAPI { } } - typedef T DataType[2]; + using DataType = T[2]; static void check_auto_conversion_to_const( const Kokkos::View &arg_const, @@ -1303,10 +1308,10 @@ class TestViewAPI { } static void run_test_const() { - typedef Kokkos::View typeX; - typedef Kokkos::View const_typeX; - typedef Kokkos::View - const_typeR; + using typeX = Kokkos::View; + using const_typeX = Kokkos::View; + using const_typeR = + Kokkos::View; typeX x("X"); const_typeX xc = x; @@ -1331,7 +1336,7 @@ class TestViewAPI { } static void run_test_subview() { - typedef Kokkos::View sView; + using sView = Kokkos::View; dView0 d0("d0"); dView1 d1("d1", N0); @@ -1347,13 +1352,13 @@ class TestViewAPI { } static void run_test_subview_strided() { - typedef Kokkos::View view_left_4; - typedef Kokkos::View view_right_4; - typedef Kokkos::View view_left_2; - typedef Kokkos::View view_right_2; + using view_left_4 = Kokkos::View; + using view_right_4 = Kokkos::View; + using view_left_2 = Kokkos::View; + using view_right_2 = Kokkos::View; - typedef Kokkos::View view_stride_1; - typedef Kokkos::View view_stride_2; + using view_stride_1 = Kokkos::View; + using view_stride_2 = Kokkos::View; view_left_2 xl2("xl2", 100, 200); view_right_2 xr2("xr2", 100, 200); @@ -1392,18 +1397,18 @@ class TestViewAPI { static void run_test_vector() { static const unsigned Length = 1000, Count = 8; - typedef Kokkos::View vector_type; - typedef Kokkos::View multivector_type; + using vector_type = Kokkos::View; + using multivector_type = Kokkos::View; - typedef Kokkos::View vector_right_type; - typedef Kokkos::View - multivector_right_type; + using vector_right_type = Kokkos::View; + using multivector_right_type = + Kokkos::View; - typedef Kokkos::View - const_vector_right_type; - typedef Kokkos::View const_vector_type; - typedef Kokkos::View - const_multivector_type; + using const_vector_right_type = + Kokkos::View; + using const_vector_type = Kokkos::View; + using const_multivector_type = + Kokkos::View; multivector_type mv = multivector_type("mv", Length, Count); multivector_right_type mv_right = diff --git a/lib/kokkos/core/unit_test/TestViewAPI_e.hpp b/lib/kokkos/core/unit_test/TestViewAPI_e.hpp index 40ae083630..be57bcfe38 100644 --- a/lib/kokkos/core/unit_test/TestViewAPI_e.hpp +++ b/lib/kokkos/core/unit_test/TestViewAPI_e.hpp @@ -59,11 +59,11 @@ TEST(TEST_CATEGORY, view_remap) { std::conditional::value, \ Kokkos::CudaHostPinnedSpace, TEST_EXECSPACE>::type #else -#ifdef KOKKOS_ENABLE_ROCM -#define EXECSPACE \ - std::conditional< \ - std::is_same::value, \ - Kokkos::Experimental::ROCmHostPinnedSpace, TEST_EXECSPACE>::type +#ifdef KOKKOS_ENABLE_HIP +#define EXECSPACE \ + std::conditional< \ + std::is_same::value, \ + Kokkos::Experimental::HIPHostPinnedSpace, TEST_EXECSPACE>::type #else #if defined(KOKKOS_ENABLE_OPENMPTARGET) #define EXECSPACE Kokkos::HostSpace @@ -73,14 +73,14 @@ TEST(TEST_CATEGORY, view_remap) { #endif #endif - typedef Kokkos::View - output_type; + using output_type = + Kokkos::View; - typedef Kokkos::View - input_type; + using input_type = + Kokkos::View; - typedef Kokkos::View - diff_type; + using diff_type = + Kokkos::View; output_type output("output", N0); input_type input("input", N0, N1); diff --git a/lib/kokkos/core/unit_test/TestViewCtorPropEmbeddedDim.hpp b/lib/kokkos/core/unit_test/TestViewCtorPropEmbeddedDim.hpp index 30701b3a4e..04fb6e1397 100644 --- a/lib/kokkos/core/unit_test/TestViewCtorPropEmbeddedDim.hpp +++ b/lib/kokkos/core/unit_test/TestViewCtorPropEmbeddedDim.hpp @@ -87,10 +87,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Two views auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1, vd1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg @@ -128,10 +128,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Single view auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg diff --git a/lib/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp b/lib/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp index 583d135f35..462dd523f4 100644 --- a/lib/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp +++ b/lib/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp @@ -54,12 +54,12 @@ namespace Test { TEST(TEST_CATEGORY, view_layoutstride_left_to_layoutleft_assignment) { - typedef TEST_EXECSPACE exec_space; + using exec_space = TEST_EXECSPACE; auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_left_to_layoutleft_assignment: srand(%lu)\n", - size_t(t)); + static_cast(t)); { // Assignment of rank-1 LayoutLeft = LayoutStride int ndims = 1; @@ -336,12 +336,12 @@ TEST(TEST_CATEGORY, view_layoutstride_left_to_layoutleft_assignment) { } TEST(TEST_CATEGORY, view_layoutstride_right_to_layoutright_assignment) { - typedef TEST_EXECSPACE exec_space; + using exec_space = TEST_EXECSPACE; auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_right_to_layoutright_assignment: srand(%lu)\n", - size_t(t)); + static_cast(t)); { // Assignment of rank-1 LayoutRight = LayoutStride int ndims = 1; @@ -618,12 +618,12 @@ TEST(TEST_CATEGORY, view_layoutstride_right_to_layoutright_assignment) { } TEST(TEST_CATEGORY_DEATH, view_layoutstride_right_to_layoutleft_assignment) { - typedef TEST_EXECSPACE exec_space; + using exec_space = TEST_EXECSPACE; auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_right_to_layoutleft_assignment: srand(%lu)\n", - size_t(t)); + static_cast(t)); { // Assignment of rank-1 LayoutLeft = LayoutStride (LayoutRight compatible) int ndims = 1; @@ -661,6 +661,10 @@ TEST(TEST_CATEGORY_DEATH, view_layoutstride_right_to_layoutleft_assignment) { ASSERT_EQ(dst.span(), src.span()); ASSERT_EQ(test, true); } +// WORKAROUND OPENMPTARGET : death tests don't seem to work ... +#ifdef KOKKOS_ENABLE_OPENMPTARGET + return; +#endif { // Assignment of rank-2 LayoutLeft = LayoutStride (LayoutRight compatible) int ndims = 2; int dims[] = {10, 9}; @@ -769,12 +773,12 @@ TEST(TEST_CATEGORY_DEATH, view_layoutstride_right_to_layoutleft_assignment) { } TEST(TEST_CATEGORY_DEATH, view_layoutstride_left_to_layoutright_assignment) { - typedef TEST_EXECSPACE exec_space; + using exec_space = TEST_EXECSPACE; auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_left_to_layoutright_assignment: srand(%lu)\n", - size_t(t)); + static_cast(t)); { // Assignment of rank-1 LayoutRight = LayoutStride (LayoutLeft compatible) int ndims = 1; @@ -812,6 +816,10 @@ TEST(TEST_CATEGORY_DEATH, view_layoutstride_left_to_layoutright_assignment) { ASSERT_EQ(dst.span(), src.span()); ASSERT_EQ(test, true); } +// WORKAROUND OPENMPTARGET : death tests don't seem to work ... +#ifdef KOKKOS_ENABLE_OPENMPTARGET + return; +#endif { // Assignment of rank-2 LayoutRight = LayoutStride (LayoutLeft compatible) int ndims = 2; int dims[] = {10, 9}; diff --git a/lib/kokkos/core/unit_test/TestViewLayoutTiled.hpp b/lib/kokkos/core/unit_test/TestViewLayoutTiled.hpp index 75eef2d69e..2510a12446 100644 --- a/lib/kokkos/core/unit_test/TestViewLayoutTiled.hpp +++ b/lib/kokkos/core/unit_test/TestViewLayoutTiled.hpp @@ -54,12 +54,11 @@ namespace Test { -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE namespace { template struct TestViewLayoutTiled { - typedef double Scalar; + using Scalar = double; static constexpr int T0 = 2; static constexpr int T1 = 4; @@ -71,46 +70,46 @@ struct TestViewLayoutTiled { static constexpr int T7 = 2; // Rank 2 - typedef Kokkos::Experimental::LayoutTiled - LayoutLL_2D_2x4; - typedef Kokkos::Experimental::LayoutTiled - LayoutRL_2D_2x4; - typedef Kokkos::Experimental::LayoutTiled - LayoutLR_2D_2x4; - typedef Kokkos::Experimental::LayoutTiled - LayoutRR_2D_2x4; + using LayoutLL_2D_2x4 = + Kokkos::Experimental::LayoutTiled; + using LayoutRL_2D_2x4 = + Kokkos::Experimental::LayoutTiled; + using LayoutLR_2D_2x4 = + Kokkos::Experimental::LayoutTiled; + using LayoutRR_2D_2x4 = + Kokkos::Experimental::LayoutTiled; // Rank 3 - typedef Kokkos::Experimental::LayoutTiled - LayoutLL_3D_2x4x4; - typedef Kokkos::Experimental::LayoutTiled - LayoutRL_3D_2x4x4; - typedef Kokkos::Experimental::LayoutTiled - LayoutLR_3D_2x4x4; - typedef Kokkos::Experimental::LayoutTiled - LayoutRR_3D_2x4x4; + using LayoutLL_3D_2x4x4 = + Kokkos::Experimental::LayoutTiled; + using LayoutRL_3D_2x4x4 = + Kokkos::Experimental::LayoutTiled; + using LayoutLR_3D_2x4x4 = + Kokkos::Experimental::LayoutTiled; + using LayoutRR_3D_2x4x4 = + Kokkos::Experimental::LayoutTiled; // Rank 4 - typedef Kokkos::Experimental::LayoutTiled< - Kokkos::Iterate::Left, Kokkos::Iterate::Left, T0, T1, T2, T3> - LayoutLL_4D_2x4x4x2; - typedef Kokkos::Experimental::LayoutTiled< - Kokkos::Iterate::Right, Kokkos::Iterate::Left, T0, T1, T2, T3> - LayoutRL_4D_2x4x4x2; - typedef Kokkos::Experimental::LayoutTiled< - Kokkos::Iterate::Left, Kokkos::Iterate::Right, T0, T1, T2, T3> - LayoutLR_4D_2x4x4x2; - typedef Kokkos::Experimental::LayoutTiled< - Kokkos::Iterate::Right, Kokkos::Iterate::Right, T0, T1, T2, T3> - LayoutRR_4D_2x4x4x2; + using LayoutLL_4D_2x4x4x2 = + Kokkos::Experimental::LayoutTiled; + using LayoutRL_4D_2x4x4x2 = + Kokkos::Experimental::LayoutTiled; + using LayoutLR_4D_2x4x4x2 = + Kokkos::Experimental::LayoutTiled; + using LayoutRR_4D_2x4x4x2 = + Kokkos::Experimental::LayoutTiled; #if !defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) static void test_view_layout_tiled_2d(const int, const int) { @@ -123,8 +122,8 @@ struct TestViewLayoutTiled { // Test create_mirror_view, deep_copy // Create LL View { - typedef typename Kokkos::View - ViewType; + using ViewType = + typename Kokkos::View; ViewType v("v", N0, N1); typename ViewType::HostMirror hv = Kokkos::create_mirror_view(v); @@ -188,8 +187,8 @@ struct TestViewLayoutTiled { // Create RL View { - typedef typename Kokkos::View - ViewType; + using ViewType = + typename Kokkos::View; Kokkos::View v("v", N0, N1); typename ViewType::HostMirror hv = Kokkos::create_mirror_view(v); @@ -254,8 +253,8 @@ struct TestViewLayoutTiled { // Create LR View { - typedef typename Kokkos::View - ViewType; + using ViewType = + typename Kokkos::View; Kokkos::View v("v", N0, N1); typename ViewType::HostMirror hv = Kokkos::create_mirror_view(v); @@ -320,8 +319,8 @@ struct TestViewLayoutTiled { // Create RR View { - typedef typename Kokkos::View - ViewType; + using ViewType = + typename Kokkos::View; Kokkos::View v("v", N0, N1); typename ViewType::HostMirror hv = Kokkos::create_mirror_view(v); @@ -399,7 +398,7 @@ struct TestViewLayoutTiled { // Create LL View { - typedef Kokkos::View ViewType; + using ViewType = Kokkos::View; Kokkos::View dv("dv", N0, N1, N2); @@ -470,7 +469,7 @@ struct TestViewLayoutTiled { // Create RL View { - typedef Kokkos::View ViewType; + using ViewType = Kokkos::View; Kokkos::View dv("dv", N0, N1, N2); @@ -541,7 +540,7 @@ struct TestViewLayoutTiled { // Create LR View { - typedef Kokkos::View ViewType; + using ViewType = Kokkos::View; Kokkos::View dv("dv", N0, N1, N2); @@ -612,7 +611,7 @@ struct TestViewLayoutTiled { // Create RR View { - typedef Kokkos::View ViewType; + using ViewType = Kokkos::View; Kokkos::View dv("dv", N0, N1, N2); @@ -698,7 +697,7 @@ struct TestViewLayoutTiled { // Create LL View { - typedef Kokkos::View ViewType; + using ViewType = Kokkos::View; Kokkos::View dv("dv", N0, N1, N2, N3); @@ -780,7 +779,7 @@ struct TestViewLayoutTiled { // Create RL View { - typedef Kokkos::View ViewType; + using ViewType = Kokkos::View; Kokkos::View dv("dv", N0, N1, N2, N3); @@ -863,7 +862,7 @@ struct TestViewLayoutTiled { // Create LR View { - typedef Kokkos::View ViewType; + using ViewType = Kokkos::View; Kokkos::View dv("dv", N0, N1, N2, N3); @@ -947,7 +946,7 @@ struct TestViewLayoutTiled { // Create RR View { - typedef Kokkos::View ViewType; + using ViewType = Kokkos::View; Kokkos::View dv("dv", N0, N1, N2, N3); @@ -1776,5 +1775,4 @@ TEST(TEST_CATEGORY, view_layouttiled_subtile) { TestViewLayoutTiled::test_view_layout_tiled_subtile_4d( 4, 12, 16, 12); } -#endif } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestViewMapping_a.hpp b/lib/kokkos/core/unit_test/TestViewMapping_a.hpp index 7bd6353c2b..084246a274 100644 --- a/lib/kokkos/core/unit_test/TestViewMapping_a.hpp +++ b/lib/kokkos/core/unit_test/TestViewMapping_a.hpp @@ -54,28 +54,28 @@ namespace Test { template void test_view_mapping() { - typedef typename Space::execution_space ExecSpace; + using ExecSpace = typename Space::execution_space; - typedef Kokkos::Impl::ViewDimension<> dim_0; - typedef Kokkos::Impl::ViewDimension<2> dim_s2; - typedef Kokkos::Impl::ViewDimension<2, 3> dim_s2_s3; - typedef Kokkos::Impl::ViewDimension<2, 3, 4> dim_s2_s3_s4; + using dim_0 = Kokkos::Impl::ViewDimension<>; + using dim_s2 = Kokkos::Impl::ViewDimension<2>; + using dim_s2_s3 = Kokkos::Impl::ViewDimension<2, 3>; + using dim_s2_s3_s4 = Kokkos::Impl::ViewDimension<2, 3, 4>; - typedef Kokkos::Impl::ViewDimension<0> dim_s0; - typedef Kokkos::Impl::ViewDimension<0, 3> dim_s0_s3; - typedef Kokkos::Impl::ViewDimension<0, 3, 4> dim_s0_s3_s4; + using dim_s0 = Kokkos::Impl::ViewDimension<0>; + using dim_s0_s3 = Kokkos::Impl::ViewDimension<0, 3>; + using dim_s0_s3_s4 = Kokkos::Impl::ViewDimension<0, 3, 4>; - typedef Kokkos::Impl::ViewDimension<0, 0> dim_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 4> dim_s0_s0_s4; + using dim_s0_s0 = Kokkos::Impl::ViewDimension<0, 0>; + using dim_s0_s0_s4 = Kokkos::Impl::ViewDimension<0, 0, 4>; - typedef Kokkos::Impl::ViewDimension<0, 0, 0> dim_s0_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0> dim_s0_s0_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0> dim_s0_s0_s0_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0> dim_s0_s0_s0_s0_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0, 0> - dim_s0_s0_s0_s0_s0_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0, 0, 0> - dim_s0_s0_s0_s0_s0_s0_s0_s0; + using dim_s0_s0_s0 = Kokkos::Impl::ViewDimension<0, 0, 0>; + using dim_s0_s0_s0_s0 = Kokkos::Impl::ViewDimension<0, 0, 0, 0>; + using dim_s0_s0_s0_s0_s0 = Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0>; + using dim_s0_s0_s0_s0_s0_s0 = Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0>; + using dim_s0_s0_s0_s0_s0_s0_s0 = + Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0, 0>; + using dim_s0_s0_s0_s0_s0_s0_s0_s0 = + Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0, 0, 0>; // Fully static dimensions should not be larger than an int. #ifndef _WIN32 // For some reason on Windows the first test here fails with @@ -190,14 +190,14 @@ void test_view_mapping() { //---------------------------------------- - typedef Kokkos::Impl::ViewOffset - stride_s0_s0_s0; + using stride_s0_s0_s0 = + Kokkos::Impl::ViewOffset; //---------------------------------------- // Static dimension. { - typedef Kokkos::Impl::ViewOffset - left_s2_s3_s4; + using left_s2_s3_s4 = + Kokkos::Impl::ViewOffset; ASSERT_EQ(sizeof(left_s2_s3_s4), sizeof(dim_s2_s3_s4)); @@ -228,8 +228,8 @@ void test_view_mapping() { //---------------------------------------- // Small dimension is unpadded. { - typedef Kokkos::Impl::ViewOffset - left_s0_s0_s4; + using left_s0_s0_s4 = + Kokkos::Impl::ViewOffset; left_s0_s0_s4 dyn_off3(std::integral_constant(), Kokkos::LayoutLeft(2, 3, 0, 0, 0, 0, 0, 0)); @@ -280,8 +280,8 @@ void test_view_mapping() { constexpr int N0 = 2000; constexpr int N1 = 300; - typedef Kokkos::Impl::ViewOffset - left_s0_s0_s4; + using left_s0_s0_s4 = + Kokkos::Impl::ViewOffset; left_s0_s0_s4 dyn_off3(std::integral_constant(), Kokkos::LayoutLeft(N0, N1, 0, 0, 0, 0, 0, 0)); @@ -319,8 +319,8 @@ void test_view_mapping() { //---------------------------------------- // Static dimension. { - typedef Kokkos::Impl::ViewOffset - right_s2_s3_s4; + using right_s2_s3_s4 = + Kokkos::Impl::ViewOffset; ASSERT_EQ(sizeof(right_s2_s3_s4), sizeof(dim_s2_s3_s4)); @@ -355,8 +355,8 @@ void test_view_mapping() { //---------------------------------------- // Small dimension is unpadded. { - typedef Kokkos::Impl::ViewOffset - right_s0_s0_s4; + using right_s0_s0_s4 = + Kokkos::Impl::ViewOffset; right_s0_s0_s4 dyn_off3(std::integral_constant(), Kokkos::LayoutRight(2, 3, 0, 0, 0, 0, 0, 0)); @@ -396,8 +396,8 @@ void test_view_mapping() { constexpr int N0 = 2000; constexpr int N1 = 300; - typedef Kokkos::Impl::ViewOffset - right_s0_s0_s4; + using right_s0_s0_s4 = + Kokkos::Impl::ViewOffset; right_s0_s0_s4 dyn_off3(std::integral_constant(), Kokkos::LayoutRight(N0, N1, 0, 0, 0, 0, 0, 0)); @@ -436,7 +436,7 @@ void test_view_mapping() { // Subview. { // Mapping rank 4 to rank 3 - typedef Kokkos::Impl::SubviewExtents<4, 3> SubviewExtents; + using SubviewExtents = Kokkos::Impl::SubviewExtents<4, 3>; constexpr int N0 = 1000; constexpr int N1 = 2000; @@ -471,8 +471,8 @@ void test_view_mapping() { constexpr int sub_N1 = 200; constexpr int sub_N2 = 4; - typedef Kokkos::Impl::ViewOffset - left_s0_s0_s4; + using left_s0_s0_s4 = + Kokkos::Impl::ViewOffset; left_s0_s0_s4 dyn_off3(std::integral_constant(), Kokkos::LayoutLeft(N0, N1, 0, 0, 0, 0, 0, 0)); @@ -508,8 +508,8 @@ void test_view_mapping() { constexpr int sub_N1 = 200; constexpr int sub_N2 = 4; - typedef Kokkos::Impl::ViewOffset - right_s0_s0_s4; + using right_s0_s0_s4 = + Kokkos::Impl::ViewOffset; right_s0_s0_s4 dyn_off3(std::integral_constant(), Kokkos::LayoutRight(N0, N1, 0, 0, 0, 0, 0, 0)); @@ -552,10 +552,10 @@ void test_view_mapping() { { using namespace Kokkos::Impl; - typedef ViewArrayAnalysis a_int_r1; - typedef ViewArrayAnalysis a_int_r5; - typedef ViewArrayAnalysis a_const_int_r1; - typedef ViewArrayAnalysis a_const_int_r5; + using a_int_r1 = ViewArrayAnalysis; + using a_int_r5 = ViewArrayAnalysis; + using a_const_int_r1 = ViewArrayAnalysis; + using a_const_int_r5 = ViewArrayAnalysis; static_assert(a_int_r1::dimension::rank == 1, ""); static_assert(a_int_r1::dimension::rank_dynamic == 1, ""); @@ -610,10 +610,10 @@ void test_view_mapping() { { using namespace Kokkos::Impl; - typedef int t_i4[4]; + using t_i4 = int[4]; // Dimensions of t_i4 are appended to the multdimensional array. - typedef ViewArrayAnalysis a_int_r5; + using a_int_r5 = ViewArrayAnalysis; static_assert(a_int_r5::dimension::rank == 5, ""); static_assert(a_int_r5::dimension::rank_dynamic == 3, ""); @@ -629,7 +629,7 @@ void test_view_mapping() { { using namespace Kokkos::Impl; - typedef ViewDataAnalysis a_const_int_r1; + using a_const_int_r1 = ViewDataAnalysis; static_assert( std::is_same::value, ""); @@ -661,7 +661,7 @@ void test_view_mapping() { std::is_same::value, ""); - typedef ViewDataAnalysis a_const_int_r3; + using a_const_int_r3 = ViewDataAnalysis; static_assert( std::is_same::value, ""); @@ -708,8 +708,8 @@ void test_view_mapping() { { constexpr int N = 10; - typedef Kokkos::View T; - typedef Kokkos::View C; + using T = Kokkos::View; + using C = Kokkos::View; int data[N]; @@ -788,8 +788,8 @@ void test_view_mapping() { { constexpr int N = 10; - typedef Kokkos::View T; - typedef Kokkos::View C; + using T = Kokkos::View; + using C = Kokkos::View; T vr1("vr1", N); C cr1(vr1); @@ -835,8 +835,8 @@ void test_view_mapping() { // Testing proper handling of zero-length allocations. { constexpr int N = 0; - typedef Kokkos::View T; - typedef Kokkos::View C; + using T = Kokkos::View; + using C = Kokkos::View; T vr1("vr1", N); C cr1(vr1); @@ -852,8 +852,8 @@ void test_view_mapping() { typename ExecSpace::memory_space::execution_space>::value) { using namespace Kokkos; - typedef typename ExecSpace::memory_space memory_space; - typedef View V; + using memory_space = typename ExecSpace::memory_space; + using V = View; constexpr int N = 10; @@ -874,10 +874,10 @@ void test_view_mapping() { } { - typedef Kokkos::ViewTraits - traits_t; - typedef Kokkos::Impl::ViewDimension<0, 0, 0> dims_t; - typedef Kokkos::Impl::ViewOffset offset_t; + using traits_t = + Kokkos::ViewTraits; + using dims_t = Kokkos::Impl::ViewDimension<0, 0, 0>; + using offset_t = Kokkos::Impl::ViewOffset; Kokkos::LayoutStride stride; @@ -906,9 +906,9 @@ void test_view_mapping() { } { - typedef Kokkos::View V; - typedef typename V::HostMirror M; - typedef typename Kokkos::View::array_layout layout_type; + using V = Kokkos::View; + using M = typename V::HostMirror; + using layout_type = typename Kokkos::View::array_layout; constexpr int N0 = 10; constexpr int N1 = 11; @@ -980,11 +980,10 @@ void test_view_mapping() { } { - typedef Kokkos::View V; - typedef typename V::HostMirror M; - typedef - typename Kokkos::View::array_layout - layout_type; + using V = Kokkos::View; + using M = typename V::HostMirror; + using layout_type = + typename Kokkos::View::array_layout; constexpr int N0 = 10; constexpr int N1 = 11; @@ -1034,8 +1033,8 @@ void test_view_mapping() { } { - typedef Kokkos::View V; - typedef Kokkos::View U; + using V = Kokkos::View; + using U = Kokkos::View; V a("a", 10); @@ -1075,8 +1074,8 @@ void test_view_mapping() { !(defined(KOKKOS_ENABLE_HPX) && defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH)) // Cannot launch host lambda when CUDA lambda is enabled. - typedef typename Kokkos::Impl::HostMirror::Space::execution_space - host_exec_space; + using host_exec_space = + typename Kokkos::Impl::HostMirror::Space::execution_space; int errors = 0; Kokkos::parallel_reduce( @@ -1104,20 +1103,12 @@ struct TestViewMapOperator { static_assert(ViewType::reference_type_is_lvalue_reference, "Test only valid for lvalue reference type"); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const ViewType v; -#else ViewType v; -#endif KOKKOS_INLINE_FUNCTION void test_left(size_t i0, int64_t& error_count) const { -#ifdef KOKKOS_ENABLE_DEPPRECATED_CODE - typename ViewType::value_type* const base_ptr = &v(0, 0, 0, 0, 0, 0, 0, 0); -#else typename ViewType::value_type* const base_ptr = &v.access(0, 0, 0, 0, 0, 0, 0, 0); -#endif const size_t n1 = v.extent(1); const size_t n2 = v.extent(2); const size_t n3 = v.extent(3); @@ -1135,13 +1126,8 @@ struct TestViewMapOperator { for (size_t i3 = 0; i3 < n3; ++i3) for (size_t i2 = 0; i2 < n2; ++i2) for (size_t i1 = 0; i1 < n1; ++i1) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int64_t d = - &v(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; -#else const int64_t d = &v.access(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; -#endif if (d < offset) ++error_count; offset = d; } @@ -1151,12 +1137,8 @@ struct TestViewMapOperator { KOKKOS_INLINE_FUNCTION void test_right(size_t i0, int64_t& error_count) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - typename ViewType::value_type* const base_ptr = &v(0, 0, 0, 0, 0, 0, 0, 0); -#else typename ViewType::value_type* const base_ptr = &v.access(0, 0, 0, 0, 0, 0, 0, 0); -#endif const size_t n1 = v.extent(1); const size_t n2 = v.extent(2); const size_t n3 = v.extent(3); @@ -1174,13 +1156,8 @@ struct TestViewMapOperator { for (size_t i5 = 0; i5 < n5; ++i5) for (size_t i6 = 0; i6 < n6; ++i6) for (size_t i7 = 0; i7 < n7; ++i7) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int64_t d = - &v(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; -#else const int64_t d = &v.access(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; -#endif if (d < offset) ++error_count; offset = d; } @@ -1208,10 +1185,6 @@ struct TestViewMapOperator { enum { N6 = 4 }; enum { N7 = 3 }; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - TestViewMapOperator() : v("Test", N0, N1, N2, N3, N4, N5, N6, N7) {} - -#else TestViewMapOperator() { const size_t dyn_rank = v.rank_dynamic; const std::string label("Test"); @@ -1229,7 +1202,6 @@ struct TestViewMapOperator { } } -#endif void run() { ASSERT_EQ(v.extent(0), (0 < ViewType::rank ? TestViewMapOperator::N0 : 1)); @@ -1262,7 +1234,7 @@ struct TestViewMapOperator { template void test_view_mapping_operator() { - typedef typename Space::execution_space ExecSpace; + using ExecSpace = typename Space::execution_space; { TestViewMapOperator > f; diff --git a/lib/kokkos/core/unit_test/TestViewMapping_b.hpp b/lib/kokkos/core/unit_test/TestViewMapping_b.hpp index 63ec635323..96eca79f6c 100644 --- a/lib/kokkos/core/unit_test/TestViewMapping_b.hpp +++ b/lib/kokkos/core/unit_test/TestViewMapping_b.hpp @@ -56,13 +56,13 @@ namespace Test { template struct TestViewMappingAtomic { - typedef typename Space::execution_space ExecSpace; - typedef typename Space::memory_space MemSpace; + using ExecSpace = typename Space::execution_space; + using MemSpace = typename Space::memory_space; - typedef Kokkos::MemoryTraits mem_trait; + using mem_trait = Kokkos::MemoryTraits; - typedef Kokkos::View T; - typedef Kokkos::View T_atom; + using T = Kokkos::View; + using T_atom = Kokkos::View; T x; T_atom x_atom; @@ -166,7 +166,7 @@ struct MappingClassValueType { template void test_view_mapping_class_value() { - typedef typename Space::execution_space ExecSpace; + using ExecSpace = typename Space::execution_space; ExecSpace().fence(); { @@ -187,12 +187,12 @@ TEST(TEST_CATEGORY, view_mapping_class_value) { namespace Test { TEST(TEST_CATEGORY, view_mapping_assignable) { - typedef TEST_EXECSPACE exec_space; + using exec_space = TEST_EXECSPACE; { // Assignment of rank-0 Left = Right - typedef Kokkos::ViewTraits dst_traits; - typedef Kokkos::ViewTraits src_traits; - typedef Kokkos::Impl::ViewMapping mapping; + using dst_traits = Kokkos::ViewTraits; + using src_traits = Kokkos::ViewTraits; + using mapping = Kokkos::Impl::ViewMapping; static_assert(mapping::is_assignable, ""); Kokkos::View src; @@ -201,9 +201,9 @@ TEST(TEST_CATEGORY, view_mapping_assignable) { } { // Assignment of rank-0 Right = Left - typedef Kokkos::ViewTraits dst_traits; - typedef Kokkos::ViewTraits src_traits; - typedef Kokkos::Impl::ViewMapping mapping; + using dst_traits = Kokkos::ViewTraits; + using src_traits = Kokkos::ViewTraits; + using mapping = Kokkos::Impl::ViewMapping; static_assert(mapping::is_assignable, ""); Kokkos::View src; @@ -212,11 +212,11 @@ TEST(TEST_CATEGORY, view_mapping_assignable) { } { // Assignment of rank-1 Left = Right - typedef Kokkos::ViewTraits - dst_traits; - typedef Kokkos::ViewTraits - src_traits; - typedef Kokkos::Impl::ViewMapping mapping; + using dst_traits = + Kokkos::ViewTraits; + using src_traits = + Kokkos::ViewTraits; + using mapping = Kokkos::Impl::ViewMapping; static_assert(mapping::is_assignable, ""); Kokkos::View src; @@ -225,11 +225,11 @@ TEST(TEST_CATEGORY, view_mapping_assignable) { } { // Assignment of rank-1 Right = Left - typedef Kokkos::ViewTraits - dst_traits; - typedef Kokkos::ViewTraits - src_traits; - typedef Kokkos::Impl::ViewMapping mapping; + using dst_traits = + Kokkos::ViewTraits; + using src_traits = + Kokkos::ViewTraits; + using mapping = Kokkos::Impl::ViewMapping; static_assert(mapping::is_assignable, ""); Kokkos::View src; @@ -238,20 +238,20 @@ TEST(TEST_CATEGORY, view_mapping_assignable) { } { // Assignment of rank-2 Left = Right - typedef Kokkos::ViewTraits - dst_traits; - typedef Kokkos::ViewTraits - src_traits; - typedef Kokkos::Impl::ViewMapping mapping; + using dst_traits = + Kokkos::ViewTraits; + using src_traits = + Kokkos::ViewTraits; + using mapping = Kokkos::Impl::ViewMapping; static_assert(!mapping::is_assignable, ""); } { // Assignment of rank-2 Right = Left - typedef Kokkos::ViewTraits - dst_traits; - typedef Kokkos::ViewTraits - src_traits; - typedef Kokkos::Impl::ViewMapping mapping; + using dst_traits = + Kokkos::ViewTraits; + using src_traits = + Kokkos::ViewTraits; + using mapping = Kokkos::Impl::ViewMapping; static_assert(!mapping::is_assignable, ""); } } diff --git a/lib/kokkos/core/unit_test/TestViewMapping_subview.hpp b/lib/kokkos/core/unit_test/TestViewMapping_subview.hpp index d5e9ce7de1..c8300d9eab 100644 --- a/lib/kokkos/core/unit_test/TestViewMapping_subview.hpp +++ b/lib/kokkos/core/unit_test/TestViewMapping_subview.hpp @@ -54,30 +54,30 @@ namespace Test { template struct TestViewMappingSubview { - typedef typename Space::execution_space ExecSpace; - typedef typename Space::memory_space MemSpace; + using ExecSpace = typename Space::execution_space; + using MemSpace = typename Space::memory_space; - typedef Kokkos::pair range; + using range = Kokkos::pair; enum { AN = 10 }; - typedef Kokkos::View AT; - typedef Kokkos::View ACT; - typedef Kokkos::Subview AS; + using AT = Kokkos::View; + using ACT = Kokkos::View; + using AS = Kokkos::Subview; enum { BN0 = 10, BN1 = 11, BN2 = 12 }; - typedef Kokkos::View BT; - typedef Kokkos::Subview BS; + using BT = Kokkos::View; + using BS = Kokkos::Subview; enum { CN0 = 10, CN1 = 11, CN2 = 12 }; - typedef Kokkos::View CT; - typedef Kokkos::Subview CS; + using CT = Kokkos::View; + using CS = Kokkos::Subview; enum { DN0 = 10, DN1 = 11, DN2 = 12, DN3 = 13, DN4 = 14 }; - typedef Kokkos::View DT; - typedef Kokkos::Subview DS; + using DT = Kokkos::View; + using DS = Kokkos::Subview; - typedef Kokkos::View DLT; - typedef Kokkos::Subview DLS1; + using DLT = Kokkos::View; + using DLS1 = Kokkos::Subview; #if !defined(KOKKOS_IMPL_CUDA_VERSION_9_WORKAROUND) static_assert( @@ -87,8 +87,8 @@ struct TestViewMappingSubview { "LayoutLeft"); #endif - typedef Kokkos::View DRT; - typedef Kokkos::Subview DRS1; + using DRT = Kokkos::View; + using DRS1 = Kokkos::Subview; #if !defined(KOKKOS_IMPL_CUDA_VERSION_9_WORKAROUND) static_assert( diff --git a/lib/kokkos/core/unit_test/TestViewResize.hpp b/lib/kokkos/core/unit_test/TestViewResize.hpp index 0f1e5188c8..9a378e5211 100644 --- a/lib/kokkos/core/unit_test/TestViewResize.hpp +++ b/lib/kokkos/core/unit_test/TestViewResize.hpp @@ -50,7 +50,7 @@ namespace Test { TEST(TEST_CATEGORY, view_resize) { - typedef TEST_EXECSPACE ExecSpace; + using ExecSpace = TEST_EXECSPACE; TestViewResize::testResize(); } diff --git a/lib/kokkos/core/unit_test/TestViewSubview.hpp b/lib/kokkos/core/unit_test/TestViewSubview.hpp index 48be58c2e9..a8af720ab9 100644 --- a/lib/kokkos/core/unit_test/TestViewSubview.hpp +++ b/lib/kokkos/core/unit_test/TestViewSubview.hpp @@ -133,8 +133,8 @@ struct getView { template struct fill_1D { - typedef typename Space::execution_space execution_space; - typedef typename ViewType::size_type size_type; + using execution_space = typename Space::execution_space; + using size_type = typename ViewType::size_type; ViewType a; double val; @@ -147,8 +147,8 @@ struct fill_1D { template struct fill_2D { - typedef typename Space::execution_space execution_space; - typedef typename ViewType::size_type size_type; + using execution_space = typename Space::execution_space; + using size_type = typename ViewType::size_type; ViewType a; double val; @@ -165,8 +165,8 @@ struct fill_2D { template void test_auto_1d() { - typedef Kokkos::View mv_type; - typedef typename mv_type::size_type size_type; + using mv_type = Kokkos::View; + using size_type = typename mv_type::size_type; const double ZERO = 0.0; const double ONE = 1.0; @@ -311,10 +311,20 @@ void test_1d_strided_assignment() { Space>(true, true, true, true, 17, 1); } +template +void make_subview(bool use_constructor, NewView& v, OrigView org, + Args... args) { + if (use_constructor) { + v = NewView(org, args...); + } else { + v = Kokkos::subview(org, args...); + } +} + template -void test_left_0() { - typedef Kokkos::View - view_static_8_type; +void test_left_0(bool constr) { + using view_static_8_type = + Kokkos::View; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { @@ -322,22 +332,41 @@ void test_left_0() { ASSERT_TRUE(x_static_8.span_is_contiguous()); - Kokkos::View x0 = - Kokkos::subview(x_static_8, 0, 0, 0, 0, 0, 0, 0, 0); + Kokkos::View x0; + make_subview(constr, x0, x_static_8, 0, 0, 0, 0, 0, 0, 0, 0); ASSERT_TRUE(x0.span_is_contiguous()); + ASSERT_EQ(x0.span(), 1); ASSERT_TRUE(&x0() == &x_static_8(0, 0, 0, 0, 0, 0, 0, 0)); - Kokkos::View x1 = Kokkos::subview( - x_static_8, Kokkos::pair(0, 2), 1, 2, 3, 0, 1, 2, 3); + Kokkos::View x1; + make_subview(constr, x1, x_static_8, Kokkos::pair(0, 2), 1, 2, 3, + 0, 1, 2, 3); ASSERT_TRUE(x1.span_is_contiguous()); + ASSERT_EQ(x1.span(), 2); ASSERT_TRUE(&x1(0) == &x_static_8(0, 1, 2, 3, 0, 1, 2, 3)); ASSERT_TRUE(&x1(1) == &x_static_8(1, 1, 2, 3, 0, 1, 2, 3)); - Kokkos::View x2 = - Kokkos::subview(x_static_8, Kokkos::pair(0, 2), 1, 2, 3, - Kokkos::pair(0, 2), 1, 2, 3); + Kokkos::View x_deg1; + make_subview(constr, x_deg1, x_static_8, Kokkos::pair(0, 0), 1, 2, + 3, 0, 1, 2, 3); + + ASSERT_TRUE(x_deg1.span_is_contiguous()); + ASSERT_EQ(x_deg1.span(), 0); + ASSERT_EQ(x_deg1.data(), &x_static_8(0, 1, 2, 3, 0, 1, 2, 3)); + + Kokkos::View x_deg2; + make_subview(constr, x_deg2, x_static_8, Kokkos::pair(2, 2), 2, 3, + 4, 1, 2, 3, 4); + + ASSERT_TRUE(x_deg2.span_is_contiguous()); + ASSERT_EQ(x_deg2.span(), 0); + ASSERT_EQ(x_deg2.data(), x_static_8.data() + x_static_8.span()); + + Kokkos::View x2; + make_subview(constr, x2, x_static_8, Kokkos::pair(0, 2), 1, 2, 3, + Kokkos::pair(0, 2), 1, 2, 3); ASSERT_TRUE(!x2.span_is_contiguous()); ASSERT_TRUE(&x2(0, 0) == &x_static_8(0, 1, 2, 3, 0, 1, 2, 3)); @@ -346,9 +375,9 @@ void test_left_0() { ASSERT_TRUE(&x2(1, 1) == &x_static_8(1, 1, 2, 3, 1, 1, 2, 3)); // Kokkos::View< int**, Kokkos::LayoutLeft, Space > error_2 = - Kokkos::View sx2 = - Kokkos::subview(x_static_8, 1, Kokkos::pair(0, 2), 2, 3, - Kokkos::pair(0, 2), 1, 2, 3); + Kokkos::View sx2; + make_subview(constr, sx2, x_static_8, 1, Kokkos::pair(0, 2), 2, 3, + Kokkos::pair(0, 2), 1, 2, 3); ASSERT_TRUE(!sx2.span_is_contiguous()); ASSERT_TRUE(&sx2(0, 0) == &x_static_8(1, 0, 2, 3, 0, 1, 2, 3)); @@ -356,15 +385,16 @@ void test_left_0() { ASSERT_TRUE(&sx2(0, 1) == &x_static_8(1, 0, 2, 3, 1, 1, 2, 3)); ASSERT_TRUE(&sx2(1, 1) == &x_static_8(1, 1, 2, 3, 1, 1, 2, 3)); - Kokkos::View sx4 = - Kokkos::subview(x_static_8, 0, Kokkos::pair(0, 2) /* of [3] */ - , - 1, Kokkos::pair(1, 3) /* of [5] */ - , - 1, Kokkos::pair(0, 2) /* of [3] */ - , - 2, Kokkos::pair(2, 4) /* of [5] */ - ); + Kokkos::View sx4; + make_subview(constr, sx4, x_static_8, 0, + Kokkos::pair(0, 2) /* of [3] */ + , + 1, Kokkos::pair(1, 3) /* of [5] */ + , + 1, Kokkos::pair(0, 2) /* of [3] */ + , + 2, Kokkos::pair(2, 4) /* of [5] */ + ); ASSERT_TRUE(!sx4.span_is_contiguous()); @@ -380,9 +410,15 @@ void test_left_0() { } template -void test_left_1() { - typedef Kokkos::View - view_type; +void test_left_0() { + test_left_0(true); + test_left_0(false); +} + +template +void test_left_1(bool use_constr) { + using view_type = + Kokkos::View; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { @@ -390,22 +426,39 @@ void test_left_1() { ASSERT_TRUE(x8.span_is_contiguous()); - Kokkos::View x0 = - Kokkos::subview(x8, 0, 0, 0, 0, 0, 0, 0, 0); + Kokkos::View x0; + make_subview(use_constr, x0, x8, 0, 0, 0, 0, 0, 0, 0, 0); ASSERT_TRUE(x0.span_is_contiguous()); ASSERT_TRUE(&x0() == &x8(0, 0, 0, 0, 0, 0, 0, 0)); - Kokkos::View x1 = - Kokkos::subview(x8, Kokkos::pair(0, 2), 1, 2, 3, 0, 1, 2, 3); + Kokkos::View x1; + make_subview(use_constr, x1, x8, Kokkos::pair(0, 2), 1, 2, 3, 0, + 1, 2, 3); ASSERT_TRUE(x1.span_is_contiguous()); ASSERT_TRUE(&x1(0) == &x8(0, 1, 2, 3, 0, 1, 2, 3)); ASSERT_TRUE(&x1(1) == &x8(1, 1, 2, 3, 0, 1, 2, 3)); - Kokkos::View x2 = - Kokkos::subview(x8, Kokkos::pair(0, 2), 1, 2, 3, - Kokkos::pair(0, 2), 1, 2, 3); + Kokkos::View x1_deg1; + make_subview(use_constr, x1_deg1, x8, Kokkos::pair(0, 0), 1, 2, 3, + 0, 1, 2, 3); + + ASSERT_TRUE(x1_deg1.span_is_contiguous()); + ASSERT_EQ(0, x1_deg1.span()); + ASSERT_EQ(x1_deg1.data(), &x8(0, 1, 2, 3, 0, 1, 2, 3)); + + Kokkos::View x1_deg2; + make_subview(use_constr, x1_deg2, x8, Kokkos::pair(2, 2), 2, 3, 4, + 1, 2, 3, 4); + + ASSERT_EQ(0, x1_deg2.span()); + ASSERT_TRUE(x1_deg2.span_is_contiguous()); + ASSERT_EQ(x1_deg2.data(), x8.data() + x8.span()); + + Kokkos::View x2; + make_subview(use_constr, x2, x8, Kokkos::pair(0, 2), 1, 2, 3, + Kokkos::pair(0, 2), 1, 2, 3); ASSERT_TRUE(!x2.span_is_contiguous()); ASSERT_TRUE(&x2(0, 0) == &x8(0, 1, 2, 3, 0, 1, 2, 3)); @@ -413,10 +466,15 @@ void test_left_1() { ASSERT_TRUE(&x2(0, 1) == &x8(0, 1, 2, 3, 1, 1, 2, 3)); ASSERT_TRUE(&x2(1, 1) == &x8(1, 1, 2, 3, 1, 1, 2, 3)); + Kokkos::View x2_deg2; + make_subview(use_constr, x2_deg2, x8, Kokkos::pair(2, 2), 2, 3, 4, + 1, 2, Kokkos::pair(2, 3), 4); + ASSERT_EQ(0, x2_deg2.span()); + // Kokkos::View< int**, Kokkos::LayoutLeft, Space > error_2 = - Kokkos::View sx2 = - Kokkos::subview(x8, 1, Kokkos::pair(0, 2), 2, 3, - Kokkos::pair(0, 2), 1, 2, 3); + Kokkos::View sx2; + make_subview(use_constr, sx2, x8, 1, Kokkos::pair(0, 2), 2, 3, + Kokkos::pair(0, 2), 1, 2, 3); ASSERT_TRUE(!sx2.span_is_contiguous()); ASSERT_TRUE(&sx2(0, 0) == &x8(1, 0, 2, 3, 0, 1, 2, 3)); @@ -424,15 +482,21 @@ void test_left_1() { ASSERT_TRUE(&sx2(0, 1) == &x8(1, 0, 2, 3, 1, 1, 2, 3)); ASSERT_TRUE(&sx2(1, 1) == &x8(1, 1, 2, 3, 1, 1, 2, 3)); - Kokkos::View sx4 = - Kokkos::subview(x8, 0, Kokkos::pair(0, 2) /* of [3] */ - , - 1, Kokkos::pair(1, 3) /* of [5] */ - , - 1, Kokkos::pair(0, 2) /* of [3] */ - , - 2, Kokkos::pair(2, 4) /* of [5] */ - ); + Kokkos::View sx2_deg; + make_subview(use_constr, sx2, x8, 1, Kokkos::pair(0, 0), 2, 3, + Kokkos::pair(0, 2), 1, 2, 3); + ASSERT_EQ(0, sx2_deg.span()); + + Kokkos::View sx4; + make_subview(use_constr, sx4, x8, 0, + Kokkos::pair(0, 2) /* of [3] */ + , + 1, Kokkos::pair(1, 3) /* of [5] */ + , + 1, Kokkos::pair(0, 2) /* of [3] */ + , + 2, Kokkos::pair(2, 4) /* of [5] */ + ); ASSERT_TRUE(!sx4.span_is_contiguous()); @@ -446,9 +510,15 @@ void test_left_1() { } } +template +void test_left_1() { + test_left_1(true); + test_left_1(false); +} + template void test_left_2() { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { @@ -514,7 +584,7 @@ void test_left_2() { template void test_left_3() { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { @@ -570,29 +640,31 @@ void test_left_3() { //---------------------------------------------------------------------------- template -void test_right_0() { - typedef Kokkos::View - view_static_8_type; +void test_right_0(bool use_constr) { + using view_static_8_type = + Kokkos::View; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { view_static_8_type x_static_8("x_static_right_8"); - Kokkos::View x0 = - Kokkos::subview(x_static_8, 0, 0, 0, 0, 0, 0, 0, 0); + Kokkos::View x0; + make_subview(use_constr, x0, x_static_8, 0, 0, 0, 0, 0, 0, 0, 0); ASSERT_TRUE(&x0() == &x_static_8(0, 0, 0, 0, 0, 0, 0, 0)); - Kokkos::View x1 = Kokkos::subview( - x_static_8, 0, 1, 2, 3, 0, 1, 2, Kokkos::pair(1, 3)); + Kokkos::View x1; + make_subview(use_constr, x1, x_static_8, 0, 1, 2, 3, 0, 1, 2, + Kokkos::pair(1, 3)); ASSERT_TRUE(x1.extent(0) == 2); ASSERT_TRUE(&x1(0) == &x_static_8(0, 1, 2, 3, 0, 1, 2, 1)); ASSERT_TRUE(&x1(1) == &x_static_8(0, 1, 2, 3, 0, 1, 2, 2)); - Kokkos::View x2 = - Kokkos::subview(x_static_8, 0, 1, 2, Kokkos::pair(1, 3), 0, 1, - 2, Kokkos::pair(1, 3)); + Kokkos::View x2; + make_subview(use_constr, x2, x_static_8, 0, 1, 2, + Kokkos::pair(1, 3), 0, 1, 2, + Kokkos::pair(1, 3)); ASSERT_TRUE(x2.extent(0) == 2); ASSERT_TRUE(x2.extent(1) == 2); @@ -602,9 +674,9 @@ void test_right_0() { ASSERT_TRUE(&x2(1, 1) == &x_static_8(0, 1, 2, 2, 0, 1, 2, 2)); // Kokkos::View< int**, Kokkos::LayoutRight, Space > error_2 = - Kokkos::View sx2 = - Kokkos::subview(x_static_8, 1, Kokkos::pair(0, 2), 2, 3, - Kokkos::pair(0, 2), 1, 2, 3); + Kokkos::View sx2; + make_subview(use_constr, sx2, x_static_8, 1, Kokkos::pair(0, 2), + 2, 3, Kokkos::pair(0, 2), 1, 2, 3); ASSERT_TRUE(sx2.extent(0) == 2); ASSERT_TRUE(sx2.extent(1) == 2); @@ -613,15 +685,16 @@ void test_right_0() { ASSERT_TRUE(&sx2(0, 1) == &x_static_8(1, 0, 2, 3, 1, 1, 2, 3)); ASSERT_TRUE(&sx2(1, 1) == &x_static_8(1, 1, 2, 3, 1, 1, 2, 3)); - Kokkos::View sx4 = - Kokkos::subview(x_static_8, 0, Kokkos::pair(0, 2) /* of [3] */ - , - 1, Kokkos::pair(1, 3) /* of [5] */ - , - 1, Kokkos::pair(0, 2) /* of [3] */ - , - 2, Kokkos::pair(2, 4) /* of [5] */ - ); + Kokkos::View sx4; + make_subview(use_constr, sx4, x_static_8, 0, + Kokkos::pair(0, 2) /* of [3] */ + , + 1, Kokkos::pair(1, 3) /* of [5] */ + , + 1, Kokkos::pair(0, 2) /* of [3] */ + , + 2, Kokkos::pair(2, 4) /* of [5] */ + ); ASSERT_TRUE(sx4.extent(0) == 2); ASSERT_TRUE(sx4.extent(1) == 2); @@ -639,53 +712,76 @@ void test_right_0() { } template -void test_right_1() { - typedef Kokkos::View - view_type; +void test_right_0() { + test_right_0(true); + test_right_0(false); +} + +template +void test_right_1(bool use_constr) { + using view_type = + Kokkos::View; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { view_type x8("x_right_8", 2, 3, 4, 5); - Kokkos::View x0 = - Kokkos::subview(x8, 0, 0, 0, 0, 0, 0, 0, 0); + Kokkos::View x0; + make_subview(use_constr, x0, x8, 0, 0, 0, 0, 0, 0, 0, 0); ASSERT_TRUE(&x0() == &x8(0, 0, 0, 0, 0, 0, 0, 0)); - Kokkos::View x1 = - Kokkos::subview(x8, 0, 1, 2, 3, 0, 1, 2, Kokkos::pair(1, 3)); + Kokkos::View x1; + make_subview(use_constr, x1, x8, 0, 1, 2, 3, 0, 1, 2, + Kokkos::pair(1, 3)); ASSERT_TRUE(&x1(0) == &x8(0, 1, 2, 3, 0, 1, 2, 1)); ASSERT_TRUE(&x1(1) == &x8(0, 1, 2, 3, 0, 1, 2, 2)); - Kokkos::View x2 = - Kokkos::subview(x8, 0, 1, 2, Kokkos::pair(1, 3), 0, 1, 2, - Kokkos::pair(1, 3)); + Kokkos::View x1_deg1; + make_subview(use_constr, x1_deg1, x8, 0, 1, 2, 3, 0, 1, 2, + Kokkos::pair(3, 3)); + ASSERT_EQ(0, x1_deg1.span()); + + Kokkos::View x2; + make_subview(use_constr, x2, x8, 0, 1, 2, Kokkos::pair(1, 3), 0, + 1, 2, Kokkos::pair(1, 3)); ASSERT_TRUE(&x2(0, 0) == &x8(0, 1, 2, 1, 0, 1, 2, 1)); ASSERT_TRUE(&x2(1, 0) == &x8(0, 1, 2, 2, 0, 1, 2, 1)); ASSERT_TRUE(&x2(0, 1) == &x8(0, 1, 2, 1, 0, 1, 2, 2)); ASSERT_TRUE(&x2(1, 1) == &x8(0, 1, 2, 2, 0, 1, 2, 2)); + Kokkos::View x2_deg2; + make_subview(use_constr, x2_deg2, x8, 0, 1, 2, Kokkos::pair(1, 3), + 0, 1, 2, Kokkos::pair(3, 3)); + ASSERT_EQ(0, x2_deg2.span()); + // Kokkos::View< int**, Kokkos::LayoutRight, Space > error_2 = - Kokkos::View sx2 = - Kokkos::subview(x8, 1, Kokkos::pair(0, 2), 2, 3, - Kokkos::pair(0, 2), 1, 2, 3); + Kokkos::View sx2; + make_subview(use_constr, sx2, x8, 1, Kokkos::pair(0, 2), 2, 3, + Kokkos::pair(0, 2), 1, 2, 3); ASSERT_TRUE(&sx2(0, 0) == &x8(1, 0, 2, 3, 0, 1, 2, 3)); ASSERT_TRUE(&sx2(1, 0) == &x8(1, 1, 2, 3, 0, 1, 2, 3)); ASSERT_TRUE(&sx2(0, 1) == &x8(1, 0, 2, 3, 1, 1, 2, 3)); ASSERT_TRUE(&sx2(1, 1) == &x8(1, 1, 2, 3, 1, 1, 2, 3)); - Kokkos::View sx4 = - Kokkos::subview(x8, 0, Kokkos::pair(0, 2) /* of [3] */ - , - 1, Kokkos::pair(1, 3) /* of [5] */ - , - 1, Kokkos::pair(0, 2) /* of [3] */ - , - 2, Kokkos::pair(2, 4) /* of [5] */ - ); + Kokkos::View sx2_deg; + make_subview(use_constr, sx2_deg, x8, 1, Kokkos::pair(0, 2), 2, 3, + 1, 1, 2, Kokkos::pair(3, 3)); + ASSERT_EQ(0, sx2_deg.span()); + + Kokkos::View sx4; + make_subview(use_constr, sx4, x8, 0, + Kokkos::pair(0, 2) /* of [3] */ + , + 1, Kokkos::pair(1, 3) /* of [5] */ + , + 1, Kokkos::pair(0, 2) /* of [3] */ + , + 2, Kokkos::pair(2, 4) /* of [5] */ + ); for (int i0 = 0; i0 < (int)sx4.extent(0); ++i0) for (int i1 = 0; i1 < (int)sx4.extent(1); ++i1) @@ -697,9 +793,15 @@ void test_right_1() { } } +template +void test_right_1() { + test_right_1(true); + test_right_1(false); +} + template void test_right_3() { - typedef Kokkos::View view_type; + using view_type = Kokkos::View; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { @@ -761,76 +863,360 @@ constexpr int N2 = 17; constexpr int N3 = 5; constexpr int N4 = 7; -template -void test_Check1D(SubView a, View b, std::pair range) { - int errors = 0; +template +struct FillView_1D { + using view_t = Kokkos::View; + view_t a; + using policy_t = Kokkos::RangePolicy; + + FillView_1D(view_t a_) : a(a_) {} - for (int i = 0; i < range.second - range.first; i++) { - if (a(i) != b(i + range.first)) errors++; + void run() { + Kokkos::parallel_for("FillView_1D", policy_t(0, a.extent(0)), *this); } + KOKKOS_INLINE_FUNCTION + void operator()(int i) const { a(i) = i; } +}; + +template +struct FillView_3D { + using exec_t = typename Space::execution_space; + using view_t = Kokkos::View; + using rank_t = Kokkos::Rank< + view_t::Rank, + std::is_same::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right, + std::is_same::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right>; + using policy_t = Kokkos::MDRangePolicy; - if (errors > 0) { - std::cout << "Error Suviews test_Check1D: " << errors << std::endl; + view_t a; + + FillView_3D(view_t a_) : a(a_) {} + + void run() { + Kokkos::parallel_for( + "FillView_3D", + policy_t({0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2)}), *this); } - ASSERT_TRUE(errors == 0); -} + KOKKOS_INLINE_FUNCTION + void operator()(int i0, int i1, int i2) const { + a(i0, i1, i2) = 1000000 * i0 + 1000 * i1 + i2; + } +}; -template -void test_Check1D2D(SubView a, View b, int i0, std::pair range) { - int errors = 0; +template +struct FillView_4D { + using exec_t = typename Space::execution_space; + using view_t = Kokkos::View; + using rank_t = Kokkos::Rank< + view_t::Rank, + std::is_same::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right, + std::is_same::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right>; + using policy_t = Kokkos::MDRangePolicy; + + view_t a; + + FillView_4D(view_t a_) : a(a_) {} + + void run() { + Kokkos::parallel_for("FillView_4D", + policy_t({0, 0, 0, 0}, {a.extent(0), a.extent(1), + a.extent(2), a.extent(3)}), + *this); + } - for (int i1 = 0; i1 < range.second - range.first; i1++) { - if (a(i1) != b(i0, i1 + range.first)) errors++; + KOKKOS_INLINE_FUNCTION + void operator()(int i0, int i1, int i2, int i3) const { + a(i0, i1, i2, i3) = 1000000 * i0 + 10000 * i1 + 100 * i2 + i3; } +}; - if (errors > 0) { - std::cout << "Error Suviews test_Check1D2D: " << errors << std::endl; +template +struct FillView_5D { + using exec_t = typename Space::execution_space; + using view_t = Kokkos::View; + using rank_t = Kokkos::Rank< + view_t::Rank, + std::is_same::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right, + std::is_same::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right>; + using policy_t = Kokkos::MDRangePolicy; + + view_t a; + + FillView_5D(view_t a_) : a(a_) {} + + void run() { + Kokkos::parallel_for( + "FillView_5D", + policy_t({0, 0, 0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2), + a.extent(3), a.extent(4)}), + *this); } - ASSERT_TRUE(errors == 0); -} + KOKKOS_INLINE_FUNCTION + void operator()(int i0, int i1, int i2, int i3, int i4) const { + a(i0, i1, i2, i3, i4) = 1000000 * i0 + 10000 * i1 + 100 * i2 + 10 * i3 + i4; + } +}; -template -void test_Check2D3D(SubView a, View b, int i0, std::pair range1, - std::pair range2) { - int errors = 0; +template +struct CheckSubviewCorrectness_1D_1D { + using policy_t = Kokkos::RangePolicy; + View a; + SubView b; + int offset; + + CheckSubviewCorrectness_1D_1D(View a_, SubView b_, int o) + : a(a_), b(b_), offset(o) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_1D_1D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); + } - for (int i1 = 0; i1 < range1.second - range1.first; i1++) { - for (int i2 = 0; i2 < range2.second - range2.first; i2++) { - if (a(i1, i2) != b(i0, i1 + range1.first, i2 + range2.first)) errors++; + KOKKOS_INLINE_FUNCTION + void operator()(const int& i, int& e) const { + if (a(i + offset) != b(i)) { + e++; } } +}; - if (errors > 0) { - std::cout << "Error Suviews test_Check2D3D: " << errors << std::endl; +template +struct CheckSubviewCorrectness_1D_2D { + using policy_t = Kokkos::RangePolicy; + View a; + SubView b; + int i0; + int offset; + + CheckSubviewCorrectness_1D_2D(View a_, SubView b_, int i0_, int o) + : a(a_), b(b_), i0(i0_), offset(o) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_1D_2D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); } - ASSERT_TRUE(errors == 0); -} + KOKKOS_INLINE_FUNCTION + void operator()(const int& i1, int& e) const { + if (a(i0, i1 + offset) != b(i1)) { + e++; + } + } +}; -template -void test_Check3D5D(SubView a, View b, int i0, int i1, - std::pair range2, std::pair range3, - std::pair range4) { - int errors = 0; - - for (int i2 = 0; i2 < range2.second - range2.first; i2++) { - for (int i3 = 0; i3 < range3.second - range3.first; i3++) { - for (int i4 = 0; i4 < range4.second - range4.first; i4++) { - if (a(i2, i3, i4) != b(i0, i1, i2 + range2.first, i3 + range3.first, - i4 + range4.first)) { - errors++; - } - } +template +struct CheckSubviewCorrectness_2D_3D { + using policy_t = Kokkos::RangePolicy; + using layout = typename View::array_layout; + View a; + SubView b; + int i0; + int offset_1; + int offset_2; + + CheckSubviewCorrectness_2D_3D(View a_, SubView b_, int i0_, int o1, int o2) + : a(a_), b(b_), i0(i0_), offset_1(o1), offset_2(o2) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_2D_3D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); + } + + KOKKOS_INLINE_FUNCTION + void operator()(const int& ii, int& e) const { + const int i1 = std::is_same::value + ? ii % b.extent(0) + : ii / b.extent(1); + + const int i2 = std::is_same::value + ? ii / b.extent(0) + : ii % b.extent(1); + + if (a(i0, i1 + offset_1, i2 + offset_2) != b(i1, i2)) { + e++; } } +}; - if (errors > 0) { - std::cout << "Error Suviews test_Check3D5D: " << errors << std::endl; +template +struct CheckSubviewCorrectness_3D_3D { + using policy_t = Kokkos::RangePolicy; + using layout = typename View::array_layout; + View a; + SubView b; + int offset_0; + int offset_2; + + CheckSubviewCorrectness_3D_3D(View a_, SubView b_, int o0, int o2) + : a(a_), b(b_), offset_0(o0), offset_2(o2) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_3D_3D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); } - ASSERT_TRUE(errors == 0); + KOKKOS_INLINE_FUNCTION + void operator()(const int& ii, int& e) const { + const int i0 = std::is_same::value + ? ii % b.extent(0) + : ii / (b.extent(1) * b.extent(2)); + + const int i1 = std::is_same::value + ? (ii / b.extent(0)) % b.extent(1) + : (ii / b.extent(2)) % b.extent(1); + + const int i2 = std::is_same::value + ? ii / (b.extent(0) * b.extent(1)) + : ii % b.extent(2); + + if (a(i0 + offset_0, i1, i2 + offset_2) != b(i0, i1, i2)) { + e++; + } + } +}; + +template +struct CheckSubviewCorrectness_3D_4D { + using policy_t = Kokkos::RangePolicy; + using layout = typename View::array_layout; + View a; + SubView b; + int index; + int offset_0, offset_2; + + CheckSubviewCorrectness_3D_4D(View a_, SubView b_, int index_, int o0, int o2) + : a(a_), b(b_), index(index_), offset_0(o0), offset_2(o2) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_3D_4D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); + } + + KOKKOS_INLINE_FUNCTION + void operator()(const int& ii, int& e) const { + const int i = std::is_same::value + ? ii % b.extent(0) + : ii / (b.extent(1) * b.extent(2)); + + const int j = std::is_same::value + ? (ii / b.extent(0)) % b.extent(1) + : (ii / b.extent(2)) % b.extent(1); + + const int k = std::is_same::value + ? ii / (b.extent(0) * b.extent(1)) + : ii % b.extent(2); + + int i0, i1, i2, i3; + + if (std::is_same::value) { + i0 = i + offset_0; + i1 = j; + i2 = k + offset_2; + i3 = index; + } else { + i0 = index; + i1 = i + offset_0; + i2 = j; + i3 = k + offset_2; + } + + if (a(i0, i1, i2, i3) != b(i, j, k)) e++; + } +}; + +template +struct CheckSubviewCorrectness_3D_5D { + using policy_t = Kokkos::RangePolicy; + using layout = typename View::array_layout; + View a; + SubView b; + int i0, i1; + int offset_2, offset_3, offset_4; + + CheckSubviewCorrectness_3D_5D(View a_, SubView b_, int i0_, int i1_, int o2, + int o3, int o4) + : a(a_), + b(b_), + i0(i0_), + i1(i1_), + offset_2(o2), + offset_3(o3), + offset_4(o4) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_3D_5D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); + } + + KOKKOS_INLINE_FUNCTION + void operator()(const int& ii, int& e) const { + const int i2 = std::is_same::value + ? ii % b.extent(0) + : ii / (b.extent(1) * b.extent(2)); + + const int i3 = std::is_same::value + ? (ii / b.extent(0)) % b.extent(1) + : (ii / b.extent(2)) % b.extent(1); + + const int i4 = std::is_same::value + ? ii / (b.extent(0) * b.extent(1)) + : ii % b.extent(2); + + if (a(i0, i1, i2 + offset_2, i3 + offset_3, i4 + offset_4) != + b(i2, i3, i4)) { + e++; + } + } +}; + +template +void test_Check1D(SubView a, View b, Kokkos::pair range) { + CheckSubviewCorrectness_1D_1D check(b, a, range.first); + check.run(); +} + +template +void test_Check1D2D(SubView a, View b, int i0, std::pair range) { + CheckSubviewCorrectness_1D_2D check(b, a, i0, range.first); + check.run(); +} + +template +void test_Check2D3D(SubView a, View b, int i0, std::pair range1, + std::pair range2) { + CheckSubviewCorrectness_2D_3D check(b, a, i0, range1.first, + range2.first); + check.run(); +} + +template +void test_Check3D5D(SubView a, View b, int i0, int i1, + Kokkos::pair range2, + Kokkos::pair range3, + Kokkos::pair range4) { + CheckSubviewCorrectness_3D_5D check( + b, a, i0, i1, range2.first, range3.first, range4.first); + check.run(); } template a_org("A", N0); Kokkos::View a(a_org); Kokkos::fence(); - for (int i = 0; i < N0; i++) a_org(i) = i; + + Impl::FillView_1D fill(a_org); + fill.run(); Kokkos::View a1(a); Kokkos::fence(); @@ -876,11 +1264,8 @@ void test_2d_subview_3d_impl_type() { Kokkos::View a_org("A", N0, N1, N2); Kokkos::View a(a_org); - for (int i0 = 0; i0 < N0; i0++) - for (int i1 = 0; i1 < N1; i1++) - for (int i2 = 0; i2 < N2; i2++) { - a_org(i0, i1, i2) = i0 * 1000000 + i1 * 1000 + i2; - } + Impl::FillView_3D fill(a_org); + fill.run(); Kokkos::View a1; a1 = Kokkos::subview(a, 3, Kokkos::ALL, Kokkos::ALL); @@ -961,14 +1346,8 @@ void test_3d_subview_5d_impl_type() { Kokkos::View a_org("A", N0, N1, N2, N3, N4); Kokkos::View a(a_org); - for (int i0 = 0; i0 < N0; i0++) - for (int i1 = 0; i1 < N1; i1++) - for (int i2 = 0; i2 < N2; i2++) - for (int i3 = 0; i3 < N3; i3++) - for (int i4 = 0; i4 < N4; i4++) { - a_org(i0, i1, i2, i3, i4) = - i0 * 1000000 + i1 * 10000 + i2 * 100 + i3 * 10 + i4; - } + Impl::FillView_5D fill(a_org); + fill.run(); Kokkos::View a1; a1 = Kokkos::subview(a, 3, 5, Kokkos::ALL, Kokkos::ALL, Kokkos::ALL); @@ -1245,7 +1624,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, int, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, int, @@ -1253,7 +1632,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::pair, int, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::pair, int, @@ -1261,7 +1640,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::pair, Kokkos::Impl::ALL_t, int, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::pair, Kokkos::Impl::ALL_t, int, @@ -1269,7 +1648,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::pair, Kokkos::pair, int, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::pair, Kokkos::pair, int, @@ -1278,7 +1657,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, @@ -1286,7 +1665,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::pair, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::pair, @@ -1294,7 +1673,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::pair, Kokkos::Impl::ALL_t, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::pair, Kokkos::Impl::ALL_t, @@ -1302,7 +1681,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::pair, Kokkos::pair, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::pair, Kokkos::pair, @@ -1315,7 +1694,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::pair, Kokkos::Impl::ALL_t, @@ -1323,7 +1702,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::pair, Kokkos::Impl::ALL_t, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::Impl::ALL_t, Kokkos::pair, @@ -1331,7 +1710,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::Impl::ALL_t, Kokkos::pair, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::pair, Kokkos::pair, @@ -1339,7 +1718,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::pair, Kokkos::pair, - Kokkos::pair >::value)); + Kokkos::pair>::value)); } inline void test_subview_legal_args_left() { @@ -1490,7 +1869,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, int, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, int, @@ -1498,7 +1877,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::pair, int, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::pair, int, @@ -1506,7 +1885,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::pair, Kokkos::Impl::ALL_t, int, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::pair, Kokkos::Impl::ALL_t, int, @@ -1514,7 +1893,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::pair, Kokkos::pair, int, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::pair, Kokkos::pair, int, @@ -1523,7 +1902,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, @@ -1531,7 +1910,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::pair, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::pair, @@ -1539,7 +1918,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::pair, Kokkos::Impl::ALL_t, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::pair, Kokkos::Impl::ALL_t, @@ -1547,7 +1926,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::pair, Kokkos::pair, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::pair, Kokkos::pair, @@ -1557,7 +1936,7 @@ inline void test_subview_legal_args_left() { 1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::Impl::ALL_t, - Kokkos::Impl::ALL_t, Kokkos::pair >::value)); + Kokkos::Impl::ALL_t, Kokkos::pair>::value)); ASSERT_EQ( 1, (Kokkos::Impl::SubviewLegalArgsCompileTime< @@ -1566,7 +1945,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::pair, Kokkos::Impl::ALL_t, - Kokkos::pair >::value)); + Kokkos::pair>::value)); ASSERT_EQ(1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::pair, Kokkos::Impl::ALL_t, @@ -1580,7 +1959,7 @@ inline void test_subview_legal_args_left() { 0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::Impl::ALL_t, - Kokkos::pair, Kokkos::pair >::value)); + Kokkos::pair, Kokkos::pair>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::pair, Kokkos::pair, @@ -1588,7 +1967,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::pair, Kokkos::pair, - Kokkos::pair >::value)); + Kokkos::pair>::value)); } } // namespace Impl @@ -1653,203 +2032,46 @@ void test_3d_subview_5d_left() { MemTraits>(); } -namespace Impl { - -template -struct FillView_3D { - Kokkos::View a; - - KOKKOS_INLINE_FUNCTION - void operator()(const int& ii) const { - const int i = std::is_same::value - ? ii % a.extent(0) - : ii / (a.extent(1) * a.extent(2)); - - const int j = std::is_same::value - ? (ii / a.extent(0)) % a.extent(1) - : (ii / a.extent(2)) % a.extent(1); - - const int k = std::is_same::value - ? ii / (a.extent(0) * a.extent(1)) - : ii % a.extent(2); - - a(i, j, k) = 1000000 * i + 1000 * j + k; - } -}; - -template -struct FillView_4D { - Kokkos::View a; - - KOKKOS_INLINE_FUNCTION - void operator()(const int& ii) const { - const int i = std::is_same::value - ? ii % a.extent(0) - : ii / (a.extent(1) * a.extent(2) * a.extent(3)); - - const int j = std::is_same::value - ? (ii / a.extent(0)) % a.extent(1) - : (ii / (a.extent(2) * a.extent(3)) % a.extent(1)); - - const int k = std::is_same::value - ? (ii / (a.extent(0) * a.extent(1))) % a.extent(2) - : (ii / a.extent(3)) % a.extent(2); - - const int l = std::is_same::value - ? ii / (a.extent(0) * a.extent(1) * a.extent(2)) - : ii % a.extent(3); - - a(i, j, k, l) = 1000000 * i + 10000 * j + 100 * k + l; - } -}; - -template -struct CheckSubviewCorrectness_3D_3D { - Kokkos::View a; - Kokkos::View b; - int offset_0, offset_2; - - KOKKOS_INLINE_FUNCTION - void operator()(const int& ii) const { - const int i = std::is_same::value - ? ii % b.extent(0) - : ii / (b.extent(1) * b.extent(2)); - - const int j = std::is_same::value - ? (ii / b.extent(0)) % b.extent(1) - : (ii / b.extent(2)) % b.extent(1); - - const int k = std::is_same::value - ? ii / (b.extent(0) * b.extent(1)) - : ii % b.extent(2); - - if (a(i + offset_0, j, k + offset_2) != b(i, j, k)) { - Kokkos::abort( - "Error: check_subview_correctness 3D-3D (LayoutLeft -> LayoutLeft or " - "LayoutRight -> LayoutRight)"); - } - } -}; - -template -struct CheckSubviewCorrectness_3D_4D { - Kokkos::View a; - Kokkos::View b; - int offset_0, offset_2, index; - - KOKKOS_INLINE_FUNCTION - void operator()(const int& ii) const { - const int i = std::is_same::value - ? ii % b.extent(0) - : ii / (b.extent(1) * b.extent(2)); - - const int j = std::is_same::value - ? (ii / b.extent(0)) % b.extent(1) - : (ii / b.extent(2)) % b.extent(1); - - const int k = std::is_same::value - ? ii / (b.extent(0) * b.extent(1)) - : ii % b.extent(2); - - int i0, i1, i2, i3; - - if (std::is_same::value) { - i0 = i + offset_0; - i1 = j; - i2 = k + offset_2; - i3 = index; - } else { - i0 = index; - i1 = i + offset_0; - i2 = j; - i3 = k + offset_2; - } - - if (a(i0, i1, i2, i3) != b(i, j, k)) { - Kokkos::abort( - "Error: check_subview_correctness 3D-4D (LayoutLeft -> LayoutLeft or " - "LayoutRight -> LayoutRight)"); - } - } -}; - -} // namespace Impl - template void test_layoutleft_to_layoutleft() { Impl::test_subview_legal_args_left(); + using view3D_t = Kokkos::View; + using view4D_t = Kokkos::View; { - Kokkos::View a("A", 100, 4, 3); - Kokkos::View b( - a, Kokkos::pair(16, 32), Kokkos::ALL, Kokkos::ALL); - - Impl::FillView_3D fill; - fill.a = a; - Kokkos::parallel_for(Kokkos::RangePolicy( - 0, a.extent(0) * a.extent(1) * a.extent(2)), - fill); - - Impl::CheckSubviewCorrectness_3D_3D - check; - check.a = a; - check.b = b; - check.offset_0 = 16; - check.offset_2 = 0; - Kokkos::parallel_for(Kokkos::RangePolicy( - 0, b.extent(0) * b.extent(1) * b.extent(2)), - check); - Kokkos::fence(); + view3D_t a("A", 100, 4, 3); + view3D_t b(a, Kokkos::pair(16, 32), Kokkos::ALL, Kokkos::ALL); + + Impl::FillView_3D fill(a); + fill.run(); + + Impl::CheckSubviewCorrectness_3D_3D check(a, b, 16, 0); + check.run(); } { - Kokkos::View a("A", 100, 4, 5); - Kokkos::View b( - a, Kokkos::pair(16, 32), Kokkos::ALL, - Kokkos::pair(1, 3)); - - Impl::FillView_3D fill; - fill.a = a; - Kokkos::parallel_for(Kokkos::RangePolicy( - 0, a.extent(0) * a.extent(1) * a.extent(2)), - fill); - - Impl::CheckSubviewCorrectness_3D_3D - check; - check.a = a; - check.b = b; - check.offset_0 = 16; - check.offset_2 = 1; - Kokkos::parallel_for(Kokkos::RangePolicy( - 0, b.extent(0) * b.extent(1) * b.extent(2)), - check); - Kokkos::fence(); + view3D_t a("A", 100, 4, 5); + view3D_t b(a, Kokkos::pair(16, 32), Kokkos::ALL, + Kokkos::pair(1, 3)); + + Impl::FillView_3D fill(a); + fill.run(); + + Impl::CheckSubviewCorrectness_3D_3D check(a, b, 16, 1); + check.run(); } { - Kokkos::View a("A", 100, 4, 5, 3); - Kokkos::View b( - a, Kokkos::pair(16, 32), Kokkos::ALL, - Kokkos::pair(1, 3), 1); + view4D_t a("A", 100, 4, 5, 3); + view3D_t b(a, Kokkos::pair(16, 32), Kokkos::ALL, + Kokkos::pair(1, 3), 1); - Impl::FillView_4D fill; - fill.a = a; - Kokkos::parallel_for( - Kokkos::RangePolicy( - 0, a.extent(0) * a.extent(1) * a.extent(2) * a.extent(3)), - fill); - - Impl::CheckSubviewCorrectness_3D_4D - check; - check.a = a; - check.b = b; - check.offset_0 = 16; - check.offset_2 = 1; - check.index = 1; - Kokkos::parallel_for(Kokkos::RangePolicy( - 0, b.extent(0) * b.extent(1) * b.extent(2)), - check); - Kokkos::fence(); + Impl::FillView_4D fill(a); + fill.run(); + + Impl::CheckSubviewCorrectness_3D_4D check(a, b, 1, 16, + 1); + check.run(); } } @@ -1857,55 +2079,30 @@ template void test_layoutright_to_layoutright() { Impl::test_subview_legal_args_right(); + using view3D_t = Kokkos::View; + using view4D_t = Kokkos::View; { - Kokkos::View a("A", 100, 4, 3); - Kokkos::View b( - a, Kokkos::pair(16, 32), Kokkos::ALL, Kokkos::ALL); - - Impl::FillView_3D fill; - fill.a = a; - Kokkos::parallel_for(Kokkos::RangePolicy( - 0, a.extent(0) * a.extent(1) * a.extent(2)), - fill); - - Impl::CheckSubviewCorrectness_3D_3D - check; - check.a = a; - check.b = b; - check.offset_0 = 16; - check.offset_2 = 0; - Kokkos::parallel_for(Kokkos::RangePolicy( - 0, b.extent(0) * b.extent(1) * b.extent(2)), - check); - Kokkos::fence(); - } + view3D_t a("A", 100, 4, 3); + view3D_t b(a, Kokkos::pair(16, 32), Kokkos::ALL, Kokkos::ALL); + Impl::FillView_3D fill(a); + fill.run(); + + Impl::CheckSubviewCorrectness_3D_3D check(a, b, 16, 0); + check.run(); + } { - Kokkos::View a("A", 3, 4, 5, 100); - Kokkos::View b( - a, 1, Kokkos::pair(1, 3), Kokkos::ALL, Kokkos::ALL); + view4D_t a("A", 3, 4, 5, 100); + view3D_t b(a, 1, Kokkos::pair(1, 3), Kokkos::ALL, Kokkos::ALL); - Impl::FillView_4D fill; - fill.a = a; - Kokkos::parallel_for( - Kokkos::RangePolicy( - 0, a.extent(0) * a.extent(1) * a.extent(2) * a.extent(3)), - fill); - - Impl::CheckSubviewCorrectness_3D_4D - check; - check.a = a; - check.b = b; - check.offset_0 = 1; - check.offset_2 = 0; - check.index = 1; - Kokkos::parallel_for(Kokkos::RangePolicy( - 0, b.extent(0) * b.extent(1) * b.extent(2)), - check); - Kokkos::fence(); + Impl::FillView_4D fill(a); + fill.run(); + + Impl::CheckSubviewCorrectness_3D_4D check(a, b, 1, 1, + 0); + check.run(); } } - //---------------------------------------------------------------------------- template @@ -1940,7 +2137,7 @@ template struct get_view_type; template -struct get_view_type > { +struct get_view_type> { using type = T; }; diff --git a/lib/kokkos/core/unit_test/Test_InterOp_Streams.hpp b/lib/kokkos/core/unit_test/Test_InterOp_Streams.hpp new file mode 100644 index 0000000000..4c16147a36 --- /dev/null +++ b/lib/kokkos/core/unit_test/Test_InterOp_Streams.hpp @@ -0,0 +1,144 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include + +namespace Test { + +__global__ void offset_streams(int* p) { + int idx = blockIdx.x * blockDim.x + threadIdx.x; + if (idx < 100) { + p[idx] += idx; + } +} + +template +struct FunctorRange { + Kokkos::View> a; + FunctorRange( + Kokkos::View> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { a(i) += 1; } +}; + +template +struct FunctorRangeReduce { + Kokkos::View> a; + FunctorRangeReduce( + Kokkos::View> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i, int& lsum) const { lsum += a(i); } +}; + +template +struct FunctorMDRange { + Kokkos::View> a; + FunctorMDRange( + Kokkos::View> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i, const int j) const { a(i * 10 + j) += 1; } +}; + +template +struct FunctorMDRangeReduce { + Kokkos::View> a; + FunctorMDRangeReduce( + Kokkos::View> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i, const int j, int& lsum) const { + lsum += a(i * 10 + j); + } +}; + +template +struct FunctorTeam { + Kokkos::View> a; + FunctorTeam( + Kokkos::View> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()( + typename Kokkos::TeamPolicy::member_type const& team) + const { + int i = team.league_rank(); + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 10), + [&](const int j) { a(i * 10 + j) += 1; }); + } +}; + +template +struct FunctorTeamReduce { + Kokkos::View> a; + FunctorTeamReduce( + Kokkos::View> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()( + typename Kokkos::TeamPolicy::member_type const& team, + int& lsum) const { + int i = team.league_rank(); + int team_sum; + Kokkos::parallel_reduce( + Kokkos::TeamThreadRange(team, 10), + [&](const int j, int& tsum) { tsum += a(i * 10 + j); }, team_sum); + Kokkos::single(Kokkos::PerTeam(team), [&]() { lsum += team_sum; }); + } +}; +} // namespace Test diff --git a/lib/kokkos/core/unit_test/UnitTestConfig.make b/lib/kokkos/core/unit_test/UnitTestConfig.make deleted file mode 100644 index 5c93bf69fb..0000000000 --- a/lib/kokkos/core/unit_test/UnitTestConfig.make +++ /dev/null @@ -1,52 +0,0 @@ -KOKKOS_PATH = ../.. - -# See $(KOKKOS_PATH)/Makefile.kokkos and $(KOKKOS_PATH)/generate_makefile.bash -KOKKOS_ARCH_OPTIONS="None AMDAVX ARMv80 ARMv81 ARMv8-ThunderX \ - BGQ Power7 Power8 Power9 \ - WSM SNB HSW BDW SKX KNC KNL \ - Kepler Kepler30 Kepler32 Kepler35 Kepler37 \ - Maxwell Maxwell50 Maxwell52 Maxwell53 Pascal60 Pascal61" -#KOKKOS_ARCH_OPTIONS="AMDAVX" - -KOKKOS_DEVICE_OPTIONS="Cuda ROCm OpenMP Pthread Serial" -#KOKKOS_DEVICE_OPTIONS="Cuda" - -# Configure paths to enable environment query in Makefile.kokkos to work -ROCM_HCC_PATH="config" -CXX="./config/cxx" -ipath=env CXX=$(CXX) env PATH=./config:$$PATH env ROCM_HCC_PATH=$(ROCM_HCC_PATH) - -# Defined in core/src/Makefile -- this should be consistent -KOKKOS_MAKEFILE=Makefile.kokkos -KOKKOS_CMAKEFILE=kokkos_generated_settings.cmake - -# Defined in Makefile.kokkos -- this should be consistent -KOKKOS_INTERNAL_CONFIG_TMP=KokkosCore_config.tmp -KOKKOS_CONFIG_HEADER=KokkosCore_config.h - -d='\#' - -# diff => 0 is no difference. if => 0 is false -testmake=if test "`testmake.sh $1 $2 $3`" = 'Passed'; then echo OK $d $1; else echo not OK $d $1; fi -testconf=if test "`diffconfig.sh $1`" = 'Passed'; then echo OK $d $1; else echo not OK $d $1; fi - -# testing tmp and cmakefile files is unnecessary here -test: - @for karch in "$(KOKKOS_ARCH_OPTIONS)"; do \ - for device in "$(KOKKOS_DEVICE_OPTIONS)"; do \ - $(ipath) KOKKOS_DEVICES=$$device KOKKOS_ARCH=$$karch make -e -f ../src/Makefile build-makefile-cmake-kokkos; \ - rm -f $(KOKKOS_INTERNAL_CONFIG_TMP) $(KOKKOS_CMAKEFILE); \ - prfx="$$karch"_"$$device"_; \ - newmake="$$prfx"$(KOKKOS_MAKEFILE); \ - newconf="$$prfx"$(KOKKOS_CONFIG_HEADER); \ - mv $(KOKKOS_MAKEFILE) config/tmpstore/$$newmake; \ - mv $(KOKKOS_CONFIG_HEADER) config/tmpstore/$$newconf; \ - $(call testmake,$$newmake,$$karch,$$device); \ - $(call testconf,$$newconf); \ - done; \ - done - -test-cmake: - @cd config/cmaketest; \ - cmake . ; \ - make test diff --git a/lib/kokkos/core/unit_test/config/bin/hcc-config b/lib/kokkos/core/unit_test/config/bin/hcc-config deleted file mode 100755 index fc09138bcc..0000000000 --- a/lib/kokkos/core/unit_test/config/bin/hcc-config +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -echo "--foo --bar" diff --git a/lib/kokkos/core/unit_test/config/clang b/lib/kokkos/core/unit_test/config/clang deleted file mode 100755 index 34c6919410..0000000000 --- a/lib/kokkos/core/unit_test/config/clang +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -echo="Apple LLVM version 8.1.0 (clang-802.0.42)" -echo="Target: x86_64-apple-darwin16.7.0" -echo="Thread model: posix" -echo="InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin" diff --git a/lib/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt b/lib/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt deleted file mode 100644 index 5d59017394..0000000000 --- a/lib/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt +++ /dev/null @@ -1,79 +0,0 @@ -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) -project(Kokkos CXX) - -enable_testing() - -# Initialization -get_filename_component(KOKKOS_TESTDIR ${CMAKE_SOURCE_DIR}/../.. REALPATH) -get_filename_component(KOKKOS_SRCDIR ${CMAKE_SOURCE_DIR}/../../../.. REALPATH) -set(KOKKOS_SRC_PATH ${KOKKOS_SRCDIR}) -set(KOKKOS_PATH ${KOKKOS_SRC_PATH}) - -set(CXX ${KOKKOS_TESTDIR}/config/cxx) - -# Defined in core/src/Makefile -- this should be consistent -set(KOKKOS_MAKEFILE Makefile.kokkos) -set(KOKKOS_CMAKEFILE kokkos_generated_settings.cmake) - -# Defined in Makefile.kokkos -- this should be consistent -set(KOKKOS_INTERNAL_CONFIG_TMP KokkosCore_config.tmp) -set(KOKKOS_CONFIG_HEADER KokkosCore_config.h) - -include(${KOKKOS_SRCDIR}/cmake/kokkos_options.cmake) -foreach(KOKKOS_DEV ${KOKKOS_DEVICES_LIST}) -# Do some initialization: Want to turn everything off for testing - string(TOUPPER ${KOKKOS_DEV} KOKKOS_DEVUC) - set(KOKKOS_ENABLE_${KOKKOS_DEVUC} OFF) -endforeach() - - -#TEST set(KOKKOS_HOST_ARCH_LIST ARMv80) -#TEST set(KOKKOS_DEVICES_LIST Cuda) -#set(KOKKOS_HOST_ARCH_LIST AMDAVX) -#set(KOKKOS_DEVICES_LIST Cuda) - -foreach(KOKKOS_HOST_ARCH ${KOKKOS_HOST_ARCH_LIST}) - foreach(KOKKOS_DEV ${KOKKOS_DEVICES_LIST}) - string(TOUPPER ${KOKKOS_DEV} KOKKOS_DEVUC) - set(KOKKOS_ENABLE_${KOKKOS_DEVUC} On) - - set(KOKKOS_CMAKE_VERBOSE True) - include(${KOKKOS_SRCDIR}/cmake/kokkos_options.cmake) - set(KOKKOS_SETTINGS ${KOKKOS_SETTINGS} ROCM_HCC_PATH=${KOKKOS_TESTDIR}/config) - - #message(STATUS "${KOKKOS_SETTINGS} make -f ${KOKKOS_SRCDIR}/core/src/Makefile build-makefile-cmake-kokkos") - execute_process( - COMMAND ${KOKKOS_SETTINGS} make -f ${KOKKOS_SRCDIR}/core/src/Makefile build-makefile-cmake-kokkos - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - OUTPUT_FILE ${CMAKE_BINARY_DIR}/core_src_make.out - RESULT_VARIABLE res - ) - #message(STATUS "RESULT ${res}") - - file(REMOVE ${KOKKOS_INTERNAL_CONFIG_TMP} ${KOKKOS_MAKEFILE}) - set(PREFIX "${KOKKOS_HOST_ARCH}_${KOKKOS_DEV}_") - set(NEWCMAKE ${PREFIX}${KOKKOS_CMAKEFILE}) - set(NEWCONFH ${PREFIX}${KOKKOS_CONFIG_HEADER}) - file(RENAME ${KOKKOS_CMAKEFILE} ${NEWCMAKE}) - file(RENAME ${KOKKOS_CONFIG_HEADER} ${NEWCONFH}) - - add_test(NAME ${NEWCMAKE}-test - COMMAND ${KOKKOS_TESTDIR}/testmake.sh ${NEWCMAKE} ${KOKKOS_HOST_ARCH} ${KOKKOS_DEV} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - ) - set_tests_properties(${NEWCMAKE}-test - PROPERTIES PASS_REGULAR_EXPRESSION Passed - TIMEOUT 15 - ) - add_test(NAME ${NEWCONFH}-test - COMMAND ${KOKKOS_TESTDIR}/diffconfig.sh ${NEWCONFH} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - ) - set_tests_properties(${NEWCONFH}-test - PROPERTIES PASS_REGULAR_EXPRESSION Passed - TIMEOUT 15 - ) - set(KOKKOS_ENABLE_${KOKKOS_DEVUC} Off) - - endforeach() -endforeach() diff --git a/lib/kokkos/core/unit_test/config/cxx b/lib/kokkos/core/unit_test/config/cxx deleted file mode 100755 index f25d7714a5..0000000000 --- a/lib/kokkos/core/unit_test/config/cxx +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -echo "g++ (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)" -echo "Copyright (C) 2016 Free Software Foundation, Inc." -echo "This is free software; see the source for copying conditions. There is NO" -echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." diff --git a/lib/kokkos/core/unit_test/config/mpic++ b/lib/kokkos/core/unit_test/config/mpic++ deleted file mode 100755 index f25d7714a5..0000000000 --- a/lib/kokkos/core/unit_test/config/mpic++ +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -echo "g++ (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)" -echo "Copyright (C) 2016 Free Software Foundation, Inc." -echo "This is free software; see the source for copying conditions. There is NO" -echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." diff --git a/lib/kokkos/core/unit_test/config/nvcc b/lib/kokkos/core/unit_test/config/nvcc deleted file mode 100755 index b5bcbf234c..0000000000 --- a/lib/kokkos/core/unit_test/config/nvcc +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -echo "nvcc: NVIDIA (R) Cuda compiler driver" -echo "Copyright (c) 2005-2016 NVIDIA Corporation" -echo "Built on Tue_Jan_10_13:22:03_CST_2017" -echo "Cuda compilation tools, release 8.0, V8.0.61" diff --git a/lib/kokkos/core/unit_test/config/results/AMDAVX_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/AMDAVX_Cuda_KokkosCore_config.h deleted file mode 100644 index 1a737a3b2f..0000000000 --- a/lib/kokkos/core/unit_test/config/results/AMDAVX_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:09 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/AMDAVX_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/AMDAVX_OpenMP_KokkosCore_config.h deleted file mode 100644 index 7a704e4185..0000000000 --- a/lib/kokkos/core/unit_test/config/results/AMDAVX_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:10 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/AMDAVX_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/AMDAVX_Pthread_KokkosCore_config.h deleted file mode 100644 index c478a5c252..0000000000 --- a/lib/kokkos/core/unit_test/config/results/AMDAVX_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:10 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/AMDAVX_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/AMDAVX_ROCm_KokkosCore_config.h deleted file mode 100644 index 7b7e2b8153..0000000000 --- a/lib/kokkos/core/unit_test/config/results/AMDAVX_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:09 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/AMDAVX_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/AMDAVX_Serial_KokkosCore_config.h deleted file mode 100644 index 9930bacc47..0000000000 --- a/lib/kokkos/core/unit_test/config/results/AMDAVX_Serial_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:11 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Cuda_KokkosCore_config.h deleted file mode 100644 index 7f172c00e4..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:17 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_OpenMP_KokkosCore_config.h deleted file mode 100644 index d25b832ca2..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:18 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Pthread_KokkosCore_config.h deleted file mode 100644 index cd3a603092..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:19 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_ROCm_KokkosCore_config.h deleted file mode 100644 index 86b9f84585..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:18 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Serial_KokkosCore_config.h deleted file mode 100644 index 75ada8c01f..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Serial_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:19 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv80_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv80_Cuda_KokkosCore_config.h deleted file mode 100644 index 796c0aab65..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv80_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:12 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv80_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv80_OpenMP_KokkosCore_config.h deleted file mode 100644 index dcf7ff7ea2..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv80_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:13 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv80_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv80_Pthread_KokkosCore_config.h deleted file mode 100644 index 298966b6d4..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv80_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:14 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv80_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv80_ROCm_KokkosCore_config.h deleted file mode 100644 index c2b4f146cb..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv80_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:12 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv80_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv80_Serial_KokkosCore_config.h deleted file mode 100644 index fe5fe66445..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv80_Serial_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:14 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv81_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv81_Cuda_KokkosCore_config.h deleted file mode 100644 index 3d02142438..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv81_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:15 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv81_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv81_OpenMP_KokkosCore_config.h deleted file mode 100644 index aa194c77be..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv81_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:16 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv81_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv81_Pthread_KokkosCore_config.h deleted file mode 100644 index 6d2dbeeef4..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv81_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:16 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv81_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv81_ROCm_KokkosCore_config.h deleted file mode 100644 index 28a56596b4..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv81_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:15 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv81_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv81_Serial_KokkosCore_config.h deleted file mode 100644 index 1d29fd1390..0000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv81_Serial_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:16 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/lib/kokkos/core/unit_test/config/results/BDW_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BDW_Cuda_KokkosCore_config.h deleted file mode 100644 index ce2582b23f..0000000000 --- a/lib/kokkos/core/unit_test/config/results/BDW_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:37 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/BDW_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BDW_OpenMP_KokkosCore_config.h deleted file mode 100644 index 118d1b225f..0000000000 --- a/lib/kokkos/core/unit_test/config/results/BDW_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:38 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/BDW_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BDW_Pthread_KokkosCore_config.h deleted file mode 100644 index 6d0215baf6..0000000000 --- a/lib/kokkos/core/unit_test/config/results/BDW_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:38 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/BDW_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BDW_ROCm_KokkosCore_config.h deleted file mode 100644 index 3f86d055af..0000000000 --- a/lib/kokkos/core/unit_test/config/results/BDW_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:37 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/BDW_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BDW_Serial_KokkosCore_config.h deleted file mode 100644 index fba671ab1a..0000000000 --- a/lib/kokkos/core/unit_test/config/results/BDW_Serial_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:39 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/BGQ_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BGQ_Cuda_KokkosCore_config.h deleted file mode 100644 index 93c74d41e2..0000000000 --- a/lib/kokkos/core/unit_test/config/results/BGQ_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:43 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/BGQ_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BGQ_OpenMP_KokkosCore_config.h deleted file mode 100644 index 533da16028..0000000000 --- a/lib/kokkos/core/unit_test/config/results/BGQ_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:43 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/BGQ_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BGQ_Pthread_KokkosCore_config.h deleted file mode 100644 index 9524c94f2b..0000000000 --- a/lib/kokkos/core/unit_test/config/results/BGQ_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/BGQ_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BGQ_ROCm_KokkosCore_config.h deleted file mode 100644 index f5bc1f54a9..0000000000 --- a/lib/kokkos/core/unit_test/config/results/BGQ_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/BGQ_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BGQ_Serial_KokkosCore_config.h deleted file mode 100644 index 8372c00699..0000000000 --- a/lib/kokkos/core/unit_test/config/results/BGQ_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/HSW_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/HSW_Cuda_KokkosCore_config.h deleted file mode 100644 index 7bbe9fa84c..0000000000 --- a/lib/kokkos/core/unit_test/config/results/HSW_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:34 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/HSW_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/HSW_OpenMP_KokkosCore_config.h deleted file mode 100644 index 17f75872f8..0000000000 --- a/lib/kokkos/core/unit_test/config/results/HSW_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:35 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/HSW_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/HSW_Pthread_KokkosCore_config.h deleted file mode 100644 index 5df1be17ad..0000000000 --- a/lib/kokkos/core/unit_test/config/results/HSW_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:35 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/HSW_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/HSW_ROCm_KokkosCore_config.h deleted file mode 100644 index 8e04801b86..0000000000 --- a/lib/kokkos/core/unit_test/config/results/HSW_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:35 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/HSW_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/HSW_Serial_KokkosCore_config.h deleted file mode 100644 index 99f76aff0b..0000000000 --- a/lib/kokkos/core/unit_test/config/results/HSW_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:36 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNC_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNC_Cuda_KokkosCore_config.h deleted file mode 100644 index bdc270fd0d..0000000000 --- a/lib/kokkos/core/unit_test/config/results/KNC_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:42 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNC_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNC_OpenMP_KokkosCore_config.h deleted file mode 100644 index f9b79f552d..0000000000 --- a/lib/kokkos/core/unit_test/config/results/KNC_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:43 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNC_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNC_Pthread_KokkosCore_config.h deleted file mode 100644 index 15d9d01a0a..0000000000 --- a/lib/kokkos/core/unit_test/config/results/KNC_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNC_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNC_ROCm_KokkosCore_config.h deleted file mode 100644 index 5991d3065f..0000000000 --- a/lib/kokkos/core/unit_test/config/results/KNC_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:43 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNC_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNC_Serial_KokkosCore_config.h deleted file mode 100644 index 3a8ddecf14..0000000000 --- a/lib/kokkos/core/unit_test/config/results/KNC_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNL_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNL_Cuda_KokkosCore_config.h deleted file mode 100644 index bd7e2ca330..0000000000 --- a/lib/kokkos/core/unit_test/config/results/KNL_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:45 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNL_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNL_OpenMP_KokkosCore_config.h deleted file mode 100644 index 0f567f241c..0000000000 --- a/lib/kokkos/core/unit_test/config/results/KNL_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:46 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNL_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNL_Pthread_KokkosCore_config.h deleted file mode 100644 index 1cf3f0997a..0000000000 --- a/lib/kokkos/core/unit_test/config/results/KNL_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:47 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNL_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNL_ROCm_KokkosCore_config.h deleted file mode 100644 index ae2938e34a..0000000000 --- a/lib/kokkos/core/unit_test/config/results/KNL_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:46 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNL_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNL_Serial_KokkosCore_config.h deleted file mode 100644 index 21f6e7e434..0000000000 --- a/lib/kokkos/core/unit_test/config/results/KNL_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:47 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/lib/kokkos/core/unit_test/config/results/Kepler30_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler30_Cuda_KokkosCore_config.h deleted file mode 100644 index 78e9335e24..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler30_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:48 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KEPLER 1 -#define KOKKOS_ARCH_KEPLER30 1 diff --git a/lib/kokkos/core/unit_test/config/results/Kepler30_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler30_OpenMP_KokkosCore_config.h deleted file mode 100644 index 769d9c8789..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler30_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:49 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler30_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler30_Pthread_KokkosCore_config.h deleted file mode 100644 index 2cc728a5e3..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler30_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:49 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler30_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler30_ROCm_KokkosCore_config.h deleted file mode 100644 index 34867aa91e..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler30_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:48 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler30_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler30_Serial_KokkosCore_config.h deleted file mode 100644 index 54943b244f..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler30_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:50 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler32_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler32_Cuda_KokkosCore_config.h deleted file mode 100644 index c7e23d503c..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler32_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:50 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KEPLER 1 -#define KOKKOS_ARCH_KEPLER32 1 diff --git a/lib/kokkos/core/unit_test/config/results/Kepler32_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler32_OpenMP_KokkosCore_config.h deleted file mode 100644 index fcfbf97ef2..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler32_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:51 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler32_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler32_Pthread_KokkosCore_config.h deleted file mode 100644 index 5cea100aa4..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler32_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:52 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler32_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler32_ROCm_KokkosCore_config.h deleted file mode 100644 index 0ae47b6976..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler32_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:51 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler32_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler32_Serial_KokkosCore_config.h deleted file mode 100644 index 0d20b1dc81..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler32_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:52 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler35_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler35_Cuda_KokkosCore_config.h deleted file mode 100644 index f7935927c3..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler35_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:53 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KEPLER 1 -#define KOKKOS_ARCH_KEPLER35 1 diff --git a/lib/kokkos/core/unit_test/config/results/Kepler35_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler35_OpenMP_KokkosCore_config.h deleted file mode 100644 index 02777df40a..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler35_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:54 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler35_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler35_Pthread_KokkosCore_config.h deleted file mode 100644 index f51f00ce95..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler35_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:55 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler35_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler35_ROCm_KokkosCore_config.h deleted file mode 100644 index 111bb09340..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler35_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:54 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler35_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler35_Serial_KokkosCore_config.h deleted file mode 100644 index da61dabb58..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler35_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:55 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler37_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler37_Cuda_KokkosCore_config.h deleted file mode 100644 index c70ce2e04c..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler37_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:56 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KEPLER 1 -#define KOKKOS_ARCH_KEPLER37 1 diff --git a/lib/kokkos/core/unit_test/config/results/Kepler37_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler37_OpenMP_KokkosCore_config.h deleted file mode 100644 index d8c6c74832..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler37_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:57 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler37_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler37_Pthread_KokkosCore_config.h deleted file mode 100644 index b832ef36e5..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler37_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:58 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler37_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler37_ROCm_KokkosCore_config.h deleted file mode 100644 index 6a661f8842..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler37_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:57 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler37_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler37_Serial_KokkosCore_config.h deleted file mode 100644 index 469f3d96a7..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler37_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:58 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler_Cuda_KokkosCore_config.h deleted file mode 100644 index 1ccf1bef54..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:50 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KEPLER 1 -#define KOKKOS_ARCH_KEPLER35 1 diff --git a/lib/kokkos/core/unit_test/config/results/Kepler_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler_OpenMP_KokkosCore_config.h deleted file mode 100644 index 9d87c958a2..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:51 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler_Pthread_KokkosCore_config.h deleted file mode 100644 index 263870be9f..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:51 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler_ROCm_KokkosCore_config.h deleted file mode 100644 index 2826fdfb88..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:52 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler_Serial_KokkosCore_config.h deleted file mode 100644 index 69097e034d..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:52 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell50_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell50_Cuda_KokkosCore_config.h deleted file mode 100644 index fac64e9e98..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell50_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:59 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_MAXWELL 1 -#define KOKKOS_ARCH_MAXWELL50 1 diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell50_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell50_OpenMP_KokkosCore_config.h deleted file mode 100644 index 3f5b3eea13..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell50_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:00 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell50_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell50_Pthread_KokkosCore_config.h deleted file mode 100644 index b249c88be5..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell50_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:01 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell50_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell50_ROCm_KokkosCore_config.h deleted file mode 100644 index ce9f67d5be..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell50_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:00 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell50_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell50_Serial_KokkosCore_config.h deleted file mode 100644 index f8c6be139e..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell50_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:02 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell52_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell52_Cuda_KokkosCore_config.h deleted file mode 100644 index ce28f3e4b7..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell52_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:03 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_MAXWELL 1 -#define KOKKOS_ARCH_MAXWELL52 1 diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell52_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell52_OpenMP_KokkosCore_config.h deleted file mode 100644 index 35635063a5..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell52_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:04 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell52_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell52_Pthread_KokkosCore_config.h deleted file mode 100644 index 140740f81f..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell52_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:04 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell52_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell52_ROCm_KokkosCore_config.h deleted file mode 100644 index 06ff6935ca..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell52_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:03 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell52_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell52_Serial_KokkosCore_config.h deleted file mode 100644 index eac120d061..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell52_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:05 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell53_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell53_Cuda_KokkosCore_config.h deleted file mode 100644 index ad8344a099..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell53_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:06 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_MAXWELL 1 -#define KOKKOS_ARCH_MAXWELL53 1 diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell53_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell53_OpenMP_KokkosCore_config.h deleted file mode 100644 index ab1e801267..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell53_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:06 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell53_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell53_Pthread_KokkosCore_config.h deleted file mode 100644 index 0b1e3bf311..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell53_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:07 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell53_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell53_ROCm_KokkosCore_config.h deleted file mode 100644 index 82414cf358..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell53_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:06 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell53_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell53_Serial_KokkosCore_config.h deleted file mode 100644 index b10b80b3bc..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell53_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:07 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell_Cuda_KokkosCore_config.h deleted file mode 100644 index d81a715007..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:00 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_MAXWELL 1 -#define KOKKOS_ARCH_MAXWELL50 1 diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell_OpenMP_KokkosCore_config.h deleted file mode 100644 index 98e93c7b28..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:00 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell_Pthread_KokkosCore_config.h deleted file mode 100644 index 47a7ccb7a5..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:00 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell_ROCm_KokkosCore_config.h deleted file mode 100644 index c438f4f7d5..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:01 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell_Serial_KokkosCore_config.h deleted file mode 100644 index d66c569084..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:01 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/None_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/None_Cuda_KokkosCore_config.h deleted file mode 100644 index 6bf2755fd0..0000000000 --- a/lib/kokkos/core/unit_test/config/results/None_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:22 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/None_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/None_OpenMP_KokkosCore_config.h deleted file mode 100644 index 4dd2eed180..0000000000 --- a/lib/kokkos/core/unit_test/config/results/None_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:23 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/None_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/None_Pthread_KokkosCore_config.h deleted file mode 100644 index 1bdd29b6a5..0000000000 --- a/lib/kokkos/core/unit_test/config/results/None_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:23 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/None_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/None_ROCm_KokkosCore_config.h deleted file mode 100644 index 74b0d7335c..0000000000 --- a/lib/kokkos/core/unit_test/config/results/None_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:24 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/None_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/None_Serial_KokkosCore_config.h deleted file mode 100644 index a9d0b264b8..0000000000 --- a/lib/kokkos/core/unit_test/config/results/None_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:23 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Pascal60_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal60_Cuda_KokkosCore_config.h deleted file mode 100644 index 8fe1aa698d..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal60_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:08 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_PASCAL 1 -#define KOKKOS_ARCH_PASCAL60 1 diff --git a/lib/kokkos/core/unit_test/config/results/Pascal60_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal60_OpenMP_KokkosCore_config.h deleted file mode 100644 index 93173f4e11..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal60_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:09 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Pascal60_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal60_Pthread_KokkosCore_config.h deleted file mode 100644 index a05d5729e0..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal60_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:09 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Pascal60_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal60_ROCm_KokkosCore_config.h deleted file mode 100644 index 9c04befef5..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal60_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:09 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Pascal60_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal60_Serial_KokkosCore_config.h deleted file mode 100644 index c6038c2965..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal60_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:10 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Pascal61_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal61_Cuda_KokkosCore_config.h deleted file mode 100644 index 0de37df960..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal61_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:11 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_PASCAL 1 -#define KOKKOS_ARCH_PASCAL61 1 diff --git a/lib/kokkos/core/unit_test/config/results/Pascal61_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal61_OpenMP_KokkosCore_config.h deleted file mode 100644 index 2c392cc0df..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal61_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:12 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Pascal61_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal61_Pthread_KokkosCore_config.h deleted file mode 100644 index f704aa9c81..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal61_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:12 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Pascal61_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal61_ROCm_KokkosCore_config.h deleted file mode 100644 index 4a4d8cc683..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal61_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:11 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Pascal61_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal61_Serial_KokkosCore_config.h deleted file mode 100644 index 6fb2cf9e9d..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal61_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:12 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Power7_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power7_Cuda_KokkosCore_config.h deleted file mode 100644 index a78e1ffc8d..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power7_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:20 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power7_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power7_OpenMP_KokkosCore_config.h deleted file mode 100644 index bd856b80a5..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power7_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:21 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power7_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power7_Pthread_KokkosCore_config.h deleted file mode 100644 index 8b3ac2aff9..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power7_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:21 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power7_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power7_ROCm_KokkosCore_config.h deleted file mode 100644 index e16cfb37bd..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power7_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:20 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power7_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power7_Serial_KokkosCore_config.h deleted file mode 100644 index 6831f3ce25..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power7_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:22 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power8_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power8_Cuda_KokkosCore_config.h deleted file mode 100644 index 1ab0b04c6c..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power8_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:23 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power8_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power8_OpenMP_KokkosCore_config.h deleted file mode 100644 index 54750405ca..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power8_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:24 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power8_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power8_Pthread_KokkosCore_config.h deleted file mode 100644 index 5d71338d23..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power8_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:24 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power8_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power8_ROCm_KokkosCore_config.h deleted file mode 100644 index f3fd70b0cf..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power8_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:24 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power8_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power8_Serial_KokkosCore_config.h deleted file mode 100644 index 7c0ecc22d3..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power8_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:25 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power9_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power9_Cuda_KokkosCore_config.h deleted file mode 100644 index 47d518f407..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power9_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:26 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power9_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power9_OpenMP_KokkosCore_config.h deleted file mode 100644 index 106bf33e44..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power9_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:27 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power9_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power9_Pthread_KokkosCore_config.h deleted file mode 100644 index 108e5eba47..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power9_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:27 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power9_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power9_ROCm_KokkosCore_config.h deleted file mode 100644 index 8b6a391d95..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power9_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:26 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power9_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power9_Serial_KokkosCore_config.h deleted file mode 100644 index 6f7aefe62e..0000000000 --- a/lib/kokkos/core/unit_test/config/results/Power9_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:27 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/lib/kokkos/core/unit_test/config/results/SKX_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SKX_Cuda_KokkosCore_config.h deleted file mode 100644 index 8f4380d992..0000000000 --- a/lib/kokkos/core/unit_test/config/results/SKX_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:40 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/lib/kokkos/core/unit_test/config/results/SKX_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SKX_OpenMP_KokkosCore_config.h deleted file mode 100644 index 0a907a2ae1..0000000000 --- a/lib/kokkos/core/unit_test/config/results/SKX_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:40 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/lib/kokkos/core/unit_test/config/results/SKX_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SKX_Pthread_KokkosCore_config.h deleted file mode 100644 index 50a95223c9..0000000000 --- a/lib/kokkos/core/unit_test/config/results/SKX_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:41 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/lib/kokkos/core/unit_test/config/results/SKX_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SKX_ROCm_KokkosCore_config.h deleted file mode 100644 index 12293350a1..0000000000 --- a/lib/kokkos/core/unit_test/config/results/SKX_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:40 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/lib/kokkos/core/unit_test/config/results/SKX_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SKX_Serial_KokkosCore_config.h deleted file mode 100644 index 4ea457aacf..0000000000 --- a/lib/kokkos/core/unit_test/config/results/SKX_Serial_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:41 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/lib/kokkos/core/unit_test/config/results/SNB_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SNB_Cuda_KokkosCore_config.h deleted file mode 100644 index 34c9537834..0000000000 --- a/lib/kokkos/core/unit_test/config/results/SNB_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:31 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/SNB_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SNB_OpenMP_KokkosCore_config.h deleted file mode 100644 index f7ed4d720c..0000000000 --- a/lib/kokkos/core/unit_test/config/results/SNB_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:32 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/SNB_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SNB_Pthread_KokkosCore_config.h deleted file mode 100644 index 126c29ba77..0000000000 --- a/lib/kokkos/core/unit_test/config/results/SNB_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:33 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/SNB_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SNB_ROCm_KokkosCore_config.h deleted file mode 100644 index 5c68008bea..0000000000 --- a/lib/kokkos/core/unit_test/config/results/SNB_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:32 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/SNB_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SNB_Serial_KokkosCore_config.h deleted file mode 100644 index 0278d0d079..0000000000 --- a/lib/kokkos/core/unit_test/config/results/SNB_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:33 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/WSM_Cuda_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/WSM_Cuda_KokkosCore_config.h deleted file mode 100644 index 97389bb1bf..0000000000 --- a/lib/kokkos/core/unit_test/config/results/WSM_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:28 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/lib/kokkos/core/unit_test/config/results/WSM_OpenMP_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/WSM_OpenMP_KokkosCore_config.h deleted file mode 100644 index dd5648f0c8..0000000000 --- a/lib/kokkos/core/unit_test/config/results/WSM_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:29 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/lib/kokkos/core/unit_test/config/results/WSM_Pthread_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/WSM_Pthread_KokkosCore_config.h deleted file mode 100644 index c8a7adbd89..0000000000 --- a/lib/kokkos/core/unit_test/config/results/WSM_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:30 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/lib/kokkos/core/unit_test/config/results/WSM_ROCm_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/WSM_ROCm_KokkosCore_config.h deleted file mode 100644 index 712b5686f0..0000000000 --- a/lib/kokkos/core/unit_test/config/results/WSM_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:29 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/lib/kokkos/core/unit_test/config/results/WSM_Serial_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/WSM_Serial_KokkosCore_config.h deleted file mode 100644 index 5bac7c2660..0000000000 --- a/lib/kokkos/core/unit_test/config/results/WSM_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:30 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/lib/kokkos/core/unit_test/configuration/test-code/test_config_arch_list.bash b/lib/kokkos/core/unit_test/configuration/test-code/test_config_arch_list.bash index 696d345ff9..5ff781b96f 100755 --- a/lib/kokkos/core/unit_test/configuration/test-code/test_config_arch_list.bash +++ b/lib/kokkos/core/unit_test/configuration/test-code/test_config_arch_list.bash @@ -4,7 +4,7 @@ HostArch=(SNB HSW SKX KNL) DeviceArch=(Kepler35 Kepler37 Pascal60 Pascal61 Volta70) if [ ! -z "$KOKKOS_HOST_ARCH_TEST" ]; then export KOKKOS_ARCH_TEST=1 - HostArch=(WSM SNB HSW SKX WSM AMDAVX ARMv80 ARMv81 BDW KNC KNL BGQ Power7 Power8 Power9 Ryzen EPYC ARMv8_ThunderX ARMv8_ThunderX2) + HostArch=(WSM SNB HSW SKX WSM AMDAVX ARMv80 ARMv81 BDW KNC KNL BGQ Power7 Power8 Power9 Zen Zen2 ARMv8_ThunderX ARMv8_ThunderX2) DeviceArch=() fi diff --git a/lib/kokkos/core/unit_test/configuration/test-code/test_config_options_list.bash b/lib/kokkos/core/unit_test/configuration/test-code/test_config_options_list.bash index 1d72f28d23..59072b1a1d 100755 --- a/lib/kokkos/core/unit_test/configuration/test-code/test_config_options_list.bash +++ b/lib/kokkos/core/unit_test/configuration/test-code/test_config_options_list.bash @@ -1,7 +1,7 @@ SRC_DIR=${KOKKOS_PATH}/core/unit_test/configuration/test-code # List of parallel device types -Options=(deprecated_code aggressive_vectorization disable_profiling large_mem_tests) +Options=(aggressive_vectorization disable_profiling large_mem_tests) CudaOptions=(lambda relocatable_device_code uvm constexpr) if [ ! -z "$KOKKOS_ARCH_TEST" ]; then @@ -25,7 +25,6 @@ do fi #Renaming options as GNU Make expects them - option=${option/deprecated_code/enable_deprecated_code} option=${option/large_mem_tests/enable_large_mem_tests} if [ ! -z $CudaOptions ]; then diff --git a/lib/kokkos/core/unit_test/cuda/TestCuda_InterOp_Streams.cpp b/lib/kokkos/core/unit_test/cuda/TestCuda_InterOp_Streams.cpp index 3753ad9aec..57c0e454d3 100644 --- a/lib/kokkos/core/unit_test/cuda/TestCuda_InterOp_Streams.cpp +++ b/lib/kokkos/core/unit_test/cuda/TestCuda_InterOp_Streams.cpp @@ -42,103 +42,10 @@ //@HEADER */ -#include #include +#include namespace Test { - -__global__ void offset_streams(int* p) { - int idx = blockIdx.x * blockDim.x + threadIdx.x; - if (idx < 100) { - p[idx] += idx; - } -} - -namespace { -struct FunctorRange { - Kokkos::View> - a; - FunctorRange(Kokkos::View> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()(const int i) const { a(i) += 1; } -}; -struct FunctorRangeReduce { - Kokkos::View> - a; - FunctorRangeReduce(Kokkos::View> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()(const int i, int& lsum) const { lsum += a(i); } -}; -struct FunctorMDRange { - Kokkos::View> - a; - FunctorMDRange(Kokkos::View> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()(const int i, const int j) const { a(i * 10 + j) += 1; } -}; -struct FunctorMDRangeReduce { - Kokkos::View> - a; - FunctorMDRangeReduce(Kokkos::View> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()(const int i, const int j, int& lsum) const { - lsum += a(i * 10 + j); - } -}; -struct FunctorTeam { - Kokkos::View> - a; - FunctorTeam(Kokkos::View> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()( - const Kokkos::TeamPolicy::member_type& team) const { - int i = team.league_rank(); - Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 10), - [&](const int j) { a(i * 10 + j) += 1; }); - } -}; - -struct FunctorTeamReduce { - Kokkos::View> - a; - FunctorTeamReduce(Kokkos::View> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()(const Kokkos::TeamPolicy::member_type& team, - int& lsum) const { - int i = team.league_rank(); - int team_sum; - Kokkos::parallel_reduce( - Kokkos::TeamThreadRange(team, 10), - [&](const int j, int& tsum) { tsum += a(i * 10 + j); }, team_sum); - Kokkos::single(Kokkos::PerTeam(team), [&]() { lsum += team_sum; }); - } -}; -} // namespace - // Test Interoperability with Cuda Streams TEST(cuda, raw_cuda_streams) { cudaStream_t stream; @@ -147,45 +54,47 @@ TEST(cuda, raw_cuda_streams) { Kokkos::initialize(arguments); int* p; cudaMalloc(&p, sizeof(int) * 100); + using MemorySpace = typename TEST_EXECSPACE::memory_space; { - Kokkos::Cuda cuda0(stream); - Kokkos::View v(p, 100); - Kokkos::deep_copy(cuda0, v, 5); + TEST_EXECSPACE space0(stream); + Kokkos::View v(p, 100); + Kokkos::deep_copy(space0, v, 5); int sum; Kokkos::parallel_for("Test::cuda::raw_cuda_stream::Range", - Kokkos::RangePolicy(cuda0, 0, 100), - FunctorRange(v)); + Kokkos::RangePolicy(space0, 0, 100), + FunctorRange(v)); Kokkos::parallel_reduce( "Test::cuda::raw_cuda_stream::RangeReduce", - Kokkos::RangePolicy>(cuda0, - 0, 100), - FunctorRangeReduce(v), sum); - cuda0.fence(); + Kokkos::RangePolicy>( + space0, 0, 100), + FunctorRangeReduce(v), sum); + space0.fence(); ASSERT_EQ(600, sum); Kokkos::parallel_for("Test::cuda::raw_cuda_stream::MDRange", - Kokkos::MDRangePolicy>( - cuda0, {0, 0}, {10, 10}), - FunctorMDRange(v)); - Kokkos::parallel_reduce("Test::cuda::raw_cuda_stream::MDRangeReduce", - Kokkos::MDRangePolicy, - Kokkos::LaunchBounds<128, 2>>( - cuda0, {0, 0}, {10, 10}), - FunctorMDRangeReduce(v), sum); - cuda0.fence(); + Kokkos::MDRangePolicy>( + space0, {0, 0}, {10, 10}), + FunctorMDRange(v)); + Kokkos::parallel_reduce( + "Test::cuda::raw_cuda_stream::MDRangeReduce", + Kokkos::MDRangePolicy, + Kokkos::LaunchBounds<128, 2>>(space0, {0, 0}, + {10, 10}), + FunctorMDRangeReduce(v), sum); + space0.fence(); ASSERT_EQ(700, sum); Kokkos::parallel_for("Test::cuda::raw_cuda_stream::Team", - Kokkos::TeamPolicy(cuda0, 10, 10), - FunctorTeam(v)); + Kokkos::TeamPolicy(space0, 10, 10), + FunctorTeam(v)); Kokkos::parallel_reduce( "Test::cuda::raw_cuda_stream::Team", - Kokkos::TeamPolicy>(cuda0, - 10, 10), - FunctorTeamReduce(v), sum); - cuda0.fence(); + Kokkos::TeamPolicy>( + space0, 10, 10), + FunctorTeamReduce(v), sum); + space0.fence(); ASSERT_EQ(800, sum); } Kokkos::finalize(); @@ -193,7 +102,7 @@ TEST(cuda, raw_cuda_streams) { CUDA_SAFE_CALL(cudaDeviceSynchronize()); cudaStreamDestroy(stream); - int* h_p = new int[100]; + int h_p[100]; cudaMemcpy(h_p, p, sizeof(int) * 100, cudaMemcpyDefault); CUDA_SAFE_CALL(cudaDeviceSynchronize()); int64_t sum = 0; diff --git a/lib/kokkos/core/unit_test/cuda/TestCuda_Other.cpp b/lib/kokkos/core/unit_test/cuda/TestCuda_Other.cpp index 1552261787..ba60569cad 100644 --- a/lib/kokkos/core/unit_test/cuda/TestCuda_Other.cpp +++ b/lib/kokkos/core/unit_test/cuda/TestCuda_Other.cpp @@ -48,7 +48,6 @@ #include #include #include -#include #include #include diff --git a/lib/kokkos/core/unit_test/cuda/TestCuda_ViewLayoutStrideAssignment.cpp b/lib/kokkos/core/unit_test/cuda/TestCuda_ViewLayoutStrideAssignment.cpp index 9b14ed7e82..c170e433d5 100644 --- a/lib/kokkos/core/unit_test/cuda/TestCuda_ViewLayoutStrideAssignment.cpp +++ b/lib/kokkos/core/unit_test/cuda/TestCuda_ViewLayoutStrideAssignment.cpp @@ -44,3 +44,4 @@ #include #include +#include diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIDecl.hpp b/lib/kokkos/core/unit_test/default/TestDefaultDeviceDevelop.cpp similarity index 85% rename from lib/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIDecl.hpp rename to lib/kokkos/core/unit_test/default/TestDefaultDeviceDevelop.cpp index db02a49c8a..a80aded124 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIDecl.hpp +++ b/lib/kokkos/core/unit_test/default/TestDefaultDeviceDevelop.cpp @@ -1,3 +1,4 @@ + /* //@HEADER // ************************************************************************ @@ -42,16 +43,14 @@ //@HEADER */ -#ifndef KOKKOS_ROCM_VIEWETIDECL_HPP -#define KOKKOS_ROCM_VIEWETIDECL_HPP +#include + +#include + +#include -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::ROCm +namespace Test { -#include +TEST(defaultdevicetype, development_test) {} -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif +} // namespace Test diff --git a/lib/kokkos/core/unit_test/default/TestDefaultDeviceType.cpp b/lib/kokkos/core/unit_test/default/TestDefaultDeviceType.cpp index 02f3f7272a..e45c0754ff 100644 --- a/lib/kokkos/core/unit_test/default/TestDefaultDeviceType.cpp +++ b/lib/kokkos/core/unit_test/default/TestDefaultDeviceType.cpp @@ -52,10 +52,10 @@ namespace Test { TEST(TEST_CATEGORY, host_space_access) { - typedef Kokkos::HostSpace::execution_space host_exec_space; - typedef Kokkos::Device device_space; - typedef Kokkos::Impl::HostMirror::Space - mirror_space; + using host_exec_space = Kokkos::HostSpace::execution_space; + using device_space = Kokkos::Device; + using mirror_space = + Kokkos::Impl::HostMirror::Space; static_assert(Kokkos::Impl::SpaceAccessibility::accessible, diff --git a/lib/kokkos/core/unit_test/default/TestDefaultDeviceTypeResize.cpp b/lib/kokkos/core/unit_test/default/TestDefaultDeviceTypeResize.cpp index df2bc44aa6..7f53034557 100644 --- a/lib/kokkos/core/unit_test/default/TestDefaultDeviceTypeResize.cpp +++ b/lib/kokkos/core/unit_test/default/TestDefaultDeviceTypeResize.cpp @@ -50,7 +50,7 @@ namespace Test { TEST(kokkosresize, host_space_access) { // Test with the default device type. using TestViewResize::testResize; - typedef Kokkos::View::device_type device_type; + using device_type = Kokkos::View::device_type; testResize(); } diff --git a/lib/kokkos/core/unit_test/headers_self_contained/CMakeLists.txt b/lib/kokkos/core/unit_test/headers_self_contained/CMakeLists.txt new file mode 100644 index 0000000000..7fcb9235c5 --- /dev/null +++ b/lib/kokkos/core/unit_test/headers_self_contained/CMakeLists.txt @@ -0,0 +1,20 @@ +# Create tests that contain each header separately. We do not run these tests +# but we just try to compile them. +if(NOT KOKKOS_HAS_TRILINOS) +# Globbing all the header filenames to test for self-containment and presence of header guards +SET(BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../") +file(GLOB KOKKOS_CORE_HEADERS RELATIVE ${BASE_DIR}/core/src + ${BASE_DIR}/core/src/*.hpp ${BASE_DIR}/core/src/*.h) +file(GLOB KOKKOS_CONTAINERS_HEADERS RELATIVE ${BASE_DIR}/containers/src + ${BASE_DIR}/containers/src/*.hpp) +file(GLOB KOKKOS_ALGORITHMS_HEADERS RELATIVE ${BASE_DIR}/algorithms/src + ${BASE_DIR}/algorithms/src/*.hpp) + +foreach (_header ${KOKKOS_CORE_HEADERS} ${KOKKOS_CONTAINERS_HEADERS} ${KOKKOS_ALGORITHMS_HEADERS}) + string(REGEX REPLACE "[\./]" "_" header_test_name ${_header}) + set(header_test_name Kokkos_HeaderSelfContained_${header_test_name}) + add_executable(${header_test_name} tstHeader.cpp) + target_link_libraries(${header_test_name} PRIVATE Kokkos::kokkos) + target_compile_definitions(${header_test_name} PRIVATE KOKKOS_HEADER_TEST_NAME=${_header}) +endforeach() +endif() diff --git a/lib/kokkos/core/unit_test/headers_self_contained/tstHeader.cpp b/lib/kokkos/core/unit_test/headers_self_contained/tstHeader.cpp new file mode 100644 index 0000000000..d488f0fa36 --- /dev/null +++ b/lib/kokkos/core/unit_test/headers_self_contained/tstHeader.cpp @@ -0,0 +1,15 @@ +#define KOKKOS_HEADER_TEST_STRINGIZE_IMPL(x) #x +#define KOKKOS_HEADER_TEST_STRINGIZE(x) KOKKOS_HEADER_TEST_STRINGIZE_IMPL(x) + +#define KOKKOS_HEADER_TO_TEST \ + KOKKOS_HEADER_TEST_STRINGIZE(KOKKOS_HEADER_TEST_NAME) + +// include header twice to see if the include guards are set correctly +#include KOKKOS_HEADER_TO_TEST +#include KOKKOS_HEADER_TO_TEST + +#if !defined(KOKKOS_MACROS_HPP) +#error "This header does not include Kokkos_Macros.hpp" +#endif + +int main() { return 0; } diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp index 0dc279fc78..3a42fcd3e6 100644 --- a/lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp @@ -48,7 +48,7 @@ namespace Test { __global__ void offset(int* p) { - int idx = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x; + int idx = blockIdx.x * blockDim.x + threadIdx.x; if (idx < 100) { p[idx] += idx; } @@ -67,7 +67,7 @@ TEST(hip, raw_hip_interop) { Kokkos::finalize(); - hipLaunchKernelGGL(offset, dim3(100), dim3(100), 0, 0, p); + offset<<>>(p); HIP_SAFE_CALL(hipDeviceSynchronize()); int* h_p = new int[100]; diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Streams.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Streams.cpp new file mode 100644 index 0000000000..4f09ea45f4 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Streams.cpp @@ -0,0 +1,115 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { +// Test Interoperability with HIP Streams +// The difference with the CUDA tests are: raw HIP vs raw CUDA and no launch +// bound in HIP due to an error when computing the block size. +TEST(hip, raw_hip_streams) { + hipStream_t stream; + hipStreamCreate(&stream); + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); + int* p; + hipMalloc(&p, sizeof(int) * 100); + using MemorySpace = typename TEST_EXECSPACE::memory_space; + + { + TEST_EXECSPACE space0(stream); + Kokkos::View v(p, 100); + Kokkos::deep_copy(space0, v, 5); + int sum; + + Kokkos::parallel_for("Test::hip::raw_hip_stream::Range", + Kokkos::RangePolicy(space0, 0, 100), + FunctorRange(v)); + Kokkos::parallel_reduce("Test::hip::raw_hip_stream::RangeReduce", + Kokkos::RangePolicy(space0, 0, 100), + FunctorRangeReduce(v), sum); + space0.fence(); + ASSERT_EQ(600, sum); + + Kokkos::parallel_for("Test::hip::raw_hip_stream::MDRange", + Kokkos::MDRangePolicy>( + space0, {0, 0}, {10, 10}), + FunctorMDRange(v)); + Kokkos::parallel_reduce( + "Test::hip::raw_hip_stream::MDRangeReduce", + Kokkos::MDRangePolicy>(space0, {0, 0}, + {10, 10}), + FunctorMDRangeReduce(v), sum); + space0.fence(); + ASSERT_EQ(700, sum); + + Kokkos::parallel_for("Test::hip::raw_hip_stream::Team", + Kokkos::TeamPolicy(space0, 10, 10), + FunctorTeam(v)); + Kokkos::parallel_reduce("Test::hip::raw_hip_stream::Team", + Kokkos::TeamPolicy(space0, 10, 10), + FunctorTeamReduce(v), + sum); + space0.fence(); + ASSERT_EQ(800, sum); + } + Kokkos::finalize(); + offset_streams<<<100, 64, 0, stream>>>(p); + HIP_SAFE_CALL(hipDeviceSynchronize()); + hipStreamDestroy(stream); + + int h_p[100]; + hipMemcpy(h_p, p, sizeof(int) * 100, hipMemcpyDefault); + HIP_SAFE_CALL(hipDeviceSynchronize()); + int64_t sum = 0; + int64_t sum_expect = 0; + for (int i = 0; i < 100; i++) { + sum += h_p[i]; + sum_expect += 8 + i; + } + + ASSERT_EQ(sum, sum_expect); +} +} // namespace Test diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIAvail.hpp b/lib/kokkos/core/unit_test/hip/TestHIP_Other.cpp similarity index 85% rename from lib/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIAvail.hpp rename to lib/kokkos/core/unit_test/hip/TestHIP_Other.cpp index 2fbfb67277..aa4aaef1e7 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIAvail.hpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Other.cpp @@ -1,3 +1,4 @@ + /* //@HEADER // ************************************************************************ @@ -42,16 +43,11 @@ //@HEADER */ -#ifndef KOKKOS_CUDA_VIEWETIAVAIL_HPP -#define KOKKOS_CUDA_VIEWETIAVAIL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Cuda - -#include +#include +#include +#include +#include +#include -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif +#include +#include diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIAvail.hpp b/lib/kokkos/core/unit_test/hip/TestHIP_Reductions_DeviceView.cpp similarity index 85% rename from lib/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIAvail.hpp rename to lib/kokkos/core/unit_test/hip/TestHIP_Reductions_DeviceView.cpp index 018151b309..1c94e1a24b 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIAvail.hpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Reductions_DeviceView.cpp @@ -42,16 +42,5 @@ //@HEADER */ -#ifndef KOKKOS_ROCM_VIEWETIAVAIL_HPP -#define KOKKOS_ROCM_VIEWETIAVAIL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::ROCm - -#include - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp index ea38596883..fd555daa9c 100644 --- a/lib/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp @@ -52,9 +52,10 @@ struct DummyFunctor { }; template -__global__ void start_intra_block_scan() { +__global__ void start_intra_block_scan() + __attribute__((amdgpu_flat_work_group_size(1, 1024))) { __shared__ DummyFunctor::value_type values[N]; - const int i = hipThreadIdx_y; + const int i = threadIdx.y; values[i] = i + 1; __syncthreads(); @@ -74,7 +75,7 @@ template void test_intra_block_scan() { dim3 grid(1, 1, 1); dim3 block(1, N, 1); - hipLaunchKernelGGL(start_intra_block_scan, grid, block, 0, 0); + start_intra_block_scan<<>>(); } TEST(TEST_CATEGORY, scan_unit) { @@ -90,8 +91,7 @@ TEST(TEST_CATEGORY, scan_unit) { test_intra_block_scan<64>(); test_intra_block_scan<128>(); test_intra_block_scan<256>(); - // FIXME_HIP block sizes larger than 256 give wrong results. - // test_intra_block_scan<512>(); - // test_intra_block_scan<1024>(); + test_intra_block_scan<512>(); + test_intra_block_scan<1024>(); } } diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Team.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Team.cpp new file mode 100644 index 0000000000..7f579e737f --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Team.cpp @@ -0,0 +1,152 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, team_for) { + TestTeamPolicy >::test_for( + 0); + TestTeamPolicy >::test_for( + 0); + + TestTeamPolicy >::test_for( + 2); + TestTeamPolicy >::test_for( + 2); + + TestTeamPolicy >::test_for( + 1000); + TestTeamPolicy >::test_for( + 1000); +} + +TEST(TEST_CATEGORY, team_reduce) { + TestTeamPolicy >::test_reduce(0); + TestTeamPolicy >::test_reduce(0); + TestTeamPolicy >::test_reduce(2); + TestTeamPolicy >::test_reduce(2); + TestTeamPolicy >::test_reduce(1000); + TestTeamPolicy >::test_reduce(1000); +} + +TEST(TEST_CATEGORY, team_broadcast_long) { + TestTeamBroadcast, + long>::test_teambroadcast(0, 1); + TestTeamBroadcast, + long>::test_teambroadcast(0, 1); + + TestTeamBroadcast, + long>::test_teambroadcast(2, 1); + TestTeamBroadcast, + long>::test_teambroadcast(2, 1); + + TestTeamBroadcast, + long>::test_teambroadcast(16, 1); + TestTeamBroadcast, + long>::test_teambroadcast(16, 1); +} + +TEST(TEST_CATEGORY, team_broadcast_char) { + TestTeamBroadcast, + unsigned char>::test_teambroadcast(0, 1); + TestTeamBroadcast, + unsigned char>::test_teambroadcast(0, 1); + + TestTeamBroadcast, + unsigned char>::test_teambroadcast(2, 1); + TestTeamBroadcast, + unsigned char>::test_teambroadcast(2, 1); + + TestTeamBroadcast, + unsigned char>::test_teambroadcast(16, 1); + TestTeamBroadcast, + unsigned char>::test_teambroadcast(16, 1); +} + +TEST(TEST_CATEGORY, team_broadcast_float) { + TestTeamBroadcast, + float>::test_teambroadcast(0, 1.3); + TestTeamBroadcast, + float>::test_teambroadcast(0, 1.3); + + TestTeamBroadcast, + float>::test_teambroadcast(2, 1.3); + TestTeamBroadcast, + float>::test_teambroadcast(2, 1.3); + + TestTeamBroadcast, + float>::test_teambroadcast(16, 1.3); + TestTeamBroadcast, + float>::test_teambroadcast(16, 1.3); +} + +TEST(TEST_CATEGORY, team_broadcast_double) { + TestTeamBroadcast, + double>::test_teambroadcast(0, 1.3); + TestTeamBroadcast, + double>::test_teambroadcast(0, 1.3); + + TestTeamBroadcast, + double>::test_teambroadcast(2, 1.3); + TestTeamBroadcast, + double>::test_teambroadcast(2, 1.3); + + TestTeamBroadcast, + double>::test_teambroadcast(16, 1.3); + TestTeamBroadcast, + double>::test_teambroadcast(16, 1.3); +} + +} // namespace Test + +#include diff --git a/lib/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIDecl.hpp b/lib/kokkos/core/unit_test/hip/TestHIP_TeamReductionScan.cpp similarity index 54% rename from lib/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIDecl.hpp rename to lib/kokkos/core/unit_test/hip/TestHIP_TeamReductionScan.cpp index eb287c0db7..2b63283c20 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIDecl.hpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_TeamReductionScan.cpp @@ -42,16 +42,41 @@ //@HEADER */ -#ifndef KOKKOS_THREADS_VIEWETIDECL_HPP -#define KOKKOS_THREADS_VIEWETIDECL_HPP +#include +#include -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Threads +namespace Test { -#include +TEST(TEST_CATEGORY, team_scan) { + TestScanTeam >(0); + TestScanTeam >(0); + TestScanTeam >(10); + TestScanTeam >(10); + // FIXME_HIP + // TestScanTeam >(10000); + // TestScanTeam >(10000); +} -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif +TEST(TEST_CATEGORY, team_long_reduce) { + TestReduceTeam >(0); + TestReduceTeam >(0); + TestReduceTeam >(3); + TestReduceTeam >(3); + TestReduceTeam >( + 100000); + TestReduceTeam >( + 100000); +} + +TEST(TEST_CATEGORY, team_double_reduce) { + TestReduceTeam >(0); + TestReduceTeam >(0); + TestReduceTeam >(3); + TestReduceTeam >(3); + TestReduceTeam >( + 100000); + TestReduceTeam >( + 100000); +} + +} // namespace Test diff --git a/lib/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIAvail.hpp b/lib/kokkos/core/unit_test/hip/TestHIP_TeamScratch.cpp similarity index 58% rename from lib/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIAvail.hpp rename to lib/kokkos/core/unit_test/hip/TestHIP_TeamScratch.cpp index c3c416c4cd..b4483adf4c 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIAvail.hpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_TeamScratch.cpp @@ -42,16 +42,41 @@ //@HEADER */ -#ifndef KOKKOS_THREADS_VIEWETIAVAIL_HPP -#define KOKKOS_THREADS_VIEWETIAVAIL_HPP +#include +#include -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Threads +namespace Test { -#include +TEST(TEST_CATEGORY, team_shared_request) { + TestSharedTeam >(); + TestSharedTeam >(); +} -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif +// FIXME_HIP the parallel_reduce in this test requires a team size larger than +// 256 +// TEST(TEST_CATEGORY, team_scratch_request) { +// TestScratchTeam >(); +// TestScratchTeam >(); +//} + +TEST(TEST_CATEGORY, team_lambda_shared_request) { + TestLambdaSharedTeam >(); + TestLambdaSharedTeam >(); +} + +TEST(TEST_CATEGORY, scratch_align) { TestScratchAlignment(); } + +TEST(TEST_CATEGORY, shmem_size) { TestShmemSize(); } + +// FIXME_HIP the parallel_for and the parallel_reduce in this test requires a +// team size larger than 256 +// TEST(TEST_CATEGORY, multi_level_scratch) { +// TestMultiLevelScratchTeam >(); +// TestMultiLevelScratchTeam >(); +//} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_UniqueToken.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_UniqueToken.cpp new file mode 100644 index 0000000000..89f23b01e3 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_UniqueToken.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_a.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_a.cpp new file mode 100644 index 0000000000..30aa7e131c --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_a.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_b.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_b.cpp new file mode 100644 index 0000000000..8ec6d49347 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_b.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_e.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_e.cpp new file mode 100644 index 0000000000..04afe806bc --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_e.cpp @@ -0,0 +1,47 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewLayoutStrideAssignment.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewLayoutStrideAssignment.cpp new file mode 100644 index 0000000000..53208b5257 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewLayoutStrideAssignment.cpp @@ -0,0 +1,47 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_WorkGraph.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_WorkGraph.cpp new file mode 100644 index 0000000000..5b92dc46c5 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_WorkGraph.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstances.cpp b/lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstances.cpp new file mode 100644 index 0000000000..a235e86ba4 --- /dev/null +++ b/lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstances.cpp @@ -0,0 +1,188 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +#include +#include + +#ifdef KOKKOS_ENABLE_HPX_ASYNC_DISPATCH +#ifndef HPX_COMPUTE_DEVICE_CODE + +namespace Test { + +namespace { +struct FunctorInitConstant { + Kokkos::View a; + int c; + FunctorInitConstant(Kokkos::View a_, int c_) + : a(a_), c(c_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { a(i) = c; } +}; + +struct FunctorAdd { + Kokkos::View a; + Kokkos::View b; + int c; + FunctorAdd(Kokkos::View a_, + Kokkos::View b_, int c_) + : a(a_), b(b_), c(c_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { b(i) += a(i) + c; } +}; + +struct FunctorAddIndex { + Kokkos::View a; + Kokkos::View b; + FunctorAddIndex(Kokkos::View a_, + Kokkos::View b_) + : a(a_), b(b_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { b(i) += a(i) + i; } +}; + +struct FunctorPointwiseSum { + Kokkos::View a; + Kokkos::View b; + Kokkos::View c; + FunctorPointwiseSum(Kokkos::View a_, + Kokkos::View b_, + Kokkos::View c_) + : a(a_), b(b_), c(c_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { c(i) = a(i) + b(i); } +}; + +struct FunctorReduce { + Kokkos::View a; + FunctorReduce(Kokkos::View a_) : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i, int &lsum) const { lsum += a(i); } +}; +} // namespace + +TEST(hpx, independent_instances) { + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); + + const int n = 100; + const int c = 1; + const int d = 3; + + { + Kokkos::View v1("v1", n); + Kokkos::View v2("v2", n); + Kokkos::View v3("v3", n); + Kokkos::View v4("v4", n); + Kokkos::View sum_v("sum_v"); + + Kokkos::Experimental::HPX hpx1( + Kokkos::Experimental::HPX::instance_mode::independent); + Kokkos::parallel_for( + "Test::hpx::independent_instances::init", + Kokkos::Experimental::require( + Kokkos::RangePolicy(hpx1, 0, n), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + FunctorInitConstant(v1, c)); + + Kokkos::Experimental::HPX hpx2(hpx1.impl_get_future()); + Kokkos::parallel_for( + "Test::hpx::independent_instances::add", + Kokkos::Experimental::require( + Kokkos::RangePolicy(hpx2, 0, n), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + FunctorAdd(v1, v2, d)); + + Kokkos::Experimental::HPX hpx3(hpx1.impl_get_future()); + Kokkos::parallel_for( + "Test::hpx::independent_instances::add_index", + Kokkos::Experimental::require( + Kokkos::RangePolicy(hpx3, 0, n), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + FunctorAddIndex(v1, v3)); + + // NOTE: This monstrosity is used to collapse a future, + // future>> (return type of when_all) into a future which is + // ready whenever the un-collapsed future would've been ready. HPX does not + // currently have the functionality to collapse this automatically. + Kokkos::Experimental::HPX hpx4(hpx::util::get<0>(hpx::split_future( + hpx::when_all(hpx2.impl_get_future(), hpx3.impl_get_future())))); + Kokkos::parallel_for( + "Test::hpx::independent_instances::pointwise_sum", + Kokkos::Experimental::require( + Kokkos::RangePolicy(hpx4, 0, n), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + FunctorPointwiseSum(v2, v3, v4)); + + Kokkos::parallel_reduce( + "Test::hpx::independent_instances::reduce", + Kokkos::Experimental::require( + Kokkos::RangePolicy(hpx4, 0, n), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + FunctorReduce(v4), Kokkos::Sum(sum_v)); + + hpx4.fence(); + + ASSERT_EQ(true, hpx1.impl_get_future().is_ready()); + ASSERT_EQ(true, hpx2.impl_get_future().is_ready()); + ASSERT_EQ(true, hpx3.impl_get_future().is_ready()); + ASSERT_EQ(true, hpx4.impl_get_future().is_ready()); + + const int expected_sum = n * (2 * c + d) + (n * (n - 1) / 2); + ASSERT_EQ(expected_sum, sum_v()); + } + + Kokkos::finalize(); +} +} // namespace Test + +#endif +#endif diff --git a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesDelayedExecution.cpp similarity index 66% rename from lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp rename to lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesDelayedExecution.cpp index a98a7aad2d..4f5569fc6b 100644 --- a/lib/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ b/lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesDelayedExecution.cpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,15 +40,45 @@ // // ************************************************************************ //@HEADER +*/ -#define KOKKOS_IMPL_COMPILING_LIBRARY true #include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos +#include + +#include + +#ifdef KOKKOS_ENABLE_HPX_ASYNC_DISPATCH + +namespace Test { + +TEST(hpx, delayed_execution) { + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); + + { + Kokkos::View ran("ran"); + hpx::lcos::local::promise p; + hpx::shared_future f = p.get_future(); + + Kokkos::Experimental::HPX hpx(f); + Kokkos::parallel_for( + "Test::hpx::independent_instances::delay_execution", + Kokkos::Experimental::require( + Kokkos::RangePolicy(hpx, 0, 1), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + KOKKOS_LAMBDA(int) { ran() = true; }); + + ASSERT_EQ(false, ran()); + ASSERT_EQ(false, hpx.impl_get_future().is_ready()); + + p.set_value(); + + hpx.fence(); + ASSERT_EQ(true, hpx.impl_get_future().is_ready()); + } + + Kokkos::finalize(); +} +} // namespace Test + +#endif diff --git a/lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesInstanceIds.cpp b/lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesInstanceIds.cpp new file mode 100644 index 0000000000..26f419db86 --- /dev/null +++ b/lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesInstanceIds.cpp @@ -0,0 +1,99 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +#ifdef KOKKOS_ENABLE_HPX_ASYNC_DISPATCH + +namespace Test { + +TEST(hpx, instance_ids) { + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); + + { + Kokkos::Experimental::HPX hpx_global1; + Kokkos::Experimental::HPX hpx_global2 = hpx_global1; + Kokkos::Experimental::HPX hpx_global3{hpx_global1}; + Kokkos::Experimental::HPX hpx_global4( + Kokkos::Experimental::HPX::instance_mode::global); + + ASSERT_EQ(0, hpx_global1.impl_instance_id()); + ASSERT_EQ(0, hpx_global2.impl_instance_id()); + ASSERT_EQ(0, hpx_global3.impl_instance_id()); + ASSERT_EQ(0, hpx_global4.impl_instance_id()); + + Kokkos::Experimental::HPX hpx_independent1( + Kokkos::Experimental::HPX::instance_mode::independent); + Kokkos::Experimental::HPX hpx_independent2 = hpx_independent1; + Kokkos::Experimental::HPX hpx_independent3{hpx_independent1}; + + ASSERT_NE(hpx_global1.impl_instance_id(), + hpx_independent1.impl_instance_id()); + ASSERT_EQ(hpx_independent1.impl_instance_id(), + hpx_independent2.impl_instance_id()); + ASSERT_EQ(hpx_independent1.impl_instance_id(), + hpx_independent3.impl_instance_id()); + + hpx::shared_future f = hpx::make_ready_future(); + Kokkos::Experimental::HPX hpx_independent_future1(f); + Kokkos::Experimental::HPX hpx_independent_future2 = hpx_independent_future1; + Kokkos::Experimental::HPX hpx_independent_future3{hpx_independent_future1}; + + ASSERT_NE(hpx_global1.impl_instance_id(), + hpx_independent1.impl_instance_id()); + ASSERT_NE(hpx_independent1.impl_instance_id(), + hpx_independent_future1.impl_instance_id()); + ASSERT_EQ(hpx_independent_future1.impl_instance_id(), + hpx_independent_future2.impl_instance_id()); + ASSERT_EQ(hpx_independent_future1.impl_instance_id(), + hpx_independent_future3.impl_instance_id()); + } + + Kokkos::finalize(); +} +} // namespace Test + +#endif diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesRefCounting.cpp similarity index 62% rename from lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp rename to lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesRefCounting.cpp index 14a80d9a94..89b03dc367 100644 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ b/lib/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesRefCounting.cpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,15 +40,56 @@ // // ************************************************************************ //@HEADER +*/ -#define KOKKOS_IMPL_COMPILING_LIBRARY true #include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos +#include + +#ifdef KOKKOS_ENABLE_HPX_ASYNC_DISPATCH + +namespace Test { +namespace { +std::atomic dummy_count; + +struct dummy { + dummy() { ++dummy_count; } + dummy(dummy const &) { ++dummy_count; } + ~dummy() { --dummy_count; } + void f() const {} +}; +} // namespace +// This test makes sure the independent HPX instances don't hold on to captured +// data after destruction. +TEST(hpx, reference_counting) { + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); + + { + dummy d; + Kokkos::Experimental::HPX hpx( + Kokkos::Experimental::HPX::instance_mode::independent); + Kokkos::parallel_for( + "Test::hpx::reference_counting::dummy", + Kokkos::RangePolicy(hpx, 0, 1), + KOKKOS_LAMBDA(int) { + // Make sure dummy struct is captured. + d.f(); + }); + + // This attaches a continuation and releases the d captured above from the + // shared state of the internal future. + Kokkos::parallel_for( + "Test::hpx::reference_counting::dummy_clear", + Kokkos::RangePolicy(hpx, 0, 1), + KOKKOS_LAMBDA(int){}); + + hpx.fence(); + + ASSERT_EQ(1, dummy_count); + } + + Kokkos::finalize(); +} +} // namespace Test + +#endif diff --git a/lib/kokkos/core/unit_test/hpx/TestHPX_ViewLayoutStrideAssignment.cpp b/lib/kokkos/core/unit_test/hpx/TestHPX_ViewLayoutStrideAssignment.cpp index eb91b558ef..22799842a7 100644 --- a/lib/kokkos/core/unit_test/hpx/TestHPX_ViewLayoutStrideAssignment.cpp +++ b/lib/kokkos/core/unit_test/hpx/TestHPX_ViewLayoutStrideAssignment.cpp @@ -44,3 +44,4 @@ #include #include +#include diff --git a/lib/kokkos/core/unit_test/incremental/Test01_execspace.hpp b/lib/kokkos/core/unit_test/incremental/Test01_execspace.hpp index 9f118bfb49..419486d7a8 100644 --- a/lib/kokkos/core/unit_test/incremental/Test01_execspace.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test01_execspace.hpp @@ -73,9 +73,9 @@ struct TestIncrExecSpaceTypedef { template struct TestIncrExecSpace { void testit() { - typedef typename ExecSpace::device_type device_type; - typedef typename device_type::memory_space memory_space; - typedef typename device_type::execution_space execution_space; + using device_type = typename ExecSpace::device_type; + using memory_space = typename device_type::memory_space; + using execution_space = typename device_type::execution_space; const bool passed = std::is_same #include -using value_type = double; - namespace Test { struct TestIncrAtomic { + using value_type = double; value_type value1 = 1.5, value2 = 0.5; void testExchange() { diff --git a/lib/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp b/lib/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp index 5e50b51dd1..840726d84e 100644 --- a/lib/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp @@ -52,17 +52,18 @@ namespace Test { -using value_type = double; -int num_elements = 10; -const value_type value = 0.5; +using value_type = double; +int num_elements = 10; struct ParallelForFunctor { value_type *_data; + const value_type _value; - ParallelForFunctor(value_type *data) : _data(data) {} + ParallelForFunctor(value_type *data, const value_type value) + : _data(data), _value(value) {} KOKKOS_INLINE_FUNCTION - void operator()(const int i) const { _data[i] = (i + 1) * value; } + void operator()(const int i) const { _data[i] = (i + 1) * _value; } }; template @@ -72,6 +73,7 @@ struct TestParallel_For { using h_memspace_type = Kokkos::HostSpace; value_type *deviceData, *hostData; + const value_type value = 0.5; // Check if the array values are updated correctly. void correctness_check(value_type *data) { @@ -125,7 +127,7 @@ struct TestParallel_For { // parallel-for functor called for num_elements number of iterations. Kokkos::parallel_for("parallel_for", num_elements, - ParallelForFunctor(deviceData)); + ParallelForFunctor(deviceData, value)); Kokkos::fence(); // Checks if parallel_for gave the correct results. @@ -140,13 +142,13 @@ struct TestParallel_For { init(); // Creates a range policy that uses dynamic scheduling. - typedef Kokkos::RangePolicy > - range_policy_t; + using range_policy_t = + Kokkos::RangePolicy >; // parallel-for functor with range-policy from 0 to num_elements iterations. Kokkos::parallel_for("RangePolicy_ParallelFor", range_policy_t(0, num_elements), - ParallelForFunctor(deviceData)); + ParallelForFunctor(deviceData, value)); // Checks if parallel_for gave the correct results. // Free the allocated memory in init(). diff --git a/lib/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp b/lib/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp index 7c147e47cc..263ed3d731 100644 --- a/lib/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp @@ -53,7 +53,7 @@ namespace Test { using value_type = double; -const double value = 0.5; +constexpr double value = 0.5; const int num_elements = 10; struct ReduceFunctor { @@ -134,8 +134,8 @@ struct TestReduction { init(); // Creates a range policy that uses dynamic schedule. - typedef Kokkos::RangePolicy > - range_policy; + using range_policy = + Kokkos::RangePolicy >; // parallel_reduce call with range policy over num_elements number of // iterations diff --git a/lib/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp b/lib/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp index d9e5a37b55..4adf9e058f 100644 --- a/lib/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp @@ -52,34 +52,35 @@ // elements as a product of iterator indexes and a constant. At the end, we // check for correctness. -namespace Test04 { +namespace Test06 { -using value_type = double; -const int N = 10; -const int M = 10; -const value_type delta = 0.5; +using value_type = double; struct MDFunctor { value_type *_data; + const value_type _delta; + const int N = 10; + const int M = 10; - MDFunctor(value_type *data) : _data(data) {} + MDFunctor(value_type *data, const value_type delta) + : _data(data), _delta(delta) {} // 2D KOKKOS_INLINE_FUNCTION void operator()(const int i, const int j) const { - _data[i * M + j] = i * j * delta; + _data[i * M + j] = i * j * _delta; } // 3D KOKKOS_INLINE_FUNCTION void operator()(const int i, const int j, const int k) const { - _data[i * M * N + j * M + k] = i * j * k * delta; + _data[i * M * N + j * M + k] = i * j * k * _delta; } // 4D KOKKOS_INLINE_FUNCTION void operator()(const int i, const int j, const int k, const int l) const { - _data[i * M * N * M + j * M * N + k * M + l] = i * j * k * l * delta; + _data[i * M * N * M + j * M * N + k * M + l] = i * j * k * l * _delta; } }; @@ -106,6 +107,9 @@ struct TestMDRangePolicy { // Device and Host Data structure pointer value_type *deviceData, *hostData; + const value_type delta = 0.5; + const int N = 10; + const int M = 10; // Routine to allocate memory in a specific memory space. template @@ -160,7 +164,7 @@ struct TestMDRangePolicy { ASSERT_NE(hostData, nullptr); // parallel_for call - MDFunctor Functor_2D(deviceData); + MDFunctor Functor_2D(deviceData, delta); Kokkos::parallel_for("MDRange2D", mdPolicy_2D, Functor_2D); // Copy the data back to Host memory space @@ -191,7 +195,7 @@ struct TestMDRangePolicy { ASSERT_NE(hostData, nullptr); // parallel_for call - MDFunctor Functor_3D(deviceData); + MDFunctor Functor_3D(deviceData, delta); Kokkos::parallel_for("MDRange3D", mdPolicy_3D, Functor_3D); // Copy the data back to Host memory space @@ -222,7 +226,7 @@ struct TestMDRangePolicy { ASSERT_NE(hostData, nullptr); // parallel_for call - MDFunctor Functor_4D(deviceData); + MDFunctor Functor_4D(deviceData, delta); Kokkos::parallel_for("MDRange4D", mdPolicy_4D, Functor_4D); // Copy the data back to Host memory space @@ -238,25 +242,25 @@ struct TestMDRangePolicy { } }; -} // namespace Test04 +} // namespace Test06 namespace Test { // 2D MDRangePolicy TEST(TEST_CATEGORY, IncrTest_06_mdrange2D) { - Test04::TestMDRangePolicy test; + Test06::TestMDRangePolicy test; test.mdRange2D(); } // 3D MDRangePolicy TEST(TEST_CATEGORY, IncrTest_06_mdrange3D) { - Test04::TestMDRangePolicy test; + Test06::TestMDRangePolicy test; test.mdRange3D(); } // 4D MDRangePolicy TEST(TEST_CATEGORY, IncrTest_06_mdrange4D) { - Test04::TestMDRangePolicy test; + Test06::TestMDRangePolicy test; test.mdRange4D(); } diff --git a/lib/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp b/lib/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp index e36b8f9d3f..627c071c8c 100644 --- a/lib/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp @@ -55,10 +55,10 @@ namespace Test { template struct Hierarchical_ForLoop_A { void run(const int pN, const int sX, const int sY) { - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; - typedef Kokkos::View viewDataType; + using viewDataType = Kokkos::View; viewDataType v("Matrix", sX, sY); Kokkos::parallel_for( @@ -71,7 +71,7 @@ struct Hierarchical_ForLoop_A { const int modDim1 = n == ls - 1 ? sX % ls : 0; Kokkos::parallel_for( - Kokkos::TeamThreadRange(team, v.extent(1)), [&](const int m) { + Kokkos::TeamThreadRange(team, v.extent(1)), [=](const int m) { for (int i = startDim1; i < (startDim1 + (int)(sX / ls) + modDim1); ++i) v(i, m) = i * v.extent(1) + m; diff --git a/lib/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp b/lib/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp index 7e4bb2aa3b..1765a04934 100644 --- a/lib/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp @@ -55,10 +55,10 @@ namespace Test { template struct Hierarchical_ForLoop_B { void run(const int pN, const int sX, const int sY) { - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; - typedef Kokkos::View viewDataType; + using viewDataType = Kokkos::View; viewDataType v("Matrix", sX, sY); Kokkos::parallel_for( @@ -71,7 +71,7 @@ struct Hierarchical_ForLoop_B { const int modDim1 = n == ls - 1 ? sX % ls : 0; Kokkos::parallel_for( - Kokkos::TeamVectorRange(team, v.extent(1)), [&](const int m) { + Kokkos::TeamVectorRange(team, v.extent(1)), [=](const int m) { for (int i = startDim1; i < (startDim1 + (int)(sX / ls) + modDim1); ++i) v(i, m) = i * v.extent(1) + m; diff --git a/lib/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp b/lib/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp index c6998a5781..814ab5fda6 100644 --- a/lib/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp @@ -55,10 +55,10 @@ namespace Test { template struct Hierarchical_ForLoop_C { void run(const int pN, const int sX, const int sY, const int sZ) { - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; - typedef Kokkos::View viewDataType; + using viewDataType = Kokkos::View; viewDataType v("Matrix", sX, sY, sZ); Kokkos::parallel_for( diff --git a/lib/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp b/lib/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp index b5467da921..e32b0ed0fc 100644 --- a/lib/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp @@ -59,10 +59,10 @@ namespace Test { template struct Hierarchical_Red_A { void run(const int pN, const int sX) { - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; - typedef Kokkos::View viewDataType; + using viewDataType = Kokkos::View; viewDataType v("Vector", pN); Kokkos::parallel_for( diff --git a/lib/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp b/lib/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp index ada295591e..0d37703e2b 100644 --- a/lib/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp @@ -57,10 +57,10 @@ namespace Test { template struct Hierarchical_Red_B { void run(const int pN, const int sX) { - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; - typedef Kokkos::View viewDataType; + using viewDataType = Kokkos::View; viewDataType v("Vector", pN); Kokkos::parallel_for( diff --git a/lib/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp b/lib/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp index 7df940c58d..26f9d00091 100644 --- a/lib/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp @@ -57,10 +57,10 @@ namespace Test { template struct Hierarchical_Red_C { void run(const int pN, const int sX, const int sY) { - typedef Kokkos::TeamPolicy team_policy; - typedef typename Kokkos::TeamPolicy::member_type member_type; + using team_policy = Kokkos::TeamPolicy; + using member_type = typename Kokkos::TeamPolicy::member_type; - typedef Kokkos::View viewDataType; + using viewDataType = Kokkos::View; viewDataType v("Vector", pN); Kokkos::parallel_for( diff --git a/lib/kokkos/core/unit_test/incremental/Test14_MDRangeReduce.hpp b/lib/kokkos/core/unit_test/incremental/Test14_MDRangeReduce.hpp new file mode 100644 index 0000000000..d227e834dc --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test14_MDRangeReduce.hpp @@ -0,0 +1,182 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +/// @Kokkos_Feature_Level_Required:14 +// Incremental test for MDRange reduction . +// Reduction is tested with scalar, view and a customized reduction. + +#include +#include + +namespace Test { +using value_type = double; +const int N = 10; +const int M = 10; + +// A structure for complex number. +struct MyComplex { + value_type _re, _im; + + MyComplex() = default; + + KOKKOS_INLINE_FUNCTION + MyComplex(value_type re, value_type im) : _re(re), _im(im) {} + + KOKKOS_INLINE_FUNCTION + MyComplex(const MyComplex& src) : _re(src._re), _im(src._im) {} + + KOKKOS_INLINE_FUNCTION + void operator+=(const MyComplex& src) { + _re += src._re; + _im += src._im; + } + + KOKKOS_INLINE_FUNCTION + void operator+=(const volatile MyComplex& src) volatile { + _re += src._re; + _im += src._im; + } +}; + +template +struct TestMDRangeReduce { + // 1D View of double + using View_1D = typename Kokkos::View; + + // 2D View of double + using View_2D = typename Kokkos::View; + + // Index Type for the iterator + using int_index = Kokkos::IndexType; + + // An MDRangePolicy for 2 nested loops + using MDPolicyType_2D = typename Kokkos::Experimental::MDRangePolicy< + ExecSpace, Kokkos::Experimental::Rank<2>, int_index>; + + // 1D - complex View + using Complex_View_1D = typename Kokkos::View; + + // Reduction when ExecPolicy = MDRangePolicy and ReducerArgument = + // scalar/1-element view + void reduce_MDRange() { + View_2D d_data("d_data", N, M); + + MDPolicyType_2D mdPolicy_2D({0, 0}, {N, M}); + + // Store the reduced value. + value_type d_result = 0.0, h_result = 0.0; + Kokkos::View d_resultView("result View"); + + // Compute reference solution on the host. + for (int i = 0; i < N; ++i) + for (int j = 0; j < M; ++j) h_result += i * j; + h_result *= 0.5; + + // Fill data. + Kokkos::parallel_for( + mdPolicy_2D, KOKKOS_LAMBDA(const int i, const int j) { + d_data(i, j) = i * j * 0.5; + }); + + // Parallel reduce on a scalar. + Kokkos::parallel_reduce( + mdPolicy_2D, + KOKKOS_LAMBDA(const int i, const int j, value_type& update_value) { + update_value += d_data(i, j); + }, + d_result); + + // Parallel reduce on a view. + Kokkos::parallel_reduce( + mdPolicy_2D, + KOKKOS_LAMBDA(const int i, const int j, value_type& update_value) { + update_value += d_data(i, j); + }, + d_resultView); + + // Check correctness. + ASSERT_EQ(h_result, d_result); + + // Copy view back to host. + value_type view_result = 0.0; + Kokkos::deep_copy(view_result, d_resultView); + ASSERT_EQ(h_result, view_result); + } + + // Custom Reduction + void reduce_custom() { + Complex_View_1D d_data("complex array", N); + MyComplex result(0.0, 0.0); + int sum = 0; + + // Fill data + Kokkos::parallel_for( + Kokkos::RangePolicy(0, N), KOKKOS_LAMBDA(const int i) { + d_data(i) = MyComplex(i * 0.5, -i * 0.5); + }); + + // Reduction for complex number. + Kokkos::parallel_reduce( + Kokkos::RangePolicy(0, N), + KOKKOS_LAMBDA(const int i, MyComplex& update_value) { + update_value += d_data(i); + }, + result); + + // Correctness Check + for (int i = 0; i < N; ++i) sum += i; + + ASSERT_EQ(result._re, sum * 0.5); + ASSERT_EQ(result._im, -sum * 0.5); + } +}; + +// Reductions tests for MDRange policy and customized reduction. +TEST(TEST_CATEGORY, incr_14_MDrangeReduce) { + TestMDRangeReduce test; + test.reduce_MDRange(); + test.reduce_custom(); +} + +} // namespace Test diff --git a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/lib/kokkos/core/unit_test/incremental/Test16_ParallelScan.hpp similarity index 60% rename from lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp rename to lib/kokkos/core/unit_test/incremental/Test16_ParallelScan.hpp index 24dc52eef4..e1f5e3767c 100644 --- a/lib/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ b/lib/kokkos/core/unit_test/incremental/Test16_ParallelScan.hpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,15 +40,60 @@ // // ************************************************************************ //@HEADER +*/ -#define KOKKOS_IMPL_COMPILING_LIBRARY true #include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos +#include + +/// @Kokkos_Feature_Level_Required:16 +// Incremental test for parallel_scan. +// perform scan on a 1D view of double's and check for correctness. + +namespace Test { + +using value_type = double; +const int N = 10; + +template +struct TestScan { + // 1D View of double + using View_1D = typename Kokkos::View; + + void parallel_scan() { + View_1D d_data("data", N); + + // Initialize data. + Kokkos::parallel_for( + Kokkos::RangePolicy(0, N), + KOKKOS_LAMBDA(const int i) { d_data(i) = i * 0.5; }); + + // Exclusive parallel_scan call. + Kokkos::parallel_scan( + Kokkos::RangePolicy(0, N), + KOKKOS_LAMBDA(const int i, value_type &update_value, const bool final) { + const value_type val_i = d_data(i); + if (final) d_data(i) = update_value; + + update_value += val_i; + }); + + // Copy back the data. + auto h_data = + Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), d_data); + + // Check Correctness + ASSERT_EQ(h_data(0), 0.0); + value_type upd = h_data(0); + for (int i = 1; i < N; ++i) { + upd += (i - 1) * 0.5; + ASSERT_EQ(h_data(i), upd); + } + } +}; + +TEST(TEST_CATEGORY, IncrTest_16_parallelscan) { + TestScan test; + test.parallel_scan(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test17_CompleteAtomic.hpp b/lib/kokkos/core/unit_test/incremental/Test17_CompleteAtomic.hpp new file mode 100644 index 0000000000..6ba5adc618 --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test17_CompleteAtomic.hpp @@ -0,0 +1,126 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include +#include +#include + +/// @Kokkos_Feature_Level_Required:17 +// Incremental test for atomic views. +// In this test we sort N integers into num_buckets number of buckets based on +// their rermainder, i.e., a histogram based on remainder. Since the number of +// integers is greater than the number of buckets, we use atomic views for the +// sorted histogram. + +namespace Test { + +using value_type = int; +const int N = 1000; +const int num_buckets = 10; + +template +struct TestAtomicView { + // 1D View of int + using View = typename Kokkos::View; + + // 1D atomic view + using atomic_view = + typename Kokkos::View >; + + void atomicView() { + // Use default_random_engine object to introduce randomness. + std::default_random_engine generator; + // Initialize uniform_int_distribution class. + std::uniform_int_distribution distribution(0, N); + + // Device and Host views of N number of integers + View d_data("deviceData_1D", N); + auto h_data = create_mirror_view(d_data); + + // Atomic Device and Host views of histogram + atomic_view d_hist("histogram", num_buckets); + auto h_hist = create_mirror_view(d_hist); + + // An array to store correct results for verification + std::array correct_results; + + // Initialize host side histogram arrays + for (int i = 0; i < num_buckets; ++i) { + h_hist(i) = 0; + correct_results[i] = 0; + } + + // Fill host data with integers from the distribution object. + for (int i = 0; i < N; ++i) h_data(i) = distribution(generator); + + // Copy data from host to device + Kokkos::deep_copy(d_data, h_data); + Kokkos::deep_copy(d_hist, h_hist); + + // Update histogram + Kokkos::parallel_for( + Kokkos::RangePolicy(0, N), + KOKKOS_LAMBDA(const int i) { d_hist(d_data(i) % num_buckets)++; }); + + // Perform the same computation on host for correctness test. + for (int i = 0; i < N; ++i) correct_results[h_data(i) % num_buckets]++; + + // Copy the histogram back to host + Kokkos::deep_copy(h_hist, d_hist); + + // Validate results + for (int i = 0; i < num_buckets; ++i) + ASSERT_EQ(correct_results[i], h_hist(i)); + } +}; + +// atomic view tests +TEST(TEST_CATEGORY, incr_17_atomicView) { + TestAtomicView test; + test.atomicView(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/openmp/TestOpenMP.hpp b/lib/kokkos/core/unit_test/openmp/TestOpenMP.hpp index 082657c28f..d76832ffee 100644 --- a/lib/kokkos/core/unit_test/openmp/TestOpenMP.hpp +++ b/lib/kokkos/core/unit_test/openmp/TestOpenMP.hpp @@ -56,7 +56,6 @@ #include -#include #include #include #include diff --git a/lib/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp b/lib/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp index 7043432517..b2129f5c8e 100644 --- a/lib/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp +++ b/lib/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp @@ -48,7 +48,6 @@ #include #include #include -#include #include #include @@ -64,24 +63,14 @@ TEST(openmp, partition_master) { int errors = 0; auto master = [&errors, &mtx](int /*partition_id*/, int /*num_partitions*/) { - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = Kokkos::OpenMP::thread_pool_size(); -#else const int pool_size = Kokkos::OpenMP::impl_thread_pool_size(); -#endif { std::unique_lock lock(mtx); if (Kokkos::OpenMP::in_parallel()) { ++errors; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::OpenMP::thread_pool_rank() != 0) -#else - if (Kokkos::OpenMP::impl_thread_pool_rank() != 0) -#endif - { + if (Kokkos::OpenMP::impl_thread_pool_rank() != 0) { ++errors; } } @@ -91,12 +80,7 @@ TEST(openmp, partition_master) { Kokkos::parallel_reduce( Kokkos::RangePolicy(0, 1000), [pool_size](const int, int& errs) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::OpenMP::thread_pool_size() != pool_size) -#else - if (Kokkos::OpenMP::impl_thread_pool_size() != pool_size) -#endif - { + if (Kokkos::OpenMP::impl_thread_pool_size() != pool_size) { ++errs; } }, diff --git a/lib/kokkos/core/unit_test/openmp/TestOpenMP_ViewLayoutStrideAssignment.cpp b/lib/kokkos/core/unit_test/openmp/TestOpenMP_ViewLayoutStrideAssignment.cpp index 90e90139c1..349da68900 100644 --- a/lib/kokkos/core/unit_test/openmp/TestOpenMP_ViewLayoutStrideAssignment.cpp +++ b/lib/kokkos/core/unit_test/openmp/TestOpenMP_ViewLayoutStrideAssignment.cpp @@ -44,3 +44,4 @@ #include #include +#include diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget.hpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget.hpp index 0e9ad3e24f..664b718b94 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget.hpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget.hpp @@ -56,7 +56,6 @@ #include -#include //#include //#include //#include diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Other.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Other.cpp index aba91aee2b..bdae00ef45 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Other.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Other.cpp @@ -48,4 +48,3 @@ #include #include #include -#include diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions.cpp index af1d06f0c1..687e52d43c 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions.cpp @@ -43,5 +43,6 @@ */ #include -#include +// WORKAROUND OPENMPTARGET: Not implemented +// #include #include diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamReductionScan.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamReductionScan.cpp index e882cd1b2e..f544148a08 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamReductionScan.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamReductionScan.cpp @@ -56,6 +56,8 @@ TEST(TEST_CATEGORY, team_scan) { TestScanTeam >(10000); } +// WORKAROUND OPENMPTARGET: not supported yet +/* TEST(TEST_CATEGORY, team_long_reduce) { TestReduceTeam >(0); TestReduceTeam >(0); @@ -77,5 +79,5 @@ TEST(TEST_CATEGORY, team_double_reduce) { TestReduceTeam >( 100000); } - +*/ } // namespace Test diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewLayoutStrideAssignment.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewLayoutStrideAssignment.cpp index e69de29bb2..a41d1bc88d 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewLayoutStrideAssignment.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewLayoutStrideAssignment.cpp @@ -0,0 +1,47 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include +#include diff --git a/lib/kokkos/core/unit_test/rocm/TestROCm_Other.cpp b/lib/kokkos/core/unit_test/rocm/TestROCm_Other.cpp index b6240a1b5a..c9e7e31ace 100644 --- a/lib/kokkos/core/unit_test/rocm/TestROCm_Other.cpp +++ b/lib/kokkos/core/unit_test/rocm/TestROCm_Other.cpp @@ -48,6 +48,5 @@ #include // include #include -#include #include diff --git a/lib/kokkos/core/unit_test/serial/TestSerial_Other.cpp b/lib/kokkos/core/unit_test/serial/TestSerial_Other.cpp index ea4ac4e4cb..dacba23742 100644 --- a/lib/kokkos/core/unit_test/serial/TestSerial_Other.cpp +++ b/lib/kokkos/core/unit_test/serial/TestSerial_Other.cpp @@ -48,7 +48,6 @@ #include #include #include -#include #include #include diff --git a/lib/kokkos/core/unit_test/serial/TestSerial_ViewLayoutStrideAssignment.cpp b/lib/kokkos/core/unit_test/serial/TestSerial_ViewLayoutStrideAssignment.cpp index 37c3126c50..16e8de7f51 100644 --- a/lib/kokkos/core/unit_test/serial/TestSerial_ViewLayoutStrideAssignment.cpp +++ b/lib/kokkos/core/unit_test/serial/TestSerial_ViewLayoutStrideAssignment.cpp @@ -44,3 +44,4 @@ #include #include +#include diff --git a/lib/kokkos/core/unit_test/threads/TestThreads_Other.cpp b/lib/kokkos/core/unit_test/threads/TestThreads_Other.cpp index 01a07896b3..b92e4005c8 100644 --- a/lib/kokkos/core/unit_test/threads/TestThreads_Other.cpp +++ b/lib/kokkos/core/unit_test/threads/TestThreads_Other.cpp @@ -48,7 +48,6 @@ #include #include #include -#include #include #include diff --git a/lib/kokkos/core/unit_test/threads/TestThreads_ViewLayoutStrideAssignment.cpp b/lib/kokkos/core/unit_test/threads/TestThreads_ViewLayoutStrideAssignment.cpp index 0b54784d95..9202511e34 100644 --- a/lib/kokkos/core/unit_test/threads/TestThreads_ViewLayoutStrideAssignment.cpp +++ b/lib/kokkos/core/unit_test/threads/TestThreads_ViewLayoutStrideAssignment.cpp @@ -44,3 +44,4 @@ #include #include +#include diff --git a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/lib/kokkos/core/unit_test/tools/TestAllCalls.cpp similarity index 50% rename from lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp rename to lib/kokkos/core/unit_test/tools/TestAllCalls.cpp index a9b1b6d409..7e37816c5d 100644 --- a/lib/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ b/lib/kokkos/core/unit_test/tools/TestAllCalls.cpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,18 +40,50 @@ // // ************************************************************************ //@HEADER +*/ + +// This file calls most of the basic Kokkos primitives. When combined with a +// testing library this tests that our shared-library loading based profiling +// mechanisms work -#define KOKKOS_IMPL_COMPILING_LIBRARY true +#include #include -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Serial, int64_t) -} // namespace Impl -} // namespace Kokkos +int main() { + Kokkos::initialize(); + { + // This test only uses host kernel launch mechanisms. This is to allow for + // the test to run on platforms where CUDA lambda launch isn't supported. + // This is safe because this test only seeks to test that the dlsym-based + // tool loading mechanisms work, all of which happens completely + // independently of the enabled backends + using execution_space = Kokkos::DefaultHostExecutionSpace; + using memory_space = typename execution_space::memory_space; + Kokkos::View src_view("source", 10); + Kokkos::View dst_view("destination", 10); + Kokkos::deep_copy(dst_view, src_view); + Kokkos::parallel_for("parallel_for", + Kokkos::RangePolicy(0, 1), + [=](int i) { (void)i; }); + int result; + Kokkos::parallel_reduce( + "parallel_reduce", Kokkos::RangePolicy(0, 1), + [=](int i, int& hold_result) { hold_result += i; }, result); + Kokkos::parallel_scan("parallel_scan", + Kokkos::RangePolicy(0, 1), + [=](const int i, int& hold_result, const bool final) { + if (final) { + hold_result += i; + } + }); + Kokkos::Profiling::pushRegion("push_region"); + Kokkos::Profiling::popRegion(); + uint32_t sectionId; + Kokkos::Profiling::createProfileSection("created_section", §ionId); + Kokkos::Profiling::startSection(sectionId); + Kokkos::Profiling::stopSection(sectionId); + Kokkos::Profiling::destroyProfileSection(sectionId); + Kokkos::Profiling::markEvent("profiling_event"); + } + Kokkos::finalize(); +} diff --git a/lib/kokkos/core/unit_test/tools/TestCInterface.c b/lib/kokkos/core/unit_test/tools/TestCInterface.c new file mode 100644 index 0000000000..66e68154e9 --- /dev/null +++ b/lib/kokkos/core/unit_test/tools/TestCInterface.c @@ -0,0 +1,2 @@ +#include +int main(){} diff --git a/lib/kokkos/core/unit_test/tools/TestTuning.cpp b/lib/kokkos/core/unit_test/tools/TestTuning.cpp new file mode 100644 index 0000000000..1a002e2314 --- /dev/null +++ b/lib/kokkos/core/unit_test/tools/TestTuning.cpp @@ -0,0 +1,196 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// This file tests the primitives of the Tuning system + +#include +#include +#include +#include +#include +#include + +static size_t expectedNumberOfContextVariables; +static int64_t expectedContextVariableValue; +static std::unordered_map + candidate_value_map; + +int main() { + Kokkos::initialize(); + { + auto context = Kokkos::Tools::Experimental::get_new_context_id(); + + Kokkos::Tools::Experimental::VariableInfo contextVariableInfo; + + contextVariableInfo.category = Kokkos::Tools::Experimental:: + StatisticalCategory::kokkos_value_categorical; + contextVariableInfo.type = + Kokkos::Tools::Experimental::ValueType::kokkos_value_int64; + contextVariableInfo.valueQuantity = + Kokkos::Tools::Experimental::CandidateValueType::kokkos_value_unbounded; + + Kokkos::Tools::Experimental::VariableInfo tuningVariableInfo; + + tuningVariableInfo.category = Kokkos::Tools::Experimental:: + StatisticalCategory::kokkos_value_categorical; + tuningVariableInfo.type = + Kokkos::Tools::Experimental::ValueType::kokkos_value_int64; + tuningVariableInfo.valueQuantity = + Kokkos::Tools::Experimental::CandidateValueType::kokkos_value_set; + + std::vector candidate_value_vector = {0, 1, 2, 3, 4, + 5, 6, 7, 8, 9}; + + Kokkos::Tools::Experimental::SetOrRange allowed_values = + Kokkos::Tools::Experimental::make_candidate_set( + candidate_value_vector.size(), candidate_value_vector.data()); + // test that ID's are transmitted to the tool + Kokkos::Tools::Experimental::set_declare_output_type_callback( + [](const char*, const size_t, + Kokkos::Tools::Experimental::VariableInfo* info) { + if (info->type != + Kokkos::Tools::Experimental::ValueType::kokkos_value_int64) { + throw(std::runtime_error("Tuning Variable has wrong type")); + } + }); + Kokkos::Tools::Experimental::set_declare_input_type_callback( + [](const char*, const size_t, + Kokkos::Tools::Experimental::VariableInfo* info) { + if (info->type != + Kokkos::Tools::Experimental::ValueType::kokkos_value_int64) { + throw(std::runtime_error("Context Variable has wrong type")); + } + }); + tuningVariableInfo.candidates = allowed_values; + auto contextVariableId = Kokkos::Tools::Experimental::declare_input_type( + "kokkos.testing.context_variable", contextVariableInfo); + auto tuningVariableId = Kokkos::Tools::Experimental::declare_output_type( + "kokkos.testing.tuning_variable", tuningVariableInfo); + + // test that we correctly pass context values, and receive tuning variables + // back in return + Kokkos::Tools::Experimental::VariableValue contextValues[] = { + Kokkos::Tools::Experimental::make_variable_value(contextVariableId, + int64_t(0))}; + Kokkos::Tools::Experimental::set_input_values(context, 1, contextValues); + + Kokkos::Tools::Experimental::set_request_output_values_callback( + [](const size_t, const size_t, + const Kokkos::Tools::Experimental::VariableValue* context_values, + const size_t, + Kokkos::Tools::Experimental::VariableValue* tuning_values) { + auto candidate_values = tuning_values[0].metadata->candidates; + if (context_values[0].value.int_value != + expectedContextVariableValue) { + throw std::runtime_error( + "Context variables not correctly passed to tuning callbacks"); + } + int tuningVariableSetSize = candidate_values.set.size; + std::cout << "Set of size " << tuningVariableSetSize << std::endl; + // tuning methodology via https://xkcd.com/221/ + tuning_values[0].value.int_value = + candidate_values.set.values.int_value[4 % tuningVariableSetSize]; + }); + + Kokkos::Tools::Experimental::VariableValue tuningValues[] = { + Kokkos::Tools::Experimental::make_variable_value(tuningVariableId, + int64_t(0))}; + + Kokkos::Tools::Experimental::request_output_values(context, 1, + tuningValues); + std::cout << tuningValues[0].value.int_value << "," + << candidate_value_vector[4] << std::endl; + if (tuningValues[0].value.int_value != candidate_value_vector[4]) { + throw std::runtime_error("Tuning value return is incorrect"); + } + + Kokkos::Tools::Experimental::end_context(context); + + // test nested contexts + auto outerContext = Kokkos::Tools::Experimental::get_new_context_id(); + auto innerContext = Kokkos::Tools::Experimental::get_new_context_id(); + + Kokkos::Tools::Experimental::VariableInfo secondContextVariableInfo; + + secondContextVariableInfo.category = Kokkos::Tools::Experimental:: + StatisticalCategory::kokkos_value_categorical; + secondContextVariableInfo.type = + Kokkos::Tools::Experimental::ValueType::kokkos_value_int64; + secondContextVariableInfo.valueQuantity = + Kokkos::Tools::Experimental::CandidateValueType::kokkos_value_unbounded; + auto secondContextVariableId = + Kokkos::Tools::Experimental::declare_output_type( + "kokkos.testing.second_context_variable", + secondContextVariableInfo); + + Kokkos::Tools::Experimental::VariableValue contextValueTwo[] = { + Kokkos::Tools::Experimental::make_variable_value( + secondContextVariableId, int64_t(1))}; + + Kokkos::Tools::Experimental::set_request_output_values_callback( + [](const size_t, const size_t num_context_variables, + const Kokkos::Tools::Experimental::VariableValue*, const size_t, + Kokkos::Tools::Experimental::VariableValue*) { + std::cout << "Expect " << expectedNumberOfContextVariables + << ", have " << num_context_variables << std::endl; + if (num_context_variables != expectedNumberOfContextVariables) { + throw( + std::runtime_error("Incorrect number of context variables in " + "nested tuning contexts")); + } + }); + Kokkos::Tools::Experimental::set_input_values(outerContext, 1, + contextValues); + expectedNumberOfContextVariables = 1; + Kokkos::Tools::Experimental::request_output_values(outerContext, 1, + tuningValues); + Kokkos::Tools::Experimental::set_input_values(innerContext, 1, + contextValueTwo); + expectedNumberOfContextVariables = 2; + Kokkos::Tools::Experimental::request_output_values(innerContext, 1, + tuningValues); + } // end Kokkos block + + Kokkos::finalize(); +} diff --git a/lib/kokkos/core/unit_test/tools/printing-tool.cpp b/lib/kokkos/core/unit_test/tools/printing-tool.cpp new file mode 100644 index 0000000000..c2abada0a9 --- /dev/null +++ b/lib/kokkos/core/unit_test/tools/printing-tool.cpp @@ -0,0 +1,118 @@ + +#include +#include + +struct Kokkos_Profiling_KokkosPDeviceInfo; + +struct SpaceHandle { + char name[64]; +}; + +const int parallel_for_id = 0; +const int parallel_reduce_id = 1; +const int parallel_scan_id = 2; + +extern "C" void kokkosp_init_library( + const int /*loadSeq*/, const uint64_t /*interfaceVer*/, + const uint32_t /*devInfoCount*/, + Kokkos_Profiling_KokkosPDeviceInfo* /* deviceInfo */) { + std::cout << "kokkosp_init_library::"; +} + +extern "C" void kokkosp_finalize_library() { + std::cout << "kokkosp_finalize_library::"; +} + +extern "C" void kokkosp_begin_parallel_for(const char* name, + const uint32_t devID, + uint64_t* kID) { + *kID = parallel_for_id; + std::cout << "kokkosp_begin_parallel_for:" << name << ":" << devID << ":" + << *kID << "::"; +} + +extern "C" void kokkosp_end_parallel_for(const uint64_t kID) { + std::cout << "kokkosp_end_parallel_for:" << kID << "::"; +} + +extern "C" void kokkosp_begin_parallel_scan(const char* name, + const uint32_t devID, + uint64_t* kID) { + *kID = parallel_scan_id; + std::cout << "kokkosp_begin_parallel_scan:" << name << ":" << devID << ":" + << *kID << "::"; +} + +extern "C" void kokkosp_end_parallel_scan(const uint64_t kID) { + std::cout << "kokkosp_end_parallel_scan:" << kID << "::"; +} + +extern "C" void kokkosp_begin_parallel_reduce(const char* name, + const uint32_t devID, + uint64_t* kID) { + *kID = parallel_reduce_id; + std::cout << "kokkosp_begin_parallel_reduce:" << name << ":" << devID << ":" + << *kID << "::"; +} + +extern "C" void kokkosp_end_parallel_reduce(const uint64_t kID) { + std::cout << "kokkosp_end_parallel_reduce:" << kID << "::"; +} + +extern "C" void kokkosp_push_profile_region(char* regionName) { + std::cout << "kokkosp_push_profile_region:" << regionName << "::"; +} + +extern "C" void kokkosp_pop_profile_region() { + std::cout << "kokkosp_pop_profile_region::"; +} + +extern "C" void kokkosp_allocate_data(SpaceHandle handle, const char* name, + void* ptr, uint64_t size) { + std::cout << "kokkosp_allocate_data:" << handle.name << ":" << name << ":" + << ptr << ":" << size << "::"; +} + +extern "C" void kokkosp_deallocate_data(SpaceHandle handle, const char* name, + void* ptr, uint64_t size) { + std::cout << "kokkosp_deallocate_data:" << handle.name << ":" << name << ":" + << ptr << ":" << size << "::"; +} + +extern "C" void kokkosp_begin_deep_copy(SpaceHandle dst_handle, + const char* dst_name, + const void* dst_ptr, + SpaceHandle src_handle, + const char* src_name, + const void* src_ptr, uint64_t size) { + std::cout << "kokkosp_begin_deep_copy:" << dst_handle.name << ":" << dst_name + << ":" << dst_ptr << ":" << src_handle.name << ":" << src_name + << ":" << src_ptr << ":" << size << "::"; +} + +extern "C" void kokkosp_end_deep_copy() { + std::cout << "kokkosp_end_deep_copy::"; +} + +uint32_t section_id = 3; +extern "C" void kokkosp_create_profile_section(const char* name, + uint32_t* sec_id) { + *sec_id = section_id; + std::cout << "kokkosp_create_profile_section:" << name << ":" << *sec_id + << "::"; +} + +extern "C" void kokkosp_start_profile_section(uint32_t sec_id) { + std::cout << "kokkosp_start_profile_section:" << sec_id << "::"; +} + +extern "C" void kokkosp_stop_profile_section(uint32_t sec_id) { + std::cout << "kokkosp_stop_profile_section:" << sec_id << "::"; +} +extern "C" void kokkosp_destroy_profile_section(uint32_t sec_id) { + std::cout << "kokkosp_destroy_profile_section:" << sec_id << "::"; +} + +extern "C" void kokkosp_profile_event(const char* name) { + std::cout << "kokkosp_profile_event:" << name << "::"; +} diff --git a/lib/kokkos/example/CMakeLists.txt b/lib/kokkos/example/CMakeLists.txt index 34157329d0..3db566f83f 100644 --- a/lib/kokkos/example/CMakeLists.txt +++ b/lib/kokkos/example/CMakeLists.txt @@ -5,8 +5,7 @@ KOKKOS_SUBPACKAGE(Example) KOKKOS_ADD_EXAMPLE_DIRECTORIES(query_device) -if(NOT Kokkos_ENABLE_CUDA) - KOKKOS_ADD_EXAMPLE_DIRECTORIES(tutorial) -endif() +KOKKOS_ADD_EXAMPLE_DIRECTORIES(tutorial) + KOKKOS_SUBPACKAGE_POSTPROCESS() diff --git a/lib/kokkos/example/build_cmake_in_tree/CMakeLists.txt b/lib/kokkos/example/build_cmake_in_tree/CMakeLists.txt index 8e1aa04727..7217807072 100644 --- a/lib/kokkos/example/build_cmake_in_tree/CMakeLists.txt +++ b/lib/kokkos/example/build_cmake_in_tree/CMakeLists.txt @@ -1,44 +1,19 @@ -# Kokkos requires CMake version 3.1 or higher and that you have the following -# line with a version of 3.1 or higher as the first line of your project: -# cmake_minimum_required(VERSION 3.1) -# -# The other CMake commands required to build Kokkos as part of your application -# are: -# add_subdirectory(path/to/kokkos) -# target_link_libraries(executable or library) -# -# If Kokkos is not a subdirectory of your project, you will also need to pass a -# binary directory to add_subdirectory(). We had to pass the binary directory -# for this example for that reason. Note that target_link_libraries() can be -# called on a target added by add_executable(), add_library(), or another -# similar command. -# -# All the flags, etc. required to build using the Kokkos library are -# transitively added to targets which depend on the library. -# -# The CMake variables CMAKE_CXX_STANDARD and CMAKE_CXX_EXTENSIONS are -# respected. We recommend that you set CMAKE_CXX_EXTENSIONS to OFF. -# Otherwise, CMake defaults to using extensions for the C++ standard, and the -# GNU extensions (-std=gnu++11) will be used for compilers that support it -# instead of standard C++11 (-std=c++11). -# -# A bunch of build options are added as variables (all starting with KOKKOS_) -# to the build. Check them out using ccmake or the CMake GUI. -# -# Building this example: -# 1. Create a build directory. -# 2. cd /path/to/build/directory -# 3. cmake /path/to/example -# 4. make +# Kokkos minimally requires 3.10 right now, +# but your project can set it higher +cmake_minimum_required(VERSION 3.10) -cmake_minimum_required(VERSION 3.1) -project(Example CXX C Fortran) - -list(APPEND CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -O3) +# Project can mix languages - must have C++ support +# Kokkos flags are only applied to C++ files +project(Example CXX) +# We build kokkos as a subdirectory of our project add_subdirectory(${Example_SOURCE_DIR}/../.. ${Example_BINARY_DIR}/kokkos) -include_directories(${Kokkos_INCLUDE_DIRS_RET}) +add_executable(example cmake_example.cpp) + +# This is the only line required to set up all compiler/linker flags +target_link_libraries(example Kokkos::kokkos) -add_executable(example cmake_example.cpp foo.f) -target_link_libraries(example kokkos) +# Adds a test for the executable +enable_testing() +add_test(NAME KokkosInTree_Verify COMMAND example 10) diff --git a/lib/kokkos/example/build_cmake_in_tree/cmake_example.cpp b/lib/kokkos/example/build_cmake_in_tree/cmake_example.cpp index 63875d013f..b0fd9822a4 100644 --- a/lib/kokkos/example/build_cmake_in_tree/cmake_example.cpp +++ b/lib/kokkos/example/build_cmake_in_tree/cmake_example.cpp @@ -45,8 +45,6 @@ #include #include -extern "C" void print_fortran_(); - int main(int argc, char* argv[]) { Kokkos::initialize(argc, argv); Kokkos::DefaultExecutionSpace::print_configuration(std::cout); @@ -84,8 +82,6 @@ int main(int argc, char* argv[]) { count_time = timer.seconds(); printf("Sequential: %ld %10.6f\n", seq_count, count_time); - print_fortran_(); - Kokkos::finalize(); return (count == seq_count) ? 0 : -1; diff --git a/lib/kokkos/example/build_cmake_in_tree/foo.f b/lib/kokkos/example/build_cmake_in_tree/foo.f deleted file mode 100644 index e618455283..0000000000 --- a/lib/kokkos/example/build_cmake_in_tree/foo.f +++ /dev/null @@ -1,4 +0,0 @@ - FUNCTION print_fortran() - PRINT *, 'Hello World from Fortran' - RETURN - END diff --git a/lib/kokkos/example/build_cmake_installed/CMakeLists.txt b/lib/kokkos/example/build_cmake_installed/CMakeLists.txt index 7fdb94d454..7998d2914d 100644 --- a/lib/kokkos/example/build_cmake_installed/CMakeLists.txt +++ b/lib/kokkos/example/build_cmake_installed/CMakeLists.txt @@ -1,42 +1,24 @@ -# Kokkos requires CMake version 3.1 or higher and that you have the following -# line with a version of 3.1 or higher as the first line of your project: -# cmake_minimum_required(VERSION 3.1) -# -# The other CMake commands required to build Kokkos as part of your application -# are: -# add_subdirectory(path/to/kokkos) -# target_link_libraries(executable or library) -# -# If Kokkos is not a subdirectory of your project, you will also need to pass a -# binary directory to add_subdirectory(). We had to pass the binary directory -# for this example for that reason. Note that target_link_libraries() can be -# called on a target added by add_executable(), add_library(), or another -# similar command. -# -# All the flags, etc. required to build using the Kokkos library are -# transitively added to targets which depend on the library. -# -# The CMake variables CMAKE_CXX_STANDARD and CMAKE_CXX_EXTENSIONS are -# respected. We recommend that you set CMAKE_CXX_EXTENSIONS to OFF. -# Otherwise, CMake defaults to using extensions for the C++ standard, and the -# GNU extensions (-std=gnu++11) will be used for compilers that support it -# instead of standard C++11 (-std=c++11). -# -# A bunch of build options are added as variables (all starting with KOKKOS_) -# to the build. Check them out using ccmake or the CMake GUI. -# -# Building this example: -# 1. Create a build directory. -# 2. cd /path/to/build/directory -# 3. cmake /path/to/example -# 4. make +# Kokkos minimally requires 3.10 right now, +# but your project can set it higher +cmake_minimum_required(VERSION 3.10) -cmake_minimum_required(VERSION 3.12) -project(Example CXX C Fortran) +# Projects can safely mix languages - must have C++ support +# Kokkos flags will only apply to C++ files +project(Example CXX Fortran) -list(APPEND CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -O3) +# You need this for using Kokkos_ROOT variable +if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.12.0") + message(STATUS "Setting policy CMP0074 to use _ROOT variables") + cmake_policy(SET CMP0074 NEW) +endif() -find_package(Kokkos) +# Look for an installed Kokkos +find_package(Kokkos REQUIRED) add_executable(example cmake_example.cpp foo.f) + +# This is the only thing required to set up compiler/linker flags target_link_libraries(example Kokkos::kokkos) + +enable_testing() +add_test(NAME KokkosInTree_Verify COMMAND example 10) diff --git a/lib/kokkos/example/build_cmake_installed/cmake_example.cpp b/lib/kokkos/example/build_cmake_installed/cmake_example.cpp index 63875d013f..fd05172cb8 100644 --- a/lib/kokkos/example/build_cmake_installed/cmake_example.cpp +++ b/lib/kokkos/example/build_cmake_installed/cmake_example.cpp @@ -47,6 +47,12 @@ extern "C" void print_fortran_(); +struct CountFunctor { + KOKKOS_FUNCTION void operator()(const long i, long& lcount) const { + lcount += (i % 2) == 0; + } +}; + int main(int argc, char* argv[]) { Kokkos::initialize(argc, argv); Kokkos::DefaultExecutionSpace::print_configuration(std::cout); @@ -66,9 +72,8 @@ int main(int argc, char* argv[]) { // Compute the number of even integers from 0 to n-1, in parallel. long count = 0; - Kokkos::parallel_reduce( - n, KOKKOS_LAMBDA(const long i, long& lcount) { lcount += (i % 2) == 0; }, - count); + CountFunctor functor; + Kokkos::parallel_reduce(n, functor, count); double count_time = timer.seconds(); printf(" Parallel: %ld %10.6f\n", count, count_time); diff --git a/lib/kokkos/example/make_buildlink/main.cpp b/lib/kokkos/example/make_buildlink/main.cpp index d963002034..2dbfb2687c 100644 --- a/lib/kokkos/example/make_buildlink/main.cpp +++ b/lib/kokkos/example/make_buildlink/main.cpp @@ -3,9 +3,9 @@ int main(int argc, char* argv[]) { Kokkos::initialize(argc, argv); { - int N = (argc > 1) ? atoi(argv[1]) : 10000; - int M = (argc > 2) ? atoi(argv[2]) : 10000; - int R = (argc > 3) ? atoi(argv[3]) : 10; + int N = (argc > 1) ? std::stoi(argv[1]) : 10000; + int M = (argc > 2) ? std::stoi(argv[2]) : 10000; + int R = (argc > 3) ? std::stoi(argv[3]) : 10; printf("Called with: %i %i %i\n", N, M, R); } diff --git a/lib/kokkos/example/tutorial/01_hello_world/hello_world.cpp b/lib/kokkos/example/tutorial/01_hello_world/hello_world.cpp index 00adbc78bc..bdb630a1ad 100644 --- a/lib/kokkos/example/tutorial/01_hello_world/hello_world.cpp +++ b/lib/kokkos/example/tutorial/01_hello_world/hello_world.cpp @@ -67,10 +67,10 @@ // instance method. struct hello_world { // If a functor has an "execution_space" (or "execution_space", for - // backwards compatibility) public typedef, parallel_* will only run + // backwards compatibility) public alias, parallel_* will only run // the functor in that execution space. That's a good way to mark a // functor as specific to an execution space. If the functor lacks - // this typedef, parallel_for will run it in the default execution + // this alias, parallel_for will run it in the default execution // space, unless you tell it otherwise (that's an advanced topic; // see "execution policies"). @@ -107,7 +107,7 @@ int main(int argc, char* argv[]) { // Run the above functor on the default Kokkos execution space in // parallel, with a parallel for loop count of 15. // - // The Kokkos::DefaultExecutionSpace typedef gives the default + // The Kokkos::DefaultExecutionSpace alias gives the default // execution space. Depending on how Kokkos was configured, this // could be OpenMP, Threads, Cuda, Serial, or even some other // execution space. diff --git a/lib/kokkos/example/tutorial/02_simple_reduce/simple_reduce.cpp b/lib/kokkos/example/tutorial/02_simple_reduce/simple_reduce.cpp index 01abd3d3bf..2b7668e515 100644 --- a/lib/kokkos/example/tutorial/02_simple_reduce/simple_reduce.cpp +++ b/lib/kokkos/example/tutorial/02_simple_reduce/simple_reduce.cpp @@ -63,8 +63,8 @@ // it defaults to binary operator+ (adding numbers together). struct squaresum { // Specify the type of the reduction value with a "value_type" - // typedef. In this case, the reduction value has type int. - typedef int value_type; + // alias. In this case, the reduction value has type int. + using value_type = int; // The reduction functor's operator() looks a little different than // the parallel_for functor's operator(). For the reduction, we diff --git a/lib/kokkos/example/tutorial/03_simple_view/simple_view.cpp b/lib/kokkos/example/tutorial/03_simple_view/simple_view.cpp index f4924c71fa..46cac62b9d 100644 --- a/lib/kokkos/example/tutorial/03_simple_view/simple_view.cpp +++ b/lib/kokkos/example/tutorial/03_simple_view/simple_view.cpp @@ -67,7 +67,7 @@ // // The first dimension of the View is the dimension over which it is // efficient for Kokkos to parallelize. -typedef Kokkos::View view_type; +using view_type = Kokkos::View; // parallel_for functor that fills the View given to its constructor. // The View must already have been allocated. @@ -102,8 +102,8 @@ struct ReduceFunctor { ReduceFunctor(view_type a_) : a(a_) {} // If you write a functor to do a reduction, you must specify the - // type of the reduction result via a public 'value_type' typedef. - typedef double value_type; + // type of the reduction result via a public 'value_type' alias. + using value_type = double; KOKKOS_INLINE_FUNCTION void operator()(int i, double& lsum) const { diff --git a/lib/kokkos/example/tutorial/03_simple_view_lambda/simple_view_lambda.cpp b/lib/kokkos/example/tutorial/03_simple_view_lambda/simple_view_lambda.cpp index d5590e5ccd..33b3a1a7db 100644 --- a/lib/kokkos/example/tutorial/03_simple_view_lambda/simple_view_lambda.cpp +++ b/lib/kokkos/example/tutorial/03_simple_view_lambda/simple_view_lambda.cpp @@ -66,7 +66,7 @@ // // The first dimension of the View is the dimension over which it is // efficient for Kokkos to parallelize. -typedef Kokkos::View view_type; +using view_type = Kokkos::View; int main(int argc, char* argv[]) { Kokkos::initialize(argc, argv); diff --git a/lib/kokkos/example/tutorial/04_simple_memoryspaces/simple_memoryspaces.cpp b/lib/kokkos/example/tutorial/04_simple_memoryspaces/simple_memoryspaces.cpp index 603d139df9..40ad6123e7 100644 --- a/lib/kokkos/example/tutorial/04_simple_memoryspaces/simple_memoryspaces.cpp +++ b/lib/kokkos/example/tutorial/04_simple_memoryspaces/simple_memoryspaces.cpp @@ -47,7 +47,7 @@ // The type of a two-dimensional N x 3 array of double. // It lives in Kokkos' default memory space. -typedef Kokkos::View view_type; +using view_type = Kokkos::View; // The "HostMirror" type corresponding to view_type above is also a // two-dimensional N x 3 array of double. However, it lives in the @@ -61,12 +61,12 @@ typedef Kokkos::View view_type; // performance penalties then it is its own host_mirror_space. This is // the case for HostSpace, CudaUVMSpace and CudaHostPinnedSpace. -typedef view_type::HostMirror host_view_type; +using host_view_type = view_type::HostMirror; struct ReduceFunctor { view_type a; ReduceFunctor(view_type a_) : a(a_) {} - typedef int value_type; // Specify type for reduction value, lsum + using value_type = int; // Specify type for reduction value, lsum KOKKOS_INLINE_FUNCTION void operator()(int i, int &lsum) const { diff --git a/lib/kokkos/example/tutorial/05_simple_atomics/simple_atomics.cpp b/lib/kokkos/example/tutorial/05_simple_atomics/simple_atomics.cpp index 396b396879..caacc828e5 100644 --- a/lib/kokkos/example/tutorial/05_simple_atomics/simple_atomics.cpp +++ b/lib/kokkos/example/tutorial/05_simple_atomics/simple_atomics.cpp @@ -48,8 +48,8 @@ #include // Type of a one-dimensional length-N array of int. -typedef Kokkos::View view_type; -typedef view_type::HostMirror host_view_type; +using view_type = Kokkos::View; +using host_view_type = view_type::HostMirror; // This is a "zero-dimensional" View, that is, a View of a single // value (an int, in this case). Access the value using operator() // with no arguments: e.g., 'count()'. @@ -57,8 +57,8 @@ typedef view_type::HostMirror host_view_type; // Zero-dimensional Views are useful for reduction results that stay // resident in device memory, as well as for irregularly updated // shared state. We use it for the latter in this example. -typedef Kokkos::View count_type; -typedef count_type::HostMirror host_count_type; +using count_type = Kokkos::View; +using host_count_type = count_type::HostMirror; // Functor for finding a list of primes in a given set of numbers. If // run in parallel, the order of results is nondeterministic, because @@ -118,7 +118,7 @@ int main() { host_view_type h_result = Kokkos::create_mirror_view(result); host_count_type h_count = Kokkos::create_mirror_view(count); - typedef view_type::size_type size_type; + using size_type = view_type::size_type; // Fill the 'data' array on the host with random numbers. We assume // that they come from some process which is only implemented on the // host, via some library. (That's true in this case.) diff --git a/lib/kokkos/example/tutorial/06_simple_mdrangepolicy/simple_mdrangepolicy.cpp b/lib/kokkos/example/tutorial/06_simple_mdrangepolicy/simple_mdrangepolicy.cpp index 62c087c32c..07b99087d4 100644 --- a/lib/kokkos/example/tutorial/06_simple_mdrangepolicy/simple_mdrangepolicy.cpp +++ b/lib/kokkos/example/tutorial/06_simple_mdrangepolicy/simple_mdrangepolicy.cpp @@ -62,7 +62,7 @@ // Simple functor for computing/storing the product of indices in a View v template struct MDFunctor { - typedef long value_type; + using value_type = long; ViewType v; size_t size; @@ -105,16 +105,16 @@ int main(int argc, char* argv[]) { // Bound(s) for MDRangePolicy const int n = 100; - // ViewType typedefs for Rank<2>, Rank<3> for example usage - typedef double ScalarType; - typedef typename Kokkos::View ViewType_2D; - typedef typename Kokkos::View ViewType_3D; + // ViewType aliases for Rank<2>, Rank<3> for example usage + using ScalarType = double; + using ViewType_2D = typename Kokkos::View; + using ViewType_3D = typename Kokkos::View; ///////////////////////////////////////////////////////////////////////////// // Explanation of MDRangePolicy usage, template parameters, constructor // arguments // - // MDRangePolicy typedefs for Rank<2>, Rank<3> cases + // MDRangePolicy aliases for Rank<2>, Rank<3> cases // Required template parameters: // Kokkos::Rank: where N=rank // @@ -126,7 +126,7 @@ int main(int argc, char* argv[]) { // tiles; // defaults based on the execution space similar to Kokkos::Layout // - // e.g. typedef Rank<2, Iterate::Left, Iterate::Left> rank2ll; + // e.g. using rank2ll = Rank<2, Iterate::Left, Iterate::Left>; // // // Optional template parameters to MDRangePolicy: @@ -160,9 +160,8 @@ int main(int argc, char* argv[]) { long incorrect_count_2d = 0; { // Rank<2> Case: Rank is provided, all other parameters are default - typedef typename Kokkos::Experimental::MDRangePolicy< - Kokkos::Experimental::Rank<2> > - MDPolicyType_2D; + using MDPolicyType_2D = typename Kokkos::Experimental::MDRangePolicy< + Kokkos::Experimental::Rank<2> >; // Construct 2D MDRangePolicy: lower and upper bounds provided, tile dims // defaulted @@ -186,10 +185,9 @@ int main(int argc, char* argv[]) { long incorrect_count_3d = 0; { // Rank<3> Case: Rank, inner iterate pattern, outer iterate pattern provided - typedef typename Kokkos::Experimental::MDRangePolicy< + using MDPolicyType_3D = typename Kokkos::Experimental::MDRangePolicy< Kokkos::Experimental::Rank<3, Kokkos::Experimental::Iterate::Left, - Kokkos::Experimental::Iterate::Left> > - MDPolicyType_3D; + Kokkos::Experimental::Iterate::Left> >; // Construct 3D MDRangePolicy: lower, upper bounds, tile dims provided MDPolicyType_3D mdpolicy_3d({{0, 0, 0}}, {{n, n, n}}, {{4, 4, 4}}); diff --git a/lib/kokkos/example/tutorial/Advanced_Views/01_data_layouts/data_layouts.cpp b/lib/kokkos/example/tutorial/Advanced_Views/01_data_layouts/data_layouts.cpp index 9bfa49456a..643ac87a86 100644 --- a/lib/kokkos/example/tutorial/Advanced_Views/01_data_layouts/data_layouts.cpp +++ b/lib/kokkos/example/tutorial/Advanced_Views/01_data_layouts/data_layouts.cpp @@ -51,14 +51,14 @@ // which means "column major," the same as in Fortran, the BLAS, or // LAPACK. right_type has "layout right," which means "row major," // the same as in C, C++, or Java. -typedef Kokkos::View left_type; -typedef Kokkos::View right_type; +using left_type = Kokkos::View; +using right_type = Kokkos::View; // This is a one-dimensional View, so the layout matters less. // However, it still has a layout! Since its layout is not specified // explicitly in the type, its layout is a function of the memory // space. For example, the default Cuda layout is LayoutLeft, and the // default Host layout is LayoutRight. -typedef Kokkos::View view_type; +using view_type = Kokkos::View; // parallel_for functor that fills the given View with some data. It // expects to access the View by rows in parallel: each call i of @@ -114,7 +114,7 @@ struct contraction { struct dot { view_type a; dot(view_type a_) : a(a_) {} - typedef double value_type; // Specify type for reduction target, lsum + using value_type = double; // Specify type for reduction target, lsum KOKKOS_INLINE_FUNCTION void operator()(const view_type::size_type i, double& lsum) const { lsum += a(i) * a(i); diff --git a/lib/kokkos/example/tutorial/Advanced_Views/02_memory_traits/memory_traits.cpp b/lib/kokkos/example/tutorial/Advanced_Views/02_memory_traits/memory_traits.cpp index da6478a02e..cff215d0eb 100644 --- a/lib/kokkos/example/tutorial/Advanced_Views/02_memory_traits/memory_traits.cpp +++ b/lib/kokkos/example/tutorial/Advanced_Views/02_memory_traits/memory_traits.cpp @@ -47,7 +47,7 @@ #include #include -typedef Kokkos::View view_type; +using view_type = Kokkos::View; // Kokkos::Views have an MemoryTraits template parameter which // allows users to specify usage scenarios of a View. // Some of those act simply as hints, which can be used to insert @@ -71,10 +71,10 @@ typedef Kokkos::View view_type; // data (i.e. const double* and double*). While these pointers can point to the // same data you should not use them together if that brakes the const guarantee // of the first pointer. -typedef Kokkos::View > - view_type_rnd; -typedef Kokkos::View idx_type; -typedef idx_type::HostMirror idx_type_host; +using view_type_rnd = + Kokkos::View >; +using idx_type = Kokkos::View; +using idx_type_host = idx_type::HostMirror; // We template this functor on the ViewTypes to show the effect of the // RandomAccess trait. diff --git a/lib/kokkos/example/tutorial/Advanced_Views/03_subviews/subviews.cpp b/lib/kokkos/example/tutorial/Advanced_Views/03_subviews/subviews.cpp index df6a09f828..ca2eeac416 100644 --- a/lib/kokkos/example/tutorial/Advanced_Views/03_subviews/subviews.cpp +++ b/lib/kokkos/example/tutorial/Advanced_Views/03_subviews/subviews.cpp @@ -52,7 +52,7 @@ #include #include -typedef Kokkos::View mesh_type; +using mesh_type = Kokkos::View; // These View types represent subviews of the mesh. Some of the Views // have layout LayoutStride, meaning that they have run-time "strides" @@ -63,10 +63,10 @@ typedef Kokkos::View mesh_type; // may safely always use a LayoutStride layout when taking a subview // of a LayoutRight or LayoutLeft subview, but strided accesses may // cost a bit more, especially for 1-D Views. -typedef Kokkos::View xz_plane_type; -typedef Kokkos::View yz_plane_type; -typedef Kokkos::View xy_plane_type; -typedef Kokkos::View inner_mesh_type; +using xz_plane_type = Kokkos::View; +using yz_plane_type = Kokkos::View; +using xy_plane_type = Kokkos::View; +using inner_mesh_type = Kokkos::View; // Functor to set all entries of a boundary of the mesh to a constant // value. The functor is templated on ViewType because different @@ -98,7 +98,7 @@ struct set_inner { KOKKOS_INLINE_FUNCTION void operator()(const typename ViewType::size_type i) const { - typedef typename ViewType::size_type size_type; + using size_type = typename ViewType::size_type; for (size_type j = 0; j < a.extent(1); ++j) { for (size_type k = 0; k < a.extent(2); ++k) { a(i, j, k) = value; @@ -118,7 +118,7 @@ struct update { KOKKOS_INLINE_FUNCTION void operator()(typename ViewType::size_type i) const { - typedef typename ViewType::size_type size_type; + using size_type = typename ViewType::size_type; i++; for (size_type j = 1; j < a.extent(1) - 1; j++) { for (size_type k = 1; k < a.extent(2) - 1; k++) { @@ -134,7 +134,7 @@ int main(int narg, char* arg[]) { using Kokkos::pair; using Kokkos::parallel_for; using Kokkos::subview; - typedef mesh_type::size_type size_type; + using size_type = mesh_type::size_type; Kokkos::initialize(narg, arg); diff --git a/lib/kokkos/example/tutorial/Advanced_Views/04_dualviews/dual_view.cpp b/lib/kokkos/example/tutorial/Advanced_Views/04_dualviews/dual_view.cpp index 86fe016203..174d13d102 100644 --- a/lib/kokkos/example/tutorial/Advanced_Views/04_dualviews/dual_view.cpp +++ b/lib/kokkos/example/tutorial/Advanced_Views/04_dualviews/dual_view.cpp @@ -66,30 +66,30 @@ // operations to help you manage memory take almost no time in that // case. This makes your code even more performance portable. -typedef Kokkos::DualView view_type; -typedef Kokkos::DualView idx_type; +using view_type = Kokkos::DualView; +using idx_type = Kokkos::DualView; template struct localsum { - // If the functor has a public 'execution_space' typedef, that defines + // If the functor has a public 'execution_space' alias, that defines // the functor's execution space (where it runs in parallel). This // overrides Kokkos' default execution space. - typedef ExecutionSpace execution_space; + using execution_space = ExecutionSpace; - typedef typename Kokkos::Impl::if_c< + using memory_space = typename Kokkos::Impl::if_c< std::is_same::value, - idx_type::memory_space, idx_type::host_mirror_space>::type memory_space; + idx_type::memory_space, idx_type::host_mirror_space>::type; // Get the view types on the particular device for which the functor // is instantiated. // - // "const_data_type" is a typedef in View (and DualView) which is + // "const_data_type" is an alias in View (and DualView) which is // the const version of the first template parameter of the View. // For example, the const_data_type version of double** is const // double**. Kokkos::View idx; - // "scalar_array_type" is a typedef in ViewTraits (and DualView) which is the + // "scalar_array_type" is an alias in ViewTraits (and DualView) which is the // array version of the value(s) stored in the View. Kokkos::View @@ -150,7 +150,7 @@ class ParticleType { protected: }; -typedef Kokkos::DualView ParticleTypes; +using ParticleTypes = Kokkos::DualView; int main(int narg, char* arg[]) { Kokkos::initialize(narg, arg); diff --git a/lib/kokkos/example/tutorial/Advanced_Views/05_NVIDIA_UVM/uvm_example.cpp b/lib/kokkos/example/tutorial/Advanced_Views/05_NVIDIA_UVM/uvm_example.cpp index 51b84cf184..a906ba1447 100644 --- a/lib/kokkos/example/tutorial/Advanced_Views/05_NVIDIA_UVM/uvm_example.cpp +++ b/lib/kokkos/example/tutorial/Advanced_Views/05_NVIDIA_UVM/uvm_example.cpp @@ -49,18 +49,18 @@ #include #ifdef KOKKOS_ENABLE_CUDA -typedef Kokkos::View view_type; -typedef Kokkos::View idx_type; +using view_type = Kokkos::View; +using idx_type = Kokkos::View; #else -typedef Kokkos::View view_type; -typedef Kokkos::View idx_type; +using view_type = Kokkos::View; +using idx_type = Kokkos::View; #endif template struct localsum { // Define the execution space for the functor (overrides the // DefaultExecutionSpace) - typedef Device execution_space; + using execution_space = Device; // Get the view types on the particular device the functor is instantiated for idx_type::const_type idx; diff --git a/lib/kokkos/example/tutorial/Advanced_Views/07_Overlapping_DeepCopy/overlapping_deepcopy.cpp b/lib/kokkos/example/tutorial/Advanced_Views/07_Overlapping_DeepCopy/overlapping_deepcopy.cpp index 4dac1c26e0..c582fa1704 100644 --- a/lib/kokkos/example/tutorial/Advanced_Views/07_Overlapping_DeepCopy/overlapping_deepcopy.cpp +++ b/lib/kokkos/example/tutorial/Advanced_Views/07_Overlapping_DeepCopy/overlapping_deepcopy.cpp @@ -106,7 +106,7 @@ struct MergeDevice { int main(int argc, char* argv[]) { int size = 100000000; Kokkos::initialize(); - int synch = atoi(argv[1]); + int synch = std::stoi(argv[1]); Kokkos::View d_a("Device A", size); Kokkos::View d_b("Device B", diff --git a/lib/kokkos/example/tutorial/Algorithms/01_random_numbers/random_numbers.cpp b/lib/kokkos/example/tutorial/Algorithms/01_random_numbers/random_numbers.cpp index a0771c4fca..9c5f2d62fc 100644 --- a/lib/kokkos/example/tutorial/Algorithms/01_random_numbers/random_numbers.cpp +++ b/lib/kokkos/example/tutorial/Algorithms/01_random_numbers/random_numbers.cpp @@ -48,7 +48,7 @@ #include #include -typedef Kokkos::HostSpace::execution_space DefaultHostType; +using DefaultHostType = Kokkos::HostSpace::execution_space; // Kokkos provides two different random number generators with a 64 bit and a // 1024 bit state. These generators are based on Vigna, Sebastiano (2014). "An @@ -108,8 +108,8 @@ int main(int argc, char* args[]) { } else { // Initialize Kokkos Kokkos::initialize(argc, args); - int size = atoi(args[1]); - int samples = atoi(args[2]); + int size = std::stoi(args[1]); + int samples = std::stoi(args[2]); // Create two random number generator pools one for 64bit states and one for // 1024 bit states Both take an 64 bit unsigned integer seed to initialize a diff --git a/lib/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/thread_teams.cpp b/lib/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/thread_teams.cpp index 77a5b4ce91..9afc144752 100644 --- a/lib/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/thread_teams.cpp +++ b/lib/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/thread_teams.cpp @@ -57,12 +57,12 @@ // league_size) is not limited by physical constraints. Its a pure logical // number. -typedef Kokkos::TeamPolicy<> team_policy; -typedef team_policy::member_type team_member; +using team_policy = Kokkos::TeamPolicy<>; +using team_member = team_policy::member_type; // Define a functor which can be launched using the TeamPolicy struct hello_world { - typedef int value_type; // Specify value type for reduction target, sum + using value_type = int; // Specify value type for reduction target, sum // This is a reduction operator which now takes as first argument the // TeamPolicy member_type. Every member of the team contributes to the diff --git a/lib/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/thread_teams_lambda.cpp b/lib/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/thread_teams_lambda.cpp index 6e29d5c3d6..a182b08b84 100644 --- a/lib/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/thread_teams_lambda.cpp +++ b/lib/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/thread_teams_lambda.cpp @@ -56,8 +56,8 @@ int main(int narg, char* args[]) { using Kokkos::parallel_reduce; - typedef Kokkos::TeamPolicy<> team_policy; - typedef typename team_policy::member_type team_member; + using team_policy = Kokkos::TeamPolicy<>; + using team_member = typename team_policy::member_type; Kokkos::initialize(narg, args); diff --git a/lib/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/nested_parallel_for.cpp b/lib/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/nested_parallel_for.cpp index 1c0b531c5c..29e23e904c 100644 --- a/lib/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/nested_parallel_for.cpp +++ b/lib/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/nested_parallel_for.cpp @@ -46,11 +46,11 @@ #include // See 01_thread_teams for an explanation of a basic TeamPolicy -typedef Kokkos::TeamPolicy<> team_policy; -typedef typename team_policy::member_type team_member; +using team_policy = Kokkos::TeamPolicy<>; +using team_member = typename team_policy::member_type; struct hello_world { - typedef int value_type; // Specify value type for reduction target, sum + using value_type = int; // Specify value type for reduction target, sum KOKKOS_INLINE_FUNCTION void operator()(const team_member& thread, int& sum) const { sum += 1; diff --git a/lib/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/vectorization.cpp b/lib/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/vectorization.cpp index cb679f7f5a..8f76110f08 100644 --- a/lib/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/vectorization.cpp +++ b/lib/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/vectorization.cpp @@ -60,13 +60,13 @@ // a thread execute every line of the operator as long as there are no // restricitons on them. Code lines can be restricted using Kokkos::single to // either execute once PerThread or execute once PerTeam. -typedef typename Kokkos::TeamPolicy<>::member_type team_member; +using team_member = typename Kokkos::TeamPolicy<>::member_type; struct SomeCorrelation { - typedef int value_type; // Specify value type for reduction target, sum - typedef Kokkos::DefaultExecutionSpace::scratch_memory_space shared_space; - typedef Kokkos::View - shared_1d_int; + using value_type = int; // Specify value type for reduction target, sum + using shared_space = Kokkos::DefaultExecutionSpace::scratch_memory_space; + using shared_1d_int = + Kokkos::View; Kokkos::View data; Kokkos::View gsum; @@ -136,7 +136,7 @@ struct SomeCorrelation { // The functor needs to define how much shared memory it requests given a // team_size. - size_t team_shmem_size(int team_size) const { + size_t team_shmem_size(int /*team_size*/) const { return shared_1d_int::shmem_size(data.extent(1)); } }; diff --git a/lib/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/team_scan.cpp b/lib/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/team_scan.cpp index 10c8971e5a..d360108925 100644 --- a/lib/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/team_scan.cpp +++ b/lib/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/team_scan.cpp @@ -48,11 +48,11 @@ #include #include -typedef Kokkos::DefaultExecutionSpace Device; -typedef Kokkos::HostSpace::execution_space Host; +using Device = Kokkos::DefaultExecutionSpace; +using Host = Kokkos::HostSpace::execution_space; -typedef Kokkos::TeamPolicy team_policy; -typedef team_policy::member_type team_member; +using team_policy = Kokkos::TeamPolicy; +using team_member = team_policy::member_type; static const int TEAM_SIZE = 16; diff --git a/lib/kokkos/example/tutorial/launch_bounds/launch_bounds_reduce.cpp b/lib/kokkos/example/tutorial/launch_bounds/launch_bounds_reduce.cpp index 800904dbce..92f82111f9 100644 --- a/lib/kokkos/example/tutorial/launch_bounds/launch_bounds_reduce.cpp +++ b/lib/kokkos/example/tutorial/launch_bounds/launch_bounds_reduce.cpp @@ -60,7 +60,7 @@ struct collision { // one i. // This function was chosen as one that very simply can increase the // register count. - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION int hash(int q) const { diff --git a/lib/kokkos/generate_makefile.bash b/lib/kokkos/generate_makefile.bash index 555f0b30a1..f8455dd3e6 100755 --- a/lib/kokkos/generate_makefile.bash +++ b/lib/kokkos/generate_makefile.bash @@ -94,12 +94,13 @@ display_help_text() { echo "--arch=[OPT]: Set target architectures. Options are:" echo " [AMD]" echo " AMDAVX = AMD CPU" - echo " EPYC = AMD EPYC Zen-Core CPU" + echo " ZEN = AMD Zen-Core CPU" + echo " ZEN2 = AMD Zen2-Core CPU" echo " [ARM]" - echo " ARMv80 = ARMv8.0 Compatible CPU" - echo " ARMv81 = ARMv8.1 Compatible CPU" - echo " ARMv8-ThunderX = ARMv8 Cavium ThunderX CPU" - echo " ARMv8-TX2 = ARMv8 Cavium ThunderX2 CPU" + echo " ARMV80 = ARMv8.0 Compatible CPU" + echo " ARMV81 = ARMv8.1 Compatible CPU" + echo " ARMV8_THUNDERX = ARMv8 Cavium ThunderX CPU" + echo " ARMV8_THUNDERX2 = ARMv8 Cavium ThunderX2 CPU" echo " [IBM]" echo " BGQ = IBM Blue Gene Q" echo " Power7 = IBM POWER7 and POWER7+ CPUs" diff --git a/lib/kokkos/gnu_generate_makefile.bash b/lib/kokkos/gnu_generate_makefile.bash index 42b26bf4a4..5a23e1f978 100755 --- a/lib/kokkos/gnu_generate_makefile.bash +++ b/lib/kokkos/gnu_generate_makefile.bash @@ -2,8 +2,6 @@ KOKKOS_DEVICES="" -KOKKOS_DO_EXAMPLES="1" - while [[ $# > 0 ]] do key="$1" @@ -81,9 +79,6 @@ do echo "Warning: ${key} is deprecated" echo "Call make with appropriate -j flag" ;; - --no-examples) - KOKKOS_DO_EXAMPLES="0" - ;; --compiler*) COMPILER="${key#*=}" CNUM=$(command -v ${COMPILER} 2>&1 >/dev/null | grep "no ${COMPILER}" | wc -l) @@ -127,7 +122,8 @@ do echo "--arch=[OPT]: Set target architectures. Options are:" echo " [AMD]" echo " AMDAVX = AMD CPU" - echo " EPYC = AMD EPYC Zen-Core CPU" + echo " ZEN = AMD Zen-Core CPU" + echo " ZEN2 = AMD Zen2-Core CPU" echo " [ARM]" echo " ARMv80 = ARMv8.0 Compatible CPU" echo " ARMv81 = ARMv8.1 Compatible CPU" @@ -309,12 +305,6 @@ mkdir -p containers/performance_tests mkdir -p algorithms mkdir -p algorithms/unit_tests mkdir -p algorithms/performance_tests -mkdir -p example -mkdir -p example/fixture -mkdir -p example/feint -mkdir -p example/fenl -mkdir -p example/make_buildlink -mkdir -p example/tutorial KOKKOS_SETTINGS="${KOKKOS_SETTINGS_NO_KOKKOS_PATH} KOKKOS_PATH=${KOKKOS_PATH}" @@ -374,61 +364,6 @@ echo "" >> algorithms/unit_tests/Makefile echo "clean:" >> algorithms/unit_tests/Makefile echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/algorithms/unit_tests/Makefile ${KOKKOS_SETTINGS} clean" >> algorithms/unit_tests/Makefile -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/fixture/Makefile -echo "" >> example/fixture/Makefile -echo "all:" >> example/fixture/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS}" >> example/fixture/Makefile -echo "" >> example/fixture/Makefile -echo "test: all" >> example/fixture/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS} test" >> example/fixture/Makefile -echo "" >> example/fixture/Makefile -echo "clean:" >> example/fixture/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS} clean" >> example/fixture/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/feint/Makefile -echo "" >> example/feint/Makefile -echo "all:" >> example/feint/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS}" >> example/feint/Makefile -echo "" >> example/feint/Makefile -echo "test: all" >> example/feint/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS} test" >> example/feint/Makefile -echo "" >> example/feint/Makefile -echo "clean:" >> example/feint/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS} clean" >> example/feint/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/fenl/Makefile -echo "" >> example/fenl/Makefile -echo "all:" >> example/fenl/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS}" >> example/fenl/Makefile -echo "" >> example/fenl/Makefile -echo "test: all" >> example/fenl/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS} test" >> example/fenl/Makefile -echo "" >> example/fenl/Makefile -echo "clean:" >> example/fenl/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS} clean" >> example/fenl/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/make_buildlink/Makefile -echo "" >> example/make_buildlink/Makefile -echo "build:" >> example/make_buildlink/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} build" >> example/make_buildlink/Makefile -echo "" >> example/make_buildlink/Makefile -echo "test: build" >> example/make_buildlink/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} test" >> example/make_buildlink/Makefile -echo "" >> example/make_buildlink/Makefile -echo "clean:" >> example/make_buildlink/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} clean" >> example/make_buildlink/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/tutorial/Makefile -echo "" >> example/tutorial/Makefile -echo "build:" >> example/tutorial/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} build">> example/tutorial/Makefile -echo "" >> example/tutorial/Makefile -echo "test: build" >> example/tutorial/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} test" >> example/tutorial/Makefile -echo "" >> example/tutorial/Makefile -echo "clean:" >> example/tutorial/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} clean" >> example/tutorial/Makefile - # Generate top level directory makefile. echo "Generating Makefiles with options " ${KOKKOS_SETTINGS} echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > Makefile @@ -439,14 +374,6 @@ echo -e "\t\$(MAKE) -C core/perf_test" >> Makefile echo -e "\t\$(MAKE) -C containers/unit_tests" >> Makefile echo -e "\t\$(MAKE) -C containers/performance_tests" >> Makefile echo -e "\t\$(MAKE) -C algorithms/unit_tests" >> Makefile -if [ ${KOKKOS_DO_EXAMPLES} -gt 0 ]; then -$() -echo -e "\t\$(MAKE) -C example/fixture" >> Makefile -echo -e "\t\$(MAKE) -C example/feint" >> Makefile -echo -e "\t\$(MAKE) -C example/fenl" >> Makefile -echo -e "\t\$(MAKE) -C example/make_buildlink build" >> Makefile -echo -e "\t\$(MAKE) -C example/tutorial build" >> Makefile -fi echo "" >> Makefile echo "test: build-test" >> Makefile echo -e "\t\$(MAKE) -C core/unit_test test" >> Makefile @@ -454,13 +381,6 @@ echo -e "\t\$(MAKE) -C core/perf_test test" >> Makefile echo -e "\t\$(MAKE) -C containers/unit_tests test" >> Makefile echo -e "\t\$(MAKE) -C containers/performance_tests test" >> Makefile echo -e "\t\$(MAKE) -C algorithms/unit_tests test" >> Makefile -if [ ${KOKKOS_DO_EXAMPLES} -gt 0 ]; then -echo -e "\t\$(MAKE) -C example/fixture test" >> Makefile -echo -e "\t\$(MAKE) -C example/feint test" >> Makefile -echo -e "\t\$(MAKE) -C example/fenl test" >> Makefile -echo -e "\t\$(MAKE) -C example/make_buildlink test" >> Makefile -echo -e "\t\$(MAKE) -C example/tutorial test" >> Makefile -fi echo "" >> Makefile echo "unit-tests-only:" >> Makefile echo -e "\t\$(MAKE) -C core/unit_test test" >> Makefile @@ -474,11 +394,4 @@ echo -e "\t\$(MAKE) -C core/perf_test clean" >> Makefile echo -e "\t\$(MAKE) -C containers/unit_tests clean" >> Makefile echo -e "\t\$(MAKE) -C containers/performance_tests clean" >> Makefile echo -e "\t\$(MAKE) -C algorithms/unit_tests clean" >> Makefile -if [ ${KOKKOS_DO_EXAMPLES} -gt 0 ]; then -echo -e "\t\$(MAKE) -C example/fixture clean" >> Makefile -echo -e "\t\$(MAKE) -C example/feint clean" >> Makefile -echo -e "\t\$(MAKE) -C example/fenl clean" >> Makefile -echo -e "\t\$(MAKE) -C example/make_buildlink clean" >> Makefile -echo -e "\t\$(MAKE) -C example/tutorial clean" >> Makefile -fi diff --git a/lib/kokkos/master_history.txt b/lib/kokkos/master_history.txt index 11e803e760..cae5e9c22e 100644 --- a/lib/kokkos/master_history.txt +++ b/lib/kokkos/master_history.txt @@ -19,4 +19,5 @@ tag: 2.8.00 date: 02:05:2019 master: 34931a36 develop: d1659d1d tag: 2.9.00 date: 06:24:2019 master: 5d6e7fb3 develop: 4c6cb80a tag: 3.0.00 date: 01:31:2020 master: 2983b80d release-candidate-3.0: fdc904a6 tag: 3.1.00 date: 04:14:2020 master: cd1b1d0a develop: fd90af43 -tag: 3.1.1 date: 05:04:2020 master: 785d19f2 release: 2be028bc +tag: 3.1.01 date: 05:04:2020 master: 785d19f2 release: 2be028bc +tag: 3.2.00 date: 08:19:2020 master: 3b2fdc7e release: 5dc6d303 -- GitLab From aa6dec84ed45f6edb6cd825f30c1bc4e50cc1479 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 03:42:42 -0400 Subject: [PATCH 062/165] update list of Kokkos supported architectures --- doc/src/Build_extras.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index bde06159f3..b93e749bcd 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -361,9 +361,12 @@ be specified in uppercase. * - AMDAVX - HOST - AMD 64-bit x86 CPU (AVX 1) - * - EPYC + * - ZEN - HOST - - AMD EPYC Zen class CPU (AVX 2) + - AMD Zen class CPU (AVX 2) + * - ZEN2 + - HOST + - AMD Zen2 class CPU (AVX 2) * - ARMV80 - HOST - ARMv8.0 Compatible CPU -- GitLab From abbbb0ab06aa83365123b4644b8889ecb0397d37 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 03:42:50 -0400 Subject: [PATCH 063/165] remove trailing whitespace --- src/KOKKOS/sna_kokkos_impl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KOKKOS/sna_kokkos_impl.h b/src/KOKKOS/sna_kokkos_impl.h index ab6ab9ab72..06641e6019 100644 --- a/src/KOKKOS/sna_kokkos_impl.h +++ b/src/KOKKOS/sna_kokkos_impl.h @@ -2173,7 +2173,7 @@ double SNAKokkos::memory_usage() #ifdef LMP_KOKKOS_GPU if (!host_flag) { - + auto natom_pad = (natom+32-1)/32; bytes += natom * idxu_half_max * nelements * sizeof(double); // ulisttot_re -- GitLab From 7ab6def2ca190799b06cc78e4f1efba62f4598fb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 03:49:59 -0400 Subject: [PATCH 064/165] update list of Kokkos GPU archs in manual as well --- doc/src/Build_extras.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index b93e749bcd..b72dd95046 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -448,12 +448,18 @@ be specified in uppercase. * - TURING75 - GPU - NVIDIA Turing generation CC 7.5 GPU + * - AMPERE80 + - GPU + - NVIDIA Ampere generation CC 8.0 GPU * - VEGA900 - GPU - AMD GPU MI25 GFX900 * - VEGA906 - GPU - AMD GPU MI50/MI60 GFX906 + * - INTEL_GEN + - GPU + - Intel GPUs Gen9+ Basic CMake build settings: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- GitLab From 48d2a48a1f682bed928a8ff2974e17f58c860f00 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 09:01:59 -0400 Subject: [PATCH 065/165] import updated python module from progguide branch --- python/lammps.py | 969 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 756 insertions(+), 213 deletions(-) diff --git a/python/lammps.py b/python/lammps.py index 8bd1fc693b..2eba2a45c9 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -10,10 +10,9 @@ # # See the README file in the top-level LAMMPS directory. # ------------------------------------------------------------------------- +# Python wrappers for the LAMMPS library via ctypes -# Python wrappers on LAMMPS library via ctypes - -# for python3 compatibility +# for python2/3 compatibility from __future__ import print_function @@ -32,10 +31,30 @@ import select import re import sys +# various symbolic constants to be used +# in certain calls to select data formats LAMMPS_INT = 0 -LAMMPS_DOUBLE = 1 -LAMMPS_BIGINT = 2 -LAMMPS_TAGINT = 3 +LAMMPS_INT2D = 1 +LAMMPS_DOUBLE = 2 +LAMMPS_DBLE2D = 3 +LAMMPS_BIGINT = 4 +LAMMPS_TAGINT = 5 +LAMMPS_STRING = 6 + +# these must be kept in sync with the enums in library.h +LMP_STYLE_GLOBAL = 0 +LMP_STYLE_ATOM = 1 +LMP_STYLE_LOCAL = 2 + +LMP_TYPE_SCALAR = 0 +LMP_TYPE_VECTOR = 1 +LMP_TYPE_ARRAY = 2 +LMP_SIZE_VECTOR = 3 +LMP_SIZE_ROWS = 4 +LMP_SIZE_COLS = 5 + +LMP_VAR_EQUAL = 0 +LMP_VAR_ATOM = 1 def get_ctypes_int(size): if size == 4: @@ -52,13 +71,13 @@ class MPIAbortException(Exception): return repr(self.message) class NeighList: - """This is a wrapper class that exposes the contents of a neighbor list + """This is a wrapper class that exposes the contents of a neighbor list. It can be used like a regular Python list. Internally it uses the lower-level LAMMPS C-library interface. - :param lmp: reference to instance of :class:`lammps` + :param lmp: reference to instance of :py:class:`lammps` :type lmp: lammps :param idx: neighbor list index :type idx: int @@ -103,31 +122,49 @@ class NeighList: yield self.get(ii) class lammps(object): - - # detect if Python is using version of mpi4py that can pass a communicator - - has_mpi4py = False - try: - from mpi4py import MPI - from mpi4py import __version__ as mpi4py_version - if mpi4py_version.split('.')[0] in ['2','3']: has_mpi4py = True - except: - pass + """Create an instance of the LAMMPS Python class. + + .. _mpi4py_docs: https://mpi4py.readthedocs.io/ + + This is a Python wrapper class that exposes the LAMMPS C-library + interface to Python. It either requires that LAMMPS has been compiled + as shared library which is then dynamically loaded via the ctypes + Python module or that this module called from a Python function that + is called from a Python interpreter embedded into a LAMMPS executable, + for example through the :doc:`python invoke ` command. + When the class is instantiated it calls the :cpp:func:`lammps_open` + function of the LAMMPS C-library interface, which in + turn will create an instance of the :cpp:class:`LAMMPS ` + C++ class. The handle to this C++ class is stored internally + and automatically passed to the calls to the C library interface. + + :param name: "machine" name of the shared LAMMPS library ("mpi" loads ``liblammps_mpi.so``, "" loads ``liblammps.so``) + :type name: string + :param cmdargs: list of command line arguments to be passed to the :cpp:func:`lammps_open` function. The executable name is automatically added. + :type cmdargs: list + :param ptr: pointer to a LAMMPS C++ class instance when called from an embedded Python interpreter. None means load symbols from shared library. + :type ptr: pointer + :param comm: MPI communicator (as provided by `mpi4py `_). ``None`` means use ``MPI_COMM_WORLD`` implicitly. + :type comm: MPI_Comm + """ # create instance of LAMMPS - def __init__(self,name="",cmdargs=None,ptr=None,comm=None): + def __init__(self,name='',cmdargs=None,ptr=None,comm=None): self.comm = comm self.opened = 0 - # determine module location + # determine module file location modpath = dirname(abspath(getsourcefile(lambda:0))) self.lib = None self.lmp = None - # if a pointer to a LAMMPS object is handed in, - # all symbols should already be available + # if a pointer to a LAMMPS object is handed in + # when being called from a Python interpreter + # embedded into a LAMMPS executable, all library + # symbols should already be available so we do not + # load a shared object. try: if ptr: self.lib = CDLL("",RTLD_GLOBAL) @@ -142,23 +179,47 @@ class lammps(object): # fall back to loading with a relative path, # typically requires LD_LIBRARY_PATH to be set appropriately - if any([f.startswith('liblammps') and f.endswith('.dylib') for f in os.listdir(modpath)]): + if any([f.startswith('liblammps') and f.endswith('.dylib') + for f in os.listdir(modpath)]): lib_ext = ".dylib" + elif any([f.startswith('liblammps') and f.endswith('.dll') + for f in os.listdir(modpath)]): + lib_ext = ".dll" else: lib_ext = ".so" if not self.lib: try: - if not name: self.lib = CDLL(join(modpath,"liblammps" + lib_ext),RTLD_GLOBAL) - else: self.lib = CDLL(join(modpath,"liblammps_%s" % name + lib_ext), - RTLD_GLOBAL) + if not name: + self.lib = CDLL(join(modpath,"liblammps" + lib_ext),RTLD_GLOBAL) + else: + self.lib = CDLL(join(modpath,"liblammps_%s" % name + lib_ext), + RTLD_GLOBAL) except: - if not name: self.lib = CDLL("liblammps" + lib_ext,RTLD_GLOBAL) - else: self.lib = CDLL("liblammps_%s" % name + lib_ext,RTLD_GLOBAL) - - # define ctypes API for each library method - # NOTE: should add one of these for each lib function - + if not name: + self.lib = CDLL("liblammps" + lib_ext,RTLD_GLOBAL) + else: + self.lib = CDLL("liblammps_%s" % name + lib_ext,RTLD_GLOBAL) + + # declare all argument and return types for all library methods here. + # exceptions are where the arguments depend on certain conditions and + # then are defined where the functions are used. + self.lib.lammps_open.restype = c_void_p + self.lib.lammps_open_no_mpi.restype = c_void_p + self.lib.lammps_close.argtypes = [c_void_p] + self.lib.lammps_free.argtypes = [c_void_p] + + self.lib.lammps_file.argtypes = [c_void_p, c_char_p] + self.lib.lammps_file.restype = None + + self.lib.lammps_command.argtypes = [c_void_p, c_char_p] + self.lib.lammps_command.restype = c_char_p + self.lib.lammps_commands_list.restype = None + self.lib.lammps_commands_string.argtypes = [c_void_p, c_char_p] + self.lib.lammps_commands_string.restype = None + + self.lib.lammps_get_natoms.argtypes = [c_void_p] + self.lib.lammps_get_natoms.restype = c_double self.lib.lammps_extract_box.argtypes = \ [c_void_p,POINTER(c_double),POINTER(c_double), POINTER(c_double),POINTER(c_double),POINTER(c_double), @@ -210,6 +271,16 @@ class lammps(object): self.lib.lammps_get_last_error_message.argtypes = [c_void_p, c_char_p, c_int] self.lib.lammps_get_last_error_message.restype = c_int + # detect if Python is using version of mpi4py that can pass a communicator + + self.has_mpi4py = False + try: + from mpi4py import __version__ as mpi4py_version + # tested to work with mpi4py versions 2 and 3 + self.has_mpi4py = mpi4py_version.split('.')[0] in ['2','3'] + except: + pass + # if no ptr provided, create an instance of LAMMPS # don't know how to pass an MPI communicator from PyPar # but we can pass an MPI communicator from mpi4py v2.0.0 and later @@ -224,17 +295,22 @@ class lammps(object): # with mpi4py v2, can pass MPI communicator to LAMMPS # need to adjust for type of MPI communicator object # allow for int (like MPICH) or void* (like OpenMPI) + if self.has_mpi4py and self.has_mpi_support: + from mpi4py import MPI + self.MPI = MPI if comm: - if not lammps.has_mpi4py: + if not self.has_mpi4py: raise Exception('Python mpi4py version is not 2 or 3') - if lammps.MPI._sizeof(lammps.MPI.Comm) == sizeof(c_int): + if not self.has_mpi_support: + raise Exception('LAMMPS not compiled with real MPI library') + if self.MPI._sizeof(self.MPI.Comm) == sizeof(c_int): MPI_Comm = c_int else: MPI_Comm = c_void_p narg = 0 - cargs = 0 + cargs = None if cmdargs: cmdargs.insert(0,"lammps.py") narg = len(cmdargs) @@ -243,22 +319,19 @@ class lammps(object): cmdargs[i] = cmdargs[i].encode() cargs = (c_char_p*narg)(*cmdargs) self.lib.lammps_open.argtypes = [c_int, c_char_p*narg, \ - MPI_Comm, c_void_p()] + MPI_Comm, c_void_p] else: - self.lib.lammps_open.argtypes = [c_int, c_int, \ - MPI_Comm, c_void_p()] + self.lib.lammps_open.argtypes = [c_int, c_char_p, \ + MPI_Comm, c_void_p] - self.lib.lammps_open.restype = None self.opened = 1 - self.lmp = c_void_p() - comm_ptr = lammps.MPI._addressof(comm) + comm_ptr = self.MPI._addressof(comm) comm_val = MPI_Comm.from_address(comm_ptr) - self.lib.lammps_open(narg,cargs,comm_val,byref(self.lmp)) + self.lmp = self.lib.lammps_open(narg,cargs,comm_val,None) else: - if lammps.has_mpi4py: - from mpi4py import MPI - self.comm = MPI.COMM_WORLD + if self.has_mpi4py and self.has_mpi_support: + self.comm = self.MPI.COMM_WORLD self.opened = 1 if cmdargs: cmdargs.insert(0,"lammps.py") @@ -267,13 +340,12 @@ class lammps(object): if type(cmdargs[i]) is str: cmdargs[i] = cmdargs[i].encode() cargs = (c_char_p*narg)(*cmdargs) - self.lmp = c_void_p() - self.lib.lammps_open_no_mpi(narg,cargs,byref(self.lmp)) + self.lib.lammps_open_no_mpi.argtypes = [c_int, c_char_p*narg, \ + c_void_p] + self.lmp = self.lib.lammps_open_no_mpi(narg,cargs,None) else: - self.lmp = c_void_p() - self.lib.lammps_open_no_mpi(0,None,byref(self.lmp)) - # could use just this if LAMMPS lib interface supported it - # self.lmp = self.lib.lammps_open_no_mpi(0,None) + self.lib.lammps_open_no_mpi.argtypes = [c_int, c_char_p, c_void_p] + self.lmp = self.lib.lammps_open_no_mpi(0,None,None) else: # magic to convert ptr to ctypes ptr @@ -311,22 +383,122 @@ class lammps(object): self.lib.lammps_close(self.lmp) self.opened = 0 + @property + def numpy(self): + "Convert between ctypes arrays and numpy arrays" + if not self._numpy: + import numpy as np + class LammpsNumpyWrapper: + def __init__(self, lmp): + self.lmp = lmp + + def _ctype_to_numpy_int(self, ctype_int): + if ctype_int == c_int32: + return np.int32 + elif ctype_int == c_int64: + return np.int64 + return np.intc + + def extract_atom_iarray(self, name, nelem, dim=1): + if name in ['id', 'molecule']: + c_int_type = self.lmp.c_tagint + elif name in ['image']: + c_int_type = self.lmp.c_imageint + else: + c_int_type = c_int + + if dim == 1: + raw_ptr = self.lmp.extract_atom(name, 0) + else: + raw_ptr = self.lmp.extract_atom(name, 1) + + return self.iarray(c_int_type, raw_ptr, nelem, dim) + + def extract_atom_darray(self, name, nelem, dim=1): + if dim == 1: + raw_ptr = self.lmp.extract_atom(name, 2) + else: + raw_ptr = self.lmp.extract_atom(name, 3) + + return self.darray(raw_ptr, nelem, dim) + + def iarray(self, c_int_type, raw_ptr, nelem, dim=1): + np_int_type = self._ctype_to_numpy_int(c_int_type) + + if dim == 1: + ptr = cast(raw_ptr, POINTER(c_int_type * nelem)) + else: + ptr = cast(raw_ptr[0], POINTER(c_int_type * nelem * dim)) + + a = np.frombuffer(ptr.contents, dtype=np_int_type) + a.shape = (nelem, dim) + return a + + def darray(self, raw_ptr, nelem, dim=1): + if dim == 1: + ptr = cast(raw_ptr, POINTER(c_double * nelem)) + else: + ptr = cast(raw_ptr[0], POINTER(c_double * nelem * dim)) + + a = np.frombuffer(ptr.contents) + a.shape = (nelem, dim) + return a + + self._numpy = LammpsNumpyWrapper(self) + return self._numpy + def close(self): + """Explicitly delete a LAMMPS instance through the C-library interface. + + This is a wrapper around the :cpp:func:`lammps_close` function of the C-library interface. + """ + if self.opened: self.lib.lammps_close(self.lmp) + self.lmp = None + self.opened = 0 + + def finalize(self): + """Shut down the MPI communication through the library interface by calling :cpp:func:`lammps_finalize`. + """ if self.opened: self.lib.lammps_close(self.lmp) self.lmp = None self.opened = 0 + self.lib.lammps_finalize() def version(self): + """Return a numerical representation of the LAMMPS version in use. + + This is a wrapper around the :cpp:func:`lammps_close` function of the C-library interface. + + :return: version number + :rtype: int + """ return self.lib.lammps_version(self.lmp) def file(self,file): + """Read LAMMPS commands from a file. + + This is a wrapper around the :cpp:func:`lammps_file` function of the C-library interface. + It will open the file with the name/path `file` and process the LAMMPS commands line by line until + the end. The function will return when the end of the file is reached. + + :param file: Name of the file/path with LAMMPS commands + :type file: string + """ if file: file = file.encode() + else: return self.lib.lammps_file(self.lmp,file) - # send a single command - def command(self,cmd): + """Process a single LAMMPS input command from a string. + + This is a wrapper around the :cpp:func:`lammps_command` + function of the C-library interface. + + :param cmd: a single lammps command + :type cmd: string + """ if cmd: cmd = cmd.encode() + else: return self.lib.lammps_command(self.lmp,cmd) if self.has_exceptions and self.lib.lammps_has_error(self.lmp): @@ -338,45 +510,56 @@ class lammps(object): raise MPIAbortException(error_msg) raise Exception(error_msg) - # send a list of commands - def commands_list(self,cmdlist): - cmds = [x.encode() for x in cmdlist if type(x) is str] - args = (c_char_p * len(cmdlist))(*cmds) - self.lib.lammps_commands_list(self.lmp,len(cmdlist),args) + """Process multiple LAMMPS input commands from a list of strings. + + This is a wrapper around the + :cpp:func:`lammps_commands_list` function of + the C-library interface. - # send a string of commands + :param cmdlist: a single lammps command + :type cmdlist: list of strings + """ + cmds = [x.encode() for x in cmdlist if type(x) is str] + narg = len(cmdlist) + args = (c_char_p * narg)(*cmds) + self.lib.lammps_commands_list.argtypes = [c_void_p, c_int, c_char_p * narg] + self.lib.lammps_commands_list(self.lmp,narg,args) def commands_string(self,multicmd): + """Process a block of LAMMPS input commands from a string. + + This is a wrapper around the + :cpp:func:`lammps_commands_string` + function of the C-library interface. + + :param multicmd: text block of lammps commands + :type multicmd: string + """ if type(multicmd) is str: multicmd = multicmd.encode() self.lib.lammps_commands_string(self.lmp,c_char_p(multicmd)) - # extract lammps type byte sizes + def get_natoms(self): + """Get the total number of atoms in the LAMMPS instance. - def extract_setting(self, name): - if name: name = name.encode() - self.lib.lammps_extract_setting.restype = c_int - return int(self.lib.lammps_extract_setting(self.lmp,name)) + Will be precise up to 53-bit signed integer due to the + underlying :cpp:func:`lammps_get_natoms` function returning a double. - # extract global info + :return: number of atoms + :rtype: float + """ + return self.lib.lammps_get_natoms(self.lmp) - def extract_global(self,name,type): - if name: name = name.encode() - if type == LAMMPS_INT: - self.lib.lammps_extract_global.restype = POINTER(c_int) - elif type == LAMMPS_DOUBLE: - self.lib.lammps_extract_global.restype = POINTER(c_double) - elif type == LAMMPS_BIGINT: - self.lib.lammps_extract_global.restype = POINTER(self.c_bigint) - elif type == LAMMPS_TAGINT: - self.lib.lammps_extract_global.restype = POINTER(self.c_tagint) - else: return None - ptr = self.lib.lammps_extract_global(self.lmp,name) - return ptr[0] + def extract_box(self): + """Extract simulation box parameters - # extract global info + This is a wrapper around the :cpp:func:`lammps_extract_box` function + of the C-library interface. Unlike in the C function, the result is + returned as a list. - def extract_box(self): + :return: list of the extracted data: boxlo, boxhi, xy, yz, xz, periodicity, box_change + :rtype: [ 3*double, 3*double, double, double, 3*int, int] + """ boxlo = (3*c_double)() boxhi = (3*c_double)() xy = c_double() @@ -399,137 +582,305 @@ class lammps(object): return boxlo,boxhi,xy,yz,xz,periodicity,box_change + def reset_box(self,boxlo,boxhi,xy,yz,xz): + """Reset simulation box parameters + + This is a wrapper around the :cpp:func:`lammps_reset_box` function + of the C-library interface. + + :param boxlo: new lower box boundaries + :type boxlo: list of 3 floating point numbers + :param boxhi: new upper box boundaries + :type boxhi: list of 3 floating point numbers + :param xy: xy tilt factor + :type xy: float + :param yz: yz tilt factor + :type yz: float + :param xz: xz tilt factor + :type xz: float + """ + cboxlo = (3*c_double)(*boxlo) + cboxhi = (3*c_double)(*boxhi) + self.lib.lammps_reset_box(self.lmp,cboxlo,cboxhi,xy,yz,xz) + + def get_thermo(self,name): + """Get current value of a thermo keyword + + This is a wrapper around the :cpp:func:`lammps_get_thermo` + function of the C-library interface. + + :param name: name of thermo keyword + :type name: string + :return: value of thermo keyword + :rtype: double or None + """ + if name: name = name.encode() + else: return None + self.lib.lammps_get_thermo.restype = c_double + return self.lib.lammps_get_thermo(self.lmp,name) + + def extract_setting(self, name): + """Query LAMMPS about global settings that can be expressed as an integer. + + This is a wrapper around the :cpp:func:`lammps_extract_setting` + function of the C-library interface. Its documentation includes + a list of the supported keywords. + + :param name: name of the setting + :type name: string + :return: value of the setting + :rtype: int + """ + if name: name = name.encode() + else: return None + self.lib.lammps_extract_setting.restype = c_int + return int(self.lib.lammps_extract_setting(self.lmp,name)) + + # extract global info + + def extract_global(self, name, type): + """Query LAMMPS about global settings of different types. + + This is a wrapper around the :cpp:func:`lammps_extract_global` + function of the C-library interface. Unlike the C function + this method returns the value and not a pointer and thus can + only return the first value for keywords representing a list + of values. The :cpp:func:`lammps_extract_global` documentation + includes a list of the supported keywords and their data types. + Since Python needs to know the data type to be able to interpret + the result, the type has to be provided as an argument. For + that purpose the :py:mod:`lammps` module contains the constants + ``LAMMPS_INT``, ``LAMMPS_DOUBLE``, ``LAMMPS_BIGINT``, + ``LAMMPS_TAGINT``, and ``LAMMPS_STRING``. + This function returns ``None`` if either the keyword is not + recognized, or an invalid data type constant is used. + + :param name: name of the setting + :type name: string + :param type: type of the returned data + :type type: int + :return: value of the setting + :rtype: integer or double or string or None + """ + if name: name = name.encode() + else: return None + if type == LAMMPS_INT: + self.lib.lammps_extract_global.restype = POINTER(c_int) + elif type == LAMMPS_DOUBLE: + self.lib.lammps_extract_global.restype = POINTER(c_double) + elif type == LAMMPS_BIGINT: + self.lib.lammps_extract_global.restype = POINTER(self.c_bigint) + elif type == LAMMPS_TAGINT: + self.lib.lammps_extract_global.restype = POINTER(self.c_tagint) + elif type == LAMMPS_STRING: + self.lib.lammps_extract_global.restype = c_char_p + ptr = self.lib.lammps_extract_global(self.lmp,name) + return str(ptr,'ascii') + else: return None + ptr = self.lib.lammps_extract_global(self.lmp,name) + if ptr: return ptr[0] + else: return None + # extract per-atom info # NOTE: need to insure are converting to/from correct Python type # e.g. for Python list or NumPy or ctypes def extract_atom(self,name,type): + """Retrieve per-atom properties from LAMMPS + + This is a wrapper around the :cpp:func:`lammps_extract_atom` + function of the C-library interface. Its documentation includes a + list of the supported keywords and their data types. + Since Python needs to know the data type to be able to interpret + the result, the type has to be provided as an argument. For + that purpose the :py:mod:`lammps` module contains the constants + ``LAMMPS_INT``, ``LAMMPS_INT2D``, ``LAMMPS_DOUBLE``, + and ``LAMMPS_DBLE2D``. + This function returns ``None`` if either the keyword is not + recognized, or an invalid data type constant is used. + + .. note:: + + While the returned arrays of per-atom data are dimensioned + for the range [0:nmax] - as is the underlying storage - + the data is usually only valid for the range of [0:nlocal], + unless the property of interest is also updated for ghost + atoms. In some cases, this depends on a LAMMPS setting, see + for example :doc:`comm_modify vel yes `. + + :param name: name of the setting + :type name: string + :param type: type of the returned data + :type type: int + :return: requested data + :rtype: pointer to integer or double or None + """ + ntypes = int(self.extract_setting('ntypes')) + nmax = int(self.extract_setting('nmax')) if name: name = name.encode() - if type == 0: + else: return None + if type == LAMMPS_INT: self.lib.lammps_extract_atom.restype = POINTER(c_int) - elif type == 1: + elif type == LAMMPS_INT2D: self.lib.lammps_extract_atom.restype = POINTER(POINTER(c_int)) - elif type == 2: + elif type == LAMMPS_DOUBLE: self.lib.lammps_extract_atom.restype = POINTER(c_double) - elif type == 3: + elif type == LAMMPS_DBLE2D: self.lib.lammps_extract_atom.restype = POINTER(POINTER(c_double)) else: return None ptr = self.lib.lammps_extract_atom(self.lmp,name) - return ptr - - @property - def numpy(self): - if not self._numpy: - import numpy as np - class LammpsNumpyWrapper: - def __init__(self, lmp): - self.lmp = lmp - - def _ctype_to_numpy_int(self, ctype_int): - if ctype_int == c_int32: - return np.int32 - elif ctype_int == c_int64: - return np.int64 - return np.intc - - def extract_atom_iarray(self, name, nelem, dim=1): - if name in ['id', 'molecule']: - c_int_type = self.lmp.c_tagint - elif name in ['image']: - c_int_type = self.lmp.c_imageint - else: - c_int_type = c_int - - if dim == 1: - raw_ptr = self.lmp.extract_atom(name, 0) - else: - raw_ptr = self.lmp.extract_atom(name, 1) - - return self.iarray(c_int_type, raw_ptr, nelem, dim) - - def extract_atom_darray(self, name, nelem, dim=1): - if dim == 1: - raw_ptr = self.lmp.extract_atom(name, 2) - else: - raw_ptr = self.lmp.extract_atom(name, 3) - - return self.darray(raw_ptr, nelem, dim) - - def iarray(self, c_int_type, raw_ptr, nelem, dim=1): - np_int_type = self._ctype_to_numpy_int(c_int_type) - - if dim == 1: - ptr = cast(raw_ptr, POINTER(c_int_type * nelem)) - else: - ptr = cast(raw_ptr[0], POINTER(c_int_type * nelem * dim)) - - a = np.frombuffer(ptr.contents, dtype=np_int_type) - a.shape = (nelem, dim) - return a - - def darray(self, raw_ptr, nelem, dim=1): - if dim == 1: - ptr = cast(raw_ptr, POINTER(c_double * nelem)) - else: - ptr = cast(raw_ptr[0], POINTER(c_double * nelem * dim)) - - a = np.frombuffer(ptr.contents) - a.shape = (nelem, dim) - return a - - self._numpy = LammpsNumpyWrapper(self) - return self._numpy + if ptr: return ptr + else: return None - # extract compute info def extract_compute(self,id,style,type): + """Retrieve data from a LAMMPS compute + + This is a wrapper around the :cpp:func:`lammps_extract_compute` + function of the C-library interface. + This function returns ``None`` if either the compute id is not + recognized, or an invalid combination of :ref:`style ` + and :ref:`type ` constants is used. The + names and functionality of the constants are the same as for + the corresponding C-library function. For requests to return + a scalar or a size, the value is returned, otherwise a pointer. + + :param id: compute ID + :type id: string + :param style: style of the data retrieve (global, atom, or local) + :type style: int + :param type: type or size of the returned data (scalar, vector, or array) + :type type: int + :return: requested data + :rtype: integer or double or pointer to 1d or 2d double array or None + """ if id: id = id.encode() - if type == 0: - if style == 0: + else: return None + + if type == LMP_TYPE_SCALAR: + if style == LMP_STYLE_GLOBAL: self.lib.lammps_extract_compute.restype = POINTER(c_double) ptr = self.lib.lammps_extract_compute(self.lmp,id,style,type) return ptr[0] - elif style == 1: + elif style == LMP_STYLE_ATOM: return None - elif style == 2: + elif style == LMP_STYLE_LOCAL: self.lib.lammps_extract_compute.restype = POINTER(c_int) ptr = self.lib.lammps_extract_compute(self.lmp,id,style,type) return ptr[0] - if type == 1: + + if type == LMP_TYPE_VECTOR: self.lib.lammps_extract_compute.restype = POINTER(c_double) ptr = self.lib.lammps_extract_compute(self.lmp,id,style,type) return ptr - if type == 2: + + if type == LMP_TYPE_ARRAY: self.lib.lammps_extract_compute.restype = POINTER(POINTER(c_double)) ptr = self.lib.lammps_extract_compute(self.lmp,id,style,type) return ptr + + if type == LMP_SIZE_COLS: + if style == LMP_STYLE_GLOBAL \ + or style == LMP_STYLE_ATOM \ + or style == LMP_STYLE_LOCAL: + self.lib.lammps_extract_compute.restype = POINTER(c_int) + ptr = self.lib.lammps_extract_compute(self.lmp,id,style,type) + return ptr[0] + + if type == LMP_SIZE_VECTOR \ + or type == LMP_SIZE_ROWS: + if style == LMP_STYLE_GLOBAL \ + or style == LMP_STYLE_LOCAL: + self.lib.lammps_extract_compute.restype = POINTER(c_int) + ptr = self.lib.lammps_extract_compute(self.lmp,id,style,type) + return ptr[0] + return None # extract fix info - # in case of global datum, free memory for 1 double via lammps_free() + # in case of global data, free memory for 1 double via lammps_free() # double was allocated by library interface function - def extract_fix(self,id,style,type,i=0,j=0): + def extract_fix(self,id,style,type,nrow=0,ncol=0): + """Retrieve data from a LAMMPS fix + + This is a wrapper around the :cpp:func:`lammps_extract_fix` + function of the C-library interface. + This function returns ``None`` if either the fix id is not + recognized, or an invalid combination of :ref:`style ` + and :ref:`type ` constants is used. The + names and functionality of the constants are the same as for + the corresponding C-library function. For requests to return + a scalar or a size, the value is returned, also when accessing + global vectors or arrays, otherwise a pointer. + + :param id: fix ID + :type id: string + :param style: style of the data retrieve (global, atom, or local) + :type style: int + :param type: type or size of the returned data (scalar, vector, or array) + :type type: int + :param nrow: index of global vector element or row index of global array element + :type nrow: int + :param ncol: column index of global array element + :type ncol: int + :return: requested data + :rtype: integer or double value, pointer to 1d or 2d double array or None + + """ if id: id = id.encode() - if style == 0: - self.lib.lammps_extract_fix.restype = POINTER(c_double) - ptr = self.lib.lammps_extract_fix(self.lmp,id,style,type,i,j) - result = ptr[0] - self.lib.lammps_free(ptr) - return result - elif (style == 2) and (type == 0): - self.lib.lammps_extract_fix.restype = POINTER(c_int) - ptr = self.lib.lammps_extract_fix(self.lmp,id,style,type,i,j) - return ptr[0] - elif (style == 1) or (style == 2): - if type == 1: + else: return None + + if style == LMP_STYLE_GLOBAL: + if type == LMP_TYPE_SCALAR \ + or type == LMP_TYPE_VECTOR \ + or type == LMP_TYPE_ARRAY: self.lib.lammps_extract_fix.restype = POINTER(c_double) - elif type == 2: + ptr = self.lib.lammps_extract_fix(self.lmp,id,style,type,nrow,ncol) + result = ptr[0] + self.lib.lammps_free(ptr) + return result + elif type == LMP_SIZE_VECTOR \ + or type == LMP_SIZE_ROWS \ + or type == LMP_SIZE_COLS: + self.lib.lammps_extract_fix.restype = POINTER(c_int) + ptr = self.lib.lammps_extract_fix(self.lmp,id,style,type,nrow,ncol) + return ptr[0] + else: + return None + + elif style == LMP_STYLE_ATOM: + if type == LMP_TYPE_VECTOR: + self.lib.lammps_extract_fix.restype = POINTER(c_double) + elif type == LMP_TYPE_ARRAY: self.lib.lammps_extract_fix.restype = POINTER(POINTER(c_double)) + elif type == LMP_SIZE_COLS: + self.lib.lammps_extract_fix.restype = POINTER(c_int) else: return None - ptr = self.lib.lammps_extract_fix(self.lmp,id,style,type,i,j) - return ptr + ptr = self.lib.lammps_extract_fix(self.lmp,id,style,type,nrow,ncol) + if type == LMP_SIZE_COLS: + return ptr[0] + else: + return ptr + + elif style == LMP_STYLE_LOCAL: + if type == LMP_TYPE_VECTOR: + self.lib.lammps_extract_fix.restype = POINTER(c_double) + elif type == LMP_TYPE_ARRAY: + self.lib.lammps_extract_fix.restype = POINTER(POINTER(c_double)) + elif type == LMP_TYPE_SCALAR \ + or type == LMP_SIZE_VECTOR \ + or type == LMP_SIZE_ROWS \ + or type == LMP_SIZE_COLS: + self.lib.lammps_extract_fix.restype = POINTER(c_int) + else: + return None + ptr = self.lib.lammps_extract_fix(self.lmp,id,style,type,nrow,ncol) + if type == LMP_TYPE_VECTOR or type == LMP_TYPE_ARRAY: + return ptr + else: + return ptr[0] else: return None @@ -538,16 +889,41 @@ class lammps(object): # for vector, must copy nlocal returned values to local c_double vector # memory was allocated by library interface function - def extract_variable(self,name,group,type): + def extract_variable(self,name,group=None,type=LMP_VAR_EQUAL): + """ Evaluate a LAMMPS variable and return its data + + This function is a wrapper around the function + :cpp:func:`lammps_extract_variable` of the C-library interface, + evaluates variable name and returns a copy of the computed data. + The memory temporarily allocated by the C-interface is deleted + after the data is copied to a python variable or list. + The variable must be either an equal-style (or equivalent) + variable or an atom-style variable. The variable type has to + provided as type parameter which may be two constants: + ``LMP_VAR_EQUAL`` or ``LMP_VAR_STRING``; it defaults to + equal-style variables. + The group parameter is only used for atom-style variables and + defaults to the group "all" if set to ``None``, which is the default. + + :param name: name of the variable to execute + :type name: string + :param group: name of group for atom style variable + :type group: string + :param type: type of variable + :type type: int + :return: the requested data + :rtype: double, array of doubles, or None + """ if name: name = name.encode() + else: return None if group: group = group.encode() - if type == 0: + if type == LMP_VAR_EQUAL: self.lib.lammps_extract_variable.restype = POINTER(c_double) ptr = self.lib.lammps_extract_variable(self.lmp,name,group) result = ptr[0] self.lib.lammps_free(ptr) return result - if type == 1: + if type == LMP_VAR_ATOM: self.lib.lammps_extract_global.restype = POINTER(c_int) nlocalptr = self.lib.lammps_extract_global(self.lmp,"nlocal".encode()) nlocal = nlocalptr[0] @@ -559,34 +935,25 @@ class lammps(object): return result return None - # return current value of thermo keyword - - def get_thermo(self,name): - if name: name = name.encode() - self.lib.lammps_get_thermo.restype = c_double - return self.lib.lammps_get_thermo(self.lmp,name) - - # return total number of atoms in system - - def get_natoms(self): - return self.lib.lammps_get_natoms(self.lmp) + def set_variable(self,name,value): + """Set a new value for a LAMMPS string style variable - # set variable value - # value is converted to string - # returns 0 for success, -1 if failed + This is a wrapper around the :cpp:func:`lammps_set_variable` + function of the C-library interface. - def set_variable(self,name,value): + :param name: name of the variable + :type name: string + :param value: new variable value + :type value: any. will be converted to a string + :return: either 0 on success or -1 on failure + :rtype: int + """ if name: name = name.encode() + else: return -1 if value: value = str(value).encode() + else: return -1 return self.lib.lammps_set_variable(self.lmp,name,value) - # reset simulation box size - - def reset_box(self,boxlo,boxhi,xy,yz,xz): - cboxlo = (3*c_double)(*boxlo) - cboxhi = (3*c_double)(*boxhi) - self.lib.lammps_reset_box(self.lmp,cboxlo,cboxhi,xy,yz,xz) - # return vector of atom properties gathered across procs # 3 variants to match src/library.cpp # name = atom property recognized by LAMMPS in atom->extract() @@ -648,6 +1015,44 @@ class lammps(object): if name: name = name.encode() self.lib.lammps_scatter_atoms_subset(self.lmp,name,type,count,ndata,ids,data) + + def encode_image_flags(self,ix,iy,iz): + """ convert 3 integers with image flags for x-, y-, and z-direction + into a single integer like it is used internally in LAMMPS + + This method is a wrapper around the :cpp:func:`lammps_encode_image_flags` + function of library interface. + + :param ix: x-direction image flag + :type ix: int + :param iy: y-direction image flag + :type iy: int + :param iz: z-direction image flag + :type iz: int + :return: encoded image flags + :rtype: lammps.c_imageint + """ + self.lib.lammps_encode_image_flags.restype = self.c_imageint + return self.lib.lammps_encode_image_flags(ix,iy,iz) + + def decode_image_flags(self,image): + """ Convert encoded image flag integer into list of three regular integers. + + This method is a wrapper around the :cpp:func:`lammps_decode_image_flags` + function of library interface. + + :param image: encoded image flags + :type image: lammps.c_imageint + :return: list of three image flags in x-, y-, and z- direction + :rtype: list of 3 int + """ + + flags = (c_int*3)() + self.lib.lammps_decode_image_flags.argtypes = [self.c_imageint, POINTER(c_int*3)] + self.lib.lammps_decode_image_flags(image,byref(flags)) + + return [int(i) for i in flags] + # create N atoms on all procs # N = global number of atoms # id = ID of each atom (optional, can be None) @@ -658,47 +1063,178 @@ class lammps(object): # e.g. for Python list or NumPy, etc # ditto for gather_atoms() above - def create_atoms(self,n,id,type,x,v,image=None,shrinkexceed=False): + def create_atoms(self,n,id,type,x,v=None,image=None,shrinkexceed=False): + """ + Create N atoms from list of coordinates and properties + + This function is a wrapper around the :cpp:func:`lammps_create_atoms` + function of the C-library interface, and the behavior is similar except + that the *v*, *image*, and *shrinkexceed* arguments are optional and + default to *None*, *None*, and *False*, respectively. With none being + equivalent to a ``NULL`` pointer in C. + + The lists of coordinates, types, atom IDs, velocities, image flags can + be provided in any format that may be converted into the required + internal data types. Also the list may contain more than *N* entries, + but not fewer. In the latter case, the function will return without + attempting to create atoms. You may use the :py:func:`encode_image_flags + ` method to properly combine three integers + with image flags into a single integer. + + :param n: number of atoms for which data is provided + :type n: int + :param id: list of atom IDs with at least n elements or None + :type id: list of lammps.tagint + :param type: list of atom types + :type type: list of int + :param x: list of coordinates for x-, y-, and z (flat list of 3n entries) + :type x: list of float + :param v: list of velocities for x-, y-, and z (flat list of 3n entries) or None (optional) + :type v: list of float + :param image: list of encoded image flags (optional) + :type image: list of lammps.imageint + :param shrinkexceed: whether to expand shrink-wrap boundaries if atoms are outside the box (optional) + :type shrinkexceed: bool + :return: number of atoms created. 0 if insufficient or invalid data + :rtype: int + """ if id: - id_lmp = (c_int * n)() - id_lmp[:] = id + id_lmp = (self.c_tagint*n)() + try: + id_lmp[:] = id[0:n] + except: + return 0 + else: + id_lmp = None + + type_lmp = (c_int*n)() + try: + type_lmp[:] = type[0:n] + except: + return 0 + + three_n = 3*n + x_lmp = (c_double*three_n)() + try: + x_lmp[:] = x[0:three_n] + except: + return 0 + + if v: + v_lmp = (c_double*(three_n))() + try: + v_lmp[:] = v[0:three_n] + except: + return 0 else: - id_lmp = id + v_lmp = None if image: - image_lmp = (c_int * n)() - image_lmp[:] = image + img_lmp = (self.c_imageint*n)() + try: + img_lmp[:] = image[0:n] + except: + return 0 + else: + img_lmp = None + + if shrinkexceed: + se_lmp = 1 else: - image_lmp = image + se_lmp = 0 - type_lmp = (c_int * n)() - type_lmp[:] = type - self.lib.lammps_create_atoms(self.lmp,n,id_lmp,type_lmp,x,v,image_lmp, - shrinkexceed) + self.lib.lammps_file.argtypes = [c_void_p, c_int, POINTER(self.c_tagint*n), + POINTER(c_int*n), POINTER(c_double*three_n), + POINTER(c_double*three_n), + POINTER(self.c_imageint*n), c_int] + return self.lib.lammps_create_atoms(self.lmp,n,id_lmp,type_lmp,x_lmp,v_lmp,img_lmp,se_lmp) + + @property + def has_mpi_support(self): + """ Report whether the LAMMPS shared library was compiled with a + real MPI library or in serial. + + This is a wrapper around the :cpp:func:`lammps_config_has_mpi_support` + function of the library interface. + + :return: False when compiled with MPI STUBS, otherwise True + :rtype: bool + """ + return self.lib.lammps_config_has_mpi_support() != 0 @property def has_exceptions(self): - """ Return whether the LAMMPS shared library was compiled with C++ exceptions handling enabled """ + """ Report whether the LAMMPS shared library was compiled with C++ + exceptions handling enabled + + This is a wrapper around the :cpp:func:`lammps_config_has_exceptions` + function of the library interface. + + :return: state of C++ exception support + :rtype: bool + """ return self.lib.lammps_config_has_exceptions() != 0 @property def has_gzip_support(self): + """ Report whether the LAMMPS shared library was compiled with support + for reading and writing compressed files through ``gzip``. + + This is a wrapper around the :cpp:func:`lammps_config_has_gzip_support` + function of the library interface. + + :return: state of gzip support + :rtype: bool + """ return self.lib.lammps_config_has_gzip_support() != 0 @property def has_png_support(self): + """ Report whether the LAMMPS shared library was compiled with support + for writing images in PNG format. + + This is a wrapper around the :cpp:func:`lammps_config_has_png_support` + function of the library interface. + + :return: state of PNG support + :rtype: bool + """ return self.lib.lammps_config_has_png_support() != 0 @property def has_jpeg_support(self): + """ Report whether the LAMMPS shared library was compiled with support + for writing images in JPEG format. + + This is a wrapper around the :cpp:func:`lammps_config_has_jpeg_support` + function of the library interface. + + :return: state of JPEG support + :rtype: bool + """ return self.lib.lammps_config_has_jpeg_support() != 0 @property def has_ffmpeg_support(self): + """ State of support for writing movies with ``ffmpeg`` in the LAMMPS shared library + + This is a wrapper around the :cpp:func:`lammps_config_has_ffmpeg_support` + function of the library interface. + + :return: state of ffmpeg support + :rtype: bool + """ return self.lib.lammps_config_has_ffmpeg_support() != 0 @property def installed_packages(self): + """ List of the names of enabled packages in the LAMMPS shared library + + This is a wrapper around the functions :cpp:func:`lammps_config_package_count` + and :cpp:func`lammps_config_package_name` of the library interface. + + :return + """ if self._installed_packages is None: self._installed_packages = [] npackages = self.lib.lammps_config_package_count() @@ -711,10 +1247,14 @@ class lammps(object): def has_style(self, category, name): """Returns whether a given style name is available in a given category + This is a wrapper around the function :cpp:func:`lammps_has_style` + of the library interface. + :param category: name of category :type category: string :param name: name of the style :type name: string + :return: true if style is available in given category :rtype: bool """ @@ -723,8 +1263,12 @@ class lammps(object): def available_styles(self, category): """Returns a list of styles available for a given category + This is a wrapper around the functions :cpp:func:`lammps_style_count` + and :cpp:func`lammps_style_name` of the library interface. + :param category: name of category :type category: string + :return: list of style names in given category :rtype: list """ @@ -759,7 +1303,6 @@ class lammps(object): cCaller = caller self.callback[fix_name] = { 'function': cFunc, 'caller': caller } - self.lib.lammps_set_fix_external_callback(self.lmp, fix_name.encode(), cFunc, cCaller) def get_neighlist(self, idx): @@ -1090,7 +1633,7 @@ def get_thermo_data(output): class PyLammps(object): """ - More Python-like wrapper for LAMMPS (e.g., for iPython) + More Python-like wrapper for LAMMPS (e.g., for IPython) See examples/ipython for usage """ @@ -1135,7 +1678,7 @@ class PyLammps(object): def run(self, *args, **kwargs): output = self.__getattr__('run')(*args, **kwargs) - if(lammps.has_mpi4py): + if(self.has_mpi4py): output = self.lmp.comm.bcast(output, root=0) self.runs += get_thermo_data(output) @@ -1350,7 +1893,7 @@ class PyLammps(object): class IPyLammps(PyLammps): """ - iPython wrapper for LAMMPS which adds embedded graphics capabilities + IPython wrapper for LAMMPS which adds embedded graphics capabilities """ def __init__(self,name="",cmdargs=None,ptr=None,comm=None): -- GitLab From ed63edc9daa214eda4d1d6f1526a33926aac35ae Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 09:10:59 -0400 Subject: [PATCH 066/165] lammps_has_error() and lammps_get_last_error_message() are always available but dummies without exceptions enabled --- src/library.cpp | 23 +++++++++++++---------- src/library.h | 2 -- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index 3b3cb06a6c..ad075cdaa6 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -2953,8 +2953,6 @@ void lammps_decode_image_flags(imageint image, int *flags) // Library functions for error handling with exceptions enabled // ---------------------------------------------------------------------- -#ifdef LAMMPS_EXCEPTIONS - /** \brief Check if there is a (new) error message available \verbatim embed:rst @@ -2963,19 +2961,24 @@ has thrown a :ref:`C++ exception `. .. note: - This function is only available when the LAMMPS library has been - compiled with ``-DLAMMPS_EXCEPTIONS`` which turns errors aborting - LAMMPS into a C++ exceptions. You can use the library function - :cpp:func:`lammps_config_has_exceptions` to check if this is the case. + This function will always report "no error" when the LAMMPS library + has been compiled without ``-DLAMMPS_EXCEPTIONS`` which turns fatal + errors aborting LAMMPS into a C++ exceptions. You can use the library + function :cpp:func:`lammps_config_has_exceptions` to check if this is + the case. \endverbatim * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. * \return 0 on no error, 1 on error. */ int lammps_has_error(void *handle) { +#ifdef LAMMPS_EXCEPTIONS LAMMPS * lmp = (LAMMPS *) handle; Error * error = lmp->error; return (error->get_last_error().empty()) ? 0 : 1; +#else + return 0; +#endif } /** \brief Copy the last error message into the provided buffer @@ -2994,8 +2997,8 @@ the failing MPI ranks to send messages. .. note: - This function is only available when the LAMMPS library has been - compiled with ``-DLAMMPS_EXCEPTIONS`` which turns errors aborting + This function will do nothing when the LAMMPS library has been + compiled without ``-DLAMMPS_EXCEPTIONS`` which turns errors aborting LAMMPS into a C++ exceptions. You can use the library function :cpp:func:`lammps_config_has_exceptions` to check if this is the case. \endverbatim @@ -3006,6 +3009,7 @@ the failing MPI ranks to send messages. * \return 1 when all ranks had the error, 1 on a single rank error. */ int lammps_get_last_error_message(void *handle, char * buffer, int buf_size) { +#ifdef LAMMPS_EXCEPTIONS LAMMPS * lmp = (LAMMPS *) handle; Error * error = lmp->error; @@ -3015,11 +3019,10 @@ int lammps_get_last_error_message(void *handle, char * buffer, int buf_size) { error->set_last_error("", ERROR_NONE); return error_type; } +#endif return 0; } -#endif - // Local Variables: // fill-column: 72 // End: diff --git a/src/library.h b/src/library.h index a035273c4e..dee9155657 100644 --- a/src/library.h +++ b/src/library.h @@ -191,10 +191,8 @@ void lammps_set_fix_external_callback(void *, char *, FixExternalFnPtr, void*); void lammps_fix_external_set_energy_global(void *, char *, double); void lammps_fix_external_set_virial_global(void *, char *, double *); -#ifdef LAMMPS_EXCEPTIONS int lammps_has_error(void *handle); int lammps_get_last_error_message(void *handle, char *buffer, int buf_size); -#endif #ifdef __cplusplus } -- GitLab From f89a0f9fe35a0a5567981f7a7de0f796ce61d38f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 11:50:20 -0400 Subject: [PATCH 067/165] must not try to delete computes if they have not been created and their ids not yet set --- src/reset_mol_ids.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/reset_mol_ids.cpp b/src/reset_mol_ids.cpp index 7ce027a657..a6cfb69185 100644 --- a/src/reset_mol_ids.cpp +++ b/src/reset_mol_ids.cpp @@ -41,14 +41,17 @@ ResetMolIDs::ResetMolIDs(LAMMPS *lmp) : Pointers(lmp) { compressflag = 1; singleflag = 0; offset = -1; + + idfrag.clear(); + idchunk.clear(); } /* ---------------------------------------------------------------------- */ ResetMolIDs::~ResetMolIDs() { - modify->delete_compute(idfrag); - if (compressflag) modify->delete_compute(idchunk); + if (!idfrag.empty()) modify->delete_compute(idfrag); + if (compressflag && !idchunk.empty()) modify->delete_compute(idchunk); } /* ---------------------------------------------------------------------- -- GitLab From d40b658644f1f5cdf0b8e5be755e69fda8b5c368 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 26 Aug 2020 10:05:14 -0600 Subject: [PATCH 068/165] cmake: update kokkos version/checksum --- cmake/Modules/Packages/KOKKOS.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/Modules/Packages/KOKKOS.cmake b/cmake/Modules/Packages/KOKKOS.cmake index 620f1c65c6..bb27a56e2d 100644 --- a/cmake/Modules/Packages/KOKKOS.cmake +++ b/cmake/Modules/Packages/KOKKOS.cmake @@ -35,8 +35,8 @@ if(DOWNLOAD_KOKKOS) list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") include(ExternalProject) ExternalProject_Add(kokkos_build - URL https://github.com/kokkos/kokkos/archive/3.1.01.tar.gz - URL_MD5 3ccb2100f7fc316891e7dad3bc33fa37 + URL https://github.com/kokkos/kokkos/archive/3.2.00.tar.gz + URL_MD5 81569170fe232e5e64ab074f7cca5e50 CMAKE_ARGS ${KOKKOS_LIB_BUILD_ARGS} BUILD_BYPRODUCTS /lib/libkokkoscore.a ) @@ -50,7 +50,7 @@ if(DOWNLOAD_KOKKOS) target_link_libraries(lammps PRIVATE LAMMPS::KOKKOS) add_dependencies(LAMMPS::KOKKOS kokkos_build) elseif(EXTERNAL_KOKKOS) - find_package(Kokkos 3.1.01 REQUIRED CONFIG) + find_package(Kokkos 3.2.00 REQUIRED CONFIG) target_link_libraries(lammps PRIVATE Kokkos::kokkos) else() set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos) -- GitLab From b4403de026410c0a7da376bc9934c40f279632d7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 12:09:35 -0400 Subject: [PATCH 069/165] add false positive --- doc/utils/sphinx-config/false_positives.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 443478a9fc..c6db142634 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -437,6 +437,7 @@ Colvars COLVARS comID Commun +compositing compressibility compressive Comput -- GitLab From 94db627ba563b536f489d36abd3a8dc6f00ee15f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 12:09:43 -0400 Subject: [PATCH 070/165] fix formatting issue --- doc/src/Errors_messages.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/src/Errors_messages.rst b/doc/src/Errors_messages.rst index 96e21da681..6a694217f8 100644 --- a/doc/src/Errors_messages.rst +++ b/doc/src/Errors_messages.rst @@ -502,11 +502,10 @@ Doc page with :doc:`WARNING messages ` *Bond/react: Unknown section in map file* Please ensure reaction map files are properly formatted. -*Bond/react: Atom type affected by reaction too close to template edge* -*Bond/react: Bond type affected by reaction too close to template edge* +*Bond/react: Atom/Bond type affected by reaction too close to template edge* This means an atom which changes type or connectivity during the reaction is too close to an 'edge' atom defined in the map - file. This could cause incorrect assignment of bonds, angle, etc. + file. This could cause incorrect assignment of bonds, angle, etc. Generally, this means you must include more atoms in your templates, such that there are at least two atoms between each atom involved in the reaction and an edge atom. -- GitLab From 50b8b1bf60d43d8c25e949ce7745a1b8f4a54b2a Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 26 Aug 2020 11:45:24 -0500 Subject: [PATCH 071/165] Fix Kokkos HIP compile error --- src/KOKKOS/pair_exp6_rx_kokkos.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/KOKKOS/pair_exp6_rx_kokkos.cpp b/src/KOKKOS/pair_exp6_rx_kokkos.cpp index d5b1865713..55421bb4e3 100644 --- a/src/KOKKOS/pair_exp6_rx_kokkos.cpp +++ b/src/KOKKOS/pair_exp6_rx_kokkos.cpp @@ -814,7 +814,7 @@ void PairExp6rxKokkos::operator()(TagPairExp6rxComputeNoAtomics unique_token_type; unique_token_type unique_token; @@ -1156,7 +1156,7 @@ void PairExp6rxKokkos::operator()(TagPairExp6rxComputeNoAtomics::vectorized_operator(const int &ii, EV_FLOAT& Kokkos::View::value,Kokkos::MemoryTraits::value> > a_uCGnew = uCGnew; int tid = 0; -#ifndef KOKKOS_ENABLE_CUDA +#ifndef LMP_KOKKOS_GPU typedef Kokkos::Experimental::UniqueToken< DeviceType, Kokkos::Experimental::UniqueTokenScope::Global> unique_token_type; unique_token_type unique_token; @@ -1624,7 +1624,7 @@ void PairExp6rxKokkos::vectorized_operator(const int &ii, EV_FLOAT& t_uCGnew(tid,i) += uCGnew_i; } -#ifndef KOKKOS_ENABLE_CUDA +#ifndef LMP_KOKKOS_GPU unique_token.release(tid); #endif } @@ -2129,7 +2129,7 @@ void partition_range( const int begin, const int end, int &thread_begin, int &th /* ---------------------------------------------------------------------- */ -#ifndef KOKKOS_ENABLE_CUDA +#ifndef LMP_KOKKOS_GPU template template void PairExp6rxKokkos::getMixingWeightsVect(const int np_total, int errorFlag, -- GitLab From 1ad82d7cdbaf39fdd507ffdd32afb3220f6ce2df Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 19:07:08 -0400 Subject: [PATCH 072/165] add separator comment lines --- src/library.cpp | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/src/library.cpp b/src/library.cpp index 3b3cb06a6c..e64487e509 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -155,6 +155,8 @@ void *lammps_open(int argc, char **argv, MPI_Comm comm, void **ptr) return (void *) lmp; } +/* ---------------------------------------------------------------------- */ + /** Variant of ``lammps_open()`` that implicitly uses ``MPI_COMM_WORLD``. * \verbatim embed:rst @@ -182,6 +184,8 @@ void *lammps_open_no_mpi(int argc, char **argv, void **ptr) return lammps_open(argc,argv,MPI_COMM_WORLD,ptr); } +/* ---------------------------------------------------------------------- */ + /** Variant of ``lammps_open()`` using a Fortran MPI communicator. * \verbatim embed:rst @@ -209,6 +213,8 @@ void *lammps_open_fortran(int argc, char **argv, int f_comm, void **ptr) return lammps_open(argc, argv, c_comm, ptr); } +/* ---------------------------------------------------------------------- */ + /** Delete a LAMMPS instance created by lammps_open() or its variants. * \verbatim embed:rst @@ -229,6 +235,8 @@ void lammps_close(void *handle) delete lmp; } +/* ---------------------------------------------------------------------- */ + /** Ensure the MPI environment is initialized. * \verbatim embed:rst @@ -254,6 +262,8 @@ void lammps_mpi_init() } } +/* ---------------------------------------------------------------------- */ + /** Shut down the MPI infrastructure. * \verbatim embed:rst @@ -274,6 +284,8 @@ void lammps_mpi_finalize() MPI_Finalize(); } +/* ---------------------------------------------------------------------- */ + /** Free memory buffer allocated by LAMMPS. * \verbatim embed:rst @@ -329,6 +341,8 @@ void lammps_file(void *handle, const char *filename) END_CAPTURE } +/* ---------------------------------------------------------------------- */ + /** Process a single LAMMPS input command from a string. * \verbatim embed:rst @@ -367,6 +381,8 @@ char *lammps_command(void *handle, const char *cmd) return result; } +/* ---------------------------------------------------------------------- */ + /** Process multiple LAMMPS input commands from list of strings. * \verbatim embed:rst @@ -407,6 +423,8 @@ void lammps_commands_list(void *handle, int ncmd, const char **cmds) lmp->memory->sfree(str); } +/* ---------------------------------------------------------------------- */ + /** \brief Process a block of LAMMPS input commands from a single string. * \verbatim embed:rst @@ -493,6 +511,8 @@ int lammps_version(void *handle) return atoi(lmp->universe->num_ver); } +/* ---------------------------------------------------------------------- */ + /** Return the total number of atoms in the system. * \verbatim embed:rst @@ -524,6 +544,8 @@ double lammps_get_natoms(void *handle) return natoms; } +/* ---------------------------------------------------------------------- */ + /** Get current value of a thermo keyword. * \verbatim embed:rst @@ -553,6 +575,8 @@ double lammps_get_thermo(void *handle, char *keyword) return dval; } +/* ---------------------------------------------------------------------- */ + /** Extract simulation box parameters. * \verbatim embed:rst @@ -618,6 +642,8 @@ void lammps_extract_box(void *handle, double *boxlo, double *boxhi, END_CAPTURE } +/* ---------------------------------------------------------------------- */ + /** Reset simulation box parameters. * \verbatim embed:rst @@ -667,6 +693,8 @@ void lammps_reset_box(void *handle, double *boxlo, double *boxhi, END_CAPTURE } +/* ---------------------------------------------------------------------- */ + /** Query LAMMPS about global settings. * \verbatim embed:rst @@ -751,6 +779,8 @@ int lammps_extract_setting(void * handle, char *name) return -1; } +/* ---------------------------------------------------------------------- */ + /** Get pointer to internal global LAMMPS variables or arrays. * \verbatim embed:rst @@ -1052,6 +1082,8 @@ void *lammps_extract_global(void *handle, char *name) return NULL; } +/* ---------------------------------------------------------------------- */ + /** Get pointer to a LAMMPS per-atom property. * \verbatim embed:rst @@ -1084,6 +1116,8 @@ void *lammps_extract_atom(void *handle, char *name) return lmp->atom->extract(name); } +/* ---------------------------------------------------------------------- */ + /** Create N atoms from list of coordinates * \verbatim embed:rst @@ -1397,6 +1431,8 @@ void *lammps_extract_compute(void *handle, char *id, int style, int type) return NULL; } +/* ---------------------------------------------------------------------- */ + /** Get pointer to data from a LAMMPS fix. * \verbatim embed:rst @@ -1579,6 +1615,8 @@ void *lammps_extract_fix(void *handle, char *id, int style, int type, return NULL; } +/* ---------------------------------------------------------------------- */ + /** Get pointer to data from a LAMMPS variable. * \verbatim embed:rst @@ -1661,6 +1699,8 @@ void *lammps_extract_variable(void *handle, char *name, char *group) return NULL; } +/* ---------------------------------------------------------------------- */ + /** Set the value of a string-style variable. * * This function assigns a new value from the string str to the @@ -2505,6 +2545,8 @@ int lammps_config_has_package(char * name) { return Info::has_package(name) ? 1 : 0; } +/* ---------------------------------------------------------------------- */ + /** \brief Count the number of installed packages in the LAMMPS library. * \verbatim embed:rst @@ -2522,6 +2564,8 @@ int lammps_config_package_count() { return i; } +/* ---------------------------------------------------------------------- */ + /** \brief Get the name of a package in the list of installed packages in the LAMMPS library. * \verbatim embed:rst @@ -2548,6 +2592,8 @@ int lammps_config_package_name(int idx, char * buffer, int buf_size) { return 1; } +/* ---------------------------------------------------------------------- */ + /** \brief Check if a specific style has been included in LAMMPS * \verbatim embed:rst @@ -2569,6 +2615,8 @@ int lammps_has_style(void * handle, char * category, char * name) { return info.has_style(category, name) ? 0 : 1; } +/* ---------------------------------------------------------------------- */ + /** \brief Count the number of styles of category in the LAMMPS library. * \verbatim embed:rst @@ -2588,6 +2636,8 @@ int lammps_style_count(void * handle, char * category) { return info.get_available_styles(category).size(); } +/* ---------------------------------------------------------------------- */ + /** \brief Look up the name of a style by index in the list of style of a given category in the LAMMPS library. * \verbatim embed:rst @@ -2620,6 +2670,8 @@ int lammps_style_name(void* handle, char * category, int idx, char * buffer, int return 0; } +/* ---------------------------------------------------------------------- */ + /** This function is used to query whether LAMMPS was compiled with * a real MPI library or in serial. * @@ -2634,6 +2686,8 @@ int lammps_config_has_mpi_support() #endif } +/* ---------------------------------------------------------------------- */ + /** \brief Check if the LAMMPS library supports compressed files via a pipe to gzip \verbatim embed:rst @@ -2651,6 +2705,8 @@ int lammps_config_has_gzip_support() { return Info::has_gzip_support() ? 1 : 0; } +/* ---------------------------------------------------------------------- */ + /** \brief Check if the LAMMPS library supports writing PNG format images \verbatim embed:rst @@ -2668,6 +2724,8 @@ int lammps_config_has_png_support() { return Info::has_png_support() ? 1 : 0; } +/* ---------------------------------------------------------------------- */ + /** \brief Check if the LAMMPS library supports writing JPEG format images \verbatim embed:rst @@ -2684,6 +2742,8 @@ int lammps_config_has_jpeg_support() { return Info::has_jpeg_support() ? 1 : 0; } +/* ---------------------------------------------------------------------- */ + /** \brief Check if the LAMMPS library supports creating movie files via a pipe to ffmpeg \verbatim embed:rst @@ -2700,6 +2760,8 @@ int lammps_config_has_ffmpeg_support() { return Info::has_ffmpeg_support() ? 1 : 0; } +/* ---------------------------------------------------------------------- */ + /** \brief Check whether LAMMPS errors will throw a C++ exception * \verbatim embed:rst @@ -2756,6 +2818,8 @@ int lammps_find_pair_neighlist(void* handle, char * style, int exact, int nsub, return -1; } +/* ---------------------------------------------------------------------- */ + /** \brief Find neighbor list index of fix neighbor list * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. @@ -2791,6 +2855,8 @@ int lammps_find_fix_neighlist(void* handle, char * id, int request) { return -1; } +/* ---------------------------------------------------------------------- */ + /** \brief Find neighbor list index of compute neighbor list * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. @@ -2826,6 +2892,8 @@ int lammps_find_compute_neighlist(void* handle, char * id, int request) { return -1; } +/* ---------------------------------------------------------------------- */ + /** \brief Return the number of entries in the neighbor list with given index * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. @@ -2845,6 +2913,8 @@ int lammps_neighlist_num_elements(void * handle, int idx) { return list->inum; } +/* ---------------------------------------------------------------------- */ + /** \brief Return atom local index, number of neighbors, and array of neighbor local * atom indices of neighbor list entry * @@ -2920,6 +2990,8 @@ imageint lammps_encode_image_flags(int ix, int iy, int iz) return image; } +/* ---------------------------------------------------------------------- */ + /** Decode a single image flag integer into three regular integers * \verbatim embed:rst @@ -2978,6 +3050,8 @@ int lammps_has_error(void *handle) { return (error->get_last_error().empty()) ? 0 : 1; } +/* ---------------------------------------------------------------------- */ + /** \brief Copy the last error message into the provided buffer \verbatim embed:rst -- GitLab From 85764b3774f48a09e8b5f792a057a7e35d4e2eff Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 19:07:29 -0400 Subject: [PATCH 073/165] replace a few more c++-style comments with old-fashion c-style comments --- src/library.h | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/library.h b/src/library.h index a035273c4e..967cca6552 100644 --- a/src/library.h +++ b/src/library.h @@ -69,9 +69,9 @@ enum _LMP_TYPE_CONST { extern "C" { #endif -// ---------------------------------------------------------------------- -// Library functions to create/destroy an instance of LAMMPS -// ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- + * Library functions to create/destroy an instance of LAMMPS + * ---------------------------------------------------------------------- */ #if !defined(LAMMPS_LIB_NO_MPI) void *lammps_open(int argc, char **argv, MPI_Comm comm, void **ptr); @@ -83,9 +83,9 @@ void lammps_mpi_init(); void lammps_mpi_finalize(); void lammps_free(void *ptr); -// ---------------------------------------------------------------------- -// Library functions to process commands -// ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- + * Library functions to process commands + * ---------------------------------------------------------------------- */ void lammps_file(void *handle, const char *file); @@ -93,9 +93,9 @@ char *lammps_command(void *handle, const char *cmd); void lammps_commands_list(void *handle, int ncmd, const char **cmds); void lammps_commands_string(void *handle, const char *str); -// ----------------------------------------------------------------------- -// Library functions to extract info from LAMMPS or set data in LAMMPS -// ----------------------------------------------------------------------- +/* ----------------------------------------------------------------------- + * Library functions to extract info from LAMMPS or set data in LAMMPS + * ----------------------------------------------------------------------- */ int lammps_version(void *handle); double lammps_get_natoms(void *handle); @@ -119,18 +119,18 @@ int lammps_create_atoms(void *handle, int n, int64_t *id, int *type, double *x, double *v, int64_t* image, int bexpand); #endif -// ---------------------------------------------------------------------- -// Library functions to access data from computes, fixes, variables in LAMMPS -// ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- + * Library functions to access data from computes, fixes, variables in LAMMPS + * ---------------------------------------------------------------------- */ void *lammps_extract_compute(void *handle, char *id, int, int); void *lammps_extract_fix(void *handle, char *, int, int, int, int); void *lammps_extract_variable(void *handle, char *, char *); int lammps_set_variable(void *, char *, char *); -// ---------------------------------------------------------------------- -// Library functions for scatter/gather operations of data -// ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- + * Library functions for scatter/gather operations of data + * ---------------------------------------------------------------------- */ void lammps_gather_atoms(void *, char *, int, int, void *); void lammps_gather_atoms_concat(void *, char *, int, int, void *); @@ -138,9 +138,9 @@ void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *); void lammps_scatter_atoms(void *, char *, int, int, void *); void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *); -// ---------------------------------------------------------------------- -// Library functions for retrieving configuration information -// ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- + * Library functions for retrieving configuration information + * ---------------------------------------------------------------------- */ int lammps_config_has_mpi_support(); int lammps_config_has_package(char *); @@ -156,9 +156,9 @@ int lammps_has_style(void *, char *, char *); int lammps_style_count(void *, char *); int lammps_style_name(void *, char *, int, char *, int); -// ---------------------------------------------------------------------- -// Library functions for accessing neighbor lists -// ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- + * Library functions for accessing neighbor lists + * ---------------------------------------------------------------------- */ int lammps_find_pair_neighlist(void*, char *, int, int, int); int lammps_find_fix_neighlist(void*, char *, int); @@ -166,9 +166,9 @@ int lammps_find_compute_neighlist(void*, char *, int); int lammps_neighlist_num_elements(void*, int); void lammps_neighlist_element_neighbors(void *, int, int, int *, int *, int ** ); -// ---------------------------------------------------------------------- -// Utility functions -// ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- + * Utility functions + * ---------------------------------------------------------------------- */ #if !defined(LAMMPS_BIGBIG) int lammps_encode_image_flags(int ix, int iy, int iz); -- GitLab From 096cef40a883cf501b0c967e415da47ef85a4245 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 19:44:23 -0400 Subject: [PATCH 074/165] remove redundant use of \brief --- src/library.cpp | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index 79a0a4c57c..a329734583 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -425,7 +425,7 @@ void lammps_commands_list(void *handle, int ncmd, const char **cmds) /* ---------------------------------------------------------------------- */ -/** \brief Process a block of LAMMPS input commands from a single string. +/** Process a block of LAMMPS input commands from a single string. * \verbatim embed:rst @@ -2531,7 +2531,7 @@ void lammps_fix_external_set_virial_global(void *handle, char *id, // Library functions for accessing LAMMPS configuration // ---------------------------------------------------------------------- -/** \brief Check if a specific package has been included in LAMMPS +/** Check if a specific package has been included in LAMMPS * \verbatim embed:rst This function checks if the LAMMPS library in use includes the @@ -2547,7 +2547,7 @@ int lammps_config_has_package(char * name) { /* ---------------------------------------------------------------------- */ -/** \brief Count the number of installed packages in the LAMMPS library. +/** Count the number of installed packages in the LAMMPS library. * \verbatim embed:rst This function counts how many :doc:`LAMMPS packages ` are @@ -2566,7 +2566,7 @@ int lammps_config_package_count() { /* ---------------------------------------------------------------------- */ -/** \brief Get the name of a package in the list of installed packages in the LAMMPS library. +/** Get the name of a package in the list of installed packages in the LAMMPS library. * \verbatim embed:rst This function copies the name of the package with the index *idx* into the @@ -2594,7 +2594,7 @@ int lammps_config_package_name(int idx, char * buffer, int buf_size) { /* ---------------------------------------------------------------------- */ -/** \brief Check if a specific style has been included in LAMMPS +/** Check if a specific style has been included in LAMMPS * \verbatim embed:rst This function checks if the LAMMPS library in use includes the @@ -2617,7 +2617,7 @@ int lammps_has_style(void * handle, char * category, char * name) { /* ---------------------------------------------------------------------- */ -/** \brief Count the number of styles of category in the LAMMPS library. +/** Count the number of styles of category in the LAMMPS library. * \verbatim embed:rst This function counts how many styles in the provided *category* @@ -2638,7 +2638,7 @@ int lammps_style_count(void * handle, char * category) { /* ---------------------------------------------------------------------- */ -/** \brief Look up the name of a style by index in the list of style of a given category in the LAMMPS library. +/** Look up the name of a style by index in the list of style of a given category in the LAMMPS library. * \verbatim embed:rst This function copies the name of the package with the index *idx* into the @@ -2688,7 +2688,7 @@ int lammps_config_has_mpi_support() /* ---------------------------------------------------------------------- */ -/** \brief Check if the LAMMPS library supports compressed files via a pipe to gzip +/** Check if the LAMMPS library supports compressed files via a pipe to gzip \verbatim embed:rst Several LAMMPS commands (e.g. :doc:`read_data`, :doc:`write_data`, @@ -2707,7 +2707,7 @@ int lammps_config_has_gzip_support() { /* ---------------------------------------------------------------------- */ -/** \brief Check if the LAMMPS library supports writing PNG format images +/** Check if the LAMMPS library supports writing PNG format images \verbatim embed:rst The LAMMPS :doc:`dump style image ` supports writing multiple @@ -2726,7 +2726,7 @@ int lammps_config_has_png_support() { /* ---------------------------------------------------------------------- */ -/** \brief Check if the LAMMPS library supports writing JPEG format images +/** Check if the LAMMPS library supports writing JPEG format images \verbatim embed:rst The LAMMPS :doc:`dump style image ` supports writing multiple @@ -2744,7 +2744,7 @@ int lammps_config_has_jpeg_support() { /* ---------------------------------------------------------------------- */ -/** \brief Check if the LAMMPS library supports creating movie files via a pipe to ffmpeg +/** Check if the LAMMPS library supports creating movie files via a pipe to ffmpeg \verbatim embed:rst The LAMMPS :doc:`dump style movie ` supports generating movies @@ -2762,7 +2762,7 @@ int lammps_config_has_ffmpeg_support() { /* ---------------------------------------------------------------------- */ -/** \brief Check whether LAMMPS errors will throw a C++ exception +/** Check whether LAMMPS errors will throw a C++ exception * \verbatim embed:rst In case of errors LAMMPS will either abort or throw a C++ exception. @@ -2779,7 +2779,7 @@ int lammps_config_has_exceptions() { // Library functions for accessing neighbor lists // ---------------------------------------------------------------------- -/** \brief Find neighbor list index of pair style neighbor list +/** Find neighbor list index of pair style neighbor list * * Try finding pair instance that matches style. If exact is set, the pair must * match style exactly. If exact is 0, style must only be contained. If pair is @@ -2820,7 +2820,7 @@ int lammps_find_pair_neighlist(void* handle, char * style, int exact, int nsub, /* ---------------------------------------------------------------------- */ -/** \brief Find neighbor list index of fix neighbor list +/** Find neighbor list index of fix neighbor list * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. * \param id Identifier of fix instance @@ -2857,7 +2857,7 @@ int lammps_find_fix_neighlist(void* handle, char * id, int request) { /* ---------------------------------------------------------------------- */ -/** \brief Find neighbor list index of compute neighbor list +/** Find neighbor list index of compute neighbor list * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. * \param id Identifier of fix instance @@ -2894,7 +2894,7 @@ int lammps_find_compute_neighlist(void* handle, char * id, int request) { /* ---------------------------------------------------------------------- */ -/** \brief Return the number of entries in the neighbor list with given index +/** Return the number of entries in the neighbor list with given index * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. * \param idx neighbor list index @@ -2915,7 +2915,7 @@ int lammps_neighlist_num_elements(void * handle, int idx) { /* ---------------------------------------------------------------------- */ -/** \brief Return atom local index, number of neighbors, and array of neighbor local +/** Return atom local index, number of neighbors, and array of neighbor local * atom indices of neighbor list entry * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. @@ -3025,7 +3025,7 @@ void lammps_decode_image_flags(imageint image, int *flags) // Library functions for error handling with exceptions enabled // ---------------------------------------------------------------------- -/** \brief Check if there is a (new) error message available +/** Check if there is a (new) error message available \verbatim embed:rst This function can be used to query if an error inside of LAMMPS @@ -3055,7 +3055,7 @@ int lammps_has_error(void *handle) { /* ---------------------------------------------------------------------- */ -/** \brief Copy the last error message into the provided buffer +/** Copy the last error message into the provided buffer \verbatim embed:rst This function can be used to retrieve the error message that was set -- GitLab From 6a68743e547ffbbe227ba84d0ecd9ce65ec461fd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 22:46:55 -0400 Subject: [PATCH 075/165] transfer a chunk of text from Developer.tex to the manual. --- doc/src/pg_developer.rst | 133 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 128 insertions(+), 5 deletions(-) diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index 7b46a4f90a..006dcd5132 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -113,8 +113,131 @@ care has to be taken, that suitable communicators are used to not create conflicts between different instances. The LAMMPS class currently holds instances of 19 classes representing -different core functionalities -There are a handful of virtual parent classes in LAMMPS that define -what LAMMPS calls ``styles``. They are shaded red in Fig -\ref{fig:classes}. Each of these are parents of a number of child -classes that implement the interface defined by the parent class. +different core functionalities There are a handful of virtual parent +classes in LAMMPS that define what LAMMPS calls ``styles``. They are +shaded red in the :ref:`class-topology` figure. Each of these are +parents of a number of child classes that implement the interface +defined by the parent class. There are two main categories of these +``styles``: some may only have one instance active at a time (e.g. atom, +pair, bond, angle, dihedral, improper, kspace, comm) and there is a +dedicated pointer variable in the composite class that manages them. +Setups that require a mix of different such styles have to use a +*hybrid* class that manages and forwards calls to the corresponding +sub-styles for the designated subset of atoms or data. or the composite +class may have lists of class instances, e.g. Modify handles lists of +compute and fix styles, while Output handles dumps class instances. + +The exception to this scheme are the ``command`` style classes. These +implement specific commands that can be invoked before, after, or between +runs or are commands which launch a simulation. For these an instance +of the class is created, its command() method called and then, after +completion, the class instance deleted. Examples for this are the +create_box, create_atoms, minimize, run, or velocity command styles. + +For all those ``styles`` certain naming conventions are employed: for +the fix nve command the class is called FixNVE and the files are +``fix_nve.h`` and ``fix_nve.cpp``. Similarly for fix ave/time we have +FixAveTime and ``fix_ave_time.h`` and ``fix_ave_time.cpp``. Style names +are lower case and without spaces or special characters. A suffix or +multiple appended with a forward slash '/' denotes a variant of the +corresponding class without the suffix. To connect the style name and +the class name, LAMMPS uses macros like the following ATOM\_CLASS, +PAIR\_CLASS, BOND\_CLASS, REGION\_CLASS, FIX\_CLASS, COMPUTE\_CLASS, +or DUMP\_CLASS in the corresponding header file. During compilation +files with the pattern ``style_name.h`` are created that contain include +statements including all headers of all styles of a given type that +are currently active (or "installed). + + +More details on individual classes in :ref:`class-topology` are as +follows: + +#. The Memory class handles allocation of all large vectors and arrays. + +#. The Error class prints all error and warning messages. + +#. The Universe class sets up partitions of processors so that multiple + simulations can be run, each on a subset of the processors allocated + for a run, e.g. by the mpirun command. + +#. The Input class reads and processes input input strings and files, + stores variables, and invokes :doc:`commands `. + +#. As discussed above, command style classes are directly derived from + the Pointers class. They provide input script commands that perform + one-time operations before/after/between simulations or which invoke + a simulation. They are instantiated from within the Input class, + invoked, then immediately destructed. + +#. The Finish class is instantiated to print statistics to the + screen after a simulation is performed, by commands like run and + minimize. + +#. The Special class walks the bond topology of a molecular system + to find first, second, third neighbors of each atom. It is invoked by + several commands, like :doc:`read_data `, + :doc:`read_restart `, or :doc:`replicate `. + +#. The Atom class stores per-atom properties associated with atom + styles. More precisely, they are allocated and managed by a class + derived from the AtomVec class, and the Atom class simply stores + pointers to them. The classes derived from AtomVec represent the + different atom styles and they are instantiated through the + :doc:`atom_style ` command. + +#. The Update class holds instances of an integrator and a minimizer + class. The Integrate class is a parent style for the Verlet and + r-RESPA time integrators, as defined by the :doc:`run_style + ` command. The Min class is a parent style for various + energy minimizers. + +#. The Neighbor class builds and stores neighbor lists. The NeighList + class stores a single list (for all atoms). A NeighRequest class + instance is created by pair, fix, or compute styles when they need a + particular kind of neighbor list and use the NeighRequest properties + to select the neighbor list settings for the given request. There can + be multiple instances of the NeighRequest class and the Neighbor + class will try to optimize how they are computed by creating copies + or sub-lists where possible. + +#. The Comm class performs inter-processor communication, typically of + ghost atom information. This usually involves MPI message exchanges + with 6 neighboring processors in the 3d logical grid of processors + mapped to the simulation box. There are two :doc:`communication + styles ` enabling different ways to do the domain + decomposition. Sometimes the Irregular class is used, when atoms may + migrate to arbitrary processors. + +#. The Domain class stores the simulation box geometry, as well as + geometric Regions and any user definition of a Lattice. The latter + are defined by the :doc:`region ` and :doc:`lattice ` + commands in an input script. + +#. The Force class computes various forces between atoms. The Pair + parent class is for non-bonded or pair-wise forces, which in LAMMPS + also includes many-body forces such as the Tersoff 3-body potential + if those are computed by walking pairwise neighbor lists. The Bond, + Angle, Dihedral, Improper parent classes are styles for bonded + interactions within a static molecular topology. The KSpace parent + class is for computing long-range Coulombic interactions. One of its + child classes, PPPM, uses the FFT3D and Remap classes to redistribute + and communicate grid-based information across the parallel + processors. + +#. The Modify class stores lists of class instances derived from the + :doc:`Fix ` and :doc:`Compute ` base classes. + +#. The Group class manipulates groups that atoms are assigned to + via the :doc:`group ` command. It also has functions to + compute various attributes of groups of atoms. + +#. The Output class is used to generate 3 kinds of output from a + LAMMPS simulation: thermodynamic information printed to the screen + and log file, dump file snapshots, and restart files. These + correspond to the Thermo, Dump, and WriteRestart classes + respectively. The Dump class is a base class with several + derived classes implementing dump style variants. + +#. The Timer class logs timing information, output at the end + of a run. + -- GitLab From f314b7e54f3d85ccf9ba15bd02a7dfaa573bb584 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Aug 2020 23:05:59 -0400 Subject: [PATCH 076/165] update format from enumerate to itemize and start next subsection --- doc/src/pg_developer.rst | 235 ++++++++++++++++++++++++--------------- 1 file changed, 146 insertions(+), 89 deletions(-) diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index 006dcd5132..6f51010c4b 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -149,95 +149,152 @@ statements including all headers of all styles of a given type that are currently active (or "installed). -More details on individual classes in :ref:`class-topology` are as +More details on individual classes in the :ref:`class-topology` are as follows: -#. The Memory class handles allocation of all large vectors and arrays. - -#. The Error class prints all error and warning messages. - -#. The Universe class sets up partitions of processors so that multiple - simulations can be run, each on a subset of the processors allocated - for a run, e.g. by the mpirun command. - -#. The Input class reads and processes input input strings and files, - stores variables, and invokes :doc:`commands `. - -#. As discussed above, command style classes are directly derived from - the Pointers class. They provide input script commands that perform - one-time operations before/after/between simulations or which invoke - a simulation. They are instantiated from within the Input class, - invoked, then immediately destructed. - -#. The Finish class is instantiated to print statistics to the - screen after a simulation is performed, by commands like run and - minimize. - -#. The Special class walks the bond topology of a molecular system - to find first, second, third neighbors of each atom. It is invoked by - several commands, like :doc:`read_data `, - :doc:`read_restart `, or :doc:`replicate `. - -#. The Atom class stores per-atom properties associated with atom - styles. More precisely, they are allocated and managed by a class - derived from the AtomVec class, and the Atom class simply stores - pointers to them. The classes derived from AtomVec represent the - different atom styles and they are instantiated through the - :doc:`atom_style ` command. - -#. The Update class holds instances of an integrator and a minimizer - class. The Integrate class is a parent style for the Verlet and - r-RESPA time integrators, as defined by the :doc:`run_style - ` command. The Min class is a parent style for various - energy minimizers. - -#. The Neighbor class builds and stores neighbor lists. The NeighList - class stores a single list (for all atoms). A NeighRequest class - instance is created by pair, fix, or compute styles when they need a - particular kind of neighbor list and use the NeighRequest properties - to select the neighbor list settings for the given request. There can - be multiple instances of the NeighRequest class and the Neighbor - class will try to optimize how they are computed by creating copies - or sub-lists where possible. - -#. The Comm class performs inter-processor communication, typically of - ghost atom information. This usually involves MPI message exchanges - with 6 neighboring processors in the 3d logical grid of processors - mapped to the simulation box. There are two :doc:`communication - styles ` enabling different ways to do the domain - decomposition. Sometimes the Irregular class is used, when atoms may - migrate to arbitrary processors. - -#. The Domain class stores the simulation box geometry, as well as - geometric Regions and any user definition of a Lattice. The latter - are defined by the :doc:`region ` and :doc:`lattice ` - commands in an input script. - -#. The Force class computes various forces between atoms. The Pair - parent class is for non-bonded or pair-wise forces, which in LAMMPS - also includes many-body forces such as the Tersoff 3-body potential - if those are computed by walking pairwise neighbor lists. The Bond, - Angle, Dihedral, Improper parent classes are styles for bonded - interactions within a static molecular topology. The KSpace parent - class is for computing long-range Coulombic interactions. One of its - child classes, PPPM, uses the FFT3D and Remap classes to redistribute - and communicate grid-based information across the parallel - processors. - -#. The Modify class stores lists of class instances derived from the - :doc:`Fix ` and :doc:`Compute ` base classes. - -#. The Group class manipulates groups that atoms are assigned to - via the :doc:`group ` command. It also has functions to - compute various attributes of groups of atoms. - -#. The Output class is used to generate 3 kinds of output from a - LAMMPS simulation: thermodynamic information printed to the screen - and log file, dump file snapshots, and restart files. These - correspond to the Thermo, Dump, and WriteRestart classes - respectively. The Dump class is a base class with several - derived classes implementing dump style variants. - -#. The Timer class logs timing information, output at the end - of a run. +- The Memory class handles allocation of all large vectors and arrays. + +- The Error class prints all error and warning messages. + +- The Universe class sets up partitions of processors so that multiple + simulations can be run, each on a subset of the processors allocated + for a run, e.g. by the mpirun command. + +- The Input class reads and processes input input strings and files, + stores variables, and invokes :doc:`commands `. + +- As discussed above, command style classes are directly derived from + the Pointers class. They provide input script commands that perform + one-time operations before/after/between simulations or which invoke a + simulation. They are instantiated from within the Input class, + invoked, then immediately destructed. + +- The Finish class is instantiated to print statistics to the screen + after a simulation is performed, by commands like run and minimize. + +- The Special class walks the bond topology of a molecular system to + find first, second, third neighbors of each atom. It is invoked by + several commands, like :doc:`read_data `, + :doc:`read_restart `, or :doc:`replicate `. + +- The Atom class stores per-atom properties associated with atom styles. + More precisely, they are allocated and managed by a class derived from + the AtomVec class, and the Atom class simply stores pointers to them. + The classes derived from AtomVec represent the different atom styles + and they are instantiated through the :doc:`atom_style ` + command. + +- The Update class holds instances of an integrator and a minimizer + class. The Integrate class is a parent style for the Verlet and + r-RESPA time integrators, as defined by the :doc:`run_style + ` command. The Min class is a parent style for various + energy minimizers. + +- The Neighbor class builds and stores neighbor lists. The NeighList + class stores a single list (for all atoms). A NeighRequest class + instance is created by pair, fix, or compute styles when they need a + particular kind of neighbor list and use the NeighRequest properties + to select the neighbor list settings for the given request. There can + be multiple instances of the NeighRequest class and the Neighbor class + will try to optimize how they are computed by creating copies or + sub-lists where possible. + +- The Comm class performs inter-processor communication, typically of + ghost atom information. This usually involves MPI message exchanges + with 6 neighboring processors in the 3d logical grid of processors + mapped to the simulation box. There are two :doc:`communication styles + ` enabling different ways to do the domain decomposition. + Sometimes the Irregular class is used, when atoms may migrate to + arbitrary processors. + +- The Domain class stores the simulation box geometry, as well as + geometric Regions and any user definition of a Lattice. The latter + are defined by the :doc:`region ` and :doc:`lattice ` + commands in an input script. + +- The Force class computes various forces between atoms. The Pair + parent class is for non-bonded or pair-wise forces, which in LAMMPS + also includes many-body forces such as the Tersoff 3-body potential if + those are computed by walking pairwise neighbor lists. The Bond, + Angle, Dihedral, Improper parent classes are styles for bonded + interactions within a static molecular topology. The KSpace parent + class is for computing long-range Coulombic interactions. One of its + child classes, PPPM, uses the FFT3D and Remap classes to redistribute + and communicate grid-based information across the parallel processors. + +- The Modify class stores lists of class instances derived from the + :doc:`Fix ` and :doc:`Compute ` base classes. + +- The Group class manipulates groups that atoms are assigned to via the + :doc:`group ` command. It also has functions to compute + various attributes of groups of atoms. + +- The Output class is used to generate 3 kinds of output from a LAMMPS + simulation: thermodynamic information printed to the screen and log + file, dump file snapshots, and restart files. These correspond to the + :doc:`Thermo `, :doc:`Dump `, and + :doc:`WriteRestart ` classes respectively. The Dump + class is a base class with several derived classes implementing + various dump style variants. + +- The Timer class logs timing information, output at the end + of a run. + +.. TODO section on "Spatial decomposition and parallel operations" +.. diagram of 3d processor grid, brick vs. tiled. local vs. ghost +.. atoms, 6-way communication with pack/unpack functions, +.. PBC as part of the communication + +.. TODO section on "Fixes, Computes, and Variables" +.. how and when data is computed and provided and how it is +.. referenced. flags in Fix/Compute/Variable classes tell +.. style and amount of available data. + + +How a timestep works +==================== + +The first and most fundamental operation within LAMMPS to understand is +how a timestep is structured. Timestepping is performed by calling +methods of the Integrate class instance within the Update class. Since +Integrate is a base class, it will point to an instance of a derived +class corresponding to what is selected by the :doc:`run_style +` input script command. + +In this section, the timestep implemented by the Verlet class is +described. A similar timestep protocol is implemented by the Respa +class, for the r-RESPA hierarchical timestepping method. + +The Min base class performs energy minimization, so does not perform a +literal timestep. But it has logic similar to what is described here, +to compute forces and invoke fixes at each iteration of a minimization. +Differences between time integration and minimization are highlighted at +the end of this section. + +The Verlet class is encoded in the ``src/verlet.cpp`` and ``verlet.h`` +files. It implements the velocity-Verlet timestepping algorithm. The +workhorse method is ``Verlet::run()``, but first we highlight several +other methods in the class. + +- The ``init()`` method is called at the beginning of each dynamics + run. It simply sets some internal flags, based on user settings in + other parts of the code. + +- The ``setup()`` or ``setup_minimal()`` methods are also called before + each run. The velocity-Verlet method requires current forces be + calculated before the first timestep, so these routines compute + forces due to all atomic interactions, using the same logic that + appears in the timestepping described next. A few fixes are also + invoked, using the mechanism described in the next section. Various + counters are also initialized before the run begins. The + ``setup_minimal()`` method is a variant that has a flag for performing + less setup. This is used when runs are continued and information + from the previous run is still valid. For example, if repeated + short LAMMPS runs are being invoked, interleaved by other commands, + via the *pre no* and *every* options of the run command, the + ``setup_minimal()`` method is used. + +- The ``force_clear()`` method initializes force and other arrays to + zero before each timestep, so that forces (torques, etc) can be + accumulated. -- GitLab From e4e15157f8410d433590c0d0e26297744b17940a Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Wed, 26 Aug 2020 23:41:00 -0500 Subject: [PATCH 077/165] Fixed bugs in the GPU kernels of pair styles beck/gpu and gauss/gpu involving factor_lj --- lib/gpu/lal_beck.cu | 4 ++-- lib/gpu/lal_gauss.cu | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/gpu/lal_beck.cu b/lib/gpu/lal_beck.cu index f24132b9a2..b2b588a238 100644 --- a/lib/gpu/lal_beck.cu +++ b/lib/gpu/lal_beck.cu @@ -103,7 +103,7 @@ __kernel void k_beck(const __global numtyp4 *restrict x_, numtyp term1inv = ucl_recip(term1); numtyp e = beck2[mtype].x*ucl_exp((numtyp)-1.0*r*term4); e -= beck2[mtype].y*term6*((numtyp)1.0+((numtyp)2.709+(numtyp)3.0*aaij*aaij)*term1inv); - energy+=factor_lj*e; + energy+=e; //factor_lj*e; } if (vflag>0) { virial[0] += delx*delx*force; @@ -205,7 +205,7 @@ __kernel void k_beck_fast(const __global numtyp4 *restrict x_, numtyp term1inv = ucl_recip(term1); numtyp e = beck2[mtype].x*ucl_exp((numtyp)-1.0*r*term4); e -= beck2[mtype].y*term6*((numtyp)1.0+((numtyp)2.709+(numtyp)3.0*aaij*aaij)*term1inv); - energy+=factor_lj*e; + energy+=e; //factor_lj*e; } if (vflag>0) { virial[0] += delx*delx*force; diff --git a/lib/gpu/lal_gauss.cu b/lib/gpu/lal_gauss.cu index ae6ab00edd..6a50aa6725 100644 --- a/lib/gpu/lal_gauss.cu +++ b/lib/gpu/lal_gauss.cu @@ -81,7 +81,7 @@ __kernel void k_gauss(const __global numtyp4 *restrict x_, numtyp r2inv = ucl_recip(rsq); numtyp r = ucl_sqrt(rsq); numtyp force = (numtyp)-2.0*gauss1[mtype].x*gauss1[mtype].y*rsq* - ucl_exp(-gauss1[mtype].y*rsq)*r2inv*factor_lj; + ucl_exp(-gauss1[mtype].y*rsq)*r2inv; //*factor_lj; f.x+=delx*force; f.y+=dely*force; @@ -90,7 +90,7 @@ __kernel void k_gauss(const __global numtyp4 *restrict x_, if (eflag>0) { numtyp e=-(gauss1[mtype].x*ucl_exp(-gauss1[mtype].y*rsq) - gauss1[mtype].w); - energy+=factor_lj*e; + energy+=e; //factor_lj*e; } if (vflag>0) { virial[0] += delx*delx*force; @@ -168,7 +168,7 @@ __kernel void k_gauss_fast(const __global numtyp4 *restrict x_, numtyp r2inv = ucl_recip(rsq); numtyp r = ucl_sqrt(rsq); numtyp force = (numtyp)-2.0*gauss1[mtype].x*gauss1[mtype].y*rsq* - ucl_exp(-gauss1[mtype].y*rsq)*r2inv*factor_lj; + ucl_exp(-gauss1[mtype].y*rsq)*r2inv; //*factor_lj; f.x+=delx*force; f.y+=dely*force; @@ -177,7 +177,7 @@ __kernel void k_gauss_fast(const __global numtyp4 *restrict x_, if (eflag>0) { numtyp e=-(gauss1[mtype].x*ucl_exp(-gauss1[mtype].y*rsq) - gauss1[mtype].w); - energy+=factor_lj*e; + energy+=e; //factor_lj*e; } if (vflag>0) { virial[0] += delx*delx*force; -- GitLab From bc49e854bae999c82a12954dcbbe62245d0afc75 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 27 Aug 2020 11:53:19 -0400 Subject: [PATCH 078/165] bond/react RMSD constraint: manual rebase --- src/USER-REACTION/fix_bond_react.cpp | 131 ++++++++++++--------------- src/USER-REACTION/fix_bond_react.h | 6 +- 2 files changed, 63 insertions(+), 74 deletions(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 77be72c47d..b3dba63894 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -19,6 +19,7 @@ Contributing Author: Jacob Gissinger (jacob.gissinger@colorado.edu) #include #include #include +#include #include "update.h" #include "modify.h" #include "respa.h" @@ -32,6 +33,7 @@ Contributing Author: Jacob Gissinger (jacob.gissinger@colorado.edu) #include "neigh_list.h" #include "neigh_request.h" #include "random_mars.h" +#include "reset_mol_ids.h" #include "molecule.h" #include "group.h" #include "citeme.h" @@ -41,6 +43,7 @@ Contributing Author: Jacob Gissinger (jacob.gissinger@colorado.edu) #include "error.h" #include "input.h" #include "variable.h" +#include "fmt/format.h" #include "superpose3d.h" #include @@ -91,6 +94,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : fix1 = NULL; fix2 = NULL; fix3 = NULL; + reset_mol_ids = NULL; if (narg < 8) error->all(FLERR,"Illegal fix bond/react command: " "too few arguments"); @@ -143,7 +147,8 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : int iarg = 3; stabilization_flag = 0; - int num_common_keywords = 1; + reset_mol_ids_flag = 1; + int num_common_keywords = 2; for (int m = 0; m < num_common_keywords; m++) { if (strcmp(arg[iarg],"stabilization") == 0) { if (strcmp(arg[iarg+1],"no") == 0) { @@ -161,11 +166,23 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : nve_limit_xmax = arg[iarg+3]; iarg += 4; } + } else if (strcmp(arg[iarg],"reset_mol_ids") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " + "'reset_mol_ids' keyword has too few arguments"); + if (strcmp(arg[iarg+1],"yes") == 0) ; // default + if (strcmp(arg[iarg+1],"no") == 0) reset_mol_ids_flag = 0; + iarg += 2; } else if (strcmp(arg[iarg],"react") == 0) { break; } else error->all(FLERR,"Illegal fix bond/react command: unknown keyword"); } + if (reset_mol_ids_flag) { + delete reset_mol_ids; + reset_mol_ids = new ResetMolIDs(lmp); + reset_mol_ids->create_computes(id,group->names[igroup]); + } + // set up common variables as vectors of length 'nreacts' // nevery, cutoff, onemol, twomol, superimpose file @@ -228,11 +245,11 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : int n = strlen(arg[iarg]) + 1; if (n > MAXLINE) error->all(FLERR,"Reaction name (react-ID) is too long (limit: 256 characters)"); - strncpy(rxn_name[rxn],arg[iarg++],n); + strcpy(rxn_name[rxn],arg[iarg++]); - int igroup = group->find(arg[iarg++]); - if (igroup == -1) error->all(FLERR,"Could not find fix group ID"); - groupbits[rxn] = group->bitmask[igroup]; + int groupid = group->find(arg[iarg++]); + if (groupid == -1) error->all(FLERR,"Could not find fix group ID"); + groupbits[rxn] = group->bitmask[groupid]; if (strncmp(arg[iarg],"v_",2) == 0) { n = strlen(&arg[iarg][2]) + 1; @@ -498,6 +515,8 @@ FixBondReact::~FixBondReact() } delete [] random; + delete reset_mol_ids; + memory->destroy(partner); memory->destroy(finalpartner); memory->destroy(ncreate); @@ -576,17 +595,11 @@ FixBondReact::~FixBondReact() delete [] set; if (group) { - char **newarg; - newarg = new char*[2]; - newarg[0] = master_group; - newarg[1] = (char *) "delete"; - group->assign(2,newarg); + group->assign(std::string(master_group) + " delete"); if (stabilization_flag == 1) { - newarg[0] = exclude_group; - group->assign(2,newarg); + group->assign(std::string(exclude_group) + " delete"); delete [] exclude_group; } - delete [] newarg; } } @@ -609,59 +622,38 @@ it will have the name 'i_limit_tags' and will be intitialized to 0 (not in group void FixBondReact::post_constructor() { + int len; // let's add the limit_tags per-atom property fix - int len = strlen("bond_react_props_internal") + 1; - id_fix2 = new char[len]; - strcpy(id_fix2,"bond_react_props_internal"); + std::string cmd = std::string("bond_react_props_internal"); + id_fix2 = new char[cmd.size()+1]; + strcpy(id_fix2,cmd.c_str()); int ifix = modify->find_fix(id_fix2); if (ifix == -1) { - char **newarg = new char*[7]; - newarg[0] = (char *) "bond_react_props_internal"; - newarg[1] = (char *) "all"; // group ID is ignored - newarg[2] = (char *) "property/atom"; - newarg[3] = (char *) "i_limit_tags"; - newarg[4] = (char *) "i_react_tags"; - newarg[5] = (char *) "ghost"; - newarg[6] = (char *) "yes"; - modify->add_fix(7,newarg); - delete [] newarg; + cmd += std::string(" all property/atom i_limit_tags i_react_tags ghost yes"); + modify->add_fix(cmd); } // create master_group if not already existing // NOTE: limit_tags and react_tags automaticaly intitialized to zero (unless read from restart) group->find_or_create(master_group); - char **newarg; - newarg = new char*[5]; - newarg[0] = master_group; - newarg[1] = (char *) "dynamic"; - newarg[2] = (char *) "all"; - newarg[3] = (char *) "property"; - newarg[4] = (char *) "limit_tags"; - group->assign(5,newarg); - delete [] newarg; + cmd = fmt::format("{} dynamic all property limit_tags",master_group); + group->assign(cmd); if (stabilization_flag == 1) { - int igroup = group->find(exclude_group); + int groupid = group->find(exclude_group); // create exclude_group if not already existing, or use as parent group if static - if (igroup == -1 || group->dynamic[igroup] == 0) { + if (groupid == -1 || group->dynamic[groupid] == 0) { // create stabilization per-atom property - len = strlen("bond_react_stabilization_internal") + 1; - id_fix3 = new char[len]; - strcpy(id_fix3,"bond_react_stabilization_internal"); + cmd = std::string("bond_react_stabilization_internal"); + id_fix3 = new char[cmd.size()+1]; + strcpy(id_fix3,cmd.c_str()); ifix = modify->find_fix(id_fix3); if (ifix == -1) { - char **newarg = new char*[6]; - newarg[0] = (char *) id_fix3; - newarg[1] = (char *) "all"; // group ID is ignored - newarg[2] = (char *) "property/atom"; - newarg[3] = (char *) "i_statted_tags"; - newarg[4] = (char *) "ghost"; - newarg[5] = (char *) "yes"; - modify->add_fix(6,newarg); + cmd += std::string(" all property/atom i_statted_tags ghost yes"); + modify->add_fix(cmd); fix3 = modify->fix[modify->nfix-1]; - delete [] newarg; } len = strlen("statted_tags") + 1; @@ -681,16 +673,11 @@ void FixBondReact::post_constructor() strcat(exclude_group,"_REACT"); group->find_or_create(exclude_group); - char **newarg; - newarg = new char*[5]; - newarg[0] = exclude_group; - newarg[1] = (char *) "dynamic"; - if (igroup == -1) newarg[2] = (char *) "all"; - else newarg[2] = (char *) exclude_PARENT_group; - newarg[3] = (char *) "property"; - newarg[4] = (char *) "statted_tags"; - group->assign(5,newarg); - delete [] newarg; + if (groupid == -1) + cmd = fmt::format("{} dynamic all property statted_tags",exclude_group); + else + cmd = fmt::format("{} dynamic {} property statted_tags",exclude_group,exclude_PARENT_group); + group->assign(cmd); delete [] exclude_PARENT_group; // on to statted_tags (system-wide thermostat) @@ -738,21 +725,16 @@ void FixBondReact::post_constructor() // let's create a new nve/limit fix to limit newly reacted atoms - len = strlen("bond_react_MASTER_nve_limit") + 1; - id_fix1 = new char[len]; - strcpy(id_fix1,"bond_react_MASTER_nve_limit"); + cmd = std::string("bond_react_MASTER_nve_limit"); + id_fix1 = new char[cmd.size()+1]; + strcpy(id_fix1,cmd.c_str()); ifix = modify->find_fix(id_fix1); if (ifix == -1) { - char **newarg = new char*[4]; - newarg[0] = id_fix1; - newarg[1] = master_group; - newarg[2] = (char *) "nve/limit"; - newarg[3] = nve_limit_xmax; - modify->add_fix(4,newarg); + cmd += fmt::format(" {} nve/limit {}",master_group,nve_limit_xmax); + modify->add_fix(cmd); fix1 = modify->fix[modify->nfix-1]; - delete [] newarg; } } } @@ -2136,7 +2118,7 @@ void FixBondReact::find_landlocked_atoms(int myrxn) for (int i = 0; i < twomol->natoms; i++) { if (twomol->type[i] != onemol->type[equivalences[i][1][myrxn]-1] && landlocked_atoms[i][myrxn] == 0) { char str[128]; - snprintf(str,128,"Bond/react: Atom affected by reaction %s too close to template edge",rxn_name[myrxn]); + snprintf(str,128,"Bond/react: Atom type affected by reaction %s too close to template edge",rxn_name[myrxn]); error->all(FLERR,str); } } @@ -2155,7 +2137,7 @@ void FixBondReact::find_landlocked_atoms(int myrxn) if (onemol_batom == equivalences[twomol_atomj-1][1][myrxn]) { if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomi-1][m]) { char str[128]; - snprintf(str,128,"Bond/react: Atom affected by reaction %s too close to template edge",rxn_name[myrxn]); + snprintf(str,128,"Bond/react: Bond type affected by reaction %s too close to template edge",rxn_name[myrxn]); error->all(FLERR,str); } } @@ -2167,7 +2149,7 @@ void FixBondReact::find_landlocked_atoms(int myrxn) if (onemol_batom == equivalences[i][1][myrxn]) { if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomj-1][m]) { char str[128]; - snprintf(str,128,"Bond/react: Atom affected by reaction %s too close to template edge",rxn_name[myrxn]); + snprintf(str,128,"Bond/react: Bond type affected by reaction %s too close to template edge",rxn_name[myrxn]); error->all(FLERR,str); } } @@ -2578,7 +2560,7 @@ void FixBondReact::ghost_glovecast() } /* ---------------------------------------------------------------------- -update charges, types, special lists and all topology +update molecule IDs, charges, types, special lists and all topology ------------------------------------------------------------------------- */ void FixBondReact::update_everything() @@ -3117,6 +3099,9 @@ void FixBondReact::update_everything() atom->natoms -= ndel; // done deleting atoms + // reset mol ids + if (reset_mol_ids_flag) reset_mol_ids->reset(); + // something to think about: this could done much more concisely if // all atom-level info (bond,angles, etc...) were kinda inherited from a common data struct --JG diff --git a/src/USER-REACTION/fix_bond_react.h b/src/USER-REACTION/fix_bond_react.h index e8a4253ce7..61a1bd4213 100644 --- a/src/USER-REACTION/fix_bond_react.h +++ b/src/USER-REACTION/fix_bond_react.h @@ -61,6 +61,7 @@ class FixBondReact : public Fix { int *max_rxn,*nlocalskips,*nghostlyskips; tagint lastcheck; int stabilization_flag; + int reset_mol_ids_flag; int custom_exclude_flag; int *stabilize_steps_flag; int *update_edges_flag; @@ -93,6 +94,7 @@ class FixBondReact : public Fix { class RanMars **random; // random number for 'prob' keyword class RanMars **rrhandom; // random number for Arrhenius constraint class NeighList *list; + class ResetMolIDs *reset_mol_ids; // class for resetting mol IDs int *reacted_mol,*unreacted_mol; int *limit_duration; // indicates how long to relax @@ -240,8 +242,10 @@ E: Bond/react: Invalid template atom ID in map file Atom IDs in molecule templates range from 1 to the number of atoms in the template. E or W: Bond/react: Atom affected by reaction %s too close to template edge + Bond/react: Atom type affected by reaction %s too close to template edge + Bond/react: Bond type affected by reaction %s too close to template edge -This means an atom which changes type or connectivity during the +This means an atom (or bond) that changes type or connectivity during the reaction is too close to an 'edge' atom defined in the map file. This could cause incorrect assignment of bonds, angle, etc. Generally, this means you must include more atoms in your templates, such that there -- GitLab From 91554d628771397c44b93b9464a4d81f188e1e07 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 27 Aug 2020 12:13:07 -0400 Subject: [PATCH 079/165] move RMSD files to new reaction package --- src/{USER-MISC => USER-REACTION}/math_eigen.h | 0 src/{USER-MISC => USER-REACTION}/superpose3d.h | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/{USER-MISC => USER-REACTION}/math_eigen.h (100%) rename src/{USER-MISC => USER-REACTION}/superpose3d.h (100%) diff --git a/src/USER-MISC/math_eigen.h b/src/USER-REACTION/math_eigen.h similarity index 100% rename from src/USER-MISC/math_eigen.h rename to src/USER-REACTION/math_eigen.h diff --git a/src/USER-MISC/superpose3d.h b/src/USER-REACTION/superpose3d.h similarity index 100% rename from src/USER-MISC/superpose3d.h rename to src/USER-REACTION/superpose3d.h -- GitLab From 794e74e06415736182c0135a91a593bb060baee2 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 27 Aug 2020 12:22:48 -0400 Subject: [PATCH 080/165] return of the lost enum --- src/USER-REACTION/fix_bond_react.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index b3dba63894..337872c610 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -79,7 +79,7 @@ static const char cite_fix_bond_react[] = enum{ACCEPT,REJECT,PROCEED,CONTINUE,GUESSFAIL,RESTORE}; // types of available reaction constraints -enum{DISTANCE,ANGLE,DIHEDRAL,ARRHENIUS}; +enum{DISTANCE,ANGLE,DIHEDRAL,ARRHENIUS,RMSD}; // keyword values that accept variables as input enum{NEVERY,RMIN,RMAX,PROB}; -- GitLab From 977a89e53712b46cd2f8562cf3e5b2ad1b2ff6d3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Aug 2020 12:33:03 -0400 Subject: [PATCH 081/165] add separators --- python/lammps.py | 102 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 1 deletion(-) diff --git a/python/lammps.py b/python/lammps.py index 2eba2a45c9..ef1761dcb6 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -56,6 +56,8 @@ LMP_SIZE_COLS = 5 LMP_VAR_EQUAL = 0 LMP_VAR_ATOM = 1 +# ------------------------------------------------------------------------- + def get_ctypes_int(size): if size == 4: return c_int32 @@ -63,6 +65,8 @@ def get_ctypes_int(size): return c_int64 return c_int +# ------------------------------------------------------------------------- + class MPIAbortException(Exception): def __init__(self, message): self.message = message @@ -70,6 +74,8 @@ class MPIAbortException(Exception): def __str__(self): return repr(self.message) +# ------------------------------------------------------------------------- + class NeighList: """This is a wrapper class that exposes the contents of a neighbor list. @@ -121,6 +127,9 @@ class NeighList: for ii in range(inum): yield self.get(ii) +# ------------------------------------------------------------------------- +# ------------------------------------------------------------------------- + class lammps(object): """Create an instance of the LAMMPS Python class. @@ -148,7 +157,8 @@ class lammps(object): :type comm: MPI_Comm """ - # create instance of LAMMPS + # ------------------------------------------------------------------------- + # create an instance of LAMMPS def __init__(self,name='',cmdargs=None,ptr=None,comm=None): self.comm = comm @@ -376,6 +386,7 @@ class lammps(object): self.lib.lammps_set_fix_external_callback.argtypes = [c_void_p, c_char_p, self.FIX_EXTERNAL_CALLBACK_FUNC, py_object] self.lib.lammps_set_fix_external_callback.restype = None + # ------------------------------------------------------------------------- # shut-down LAMMPS instance def __del__(self): @@ -383,6 +394,8 @@ class lammps(object): self.lib.lammps_close(self.lmp) self.opened = 0 + # ------------------------------------------------------------------------- + @property def numpy(self): "Convert between ctypes arrays and numpy arrays" @@ -447,6 +460,8 @@ class lammps(object): self._numpy = LammpsNumpyWrapper(self) return self._numpy + # ------------------------------------------------------------------------- + def close(self): """Explicitly delete a LAMMPS instance through the C-library interface. @@ -456,6 +471,8 @@ class lammps(object): self.lmp = None self.opened = 0 + # ------------------------------------------------------------------------- + def finalize(self): """Shut down the MPI communication through the library interface by calling :cpp:func:`lammps_finalize`. """ @@ -464,6 +481,8 @@ class lammps(object): self.opened = 0 self.lib.lammps_finalize() + # ------------------------------------------------------------------------- + def version(self): """Return a numerical representation of the LAMMPS version in use. @@ -474,6 +493,8 @@ class lammps(object): """ return self.lib.lammps_version(self.lmp) + # ------------------------------------------------------------------------- + def file(self,file): """Read LAMMPS commands from a file. @@ -488,6 +509,8 @@ class lammps(object): else: return self.lib.lammps_file(self.lmp,file) + # ------------------------------------------------------------------------- + def command(self,cmd): """Process a single LAMMPS input command from a string. @@ -510,6 +533,8 @@ class lammps(object): raise MPIAbortException(error_msg) raise Exception(error_msg) + # ------------------------------------------------------------------------- + def commands_list(self,cmdlist): """Process multiple LAMMPS input commands from a list of strings. @@ -526,6 +551,8 @@ class lammps(object): self.lib.lammps_commands_list.argtypes = [c_void_p, c_int, c_char_p * narg] self.lib.lammps_commands_list(self.lmp,narg,args) + # ------------------------------------------------------------------------- + def commands_string(self,multicmd): """Process a block of LAMMPS input commands from a string. @@ -539,6 +566,8 @@ class lammps(object): if type(multicmd) is str: multicmd = multicmd.encode() self.lib.lammps_commands_string(self.lmp,c_char_p(multicmd)) + # ------------------------------------------------------------------------- + def get_natoms(self): """Get the total number of atoms in the LAMMPS instance. @@ -550,6 +579,8 @@ class lammps(object): """ return self.lib.lammps_get_natoms(self.lmp) + # ------------------------------------------------------------------------- + def extract_box(self): """Extract simulation box parameters @@ -582,6 +613,8 @@ class lammps(object): return boxlo,boxhi,xy,yz,xz,periodicity,box_change + # ------------------------------------------------------------------------- + def reset_box(self,boxlo,boxhi,xy,yz,xz): """Reset simulation box parameters @@ -603,6 +636,8 @@ class lammps(object): cboxhi = (3*c_double)(*boxhi) self.lib.lammps_reset_box(self.lmp,cboxlo,cboxhi,xy,yz,xz) + # ------------------------------------------------------------------------- + def get_thermo(self,name): """Get current value of a thermo keyword @@ -619,6 +654,8 @@ class lammps(object): self.lib.lammps_get_thermo.restype = c_double return self.lib.lammps_get_thermo(self.lmp,name) + # ------------------------------------------------------------------------- + def extract_setting(self, name): """Query LAMMPS about global settings that can be expressed as an integer. @@ -636,6 +673,7 @@ class lammps(object): self.lib.lammps_extract_setting.restype = c_int return int(self.lib.lammps_extract_setting(self.lmp,name)) + # ------------------------------------------------------------------------- # extract global info def extract_global(self, name, type): @@ -681,6 +719,7 @@ class lammps(object): if ptr: return ptr[0] else: return None + # ------------------------------------------------------------------------- # extract per-atom info # NOTE: need to insure are converting to/from correct Python type # e.g. for Python list or NumPy or ctypes @@ -733,6 +772,8 @@ class lammps(object): else: return None + # ------------------------------------------------------------------------- + def extract_compute(self,id,style,type): """Retrieve data from a LAMMPS compute @@ -797,6 +838,7 @@ class lammps(object): return None + # ------------------------------------------------------------------------- # extract fix info # in case of global data, free memory for 1 double via lammps_free() # double was allocated by library interface function @@ -884,6 +926,7 @@ class lammps(object): else: return None + # ------------------------------------------------------------------------- # extract variable info # free memory for 1 double or 1 vector of doubles via lammps_free() # for vector, must copy nlocal returned values to local c_double vector @@ -935,6 +978,8 @@ class lammps(object): return result return None + # ------------------------------------------------------------------------- + def set_variable(self,name,value): """Set a new value for a LAMMPS string style variable @@ -954,6 +999,8 @@ class lammps(object): else: return -1 return self.lib.lammps_set_variable(self.lmp,name,value) + # ------------------------------------------------------------------------- + # return vector of atom properties gathered across procs # 3 variants to match src/library.cpp # name = atom property recognized by LAMMPS in atom->extract() @@ -975,6 +1022,8 @@ class lammps(object): else: return None return data + # ------------------------------------------------------------------------- + def gather_atoms_concat(self,name,type,count): if name: name = name.encode() natoms = self.lib.lammps_get_natoms(self.lmp) @@ -998,6 +1047,8 @@ class lammps(object): else: return None return data + # ------------------------------------------------------------------------- + # scatter vector of atom properties across procs # 2 variants to match src/library.cpp # name = atom property recognized by LAMMPS in atom->extract() @@ -1011,11 +1062,15 @@ class lammps(object): if name: name = name.encode() self.lib.lammps_scatter_atoms(self.lmp,name,type,count,data) + # ------------------------------------------------------------------------- + def scatter_atoms_subset(self,name,type,count,ndata,ids,data): if name: name = name.encode() self.lib.lammps_scatter_atoms_subset(self.lmp,name,type,count,ndata,ids,data) + # ------------------------------------------------------------------------- + def encode_image_flags(self,ix,iy,iz): """ convert 3 integers with image flags for x-, y-, and z-direction into a single integer like it is used internally in LAMMPS @@ -1035,6 +1090,8 @@ class lammps(object): self.lib.lammps_encode_image_flags.restype = self.c_imageint return self.lib.lammps_encode_image_flags(ix,iy,iz) + # ------------------------------------------------------------------------- + def decode_image_flags(self,image): """ Convert encoded image flag integer into list of three regular integers. @@ -1053,6 +1110,7 @@ class lammps(object): return [int(i) for i in flags] + # ------------------------------------------------------------------------- # create N atoms on all procs # N = global number of atoms # id = ID of each atom (optional, can be None) @@ -1149,6 +1207,8 @@ class lammps(object): POINTER(self.c_imageint*n), c_int] return self.lib.lammps_create_atoms(self.lmp,n,id_lmp,type_lmp,x_lmp,v_lmp,img_lmp,se_lmp) + # ------------------------------------------------------------------------- + @property def has_mpi_support(self): """ Report whether the LAMMPS shared library was compiled with a @@ -1162,6 +1222,8 @@ class lammps(object): """ return self.lib.lammps_config_has_mpi_support() != 0 + # ------------------------------------------------------------------------- + @property def has_exceptions(self): """ Report whether the LAMMPS shared library was compiled with C++ @@ -1175,6 +1237,8 @@ class lammps(object): """ return self.lib.lammps_config_has_exceptions() != 0 + # ------------------------------------------------------------------------- + @property def has_gzip_support(self): """ Report whether the LAMMPS shared library was compiled with support @@ -1188,6 +1252,8 @@ class lammps(object): """ return self.lib.lammps_config_has_gzip_support() != 0 + # ------------------------------------------------------------------------- + @property def has_png_support(self): """ Report whether the LAMMPS shared library was compiled with support @@ -1201,6 +1267,8 @@ class lammps(object): """ return self.lib.lammps_config_has_png_support() != 0 + # ------------------------------------------------------------------------- + @property def has_jpeg_support(self): """ Report whether the LAMMPS shared library was compiled with support @@ -1214,6 +1282,8 @@ class lammps(object): """ return self.lib.lammps_config_has_jpeg_support() != 0 + # ------------------------------------------------------------------------- + @property def has_ffmpeg_support(self): """ State of support for writing movies with ``ffmpeg`` in the LAMMPS shared library @@ -1226,6 +1296,8 @@ class lammps(object): """ return self.lib.lammps_config_has_ffmpeg_support() != 0 + # ------------------------------------------------------------------------- + @property def installed_packages(self): """ List of the names of enabled packages in the LAMMPS shared library @@ -1244,6 +1316,8 @@ class lammps(object): self._installed_packages.append(sb.value.decode()) return self._installed_packages + # ------------------------------------------------------------------------- + def has_style(self, category, name): """Returns whether a given style name is available in a given category @@ -1260,6 +1334,8 @@ class lammps(object): """ return self.lib.lammps_has_style(self.lmp, category.encode(), name.encode()) != 0 + # ------------------------------------------------------------------------- + def available_styles(self, category): """Returns a list of styles available for a given category @@ -1284,8 +1360,11 @@ class lammps(object): self._available_styles[category].append(sb.value.decode()) return self._available_styles[category] + # ------------------------------------------------------------------------- + def set_fix_external_callback(self, fix_name, callback, caller=None): import numpy as np + def _ctype_to_numpy_int(ctype_int): if ctype_int == c_int32: return np.int32 @@ -1305,6 +1384,8 @@ class lammps(object): self.callback[fix_name] = { 'function': cFunc, 'caller': caller } self.lib.lammps_set_fix_external_callback(self.lmp, fix_name.encode(), cFunc, cCaller) + # ------------------------------------------------------------------------- + def get_neighlist(self, idx): """Returns an instance of :class:`NeighList` which wraps access to the neighbor list with the given index @@ -1317,6 +1398,8 @@ class lammps(object): return None return NeighList(self, idx) + # ------------------------------------------------------------------------- + def find_pair_neighlist(self, style, exact=True, nsub=0, request=0): """Find neighbor list index of pair style neighbor list @@ -1345,6 +1428,8 @@ class lammps(object): idx = self.lib.lammps_find_pair_neighlist(self.lmp, style, exact, nsub, request) return self.get_neighlist(idx) + # ------------------------------------------------------------------------- + def find_fix_neighlist(self, fixid, request=0): """Find neighbor list index of fix neighbor list @@ -1359,6 +1444,8 @@ class lammps(object): idx = self.lib.lammps_find_fix_neighlist(self.lmp, fixid, request) return self.get_neighlist(idx) + # ------------------------------------------------------------------------- + def find_compute_neighlist(self, computeid, request=0): """Find neighbor list index of compute neighbor list @@ -1373,6 +1460,8 @@ class lammps(object): idx = self.lib.lammps_find_compute_neighlist(self.lmp, computeid, request) return self.get_neighlist(idx) + # ------------------------------------------------------------------------- + def get_neighlist_size(self, idx): """Return the number of elements in neighbor list with the given index @@ -1383,6 +1472,8 @@ class lammps(object): """ return self.lib.lammps_neighlist_num_elements(self.lmp, idx) + # ------------------------------------------------------------------------- + def get_neighlist_element_neighbors(self, idx, element): """Return data of neighbor list entry @@ -1443,6 +1534,7 @@ class OutputCapture(object): def output(self): return self.read_pipe(self.stdout_pipe_read) +# ------------------------------------------------------------------------- class Variable(object): def __init__(self, lammps_wrapper_instance, name, style, definition): @@ -1462,6 +1554,7 @@ class Variable(object): except ValueError: return value +# ------------------------------------------------------------------------- class AtomList(object): def __init__(self, lammps_wrapper_instance): @@ -1474,6 +1567,7 @@ class AtomList(object): return Atom2D(self.lmp, index + 1) return Atom(self.lmp, index + 1) +# ------------------------------------------------------------------------- class Atom(object): def __init__(self, lammps_wrapper_instance, index): @@ -1530,6 +1624,7 @@ class Atom(object): def charge(self): return self.lmp.eval("q[%d]" % self.index) +# ------------------------------------------------------------------------- class Atom2D(Atom): def __init__(self, lammps_wrapper_instance, index): @@ -1560,6 +1655,7 @@ class Atom2D(Atom): return (self.lmp.eval("fx[%d]" % self.index), self.lmp.eval("fy[%d]" % self.index)) +# ------------------------------------------------------------------------- class variable_set: def __init__(self, name, variable_dict): @@ -1584,6 +1680,7 @@ class variable_set: def __repr__(self): return self.__str__() +# ------------------------------------------------------------------------- def get_thermo_data(output): """ traverse output of runs and extract thermo data columns """ @@ -1631,6 +1728,9 @@ def get_thermo_data(output): return runs +# ------------------------------------------------------------------------- +# ------------------------------------------------------------------------- + class PyLammps(object): """ More Python-like wrapper for LAMMPS (e.g., for IPython) -- GitLab From 5c0edeb679174536c6a0a6abde43eb29ab469482 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 27 Aug 2020 12:43:28 -0400 Subject: [PATCH 082/165] namespace clarify --- src/USER-REACTION/superpose3d.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/USER-REACTION/superpose3d.h b/src/USER-REACTION/superpose3d.h index 480ce6fe2e..e61e8e0c93 100644 --- a/src/USER-REACTION/superpose3d.h +++ b/src/USER-REACTION/superpose3d.h @@ -75,8 +75,8 @@ public: /// optionally scale transformations) to superimpose two point clouds. /// /// @details - /// This function takes two lists of xyz coordinates (of the same length) and - /// attempts to superimpose them using rotations, translations, and + /// This function takes two lists of xyz coordinates (of the same length) and + /// attempts to superimpose them using rotations, translations, and /// (optionally) scale transformations. These transformations are applied to /// to the coordinates in the "aaXm_orig" array (the "mobile" point cloud) /// in order to minimize the root-mean-squared-distance (RMSD) between the @@ -91,7 +91,7 @@ public: /// and "w_i" are optional weights (represented by "aWeights" in the code). /// This function implements a more general variant of the method from: /// @verbatim - /// R. Diamond, (1988) "A Note on the Rotational Superposition Problem", + /// R. Diamond, (1988) "A Note on the Rotational Superposition Problem", /// Acta Cryst. A44, pp. 211-216 /// @endverbatim /// @@ -398,22 +398,22 @@ Alloc(size_t N) { aWeights = new Scalar [N]; for (size_t i = 0; i < N; i++) aWeights[i] = 1.0 / N; - Alloc2D(3, 3, &R); - Alloc2D(N, 3, &aaXf_shifted); - Alloc2D(N, 3, &aaXm_shifted); + MathEigen::Alloc2D(3, 3, &R); + MathEigen::Alloc2D(N, 3, &aaXf_shifted); + MathEigen::Alloc2D(N, 3, &aaXm_shifted); } template void Superpose3D:: Dealloc() { if (R) - Dealloc2D(&R); + MathEigen::Dealloc2D(&R); if (aWeights) delete [] aWeights; if (aaXf_shifted) - Dealloc2D(&aaXf_shifted); + MathEigen::Dealloc2D(&aaXf_shifted); if (aaXm_shifted) - Dealloc2D(&aaXm_shifted); + MathEigen::Dealloc2D(&aaXm_shifted); } // memory management: copy and move constructor, swap, and assignment operator: -- GitLab From 0d8baff7a946aceaf3802dd556ab58c8c5eb3789 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 27 Aug 2020 14:03:17 -0400 Subject: [PATCH 083/165] Rename LAMMPS_DBLE2D to LAMMPS_DOUBLE2D --- python/lammps.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/lammps.py b/python/lammps.py index ef1761dcb6..4755cd8240 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -36,7 +36,7 @@ import sys LAMMPS_INT = 0 LAMMPS_INT2D = 1 LAMMPS_DOUBLE = 2 -LAMMPS_DBLE2D = 3 +LAMMPS_DOUBLE2D = 3 LAMMPS_BIGINT = 4 LAMMPS_TAGINT = 5 LAMMPS_STRING = 6 @@ -734,7 +734,7 @@ class lammps(object): the result, the type has to be provided as an argument. For that purpose the :py:mod:`lammps` module contains the constants ``LAMMPS_INT``, ``LAMMPS_INT2D``, ``LAMMPS_DOUBLE``, - and ``LAMMPS_DBLE2D``. + and ``LAMMPS_DOUBLE2D``. This function returns ``None`` if either the keyword is not recognized, or an invalid data type constant is used. @@ -764,7 +764,7 @@ class lammps(object): self.lib.lammps_extract_atom.restype = POINTER(POINTER(c_int)) elif type == LAMMPS_DOUBLE: self.lib.lammps_extract_atom.restype = POINTER(c_double) - elif type == LAMMPS_DBLE2D: + elif type == LAMMPS_DOUBLE2D: self.lib.lammps_extract_atom.restype = POINTER(POINTER(c_double)) else: return None ptr = self.lib.lammps_extract_atom(self.lmp,name) -- GitLab From ab90493e5bb7dc398e7453e126b354d2ca99464c Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 27 Aug 2020 14:45:42 -0400 Subject: [PATCH 084/165] bond/react: RMSD, remove debugging statements --- src/USER-REACTION/fix_bond_react.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 337872c610..c5efb8c5a7 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -1865,7 +1865,6 @@ int FixBondReact::check_constraints() double **xmobile; // coordinates for the "mobile" molecule int ifragment = constraints[i][3]; if (ifragment >= 0) { - printf("made it\n" ); for (int j = 0; j < onemol->natoms; j++) if (onemol->fragmentmask[ifragment][j]) n2superpose++; memory->create(xfrozen,n2superpose,3,"bond/react:xfrozen"); @@ -1893,7 +1892,6 @@ int FixBondReact::check_constraints() } Superpose3D superposer(n2superpose); double rmsd = superposer.Superpose(xfrozen, xmobile); - printf("rmsd %g %d\n", rmsd,n2superpose); if (rmsd > constraints[i][2]) return 0; memory->destroy(xfrozen); memory->destroy(xmobile); -- GitLab From 32aede77696eac0fa75c85940e576c4ad69c05f6 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 27 Aug 2020 14:53:09 -0400 Subject: [PATCH 085/165] minor doc clarification --- doc/src/fix_bond_react.rst | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/src/fix_bond_react.rst b/doc/src/fix_bond_react.rst index 2306ca4fb5..25502c52d4 100755 --- a/doc/src/fix_bond_react.rst +++ b/doc/src/fix_bond_react.rst @@ -441,14 +441,15 @@ The constraint of type 'RMSD' has the following syntax: where 'RMSD' is the required keyword, and *RMSDmax* is the maximum root-mean-square deviation between atom positions of the pre-reaction template and the local reaction site, after optimal translation and -rotation of the pre-reaction template. Optionally, a molecule fragment -(of the pre-reaction template) can be specified by *molfragment*\ . -Only atoms that are part of this molecule fragment are used to -determine the RMSD. A molecule fragment must have been defined in the -:doc:`molecule ` command for the pre-reaction template. For -example, the molecule fragment could consist of only the backbone -atoms of a polymer chain. This constraint can be used to enforce a -specific relative position and orientation between reacting molecules. +rotation of the pre-reaction template. Optionally, the name of a +molecule fragment (of the pre-reaction template) can be specified by +*molfragment*\ . If a molecule fragment is specified, only atoms that +are part of this molecule fragment are used to determine the RMSD. A +molecule fragment must have been defined in the :doc:`molecule +` command for the pre-reaction template. For example, the +molecule fragment could consist of only the backbone atoms of a +polymer chain. This constraint can be used to enforce a specific +relative position and orientation between reacting molecules. Once a reaction site has been successfully identified, data structures within LAMMPS that store bond topology are updated to reflect the -- GitLab From de4bf777579b97eb030a2bf4e4c3ac3d91e927c3 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Thu, 27 Aug 2020 13:32:27 -0600 Subject: [PATCH 086/165] two typos on pair peri doc page --- doc/src/pair_peri.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/pair_peri.rst b/doc/src/pair_peri.rst index f66705d913..de487df9a3 100644 --- a/doc/src/pair_peri.rst +++ b/doc/src/pair_peri.rst @@ -128,7 +128,7 @@ viscoelastic relaxation parameter and time constant, respectively. m_lambdai varies within zero to one. For very small values of m_lambdai the viscoelastic model responds very similar to a linear elastic model. For details please see the description in -"(Mtchell2011)". +"(Mitchell2011)". For the *peri/eps* style: @@ -142,7 +142,7 @@ For the *peri/eps* style: K is the bulk modulus and G is the shear modulus. The horizon is a cutoff distance and s00 and :math:`\alpha` are used as a bond breaking criteria. m_yield_stress is the yield stress of the material. For -details please see the description in "(Mtchell2011a)". +details please see the description in "(Mitchell2011a)". ---------- -- GitLab From fdb726629fcb650b0effd7f08417b7c2104c155f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Aug 2020 17:14:05 -0400 Subject: [PATCH 087/165] revert "fix" for pair style beck/gpu and correct beck and beck/omp instead we should consistently apply factor_lj for both, force and energy, or not --- lib/gpu/lal_beck.cu | 4 ++-- src/USER-OMP/pair_beck_omp.cpp | 1 + src/pair_beck.cpp | 1 + unittest/force-styles/tests/mol-pair-beck.yaml | 6 +++--- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/gpu/lal_beck.cu b/lib/gpu/lal_beck.cu index b2b588a238..f24132b9a2 100644 --- a/lib/gpu/lal_beck.cu +++ b/lib/gpu/lal_beck.cu @@ -103,7 +103,7 @@ __kernel void k_beck(const __global numtyp4 *restrict x_, numtyp term1inv = ucl_recip(term1); numtyp e = beck2[mtype].x*ucl_exp((numtyp)-1.0*r*term4); e -= beck2[mtype].y*term6*((numtyp)1.0+((numtyp)2.709+(numtyp)3.0*aaij*aaij)*term1inv); - energy+=e; //factor_lj*e; + energy+=factor_lj*e; } if (vflag>0) { virial[0] += delx*delx*force; @@ -205,7 +205,7 @@ __kernel void k_beck_fast(const __global numtyp4 *restrict x_, numtyp term1inv = ucl_recip(term1); numtyp e = beck2[mtype].x*ucl_exp((numtyp)-1.0*r*term4); e -= beck2[mtype].y*term6*((numtyp)1.0+((numtyp)2.709+(numtyp)3.0*aaij*aaij)*term1inv); - energy+=e; //factor_lj*e; + energy+=factor_lj*e; } if (vflag>0) { virial[0] += delx*delx*force; diff --git a/src/USER-OMP/pair_beck_omp.cpp b/src/USER-OMP/pair_beck_omp.cpp index 48e6f9b0fe..bb41334153 100644 --- a/src/USER-OMP/pair_beck_omp.cpp +++ b/src/USER-OMP/pair_beck_omp.cpp @@ -153,6 +153,7 @@ void PairBeckOMP::eval(int iifrom, int iito, ThrData * const thr) term1inv = 1.0/term1; evdwl = AA[itype][jtype]*exp(-1.0*r*term4); evdwl -= BB[itype][jtype]*term6*(1.0+(2.709+3.0*aaij*aaij)*term1inv); + evdwl *= factor_lj; } if (EVFLAG) ev_tally_thr(this, i,j,nlocal,NEWTON_PAIR, diff --git a/src/pair_beck.cpp b/src/pair_beck.cpp index 31dd2ef62f..6085398d4c 100644 --- a/src/pair_beck.cpp +++ b/src/pair_beck.cpp @@ -132,6 +132,7 @@ void PairBeck::compute(int eflag, int vflag) term1inv = 1.0/term1; evdwl = AA[itype][jtype]*exp(-1.0*r*term4); evdwl -= BB[itype][jtype]*term6*(1.0+(2.709+3.0*aaij*aaij)*term1inv); + evdwl *= factor_lj; } if (evflag) ev_tally(i,j,nlocal,newton_pair, diff --git a/unittest/force-styles/tests/mol-pair-beck.yaml b/unittest/force-styles/tests/mol-pair-beck.yaml index 08f3d0eb13..0a9004289a 100644 --- a/unittest/force-styles/tests/mol-pair-beck.yaml +++ b/unittest/force-styles/tests/mol-pair-beck.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 21 Jul 2020 -date_generated: Sat Aug 1 06:07:46 202 +lammps_version: 24 Aug 2020 +date_generated: Thu Aug 27 17:07:12 202 epsilon: 5e-14 prerequisites: ! | atom full @@ -28,7 +28,7 @@ pair_coeff: ! | 5 5 279437.56732576 78.2341704275754 3.13943017396948 5.20120131244272 1.00000000000006e-08 extract: ! "" natoms: 29 -init_vdwl: 1878.87161628876 +init_vdwl: 190.036082315631 init_coul: 0 init_stress: ! |2- 3.9653395125210380e+02 4.0062392946132519e+02 6.5568989225726875e+02 -8.0274562500806340e+01 3.9101921977574932e+01 7.1424156350717041e+01 -- GitLab From fa13e23f7a01f39fdfa856aa953ea9ee5a720bbd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Aug 2020 17:41:25 -0400 Subject: [PATCH 088/165] add atomic test for gauss pair style --- .../force-styles/tests/atomic-pair-gauss.yaml | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 unittest/force-styles/tests/atomic-pair-gauss.yaml diff --git a/unittest/force-styles/tests/atomic-pair-gauss.yaml b/unittest/force-styles/tests/atomic-pair-gauss.yaml new file mode 100644 index 0000000000..b6f477b5d5 --- /dev/null +++ b/unittest/force-styles/tests/atomic-pair-gauss.yaml @@ -0,0 +1,90 @@ +--- +lammps_version: 21 Aug 2020 +date_generated: Wed Aug 26 15:18:04 202 +epsilon: 5e-12 +prerequisites: ! | + pair gauss +pre_commands: ! "" +post_commands: ! "" +input_file: in.metal +pair_style: gauss 8.0 +pair_coeff: ! | + 1 1 0.02 0.176 + 2 2 0.005 1.1 +extract: ! "" +natoms: 32 +init_vdwl: -0.563282655796335 +init_coul: 0 +init_stress: ! |- + -7.1147683670454420e-01 -6.1895022673299749e-01 -7.1191426374517874e-01 -1.3771409096139881e-03 8.9168242763715066e-05 -4.5069108788045121e-03 +init_forces: ! |2 + 1 -3.6975091363322197e-03 -8.9166609180134377e-03 3.8707370816502317e-03 + 2 6.7664258073144642e-04 3.0285805489280921e-03 5.8246816035877568e-05 + 3 7.5183749069060923e-04 -5.9597015320580152e-03 2.9037917992728402e-04 + 4 -1.0475839410519602e-03 -1.4148792698487741e-03 -1.2416950669482958e-03 + 5 3.4659191685813421e-03 -1.0592557038465261e-02 1.7167649635640306e-03 + 6 -2.0475405635241796e-03 -8.6989207608955711e-03 1.3418888653935538e-03 + 7 -1.2552853754846285e-03 -8.3218226106267883e-03 -6.0990521648894716e-03 + 8 1.0360368053013332e-03 -8.3883339491666240e-04 -2.6138068672443950e-03 + 9 4.1082937587654349e-03 1.0388903548678087e-02 2.8242797697012609e-03 + 10 3.0365914074665344e-03 -2.2252705767044950e-03 5.4269465575813216e-03 + 11 1.3004025353227297e-03 1.5457051866805356e-02 -7.3429974982901578e-03 + 12 5.1312746351524271e-03 5.6154154320436234e-03 -6.1242911513773998e-03 + 13 -4.1183232509029929e-03 9.4869050937663110e-03 1.7031346395223349e-03 + 14 -1.3984473074106509e-03 2.3954677961721006e-03 6.8820150454989418e-05 + 15 5.8013186047801459e-04 1.3665809850244893e-03 -2.9667523828888907e-03 + 16 -5.5149323840025799e-03 3.9231523520377376e-03 -5.7838177614615953e-03 + 17 -1.0517085303787545e-03 -1.0325998256457721e-02 -2.9330828348634970e-03 + 18 6.7213123017888297e-04 -1.3325061791941048e-04 9.7378305919517734e-05 + 19 1.7419961411847631e-03 -3.0438907880170718e-03 -2.9361186595039862e-04 + 20 -1.5166405967847016e-03 -1.6318347020119605e-03 2.0888288971545555e-03 + 21 -3.4554749816301331e-04 -1.2317433244469309e-02 -1.9376462742739437e-03 + 22 1.9679936406251231e-05 -2.8622553443930811e-03 1.0199898126447986e-04 + 23 -3.3388836800437929e-03 -5.6041781071079263e-03 6.6830063101126500e-03 + 24 1.0042783549230922e-03 -1.6856423379370820e-03 1.5876572173932921e-03 + 25 2.0987440879636924e-03 1.8116243065802462e-03 -4.7113266062051416e-04 + 26 2.2100060749557972e-03 3.7067639415198292e-03 -6.6249167381585480e-03 + 27 2.8988173789132590e-03 1.1447286743003436e-02 7.5453222446118743e-03 + 28 1.7361574622116339e-03 1.3810057381998862e-03 8.1905302076125364e-04 + 29 -2.5747642276920109e-03 2.6563759975225766e-03 3.6250176235475764e-05 + 30 -3.9857037525045701e-04 4.3697148126638332e-03 -3.1548156670274658e-04 + 31 -1.4904089957431151e-03 1.3032869676305749e-03 2.4501187901800996e-03 + 32 -2.6727950464621665e-03 6.2350133692663928e-03 6.0374728662057706e-03 +run_vdwl: -0.563233052239839 +run_coul: 0 +run_stress: ! |- + -7.1157360661143920e-01 -6.1889049047247346e-01 -7.1192632204343109e-01 -1.3392830636186702e-03 7.5725029369861019e-05 -4.5413100211652135e-03 +run_forces: ! |2 + 1 -3.6686124252972409e-03 -8.9350327372598876e-03 3.8810577661021793e-03 + 2 6.7979404886000334e-04 3.0233576690327163e-03 4.7456791294909121e-05 + 3 7.5633049559225857e-04 -5.9439939708244814e-03 2.9942817501032060e-04 + 4 -1.0566057629555279e-03 -1.4272832374600697e-03 -1.2465554120747022e-03 + 5 3.4542187442194961e-03 -1.0591862783855046e-02 1.7040547134995880e-03 + 6 -2.0529624833974776e-03 -8.6908158450241454e-03 1.3521175576812769e-03 + 7 -1.2378100828156998e-03 -8.3153295469970030e-03 -6.0641028446522015e-03 + 8 1.0356610384790247e-03 -8.3942251602866288e-04 -2.6205223928138476e-03 + 9 4.0956197516761146e-03 1.0415492737390893e-02 2.8270546765106733e-03 + 10 3.0232168440311631e-03 -2.2273991989069713e-03 5.4249070307556147e-03 + 11 1.2869492019802285e-03 1.5467748882104244e-02 -7.3455140419333926e-03 + 12 5.1024474988293966e-03 5.6045531136680602e-03 -6.1137045116280847e-03 + 13 -4.1046942912707886e-03 9.4926542944429732e-03 1.7278248815632109e-03 + 14 -1.4068857318857405e-03 2.3698562168476193e-03 7.6075486194014091e-05 + 15 5.8330905021635436e-04 1.3702451769552081e-03 -2.9724575746321578e-03 + 16 -5.4894080631135459e-03 3.9412646806737620e-03 -5.7807073622216203e-03 + 17 -1.0774240198883002e-03 -1.0330343194922521e-02 -2.9590053895634746e-03 + 18 6.7606970063029646e-04 -1.3736892386880862e-04 1.0275184877993657e-04 + 19 1.7410016436244188e-03 -3.0380040199797218e-03 -2.7388946751269005e-04 + 20 -1.5089015590401564e-03 -1.6333211201424390e-03 2.0862691007254492e-03 + 21 -3.2400255636498478e-04 -1.2320097592577971e-02 -1.9320929956516638e-03 + 22 1.6985112307787755e-05 -2.8745852779696280e-03 9.5869218592076162e-05 + 23 -3.3479692839997952e-03 -5.5977162642779129e-03 6.6458983350256295e-03 + 24 9.9831062174002673e-04 -1.6874402964014573e-03 1.5855571063953778e-03 + 25 2.0924859292390380e-03 1.8078584507053310e-03 -4.7094963693244002e-04 + 26 2.2052959022549438e-03 3.7218591686479260e-03 -6.6379106152103752e-03 + 27 2.8965306485482399e-03 1.1432059569111147e-02 7.5653239310787893e-03 + 28 1.7376198455564126e-03 1.3763854610550673e-03 8.1538919655569893e-04 + 29 -2.5676548177329273e-03 2.6497909603554223e-03 1.8339177274955466e-05 + 30 -3.9743098824430285e-04 4.3793350248157127e-03 -3.2444856851193303e-04 + 31 -1.4865980596656129e-03 1.3046725700242229e-03 2.4510790237550098e-03 + 32 -2.6548859521130881e-03 6.2328825506664104e-03 6.0354067965438648e-03 +... -- GitLab From 7b4891a9a3509e3ff77dedb0fe45898d9d5383de Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Aug 2020 17:41:43 -0400 Subject: [PATCH 089/165] document the behavior of the gauss pair style to ignore special bond factors --- doc/src/pair_gauss.rst | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/doc/src/pair_gauss.rst b/doc/src/pair_gauss.rst index d8cd8af308..9413914c1e 100644 --- a/doc/src/pair_gauss.rst +++ b/doc/src/pair_gauss.rst @@ -164,8 +164,18 @@ heading) the following commands could be included in an input script: Restrictions """""""""""" -The *gauss/cut* style is part of the "user-misc" package. It is only -enabled if LAMMPS is build with that package. See the :doc:`Build package ` doc page for more info. +The *gauss/cut* style is part of the USER-MISC package. It is only +enabled if LAMMPS is build with that package. See the :doc:`Build +package ` doc page for more info. + +The *gauss* style does not apply :doc:`special_bonds ` +factors. When using this pair style on a system that has bonds, the +special_bonds factors, if using the default setting of 0.0, may need to +be adjusted to some very small number (e.g. 1.0e-100), so that those +special pairs are not completely excluded from the neighbor lists, but +won't contribute forces or energies from styles (e.g. when used in +combination with a :doc:`hybrid pair style ` that do apply +those factors. Related commands """""""""""""""" -- GitLab From b1fae04751124f67c7dd4810c4524d262806dddb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Aug 2020 17:42:10 -0400 Subject: [PATCH 090/165] use consistent style when referencing packages --- doc/src/Packages_details.rst | 2 +- doc/src/Packages_user.rst | 2 +- doc/src/pair_cosine_squared.rst | 2 +- doc/src/pair_coul_diel.rst | 2 +- doc/src/pair_coul_slater.rst | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index f2426d6ae3..3d21232a8f 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -1692,7 +1692,7 @@ USER-MEAMC package **Contents:** A pair style for the modified embedded atom (MEAM) potential -translated from the Fortran version in the (obsolete) "MEAM" package +translated from the Fortran version in the (obsolete) MEAM package to plain C++. The USER-MEAMC fully replaces the MEAM package, which has been removed from LAMMPS after the 12 December 2018 version. diff --git a/doc/src/Packages_user.rst b/doc/src/Packages_user.rst index 1d07539022..a3efaf15c8 100644 --- a/doc/src/Packages_user.rst +++ b/doc/src/Packages_user.rst @@ -6,7 +6,7 @@ name gives more details. User packages have been contributed by users, and begin with the "user" prefix. If a contribution is a single command (single file), -it is typically in the user-misc package. User packages don't +it is typically in the USER-MISC package. User packages don't necessarily meet the requirements of the :doc:`standard packages `. This means the developers will try to keep things working and usually can answer technical questions about compiling the package. If you have problems using a specific diff --git a/doc/src/pair_cosine_squared.rst b/doc/src/pair_cosine_squared.rst index ada5a7cfd8..faa45c9286 100644 --- a/doc/src/pair_cosine_squared.rst +++ b/doc/src/pair_cosine_squared.rst @@ -107,7 +107,7 @@ These pair styles can only be used via the *pair* keyword of the Restrictions """""""""""" -The *cosine/squared* style is part of the "USER-MISC" package. It is only +The *cosine/squared* style is part of the USER-MISC package. It is only enabled if LAMMPS is build with that package. See the :doc:`Build package ` doc page for more info. Related commands diff --git a/doc/src/pair_coul_diel.rst b/doc/src/pair_coul_diel.rst index 2bdf27a5e6..e979ceef31 100644 --- a/doc/src/pair_coul_diel.rst +++ b/doc/src/pair_coul_diel.rst @@ -95,7 +95,7 @@ This pair style can only be used via the *pair* keyword of the Restrictions """""""""""" -This style is part of the "USER-MISC" package. It is only enabled if +This style is part of the USER-MISC package. It is only enabled if LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. Related commands diff --git a/doc/src/pair_coul_slater.rst b/doc/src/pair_coul_slater.rst index ae5623f935..cc8e6f243c 100644 --- a/doc/src/pair_coul_slater.rst +++ b/doc/src/pair_coul_slater.rst @@ -95,7 +95,7 @@ Restrictions The *coul/slater/long* style requires the long-range solvers included in the KSPACE package. -These styles are part of the "USER-MISC" package. They are only enabled if +These styles are part of the USER-MISC package. They are only enabled if LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. Related commands -- GitLab From 26d09ea64856ba4987b82aac4e8eb9f3840449fb Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 27 Aug 2020 14:39:20 -0400 Subject: [PATCH 091/165] Use datatype constants instead of magic numbers --- python/lammps.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/lammps.py b/python/lammps.py index 4755cd8240..a729e706e7 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -421,17 +421,17 @@ class lammps(object): c_int_type = c_int if dim == 1: - raw_ptr = self.lmp.extract_atom(name, 0) + raw_ptr = self.lmp.extract_atom(name, LAMMPS_INT) else: - raw_ptr = self.lmp.extract_atom(name, 1) + raw_ptr = self.lmp.extract_atom(name, LAMMPS_INT2D) return self.iarray(c_int_type, raw_ptr, nelem, dim) def extract_atom_darray(self, name, nelem, dim=1): if dim == 1: - raw_ptr = self.lmp.extract_atom(name, 2) + raw_ptr = self.lmp.extract_atom(name, LAMMPS_DOUBLE) else: - raw_ptr = self.lmp.extract_atom(name, 3) + raw_ptr = self.lmp.extract_atom(name, LAMMPS_DOUBLE2D) return self.darray(raw_ptr, nelem, dim) -- GitLab From a216d3f5f5688b3331de8517ff66d8664b971981 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 27 Aug 2020 16:06:11 -0400 Subject: [PATCH 092/165] Fix typo --- src/library.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/library.cpp b/src/library.cpp index a329734583..c86de6e538 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1536,7 +1536,7 @@ been issued. .. note:: LAMMPS cannot easily check if it is valid to access the data, so it - may fail with an error. The caller has avoid such an error. + may fail with an error. The caller has to avoid such an error. \endverbatim * -- GitLab From 0b8136a38b7834ebe59c294831215da801c25c8e Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 27 Aug 2020 16:15:59 -0400 Subject: [PATCH 093/165] Add extract_compute, extract_fix, and extract_variable to lammps.numpy --- python/lammps.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/python/lammps.py b/python/lammps.py index a729e706e7..565b89cfd9 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -435,6 +435,54 @@ class lammps(object): return self.darray(raw_ptr, nelem, dim) + def extract_compute(self, cid, style, datatype): + value = self.lmp.extract_compute(cid, style, datatype) + + if style in (LMP_STYLE_GLOBAL, LMP_STYLE_LOCAL): + if datatype == LMP_TYPE_VECTOR: + nrows = self.lmp.extract_compute(cid, style, LMP_SIZE_VECTOR) + print("NROWS", nrows) + return self.darray(value, nrows) + elif datatype == LMP_TYPE_ARRAY: + nrows = self.lmp.extract_compute(cid, style, LMP_SIZE_ROWS) + ncols = self.lmp.extract_compute(cid, style, LMP_SIZE_COLS) + return self.darray(value, nrows, ncols) + elif style == LMP_STYLE_ATOM: + if datatype == LMP_TYPE_VECTOR: + nlocal = self.lmp.extract_global("nlocal", LAMMPS_INT) + return self.darray(value, nlocal) + elif datatype == LMP_TYPE_ARRAY: + nlocal = self.lmp.extract_global("nlocal", LAMMPS_INT) + ncols = self.lmp.extract_compute(cid, style, LMP_SIZE_COLS) + return self.darray(value, nlocal, ncols) + return value + + def extract_fix(self, fid, style, datatype, nrow=0, ncol=0): + value = self.lmp.extract_fix(fid, style, datatype, nrow, ncol) + if style == LMP_STYLE_ATOM: + if datatype == LMP_TYPE_VECTOR: + nlocal = self.lmp.extract_global("nlocal", LAMMPS_INT) + return self.darray(value, nlocal) + elif datatype == LMP_TYPE_ARRAY: + nlocal = self.lmp.extract_global("nlocal", LAMMPS_INT) + ncols = self.lmp.extract_fix(fid, style, LMP_SIZE_COLS, 0, 0) + return self.darray(value, nlocal, ncols) + elif style == LMP_STYLE_LOCAL: + if datatype == LMP_TYPE_VECTOR: + nrows = self.lmp.extract_fix(fid, style, LMP_SIZE_ROWS, 0, 0) + return self.darray(value, nrows) + elif datatype == LMP_TYPE_ARRAY: + nrows = self.lmp.extract_fix(fid, style, LMP_SIZE_ROWS, 0, 0) + ncols = self.lmp.extract_fix(fid, style, LMP_SIZE_COLS, 0, 0) + return self.darray(value, nrows, ncols) + return value + + def extract_variable(self, name, group=None, datatype=LMP_VAR_EQUAL): + value = self.lmp.extract_variable(name, group, datatype) + if datatype == LMP_VAR_ATOM: + return np.ctypeslib.as_array(value) + return value + def iarray(self, c_int_type, raw_ptr, nelem, dim=1): np_int_type = self._ctype_to_numpy_int(c_int_type) -- GitLab From d7e2be1c815335aea233d6360029402b690f02d6 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 27 Aug 2020 17:44:05 -0400 Subject: [PATCH 094/165] Start Python interface tests for numpy extensions --- unittest/python/CMakeLists.txt | 6 ++++++ unittest/python/python-numpy.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 unittest/python/python-numpy.py diff --git a/unittest/python/CMakeLists.txt b/unittest/python/CMakeLists.txt index 64d6aba2f4..574f7aab09 100644 --- a/unittest/python/CMakeLists.txt +++ b/unittest/python/CMakeLists.txt @@ -31,10 +31,16 @@ if (Python_EXECUTABLE) COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/python-open.py -v WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) set_tests_properties(PythonOpen PROPERTIES ENVIRONMENT "${PYTHON_TEST_ENVIRONMENT}") + add_test(NAME PythonCommands COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/python-commands.py -v WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) set_tests_properties(PythonCommands PROPERTIES ENVIRONMENT "${PYTHON_TEST_ENVIRONMENT}") + + add_test(NAME PythonNumpy + COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/python-numpy.py -v + WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) + set_tests_properties(PythonNumpy PROPERTIES ENVIRONMENT "${PYTHON_TEST_ENVIRONMENT}") else() message(STATUS "Skipping Tests for the LAMMPS Python Module: no suitable Python interpreter") endif() diff --git a/unittest/python/python-numpy.py b/unittest/python/python-numpy.py new file mode 100644 index 0000000000..d5aa0a9d10 --- /dev/null +++ b/unittest/python/python-numpy.py @@ -0,0 +1,29 @@ +import sys,os,unittest +from lammps import lammps, LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR, LMP_SIZE_ROWS + +class PythonNumpy(unittest.TestCase): + def setUp(self): + machine = None + if 'LAMMPS_MACHINE_NAME' in os.environ: + machine=os.environ['LAMMPS_MACHINE_NAME'] + self.lmp = lammps(name=machine, cmdargs=['-nocite', '-log','none', '-echo','screen']) + + def tearDown(self): + del self.lmp + + def testExtractCompute(self): + self.lmp.command("region box block 0 2 0 2 0 2") + self.lmp.command("create_box 1 box") + self.lmp.command("create_atoms 1 single 1.0 1.0 1.0") + self.lmp.command("create_atoms 1 single 1.0 1.0 1.5") + self.lmp.command("compute coordsum all reduce sum x y z") + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,2) + values = self.lmp.numpy.extract_compute("coordsum", LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR) + self.assertEqual(len(values), 3) + self.assertEqual(values[0], 2.0) + self.assertEqual(values[1], 2.0) + self.assertEqual(values[2], 2.5) + +if __name__ == "__main__": + unittest.main() -- GitLab From 9c84fe8830b37e6db81761acdced8b624c5e565b Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 27 Aug 2020 17:45:47 -0400 Subject: [PATCH 095/165] Add missing lammps_extract_compute.argtypes --- python/lammps.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python/lammps.py b/python/lammps.py index 565b89cfd9..f552328cbb 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -281,6 +281,8 @@ class lammps(object): self.lib.lammps_get_last_error_message.argtypes = [c_void_p, c_char_p, c_int] self.lib.lammps_get_last_error_message.restype = c_int + self.lib.lammps_extract_compute.argtypes = [c_void_p, c_char_p, c_int, c_int] + # detect if Python is using version of mpi4py that can pass a communicator self.has_mpi4py = False -- GitLab From 463774319eb703346778fb529edce57ee84eca8b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Aug 2020 17:57:44 -0400 Subject: [PATCH 096/165] add missing parenthesis --- doc/src/pair_gauss.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/pair_gauss.rst b/doc/src/pair_gauss.rst index 9413914c1e..8c7ce74174 100644 --- a/doc/src/pair_gauss.rst +++ b/doc/src/pair_gauss.rst @@ -174,8 +174,8 @@ special_bonds factors, if using the default setting of 0.0, may need to be adjusted to some very small number (e.g. 1.0e-100), so that those special pairs are not completely excluded from the neighbor lists, but won't contribute forces or energies from styles (e.g. when used in -combination with a :doc:`hybrid pair style ` that do apply -those factors. +combination with a :doc:`hybrid pair style `) that do +apply those factors. Related commands """""""""""""""" -- GitLab From b1cca2cf7400187976afb4488e2aa191da98d333 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Aug 2020 19:00:20 -0400 Subject: [PATCH 097/165] update reference data for molecular test with pair style beck --- .../force-styles/tests/mol-pair-beck.yaml | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/unittest/force-styles/tests/mol-pair-beck.yaml b/unittest/force-styles/tests/mol-pair-beck.yaml index 0a9004289a..b0762e2e41 100644 --- a/unittest/force-styles/tests/mol-pair-beck.yaml +++ b/unittest/force-styles/tests/mol-pair-beck.yaml @@ -1,6 +1,6 @@ --- lammps_version: 24 Aug 2020 -date_generated: Thu Aug 27 17:07:12 202 +date_generated: Thu Aug 27 18:59:06 202 epsilon: 5e-14 prerequisites: ! | atom full @@ -11,21 +11,21 @@ post_commands: ! | input_file: in.fourmol pair_style: beck 8.0 pair_coeff: ! | - 1 1 373819.598904137 28.2055530290112 2.54311150773344 6.45119303700108 1.00000009333875e-08 - 1 2 188732.867506666 1.58535069063336 1.80358763111607 9.22323106962691 1.00000503923374e-08 - 1 3 372929.117857172 62.5861808655412 2.89012293867672 5.65785853622366 1.00000008354245e-08 - 1 4 323052.282999525 48.6736288965369 2.84043234225428 5.75901418612889 1.00000000000005e-08 - 1 5 323052.282999525 48.6736288965369 2.84043234225428 5.75901418612889 1.00000000000005e-08 - 2 2 159049.022501004 0.00299336324397673 0.275490844625076 16.6523193856799 0.000241724498519473 - 2 3 187701.2954677 4.86307856902706 2.14815357618356 7.68261383618445 1e-08 - 2 4 218203.981020928 0.000517174660531575 0.734503042998842 34.4348522827006 0.0467412026179555 - 2 5 162661.754085342 3.63344256996623 2.09887538642021 7.87041640419657 1e-08 - 3 3 372527.864673419 126.509975185435 3.23969692979246 5.03860977983238 1.00000000000002e-08 - 3 4 322636.906088166 99.5609187066356 3.18951570321296 5.11860757194132 1.00000000017633e-08 - 3 5 322636.906088166 99.5609187066356 3.18951570321296 5.11860757194132 1.00000000017633e-08 - 4 4 279437.56732576 78.2341704275754 3.13943017396948 5.20120131244272 1.00000000000006e-08 - 4 5 279437.56732576 78.2341704275754 3.13943017396948 5.20120131244272 1.00000000000006e-08 - 5 5 279437.56732576 78.2341704275754 3.13943017396948 5.20120131244272 1.00000000000006e-08 + 1 1 373819.598904137 28.2055530290112 2.54311150773344 6.45119303700108 1.00000009333875e-08 + 1 2 188732.867506666 1.58535069063336 1.80358763111607 9.22323106962691 1.00000503923374e-08 + 1 3 372929.117857172 62.5861808655412 2.89012293867672 5.65785853622366 1.00000008354245e-08 + 1 4 323052.282999525 48.6736288965369 2.84043234225428 5.75901418612889 1.00000000000005e-08 + 1 5 323052.282999525 48.6736288965369 2.84043234225428 5.75901418612889 1.00000000000005e-08 + 2 2 159049.022501004 0.00299336324397673 0.275490844625076 16.6523193856799 0.000241724498519473 + 2 3 187701.2954677 4.86307856902706 2.14815357618356 7.68261383618445 1e-08 + 2 4 218203.981020928 0.000517174660531575 0.734503042998842 34.4348522827006 0.0467412026179555 + 2 5 162661.754085342 3.63344256996623 2.09887538642021 7.87041640419657 1e-08 + 3 3 372527.864673419 126.509975185435 3.23969692979246 5.03860977983238 1.00000000000002e-08 + 3 4 322636.906088166 99.5609187066356 3.18951570321296 5.11860757194132 1.00000000017633e-08 + 3 5 322636.906088166 99.5609187066356 3.18951570321296 5.11860757194132 1.00000000017633e-08 + 4 4 279437.56732576 78.2341704275754 3.13943017396948 5.20120131244272 1.00000000000006e-08 + 4 5 279437.56732576 78.2341704275754 3.13943017396948 5.20120131244272 1.00000000000006e-08 + 5 5 279437.56732576 78.2341704275754 3.13943017396948 5.20120131244272 1.00000000000006e-08 extract: ! "" natoms: 29 init_vdwl: 190.036082315631 @@ -62,7 +62,7 @@ init_forces: ! |2 27 9.4354114467686365e+00 -5.0365804752932377e+01 1.8995723437358020e+01 28 -3.8516188448751151e+01 1.6552971779437446e+01 -2.6060734296883002e+01 29 2.9089205657689586e+01 3.3820165138501068e+01 7.0599695508939604e+00 -run_vdwl: 1428.78447161318 +run_vdwl: 144.638406973716 run_coul: 0 run_stress: ! |2- 3.3133682607050150e+02 3.4060217164649231e+02 4.8454706072210047e+02 -7.9080499174653568e+01 3.3297144014338656e+01 5.7256788667282045e+01 -- GitLab From 992b981cee14ac232fc61c7f2a93c9700c29be31 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 26 Aug 2020 18:41:32 -0400 Subject: [PATCH 098/165] Fixes segfault due to uninitialized pointers --- src/KSPACE/pair_buck_coul_long.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/KSPACE/pair_buck_coul_long.cpp b/src/KSPACE/pair_buck_coul_long.cpp index a46424baf7..a63047ea9f 100644 --- a/src/KSPACE/pair_buck_coul_long.cpp +++ b/src/KSPACE/pair_buck_coul_long.cpp @@ -43,7 +43,17 @@ PairBuckCoulLong::PairBuckCoulLong(LAMMPS *lmp) : Pair(lmp) { ewaldflag = pppmflag = 1; writedata = 1; - ftable = NULL; + ftable = nullptr; + cut_lj = nullptr; + cut_ljsq = nullptr; + a = nullptr; + rho = nullptr; + c = nullptr; + rhoinv = nullptr; + buck1 = nullptr; + buck2 = nullptr; + offset = nullptr; + cut_respa = nullptr; } /* ---------------------------------------------------------------------- */ -- GitLab From d361f26ca20f4a4d3e7b4c6f6e241943d086b03c Mon Sep 17 00:00:00 2001 From: Evangelos Voyiatzis Date: Fri, 28 Aug 2020 11:28:47 +0200 Subject: [PATCH 099/165] removal of a few duplicated lines The "Velocities" sections is searched for in the input file twice - the second time being redundant. --- tools/drude/polarizer.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tools/drude/polarizer.py b/tools/drude/polarizer.py index d28f284389..3c17026387 100755 --- a/tools/drude/polarizer.py +++ b/tools/drude/polarizer.py @@ -439,14 +439,6 @@ class Data(object): bond['note'] = ''.join([s + ' ' for s in tok[4:]]).strip() self.bonds.append(bond) - if 'Velocities' in self.sections: - for line in self.sections['Velocities']: - tok = line.split() - atom = self.idmap[int(tok[0])] - atom['vx'] = float(tok[1]) - atom['vy'] = float(tok[2]) - atom['vz'] = float(tok[3]) - def depolarize(self, drude): """remove Drude particles""" -- GitLab From f0788bfe8618b706ec252d4054d5bfdd05def616 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 09:54:01 -0400 Subject: [PATCH 100/165] transfer of developer.tex almost complete --- doc/src/pg_developer.rst | 232 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 232 insertions(+) diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index 6f51010c4b..1ca9bcc4cc 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -298,3 +298,235 @@ other methods in the class. zero before each timestep, so that forces (torques, etc) can be accumulated. +Now for the ``Verlet::run()`` method. Its basic structure in hi-level pseudo +code is shown below. In the actual code in ``src/verlet.cpp`` some of +these operations are conditionally invoked. + +.. code-block:: python + + loop over N timesteps: + if timeout condition: break + ev_set() + + fix->initial_integrate() + fix->post_integrate() + + nflag = neighbor->decide() + if nflag: + fix->pre_exchange() + domain->pbc() + domain->reset_box() + comm->setup() + neighbor->setup_bins() + comm->exchange() + comm->borders() + fix->pre_neighbor() + neighbor->build() + fix->post_neighbor() + else: + comm->forward_comm() + + force_clear() + fix->pre_force() + + pair->compute() + bond->compute() + angle->compute() + dihedral->compute() + improper->compute() + kspace->compute() + + fix->pre_reverse() + comm->reverse_comm() + + fix->post_force() + fix->final_integrate() + fix->end_of_step() + + if any output on this step: + output->write() + + # after loop + fix->post_run() + + +The ``ev_set()`` method (in the parent Integrate class), sets two flags +(*eflag* and *vflag*) for energy and virial computation. Each flag +encodes whether global and/or per-atom energy and virial should be +calculated on this timestep, because some fix or variable or output will +need it. These flags are passed to the various methods that compute +particle interactions, so that they either compute and tally the +corresponding data or can skip the extra calculations if the energy and +virial are not needed. See the comments for the ``Integrate::ev_set()`` +method which document the flag values. + +At various points of the timestep, fixes are invoked, +e.g. ``fix->initial_integrate()``. In the code, this is actually done +via the Modify class which stores all the Fix objects and lists of which +should be invoked at what point in the timestep. Fixes are the LAMMPS +mechanism for tailoring the operations of a timestep for a particular +simulation. As described elsewhere, each fix has one or more methods, +each of which is invoked at a specific stage of the timestep, as show in +the timestep pseudo-code. All the active fixes defined in an input +script, that are flagged to have an ``initial_integrate()`` method are +invoked at the beginning of each timestep. Examples are :doc:`fix nve +` or :doc:`fix nvt or fix npt ` which perform the +start-of-timestep velocity-Verlet integration operations to update +velocities by a half-step, and coordinates by a full step. The +``post_integrate()`` method is next for operations that need to happen +immediately after those updates. Only a few fixes use this, e.g. to +reflect particles off box boundaries in the :doc:`FixWallReflect class +`. + +The ``decide()`` method in the Neighbor class determines whether +neighbor lists need to be rebuilt on the current timestep (conditions +can be changed using the :doc:`neigh_modify every/delay/check +` command. If not, coordinates of ghost atoms are +acquired by each processor via the ``forward_comm()`` method of the Comm +class. If neighbor lists need to be built, several operations within +the inner if clause of the pseudo-code are first invoked. The +``pre_exchange()`` method of any defined fixes is invoked first. +Typically this inserts or deletes particles from the system. + +Periodic boundary conditions are then applied by the Domain class via +its ``pbc()`` method to remap particles that have moved outside the +simulation box back into the box. Note that this is not done every +timestep, but only when neighbor lists are rebuilt. This is so that +each processor's sub-domain will have consistent (nearby) atom +coordinates for its owned and ghost atoms. It is also why dumped atom +coordinates may be slightly outside the simulation box if not dumped +on a step where the neighbor lists are rebuilt. + +The box boundaries are then reset (if needed) via the ``reset_box()`` +method of the Domain class, e.g. if box boundaries are shrink-wrapped to +current particle coordinates. A change in the box size or shape +requires internal information for communicating ghost atoms (Comm class) +and neighbor list bins (Neighbor class) be updated. The ``setup()`` +method of the Comm class and ``setup_bins()`` method of the Neighbor +class perform the update. + +The code is now ready to migrate atoms that have left a processor's +geometric sub-domain to new processors. The ``exchange()`` method of +the Comm class performs this operation. The ``borders()`` method of the +Comm class then identifies ghost atoms surrounding each processor's +sub-domain and communicates ghost atom information to neighboring +processors. It does this by looping over all the atoms owned by a +processor to make lists of those to send to each neighbor processor. On +subsequent timesteps, the lists are used by the ``Comm::forward_comm()`` +method. + +Fixes with a ``pre_neighbor()`` method are then called. These typically +re-build some data structure stored by the fix that depends on the +current atoms owned by each processor. + +Now that each processor has a current list of its owned and ghost +atoms, LAMMPS is ready to rebuild neighbor lists via the ``build()`` +method of the Neighbor class. This is typically done by binning all +owned and ghost atoms, and scanning a stencil of bins around each +owned atom's bin to make a Verlet list of neighboring atoms within the +force cutoff plus neighbor skin distance. + +In the next portion of the timestep, all interaction forces between +particles are computed, after zeroing the per-atom force vector via the +``force_clear()`` method. If the newton flag is set to *on* by the +newton command, forces are added to both owned and ghost atoms, otherwise +only to owned (aka local) atoms. + +Pairwise forces are calculated first, which enables the global virial +(if requested) to be calculated cheaply (at O(N) cost instead of O(N**2) +at the end of the ``Pair::compute()`` method), by a dot product of atom +coordinates and forces. By including owned and ghost atoms in the dot +product, the effect of periodic boundary conditions is correctly +accounted for. Molecular topology interactions (bonds, angles, +dihedrals, impropers) are calculated next (if supported by the current +atom style). The final contribution is from long-range Coulombic +interactions, invoked by the KSpace class. + +The ``pre_reverse()`` method in fixes is used for operations that have to +be done *before* the upcoming reverse communication (e.g. to perform +additional data transfers or reductions for data computed during the +force computation and stored with ghost atoms). + +If the newton flag is on, forces on ghost atoms are communicated and +summed back to their corresponding owned atoms. The ``reverse_comm()`` +method of the Comm class performs this operation, which is essentially +the inverse operation of sending copies of owned atom coordinates to +other processor's ghost atoms. + +At this point in the timestep, the total force on each (local) atom is +known. Additional force constraints (external forces, SHAKE, etc) are +applied by Fixes that have a ``post_force()`` method. The second half +of the velocity-Verlet integration, ``final_integrate()`` is then +performed (another half-step update of the velocities) via fixes like +nve, nvt, npt. + +At the end of the timestep, fixes that contain an ``end_of_step()`` +method are invoked. These typically perform a diagnostic calculation, +e.g. the ave/time and ave/spatial fixes. The final operation of the +timestep is to perform any requested output, via the ``write()`` method +of the Output class. There are 3 kinds of LAMMPS output: thermodynamic +output to the screen and log file, snapshots of atom data to a dump +file, and restart files. See the :doc:`thermo_style `, +:doc:`dump `, and :doc:`restart ` commands for more +details. + +The the flow of control during energy minimization iterations is +similar to that of a molecular dynamics timestep. Forces are computed, +neighbor lists are built as needed, atoms migrate to new processors, and +atom coordinates and forces are communicated to neighboring processors. +The only difference is what Fix class operations are invoked when. Only +a subset of LAMMPS fixes are useful during energy minimization, as +explained in their individual doc pages. The relevant Fix class methods +are ``min_pre_exchange()``, ``min_pre_force()``, and ``min_post_force()``. +Each fix is invoked at the appropriate place within the minimization +iteration. For example, the ``min_post_force()`` method is analogous to +the ``post_force()`` method for dynamics; it is used to alter or constrain +forces on each atom, which affects the minimization procedure. + +After all iterations are completed there is a ``cleanup`` step which +calls the ``post_run()`` method of fixes to perform operations only required +at the end of a calculations (like freeing temporary storage or creating +final outputs). + +Modifying and extending LAMMPS +============================== + +The :doc:`Modify` section of the manual gives an overview of how LAMMPS can +be extended by writing new classes that derive from existing +parent classes in LAMMPS. Here, some specific coding +details are provided for writing code for LAMMPS. + +Writing a new fix style +^^^^^^^^^^^^^^^^^^^^^^^ + +Writing fixes is a flexible way of extending LAMMPS. Users can +implement many things using fixes: + +- changing particles attributes (positions, velocities, forces, etc.). Examples: FixNVE, FixFreeze. +- reading/writing data. Example: FixRestart. +- adding or modifying properties due to geometry. Example: FixWall. +- interacting with other subsystems or external code: Examples: FixTTM, FixExternal, FixLATTE +- saving information for analysis or future use (previous positions, + for instance). Examples: Fix AveTime, FixStoreState. + + +All fixes are derived from the Fix base class and must have a +constructor with the signature: ``FixMine(class LAMMPS *, int, char **)``. + +Every fix must be registered in LAMMPS by writing the following lines +of code in the header before include guards: + +.. code-block:: c + + #ifdef FIX_CLASS + FixStyle(mine,FixMine) + #else + /* the definition of the FixMine class comes here */ + ... + #endif + +Where ``mine`` is the style name of your fix in the input script and +``FixMine`` is the name of the class. This convention allows LAMMPS to +automatically integrate it into the executable when compiling and find +your fix class when it parses input script. + -- GitLab From 2686df3760dfbbe52a1e5585cd837490913d171c Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Fri, 28 Aug 2020 10:46:22 -0400 Subject: [PATCH 101/165] Update math_eigen.h whitespace cleanup --- src/USER-REACTION/math_eigen.h | 80 +++++++++++++++++----------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/src/USER-REACTION/math_eigen.h b/src/USER-REACTION/math_eigen.h index 526463895b..f8d2be4e21 100644 --- a/src/USER-REACTION/math_eigen.h +++ b/src/USER-REACTION/math_eigen.h @@ -81,7 +81,7 @@ void Dealloc2D(Entry ***paaX); //!< pointer to 2D multidimensional array /// are complex numbers. In other words, by default, real_t returns T. /// However real_t> returns T (not std::complex). /// We define "real_t" below using C++ template specializations: - + template struct realTypeMap { typedef T type; @@ -127,7 +127,7 @@ void normalize(std::vector& v); /// using the Jacobi eigenvalue algorithm. Code for the Jacobi class /// (along with tests and benchmarks) is available free of copyright at /// https://github.com/jewettaij/jacobi_pd -/// @note The "Vector" and "Matrix" type arguments can be any +/// @note The "Vector" and "Matrix" type arguments can be any /// C or C++ object that support indexing, including pointers or vectors. /// @details /// -- Example: -- @@ -141,7 +141,7 @@ void normalize(std::vector& v); /// // Now create an instance of Jacobi ("eigen_calc"). This will allocate space /// // for storing intermediate calculations. Once created, it can be reused /// // multiple times without paying the cost of allocating memory on the heap. -/// +/// /// Jacobi eigen_calc(n); /// /// // Note: @@ -284,7 +284,7 @@ inline constexpr T minimum_effective_decimal() { /// for(int j = 0;j < n;j++) { /// out[i] += M[i][j]*in[j]; /// } -/// } +/// } /// }; /// /// LambdaLanczos engine(mv_mul, n, true); @@ -370,8 +370,8 @@ public: /// iteration (ie. during LambdaLanczos::run()). The goal is to insure /// that the correct eigenvalue is selected (the one with the maximum /// magnitude). - /// @note The eigevalue returned by LambdaLanczos::run() is not effected - /// because after the iteration is finished, it will subtract this + /// @note The eigevalue returned by LambdaLanczos::run() is not effected + /// because after the iteration is finished, it will subtract this /// number from the eigenvalue before it is returned to the caller. /// @note Unless your matrix is positive definite or negative definite, /// you MUST specify eigenvalue_offset. See comment above for details. @@ -568,7 +568,7 @@ Diagonalize(ConstMatrix mat, // the matrix you wish to diagonalize (size n) for (int j = 0; j < n; j++) evec[i][j] = (i==j) ? 1.0 : 0.0; //Set evec equal to the identity matrix - for (int i = 0; i < n-1; i++) //Initialize the "max_idx_row[]" array + for (int i = 0; i < n-1; i++) //Initialize the "max_idx_row[]" array max_idx_row[i] = MaxEntryRow(M, i); //(which is needed by MaxEntry()) // -- Iteration -- @@ -655,7 +655,7 @@ CalcRot(Scalar const *const *M, //!< matrix /// where R the rotation in the i,j plane and ^T denotes the transpose. /// i j /// _ _ -/// | 1 | +/// | 1 | /// | . | /// | . | /// | 1 | @@ -679,7 +679,7 @@ CalcRot(Scalar const *const *M, //!< matrix /// The rotation at location i,j will modify all of the matrix /// elements containing at least one index which is either i or j /// such as: M[w][i], M[i][w], M[w][j], M[j][w]. -/// Check and see whether these modified matrix elements exceed the +/// Check and see whether these modified matrix elements exceed the /// corresponding values in max_idx_row[] array for that row. /// If so, then update max_idx_row for that row. /// This is somewhat complicated by the fact that we must only consider @@ -954,10 +954,10 @@ LambdaLanczos(std::function&, template inline int LambdaLanczos:: run(real_t& eigvalue, std::vector& eigvec) const -{ +{ assert(matrix_size > 0); assert(0 < this->tridiag_eps_ratio && this->tridiag_eps_ratio < 1); - + std::vector> u; // Lanczos vectors std::vector> alpha; // Diagonal elements of an approximated tridiagonal matrix std::vector> beta; // Subdiagonal elements of an approximated tridiagonal matrix @@ -969,14 +969,14 @@ run(real_t& eigvalue, std::vector& eigvec) const beta.reserve(this->initial_vector_size); u.emplace_back(n, 0.0); // Same as u.push_back(std::vector(n, 0.0)) - + std::vector vk(n, 0.0); - + real_t alphak = 0.0; alpha.push_back(alphak); real_t betak = 0.0; beta.push_back(betak); - + std::vector uk(n); this->init_vector(uk); normalize(uk); @@ -992,9 +992,9 @@ run(real_t& eigvalue, std::vector& eigvec) const vk[i] = uk[i]*this->eigenvalue_offset; } this->mv_mul(uk, vk); - + alphak = std::real(inner_prod(u.back(), vk)); - + // The inner product is real. // Proof: // = @@ -1004,15 +1004,15 @@ run(real_t& eigvalue, std::vector& eigvec) const // Therefore // = ^* // is real. - + alpha.push_back(alphak); - + for(int i = 0;i < n; i++) { uk[i] = vk[i] - betak*u[k-1][i] - alphak*u[k][i]; } - + schmidt_orth(uk, u); - + betak = l2_norm(uk); beta.push_back(betak); @@ -1026,7 +1026,7 @@ run(real_t& eigvalue, std::vector& eigvec) const if(betak < zero_threshold) { u.push_back(uk); // This element will never be accessed, - // but this "push" guarantees u to always have one more element than + // but this "push" guarantees u to always have one more element than // alpha and beta do. itern = k; break; @@ -1050,13 +1050,13 @@ run(real_t& eigvalue, std::vector& eigvec) const cv[0] = 0.0; cv[m] = 0.0; cv[m-1] = 1.0; - + beta[m-1] = 0.0; if(eigvec.size() < n) { eigvec.resize(n); } - + for(int i = 0;i < n;i++) { eigvec[i] = cv[m-1]*u[m-1][i]; } @@ -1082,9 +1082,9 @@ inline void LambdaLanczos:: schmidt_orth(std::vector& uorth, const std::vector>& u) { // Vectors in u must be normalized, but uorth doesn't have to be. - + int n = uorth.size(); - + for(int k = 0;k < u.size();k++) { T innprod = inner_prod(uorth, u[k]); for(int i = 0;i < n;i++) @@ -1105,7 +1105,7 @@ find_minimum_eigenvalue(const std::vector>& alpha, real_t upper = r; real_t mid; int nmid; // Number of eigenvalues smaller than the "mid" - + while(upper-lower > std::min(abs(lower), abs(upper))*eps) { mid = (lower+upper)/2.0; nmid = num_of_eigs_smaller_than(mid, alpha, beta); @@ -1114,7 +1114,7 @@ find_minimum_eigenvalue(const std::vector>& alpha, } else { lower = mid; } - + if(mid == pmid) { break; // This avoids an infinite loop due to zero matrix } @@ -1138,20 +1138,20 @@ find_maximum_eigenvalue(const std::vector>& alpha, real_t mid; int nmid; // Number of eigenvalues smaller than the "mid" - int m = alpha.size() - 1; // Number of eigenvalues of the approximated + int m = alpha.size() - 1; // Number of eigenvalues of the approximated // triangular matrix, which equals the rank of it - - + + while(upper-lower > std::min(abs(lower), abs(upper))*eps) { mid = (lower+upper)/2.0; nmid = num_of_eigs_smaller_than(mid, alpha, beta); - + if(nmid < m) { lower = mid; } else { upper = mid; } - + if(mid == pmid) { break; // This avoids an infinite loop due to zero matrix } @@ -1159,7 +1159,7 @@ find_maximum_eigenvalue(const std::vector>& alpha, } return lower; // The "lower" almost equals the "upper" here. -} +} /// @brief @@ -1175,7 +1175,7 @@ tridiagonal_eigen_limit(const std::vector>& alpha, { real_t r = l1_norm(alpha); r += 2*l1_norm(beta); - + return r; } @@ -1195,7 +1195,7 @@ num_of_eigs_smaller_than(real_t c, real_t q_i = 1.0; int count = 0; int m = alpha.size(); - + for(int i = 1;i < m;i++){ q_i = alpha[i] - c - beta[i-1]*beta[i-1]/q_i; if(q_i < 0){ @@ -1265,19 +1265,19 @@ inline void LambdaLanczos::SetFindMax(bool find_maximum) { template inline void LambdaLanczos::SetEvalOffset(T offset) -{ +{ this->eigenvalue_offset = offset; } template inline void LambdaLanczos::SetEpsilon(T epsilon) -{ +{ this->eps = epsilon; } template inline void LambdaLanczos::SetTriEpsRatio(T tri_eps_ratio) -{ +{ this->tridiag_eps_ratio = tri_eps_ratio; } @@ -1333,7 +1333,7 @@ PrincipalEigen(ConstMatrix matrix, for(int j = 0; j < n; j++) { out[i] += matrix[i][j]*in[j]; } - } + } }; auto init_vec = [&](std::vector& vec) { for(int i = 0; i < n; i++) @@ -1343,7 +1343,7 @@ PrincipalEigen(ConstMatrix matrix, // "ll_engine" calculates the eigenvalue and eigenvector. LambdaLanczos ll_engine(matmul, n, find_max); - + // The Lanczos algorithm selects the eigenvalue with the largest magnitude. // In order to insure that this is the one we want (maxima or minima), we can // add a constant to all of the eigenvalues by setting "eigenvalue_offset". -- GitLab From f8495975d30eff1ce32f3cbdaed1ed6d72021cfb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 10:42:05 -0400 Subject: [PATCH 102/165] transfer the rest of the Developer guide and remove the .tex versions and references to it --- doc/Makefile | 16 +- doc/src/Build_basics.rst | 2 +- doc/src/Developer/.gitignore | 3 - doc/src/Developer/classes.fig | 198 --------- doc/src/Developer/classes.pdf | Bin 9215 -> 0 bytes doc/src/Developer/developer.tex | 699 -------------------------------- doc/src/Intro_website.rst | 1 - doc/src/Manual.rst | 3 +- doc/src/Manual_build.rst | 15 +- doc/src/pg_developer.rst | 210 ++++++++++ 10 files changed, 225 insertions(+), 922 deletions(-) delete mode 100644 doc/src/Developer/.gitignore delete mode 100644 doc/src/Developer/classes.fig delete mode 100644 doc/src/Developer/classes.pdf delete mode 100644 doc/src/Developer/developer.tex diff --git a/doc/Makefile b/doc/Makefile index 49ad98775d..d96b523915 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -54,7 +54,7 @@ DOXYFILES = $(shell sed -n -e 's/\#.*$$//' -e '/^ *INPUT \+=/,/^[A-Z_]\+ \+ help: @echo "Please use \`make ' where is one of" @echo " html create HTML doc pages in html dir" - @echo " pdf create Developer.pdf and Manual.pdf in this dir" + @echo " pdf create Manual.pdf in this dir" @echo " fetch fetch HTML and PDF files from LAMMPS web site" @echo " epub create ePUB format manual for e-book readers" @echo " mobi convert ePUB to MOBI format manual for e-book readers (e.g. Kindle)" @@ -69,7 +69,7 @@ help: # ------------------------------------------ clean-all: clean - rm -rf $(BUILDDIR)/docenv $(MATHJAX) $(BUILDDIR)/LAMMPS.mobi $(BUILDDIR)/LAMMPS.epub $(BUILDDIR)/Manual.pdf $(BUILDDIR)/Developer.pdf + rm -rf $(BUILDDIR)/docenv $(MATHJAX) $(BUILDDIR)/LAMMPS.mobi $(BUILDDIR)/LAMMPS.epub $(BUILDDIR)/Manual.pdf clean: clean-spelling rm -rf $(BUILDDIR)/html $(BUILDDIR)/epub $(BUILDDIR)/latex $(BUILDDIR)/doctrees $(BUILDDIR)/doxygen/xml $(BUILDDIR)/doxygen-warn.log $(BUILDDIR)/doxygen/Doxyfile $(SPHINXCONFIG)/conf.py @@ -139,13 +139,6 @@ mobi: epub pdf: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) @$(MAKE) $(MFLAGS) -C graphviz all @if [ "$(HAS_PDFLATEX)" == "NO" ] ; then echo "PDFLaTeX was not found! Please check README.md for further instructions" 1>&2; exit 1; fi - @(\ - cd src/Developer; \ - pdflatex developer; \ - pdflatex developer; \ - mv developer.pdf ../../Developer.pdf; \ - cd ../../; \ - ) @(\ . $(VENV)/bin/activate ; env PYTHONWARNINGS= \ sphinx-build $(SPHINXEXTRA) -b latex -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\ @@ -175,12 +168,11 @@ pdf: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) @rm -rf latex/USER @cp -r src/PDF latex/PDF @rm -rf latex/PDF/.[sg]* - @echo "Build finished. Manual.pdf and Developer.pdf are in this directory." + @echo "Build finished. Manual.pdf is in this directory." fetch: - @rm -rf html_www Manual_www.pdf Developer_www.pdf + @rm -rf html_www Manual_www.pdf @curl -s -o Manual_www.pdf http://lammps.sandia.gov/doc/Manual.pdf - @curl -s -o Developer_www.pdf http://lammps.sandia.gov/doc/Developer.pdf @curl -s -o lammps-doc.tar.gz http://lammps.sandia.gov/tars/lammps-doc.tar.gz @tar xzf lammps-doc.tar.gz @rm -f lammps-doc.tar.gz diff --git a/doc/src/Build_basics.rst b/doc/src/Build_basics.rst index 0ddf65ab46..baace2e063 100644 --- a/doc/src/Build_basics.rst +++ b/doc/src/Build_basics.rst @@ -471,7 +471,7 @@ LAMMPS source distribution. .. code-block:: bash make html # create HTML doc pages in html directory - make pdf # create Developer.pdf and Manual.pdf in this directory + make pdf # create Manual.pdf in this directory make fetch # fetch HTML and PDF files from LAMMPS web site make clean # remove all intermediate files make clean-all # reset the entire doc build environment diff --git a/doc/src/Developer/.gitignore b/doc/src/Developer/.gitignore deleted file mode 100644 index 38f7323f7b..0000000000 --- a/doc/src/Developer/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/developer.aux -/developer.log -/developer.toc diff --git a/doc/src/Developer/classes.fig b/doc/src/Developer/classes.fig deleted file mode 100644 index a2d9b6d6f1..0000000000 --- a/doc/src/Developer/classes.fig +++ /dev/null @@ -1,198 +0,0 @@ -#FIG 3.2 Produced by xfig version 3.2.5a -Portrait -Center -Inches -Letter -100.00 -Single --2 -1200 2 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2232 1170 3540 1170 3540 1505 2232 1505 2232 1170 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2220 1830 3015 1830 3015 2219 2220 2219 2220 1830 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2226 3285 3300 3285 3300 3665 2226 3665 2226 3285 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2223 5190 3225 5190 3225 5525 2223 5525 2223 5190 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2232 7125 3090 7125 3090 7478 2232 7478 2232 7125 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2226 10230 3300 10230 3300 10565 2226 10565 2226 10230 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4026 10305 4980 10305 4980 10592 4026 10592 4026 10305 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4029 9900 5205 9900 5205 10250 4029 10250 4029 9900 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4038 9315 5370 9315 5370 9659 4038 9659 4038 9315 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4023 8955 4530 8955 4530 9278 4023 9278 4023 8955 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4029 8475 5190 8475 5190 8762 4029 8762 4029 8475 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4008 8115 5430 8115 5430 8408 4008 8408 4008 8115 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4026 7425 4995 7425 4995 7712 4026 7712 4026 7425 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4035 6720 4650 6720 4650 7025 4035 7025 4035 6720 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4044 7080 4830 7080 4830 7358 4044 7358 4044 7080 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4032 6105 5205 6105 5205 6419 4032 6419 4032 6105 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4026 5715 5115 5715 5115 6062 4026 6062 4026 5715 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4023 3585 4605 3585 4605 3872 4023 3872 4023 3585 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 3954 1680 5175 1680 5175 1997 3954 1997 3954 1680 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 1620 5235 2100 615 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 1605 5445 2070 10695 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3120 1935 3855 1800 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3150 2115 3765 2250 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3135 7230 3945 6840 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3150 7335 3945 8610 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 5265 8610 6195 8400 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 5280 8655 6180 8820 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3345 10290 3930 10020 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3360 10395 3930 10425 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3360 10455 3930 10755 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2193 360 3435 360 3435 647 2193 647 2193 360 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3398 3472 3923 3307 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3413 3601 3923 3721 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3285 2806 3870 2802 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3315 5372 3900 5368 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 6354 2280 7470 2280 7470 2585 6354 2585 6354 2280 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 6348 1875 7320 1875 7320 2222 6348 2222 6348 1875 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 3954 2070 5505 2070 5505 2372 3954 2372 3954 2070 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 5634 2137 6230 2045 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 5670 2310 6265 2418 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 3900 2640 5400 2640 5400 2975 3900 2975 3900 2640 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4038 3165 5385 3165 5385 3497 4038 3497 4038 3165 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4245 4110 5730 4110 5730 4499 4245 4499 4245 4110 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4233 4545 6390 4545 6390 4862 4233 4862 4233 4545 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4026 5190 5385 5190 5385 5525 4026 5525 4026 5190 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4038 7755 5310 7755 5310 8075 4038 8075 4038 7755 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 6270 8250 7365 8250 7365 8610 6270 8610 6270 8250 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 6273 8655 7380 8655 7380 8978 6273 8978 6273 8655 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 4041 10620 5985 10620 5985 10943 4041 10943 4041 10620 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2217 10830 3135 10830 3135 11156 2217 11156 2217 10830 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2229 9780 3240 9780 3240 10118 2229 10118 2229 9780 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2214 9015 3285 9015 3285 9362 2214 9362 2214 9015 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2208 5850 3420 5850 3420 6209 2208 6209 2208 5850 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2217 4275 3615 4275 3615 4634 2217 4634 2217 4275 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2235 2655 3150 2655 3150 3000 2235 3000 2235 2655 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 60 5115 1500 5115 1500 5610 60 5610 60 5115 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3486 6018 4011 5853 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3486 6129 3996 6249 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3361 9291 3991 9531 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3345 9129 4005 9099 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3691 4412 4216 4277 -2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3695 4561 4175 4711 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2220 735 3129 735 3129 1043 2220 1043 2220 735 -4 0 1 50 -1 18 18 0.0000 4 225 1275 2265 1455 Universe\001 -4 0 1 50 -1 18 18 0.0000 4 285 735 2265 2175 Input\001 -4 0 1 50 -1 18 18 0.0000 4 225 780 2265 2925 Atom\001 -4 0 1 50 -1 18 18 0.0000 4 285 1020 2265 3600 Update\001 -4 0 1 50 -1 18 18 0.0000 4 285 1320 2265 4575 Neighbor\001 -4 0 1 50 -1 18 18 0.0000 4 225 945 2265 5475 Comm\001 -4 0 1 50 -1 18 18 0.0000 4 225 1110 2265 6150 Domain\001 -4 0 1 50 -1 18 18 0.0000 4 225 810 2265 7425 Force\001 -4 0 1 50 -1 18 18 0.0000 4 285 975 2265 9300 Modify\001 -4 0 1 50 -1 18 18 0.0000 4 285 900 2265 10050 Group\001 -4 0 1 50 -1 18 18 0.0000 4 285 990 2265 10500 Output\001 -4 0 1 50 -1 18 18 0.0000 4 225 825 2265 11100 Timer\001 -4 0 0 50 -1 18 18 0.0000 4 225 1170 3990 1950 Variable\001 -4 0 4 50 -1 18 18 0.0000 4 225 1470 3990 2325 Command\001 -4 0 4 50 -1 18 18 0.0000 4 285 1275 4065 3450 Integrate\001 -4 0 4 50 -1 18 18 0.0000 4 225 525 4065 3825 Min\001 -4 0 0 50 -1 18 18 0.0000 4 285 1230 4065 5475 Irregular\001 -4 0 4 50 -1 18 18 0.0000 4 285 1020 4065 6000 Region\001 -4 0 0 50 -1 18 18 0.0000 4 225 975 4065 6375 Lattice\001 -4 0 4 50 -1 18 18 0.0000 4 225 435 4065 9225 Fix\001 -4 0 4 50 -1 18 18 0.0000 4 285 1305 4065 9600 Compute\001 -4 0 4 50 -1 18 18 0.0000 4 225 570 4065 6975 Pair\001 -4 0 4 50 -1 18 18 0.0000 4 285 840 4065 7665 Angle\001 -4 0 4 50 -1 18 18 0.0000 4 225 1215 4065 8010 Dihedral\001 -4 0 4 50 -1 18 18 0.0000 4 285 1305 4065 8355 Improper\001 -4 0 4 50 -1 18 18 0.0000 4 285 1095 4065 8700 KSpace\001 -4 0 4 50 -1 18 18 0.0000 4 285 855 4065 10545 Dump\001 -4 0 0 50 -1 18 18 0.0000 4 225 1815 4065 10890 WriteRestart\001 -4 0 0 50 -1 18 18 0.0000 4 225 930 6315 8550 FFT3D\001 -4 0 0 50 -1 18 18 0.0000 4 285 1005 6315 8925 Remap\001 -4 0 0 50 -1 18 18 0.0000 4 225 885 6390 2175 Finish\001 -4 0 0 50 -1 18 18 0.0000 4 285 1050 6390 2550 Special\001 -4 0 4 50 -1 18 18 0.0000 4 225 1305 3990 2925 AtomVec\001 -4 0 4 50 -1 18 18 0.0000 4 225 765 4065 7320 Bond\001 -4 0 0 50 -1 18 18 0.0000 4 225 1095 4065 10200 Thermo\001 -4 0 0 50 -1 18 18 0.0000 4 285 1380 4305 4425 NeighList\001 -4 0 0 50 -1 18 18 0.0000 4 285 2025 4305 4800 NeighRequest\001 -4 0 1 50 -1 18 18 0.0000 4 285 1155 2250 600 Memory\001 -4 0 0 50 -1 18 18 0.0000 4 225 1305 120 5475 LAMMPS\001 -4 0 1 50 -1 18 18 0.0000 4 225 735 2265 1005 Error\001 diff --git a/doc/src/Developer/classes.pdf b/doc/src/Developer/classes.pdf deleted file mode 100644 index 566089ac9ee204802a09d920e84d0c250f729d48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9215 zcmY!laB7v*F99M&^67g>QS# z6OB$^tsH4L_m0{BTE+=?R5fi&bp6$ekLmqn{KL`25Ejq2wZ-vc{m=Wm?>^d{ZEsT( zJ7cNrzs(cM4}bONb_npcjgUY5pgEF_wRzcp{?|u&_l8(RloY;Xd;E8S;B*h>)85C= zuf5c4>=u_{yH{lmqv4K&nh{PtrfXhYk>Xk1wno(9-`ay0LvK8ts}@j~zNTk;-0A8C z^^v}k!qd_=h_S7Ib7^9)R7j=x#GLM*JNpf1KVNqAV$C*rhMO*NJp7FFB4!@cIw0Xz ze33IMy>)xfqczG?5)2ns++Oe@Y0IacB<4BM-YTzs6Ra}I4t(6G{@2B_S(@K-f3azW z$fD+lvR||!`BTdG1}FwwMz$V3Q<||OMUSWId~{Y)oNKbu!~-STzRotUQn)ka+iMi( z7l*A(R6n;pR^st$`zKe+KJH-9J!TcxvGCx6x#^MUDwdYzvay>$%%d%@@zW%QC~W}XSwlB6k|W} zZ+fQ9*5@pnFW+3PAf(Se(|IA=O}Xr+JnzM}L{D5YVb4TA`S}H}a|H5Lynk3kF8{l7 z$=rz>Cp%=FKs|wh*TvtwCYiJv@eqWpTxj6e;zI2bBb2g}C9?WZuE39&UII-~J zNwtadL{4AGI{LFk$ae0NBetrWC+_6^bV4#nZhFNnP8;Sa!Iep8I8#>d3w2l%%VyAT zK0(%?>-++pR%ONwlU2=<{8)_h53TyR%;5T|b8ho;9lFjd+o6S4UL z{5NM`SS9dHuX#p!yW39HmzR9Zx2c)Ztr;>6Naq?7-oh>lvr6W4mW0yvb@` zuTP6G<5V8weG_6oXsv3J?=f!GO1|R}y7afm^1w)k)_FfKrv*7Z)nIj*d~*3>znfia zt}Rm8x^BhguJsCDZ~R-fq~7|KbG74!;9_URwo@BAXIyKNT7B^nlX_8{=~Payr`81* z#l6lxSSezqdGcSq+TJPO=fp4hYraKM@5UtGf)3+*%idhLshxvr^f7=UixaeMn~oH>@Tk>r01y|?VnO+;Vb!i?X4BX8}>?0 zofT9V%V5~=JUPll?e0q`g(xQtcUqtlUW zGnT3FSuZ|!@LO6)R?Fej3d;_3+IcMQ`lNNrE-5Q`YM)e<{L%x(aqqIu)E+Fj_2SZ| zI~`ie2mT!JPE|QBYh~#cRCspb9IYEq#9lOV=Qqp=^7^qsZN{8iWkyfUjBYpYnLA-bbxs7*K2@Q}JxrX1U$(mH8J zmG)V-4a$&q8igxr}l0Q{`?D(ZR_n%G=?%e#g`%5EZ@w>^l7M~S(;O)#m z@3Q)ocO|dtFS|t79)0loQesqJ@XFrxGgk|`yYtOi(87>jA{TU&RqD{sy?yg~KUqE9 zWmOy)-5hA8#OVC*)kPl0eV>0UZhLs(@#SRyGeXXdMyWvt#(OUpnF&le`_Z!Ki~G5n zZ7-QwZ!Rg_7Z%*j9X$P6PmkH8DeISs?e_k7#8dNY_)oLxagx5hmyZ@CMRDJoeMw7O z^Pa1M@$HgJr@G8iqxCve(kJmXJY5#6!|SW7$-2~F*^P^*{)o07kDmQ@)`rzA`o$|w z=gtd_is*Y9nI6J_dv@Sz&$GM2{pX*Soh$$Jv{OZR(!Yl7x*wTEJl3w+T4Nggcv-2D zsoH-~47umewoUz`DE*vcvq_yWg*?d{pqea$;SNqb5hHtyzIp+3x6=zrVKp{Qm1h z>EE+&_lsR}-uHLMj$a?X{3-hLOrP5;HS*8D9rrgbndbTL>(9Ek(Kn@k zpP$Y+NB!{P9c>Z##Q zr`bK)(t^VLzaKK)`$PL`)s{=uYJYarSs1MR;?-ZnkvLuNe1R{|%_jc#!@nM;?zY-< z^p%8U$g;Ope>dE;@7*w6a?R6!DL498KQ1i(t~T3o$4hSG$NTR8+5T|WwzfIle<#{Y zO|AV|xm9o(&-8UgBJrq*@np(-v;Nn=4`+FwUuXAb9{=z3k0)2}zi+dCQ+2;{ zeA)T@&GWZ#>979rcZ21+_1EM3S0A4Ec1c&u{z)4)ru_Z=efy7fkx#!?ZBLTE@mr&8 zdEo5jXRo`ml8h7yli$o7--l(7GtF=;-a^ zUlX^B+ga>cTv%zX>Qj5C#@1}fiOa9QP8WZ)@!tIFZQ*;L%zr;4=gji2dG$X&^G?f{ z79snj|9<_iFQ0vxfB$-Yz|((DV!e&bx8R%~sUPj@>p#6n%}aqcCR6iLKn+k(vlB!c znHiaLLB&iEjnk0If>iy0#Pn2s-_(@MM5p`;g=hl>0|gTka|JU~gIF&8fW)HIyb=Xt zQ1g{bKPa_0zqBYhwb;f+KcFZ-IXJZ>T0g+WO+h~-wW1`JOW(Dk#67qqu_RT&5M)je zm%dwmUWtOCAy~hi9hbgyeqKpxUP-Y6sEr)NWoHL-7RU;aQ*CS%^g-@Y06VN$LEk$w zrC1@F3*_t|u2=H7!xDj3??LBkI0E2vdL=3F3sK?q~O-h|0oa9MynjgSR#p^{FC#i^ix z(RcF*cK3?V_DIbsOD)MvPSkbE&q)D?nM-PMa#3bMNq&)nCCD7G&%iQV`fiy;#U;)e ziA4&ghWb8w1TNADCR*?fPuLT6wHl`P_UVqxq_LYp@O+N$c;u| z5~KzsW?^g$QEP6&1yTpm4Pt?0!K%#66)a6a(Su?amjT!nAXOmOz-VJ*W3XKyKEx&i z1rTjvVF?rG0?C1}v4thr4458}IS^A#P0c{5EiXAgB{MHwKRh$fF|Rn&6~+%PO)3E; zZBRNgM8p6nAfYh;k^zS%BAmfozr@^BJh9^BlwT2TprC7HXsKXnY@}drVi*hR&7~JB z7#nfvI~FH{a*Mf%A(y^$Vu43$W_m^mND-Gl$R3a!NGq4VXGvmCX0l^mdQPf>0hfMo zNosDGf}yb`m%eXiadBo|IyfQ~ObraU^dq3gn3`B}>4RcDIJHDW-%;O5-&x;9-&NmD z-(BBR-&@~D-&fyH-(NpKKS)1VKSV!NKTJPdKT$tPKUqITKUF_XKV3gVKT|(PKUY6b zKVQEXNQol(TL|$K;+)!*dxI7Ht1e`swWI zyvZ|uUJUs9D)jE>bGF~_XfIr%HpNBhDTK^*S)eV=Wx;s6(`>v~~x~MO!(nz0p_v6P`9;rEd z%rx_+8rf)RS$WmyYS`HQDqiX(yWY?1(h|+%XEp`<$=KI5DgQLqbeJo!v1+Q3flcAm zqIE$>{%;rUT6FB3&zCD_ygqq-^9x-2$usutbTK=1+oW}7m+Z9^s^ZT4xv``5)dAP; z$IU`bb2YOpO#7uA&n|Zh;$9JW#p%>Et|e~4-75^QBx!YQTHd7Tf2uLc>+B+#l>(=_ zix%x!SvaLj%KvA8utxl;{-R}R!FpFzvW%Yk?+jv`B7Jp!k%CKbP!`+PMj;hrRjZTL z!uFFFt9|!b>uc*Hy`=1tM&`mTe!n8bl&v*(J6m7a{POOX;I{NjGnI8tt8G@l8UM@W z+e)L^8Dc4Ar{7H7*}ZdrW!F!0F=m}lt!u;f8hWr7ZD@10D!Aa;l4~$)_3_224_qF{ z?&UPHX+2iCU-iU+iFpj0_VBH-+%ut$G1N$#ae`j~(`T31{b>P*iURm1%+D3mvaD6z z`8MUr-0kPCZM$o+v8a!!-ao7^{lJ~|yvFksJwGdn7HxO$k(hTR&Y|vI!rk@UZx%|p zJ=$kb)UapyX*Rjb|DD3QUunJ8^3GrM`bFLq)9+PbdUtHYqpFJyc1^e>QCQ{rbW&4h z$I&cb(ADl~^HOb!tU zsdmWZn%-J0Q?~u6(3{@SyEB?JAADm|F%W*%Q`x@!qh-Xg(zpQL&Ai{{8P<9ppKUH~ zE%%9~R_lxKH-~yp*&DOJ{d4wsY-YZGecyV{J@yOPyg62J+>!4;CRt&7;$z043Gxx& z8r=2zb6@H#|LN$L!u|TQvBlvf*8dqdd#7(HTv~H**4~#p19ciZg-aiB);>^wp}f;? zL0U(EGsnS*pV4MJ*DvrtyZZVTMX{WJ%wZ3{6?{E>gS+O9>;2%(6ZyG(L(V53^f`Rj za=lch_@bc7_HCu**SD8{aJ$tSnxOkqWlFsA1MA!cU2MTu3b!nLSrvU#o5hIb(vNWN zTh6mWR3p3^CO!Z5E3a>lSqtOMt1Byn$~fnArT+P^sQb4eM8bJOm4Wu`Y4bj)uD{)L zH0(xg)yFTF75}_cUHd9}1#hfH-KNf?D%^W-^4#m!WV)KZBX&jqclUtfwMzs}nzLwS zES%bWJ)t+gd3OTmwO`8nRXMgkvG*^s?#L)I_~7QtHzEAr%HvsXcKcT^TlV_EzBg-I zxg^fzoVeMuZGokRfz83mQ~T>rOR(@hw{O{{-{vLid{=ehyGdK`dv@HpFLYpDOQsL2 z@C!y^Purhgls;~`%_^KHec{~O3K7e<7fx#BNbR=YXV9zfV?U!bQ@4VJf6a*#ryW+` zoEn&&c3kb<$;(>T-rnC*f4Oke?0cPO|GnkUd%?IXEFd;6w(bd2mWym*`rfV$-;Xv1 zR?e&rG^}0}bNxb9QK(1Xp;g-rM1LJlX)>L8Vtv?@_!S>C+s`Lu&v44`JmC{LS7vuj z;3uZ0qnDoQp8V8uPF!Js$acMtD)CG1?l-fa)tb0vnn>?e?l-PwM;{1Q$iy{I_GI*H zTB;wdwQJp{_G72&maKj7`^xqY-*!If+!)eVbU8sJ>`|cB^0Gg&wm)-z_@}B`f19Qe zXB3}zd&1n#8#C7Y{c1C({)j}@*_autj9--RJP|y#H^4Kl?${Yl?(Z|F2h>F~?oU{H zuj$}3UAqH!vMtIMM;W$nY%*H%`s+2%Sx0SFR0~_={Ad5Jax}VBs3Mt}(P=49|H6$f z=O5cK>Bk*rs$F_!f&-_dy}Ffj_p6O-ZQj#)cW-ll<1?~YQ_;s?b?cOE1&j0t zX33ALe;f+htTLu1=1YY?tTx(_Zlm(~x+0^O#fK&($$4J86T;IAMAskS7Eg?iQEFcK z#oyqo5zO9&vxUO+B zRE_w&?7Q$Kdyz%fo?o3e?lcH#o0}1_EPqm}ar8{pi-C%g(nV#NqK9WLT3dOOJ&<+P z-Qtw{*IC*5<@d2_?)}s#uljb%iYZPN$5IbDJkS3iu;{#J-{B82YpU#+ViFE)K7Qco z=L&Tg2{i?jqb8f#Wq9Kd3Uql2oif3P~zVA`TePgnp>xARn+bty) z?AKNHV)EOed-*=w?|UqBjy?GI%g-j@#gvCv_^p1=IPL_gly5<}nfRqQ5UKJ$WJJ zm}P?Ix5LKua%_DGKR5l&mFyS&a!WK&(>p-r*PjQogkP7=?$6nMBCr13)3VSjcT}!S zUw<|8)Acugw*?PN?RB}~TC-%9%T`fA-gj4v7Ef4x>wfvR@-rGPhY~!Wp18d#ZT`Bc z`xnIrUO)M4+p}xy?=LdvcroMpX6t8L{59qKZphr3-@LEi?Q!Rgye{2s2d2s0WtsAL z``v_-!t#oX$}0aYa{sjWg^KPG&pT2tFYT$9JF9)--n8W}5+`jx{&b1*HO-u#6?NZA zmbX{M2XO84m)OYrB0+hhHSfk}?JYZMlgutF%x|tV;raKEwTCf!d;Uh|etC&Y>IFfY z!cW#jOPVLA`OInG=>7Lbvd>Blg9!d+A69my2y?YR*ER*!JEi{LctfiC!Ak#)B5bDN zqGqv=Y-iq7OuXkHG^-xgJu?tRIe)mV{=*AzN ziGEINZ~dCF>Br(k_Cpi6bg#OcO?Nyl(Y`gw>5!8XlcviGGZE!0MF!3LVrR*0;7mv~+YdaC{$?3kKJ~iELir0{O?wNMhtG=&bLd+u zpR^=r(Uh8-{g%yqxt3erUD$O;WQkkh%voDs@B2}7_L*phX~m`wGg$IPKZ|G1a5?hK z>${qVr)R`u?MW*`HYg-*oiL|Wut3sn7T10*Ys)LU*6D4tdh%(?V;8lGX=|S^!!_SlI-O8bopDs*`y*D~)6&k?ljkp5zT$I6a;fDxgzUJ zRh1bR@oF87xy07k#ov->w!v9u&hbk(BJ275#m;qJpWxe;vHJV8dcQN~4aaRfzwtcI zZ`kwbnET}7?9(q_Nk8vbUmK9HH}PrycPIO0>F0cXezvUR;t5xYkExk+V?xay`!1j8 zZ5_F(YwlG`9{i$q%V7q`vB;c>rAPW-@w^RMX5XB8NU~5?>B!4E4&PlR+z~IMd)8id zy1~Dx?t|Er9sL~ZWQ7(qXFKe?>25YRzFvumb@RW|hnfB)t$vpq_`v_AjLn~)E(*>3 zJ%8WxFQ^czzWF#i?q96;*^QgGvp3KD%xqKA)vsm|w6HT;zU$eh_(tBz!CMy>oL~57 z)2BmHN8)tD&wuagD1E$t(b^z>?x|KYmT}wqG|!aeF=pQ!!_6(R?fjuhi~h0ii!eU{ z8Z>}*C}2HvP@f*!H34_-V7+}ruO!0P2i7GqG%-eWNo?#Z3KEmEQ%e+*Qqwc@Y}McI z-mk8ZnPRIRZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+Zg0nBW1pCkpOmUwkyxOc2A#Hk(m6T-Lsz>++ zD3s*q=VWJ=C>ZHk>KW=98tW*e6(#1Tmgg5`D;VmTsoQbc6s4qD1-ZCE4J=AYvsKS1 zDJihh*Do(G*DE*H%P&gTH?*|0)Hg8FH!{*KN=ef#uFNY*tkBIXR#u1V%Zz|)%PZCc zyGbuOKUY69Lf=r&Kp$oisLKi(g2>FzQvg|~>K0|OgiLH8KK|xMta$-qlex80oN}9TzO-iy=NoGk-svS7HIp&l=7&)1s>|>Ran3ry= zUZIR=Vi!q!H8jgaN@vtI816zrq$)yj@7@7Hbpe(H6 zVg<^?2F8ZQhGxbl;QXs@V4$warSF@cLO?|bC@E+lMKa9r{2~oPc~p~2-?6kLBfm(4 zi0IXXk1|&jrKWKiC>WY>feKa#RxmR)H8xd9Q-F#YS(+FrfTa}jU}6@griSQZMiv&v z7-Hte73QmLTjfHZU+pS7&T!V1XfKVrhaQW?+J;&HyyrjAn-grd!Mn zko{Xyl$e>5TEqpKEC|l5N>wm4QP2;{&o5B`%>@K0=zHd+initial_integrate() - fix->post_integrate() - - nflag = neighbor->decide() - if nflag: - fix->pre_exchange() - domain->pbc() - domain->reset_box() - comm->setup() - neighbor->setup_bins() - comm->exchange() - comm->borders() - fix->pre_neighbor() - neighbor->build() - else - comm->forward_comm() - - force_clear() - fix->pre_force() - - pair->compute() - bond->compute() - angle->compute() - dihedral->compute() - improper->compute() - kspace->compute() - - comm->reverse_comm() - - fix->post_force() - fix->final_integrate() - fix->end_of_step() - - if any output on this step: output->write() - \end{verbatim} - \end{center} - \caption{Pseudo-code for the Verlet::run() method.} -\label{fig:verlet} -\end{figure} - -The ev\_set() method (in the parent Integrate class), sets two flags -({\em eflag} and {\em vflag}) for energy and virial computation. Each -flag encodes whether global and/or per-atom energy and virial should -be calculated on this timestep, because some fix or variable or output -will need it. These flags are passed to the various methods that -compute particle interactions, so that they can skip the extra -calculations if the energy and virial are not needed. See the -comments with the Integrate::ev\_set() method which document the flag -values. - -At various points of the timestep, fixes are invoked, -e.g. fix$\rightarrow$initial\_integrate(). In the code, this is -actually done via the Modify class which stores all the Fix objects -and lists of which should be invoked at what point in the timestep. -Fixes are the LAMMPS mechanism for tailoring the operations of a -timestep for a particular simulation. As described elsewhere -(unwritten section), each fix has one or more methods, each of which -is invoked at a specific stage of the timestep, as in Fig -\ref{fig:verlet}. All the fixes defined in an input script with an -initial\_integrate() method are invoked at the beginning of each -timestep. Fix nve, nvt, npt are examples, since they perform the -start-of-timestep velocity-Verlet integration to update velocities by -a half-step, and coordinates by a full step. The post\_integrate() -method is next. Only a few fixes use this, e.g. to reflect particles -off box boundaries in the FixWallReflect class. - -The decide() method in the Neighbor class determines whether neighbor -lists need to be rebuilt on the current timestep. If not, coordinates -of ghost atoms are acquired by each processor via the forward\_comm() -method of the Comm class. If neighbor lists need to be built, several -operations within the inner if clause of Fig \ref{fig:verlet} are -first invoked. The pre\_exchange() method of any defined fixes is -invoked first. Typically this inserts or deletes particles from the -system. - -Periodic boundary conditions are then applied by the Domain class via -its pbc() method to remap particles that have moved outside the -simulation box back into the box. Note that this is not done every -timestep. but only when neighbor lists are rebuilt. This is so that -each processor's sub-domain will have consistent (nearby) atom -coordinates for its owned and ghost atoms. It is also why dumped atom -coordinates can be slightly outside the simulation box. - -The box boundaries are then reset (if needed) via the reset\_box() -method of the Domain class, e.g. if box boundaries are shrink-wrapped -to current particle coordinates. A change in the box size or shape -requires internal information for communicating ghost atoms (Comm -class) and neighbor list bins (Neighbor class) be updated. The -setup() method of the Comm class and setup\_bins() method of the -Neighbor class perform the update. - -The code is now ready to migrate atoms that have left a processor's -geometric sub-domain to new processors. The exchange() method of the -Comm class performs this operation. The borders() method of the Comm -class then identifies ghost atoms surrounding each processor's -sub-domain and communicates ghost atom information to neighboring -processors. It does this by looping over all the atoms owned by a -processor to make lists of those to send to each neighbor processor. -On subsequent timesteps, the lists are used by the -Comm::forward\_comm() method. - -Fixes with a pre\_neighbor() method are then called. These typically -re-build some data structure stored by the fix that depends on the -current atoms owned by each processor. - -Now that each processor has a current list of its owned and ghost -atoms, LAMMPS is ready to rebuild neighbor lists via the build() -method of the Neighbor class. This is typically done by binning all -owned and ghost atoms, and scanning a stencil of bins around each -owned atom's bin to make a Verlet list of neighboring atoms within the -force cutoff plus neighbor skin distance. - -In the next portion of the timestep, all interaction forces between -particles are computed, after zeroing the per-atom force vector via -the force\_clear() method. If the newton flag is set to ``on'' by the -newton command, forces on both owned and ghost atoms are calculated. - -Pairwise forces are calculated first, which enables the global virial -(if requested) to be calculated cheaply (at the end of the -Pair::compute() method), by a dot product of atom coordinates and -forces. By including owned and ghost atoms in the dot product, the -effect of periodic boundary conditions is correctly accounted for. -Molecular topology interactions (bonds, angles, dihedrals, impropers) -are calculated next. The final contribution is from long-range -Coulombic interactions, invoked by the KSpace class. - -If the newton flag is on, forces on ghost atoms are communicated and -summed back to their corresponding owned atoms. The reverse\_comm() -method of the Comm class performs this operation, which is essentially -the inverse operation of sending copies of owned atom coordinates to -other processor's ghost atoms. - -At this point in the timestep, the total force on each atom is known. -Additional force constraints (external forces, SHAKE, etc) are applied -by Fixes that have a post\_force() method. The second half of the -velocity-Verlet integration is then performed (another half-step -update of the velocities) via fixes like nve, nvt, npt. - -At the end of the timestep, fixes that define an end\_of\_step() -method are invoked. These typically perform a diagnostic calculation, -e.g. the ave/time and ave/spatial fixes. The final operation of the -timestep is to perform any requested output, via the write() method of -the Output class. There are 3 kinds of LAMMPS output: thermodynamic -output to the screen and log file, snapshots of atom data to a dump -file, and restart files. See the thermo\_style, dump, and restart -commands for more details. - -The iteration performed by an energy minimization is similar to the -dynamics timestep of Fig \ref{fig:verlet}. Forces are computed, -neighbor lists are built as needed, atoms migrate to new processors, -and atom coordinates and forces are communicated to neighboring -processors. The only difference is what Fix class operations are -invoked when. Only a subset of LAMMPS fixes are useful during energy -minimization, as explained in their individual doc pages. The -relevant Fix class methods are min\_pre\_exchange(), -min\_pre\_force(), and min\_post\_force(). Each is invoked at the -appropriate place within the minimization iteration. For example, the -min\_post\_force() method is analogous to the post\_force() method for -dynamics; it is used to alter or constrain forces on each atom, which -affects the minimization procedure. - -\pagebreak -\section{Extending LAMMPS} - -The Section\_modify.html file in the doc directory of -the LAMMPS distribution gives an overview of how LAMMPS can -be extended by writing new classes that derive from existing -parent classes in LAMMPS. Here, some specific coding -details are provided for writing a new fix. - -\subsection{New fixes} - -(this section provided by Kirill Lykov) -\vspace{0.25cm} - -Writing fixes is a flexible way of extending LAMMPS. Users can -implement many things using fixes: - -\begin{itemize} -\item changing particles attributes (positions, velocities, forces, etc.). -Example: FixFreeze. -\item reading/writing data. Example: FixRestart. -\item implementing boundary conditions. Example: FixWall. -\item saving information about particles for future use (previous positions, -for instance). Example: FixStoreState. -\end{itemize} - -All fixes are derived from class Fix and must have constructor with the -signature: FixMine(class LAMMPS *, int, char **). - -Every fix must be registered in LAMMPS by writing the following lines -of code in the header before include guards: - - \begin{center} - \begin{verbatim} -#ifdef FIX_CLASS -FixStyle(your/fix/name,FixMine) -#else - \end{verbatim} - \end{center} - -Where ``your/fix/name'' is a name of your fix in the script and FixMine -is the name of the class. This code allows LAMMPS to find your fix -when it parses input script. In addition, your fix header must be -included in the file ``style\_fix.h''. In case if you use LAMMPS make, -this file is generated automatically - all files starting with prefix -fix\_ are included, so call your header the same way. Otherwise, don't -forget to add your include into ``style\_fix.h''. - -Let's write a simple fix which will print average velocity at the end -of each timestep. First of all, implement a constructor: - - \begin{center} - \begin{verbatim} -FixPrintVel::FixPrintVel(LAMMPS *lmp, int narg, char **arg) -: Fix(lmp, narg, arg) -{ - if (narg < 4) - error->all(FLERR,"Illegal fix print command"); - - nevery = atoi(arg[3]); - if (nevery <= 0) - error->all(FLERR,"Illegal fix print command"); -} - \end{verbatim} - \end{center} - -In the constructor you should parse your fix arguments which are -specified in the script. All fixes have pretty the same syntax: fix -[fix\_identifier] [group\_name] [fix\_name] [fix\_arguments]. The -first 3 parameters are parsed by Fix class constructor, while -[fix\_arguments] should be parsed by you. In our case, we need to -specify how often we want to print an average velocity. For instance, -once in 50 timesteps: fix 1 print/vel 50. There is a special variable -in Fix class called nevery which specifies how often method -end\_of\_step() is called. Thus all we need to do is just set it up. - -The next method we need to implement is setmask(): -\begin{center} -\begin{verbatim} -int FixPrintVel::setmask() -{ - int mask = 0; - mask |= FixConst::END_OF_STEP; - return mask; -} -\end{verbatim} -\end{center} - -Here user specifies which methods of your fix should be called during -the execution. For instance, END\_OF\_STEP corresponds to the -end\_of\_step() method. Overall, there are 8 most important methods, -methods are called in predefined order during the execution of the -verlet algorithm as was mentioned in the Section 3: - -\begin{itemize} -\item initial\_integrate() -\item post\_integrate() -\item pre\_exchange() -\item pre\_neighbor() -\item pre\_force() -\item post\_force() -\item final\_integrate() -\item end\_of\_step() -\end{itemize} - -Fix developer must understand when he wants to execute his code. In -case if we want to write FixPrintVel, we need only end\_of\_step(): - -\begin{center} -\begin{verbatim} -void FixPrintVel::end_of_step() -{ - // for add3, scale3 - using namespace MathExtra; - - double** v = atom->v; - int nlocal = atom->nlocal; - double localAvgVel[4]; // 4th element for particles count - memset(localAvgVel, 0, 4 * sizeof(double)); - for (int particleInd = 0; particleInd < nlocal; ++particleInd) { - add3(localAvgVel, v[particleInd], localAvgVel); - } - localAvgVel[3] = nlocal; - double globalAvgVel[4]; - memset(globalAvgVel, 0, 4 * sizeof(double)); - MPI_Allreduce(localAvgVel, globalAvgVel, 4, MPI_DOUBLE, MPI_SUM, world); - scale3(1.0 / globalAvgVel[3], globalAvgVel); - if (comm->me == 0) { - printf("\%e, \%e, \%e\n", - globalAvgVel[0], globalAvgVel[1], globalAvgVel[2]); - } -} -\end{verbatim} -\end{center} - -In the code above, we use MathExtra routines defined in -``math\_extra.h''. There are bunch of math functions to work with -arrays of doubles as with math vectors. - -In this code we use an instance of Atom class. This object is stored -in the Pointers class (see ``pointers.h''). This object contains all -global information about the simulation system. Data from Pointers -class available to all classes inherited from it using protected -inheritance. Hence when you write you own class, which is going to use -LAMMPS data, don't forget to inherit from Pointers. When writing -fixes we inherit from class Fix which is inherited from Pointers so -there is no need to inherit from it directly. - -The code above computes average velocity for all particles in the -simulation. Yet you have one unused parameter in fix call from the -script - [group\_name]. This parameter specifies the group of atoms -used in the fix. So we should compute average for all particles in the -simulation if group\_name == all, but it can be any group. The group -information is specified by groupbit which is defined in class Fix: - -\begin{center} -\begin{verbatim} -for (int particleInd = 0; particleInd < nlocal; ++particleInd) { - if (atom->mask[particleInd] & groupbit) { - //Do all job here - } -} -\end{verbatim} -\end{center} - -Class Atom encapsulates atoms positions, velocities, forces, etc. User -can access them using particle index. Note, that particle indexes are -usually changed every timestep because of sorting. - -Lets consider another Fix example. We want to have a fix which stores -atoms position from previous time step in your fix. The local atoms -indexes will not be valid on the next iteration. In order to handle -this situation there are several methods which should be implemented: - -\begin{itemize} -\item \verb|double memory_usage| - return how much memory fix uses -\item \verb|void grow_arrays(int)| - do reallocation of the per particle arrays - in your fix -\item \verb|void copy_arrays(int i, int j, int delflag)| - copy i-th per-particle - information to j-th. Used when atoms sorting is performed. if delflag is set - and atom j owns a body, move the body information to atom i. -\item \verb|void set_arrays(int i)| - sets i-th particle related information to zero -\end{itemize} - -Note, that if your class implements these methods, it must call add calls of -add\_callback and delete\_callback to constructor and destructor: - -\begin{center} -\begin{verbatim} -FixSavePos::FixSavePos(LAMMPS *lmp, int narg, char **arg) { - //... - atom->add_callback(0); -} - -FixSavePos::~FixSavePos() { - atom->delete_callback(id, 0); -} -\end{verbatim} -\end{center} - -Since we want to store positions of atoms from previous timestep, we -need to add double** x to the header file. Than add allocation code to -constructor: - -\verb|memory->create(this->x, atom->nmax, 3, "FixSavePos:x");|. Free memory -at destructor: \verb|memory->destroy(x);| - -Finally, implement mentioned methods: - -\begin{center} -\begin{verbatim} -double FixSavePos::memory_usage() -{ - int nmax = atom->nmax; - double bytes = 0.0; - bytes += nmax * 3 * sizeof(double); - return bytes; -} - -void FixSavePos::grow_arrays(int nmax) -{ - memory->grow(this->x, nmax, 3, "FixSavePos:x"); -} - -void FixSavePos::copy_arrays(int i, int j, int delflag) -{ - memcpy(this->x[j], this->x[i], sizeof(double) * 3); -} - -void FixSavePos::set_arrays(int i) -{ - memset(this->x[i], 0, sizeof(double) * 3); -} - -int FixSavePos::pack_exchange(int i, double *buf) -{ - int m = 0; - buf[m++] = x[i][0]; - buf[m++] = x[i][1]; - buf[m++] = x[i][2]; - - return m; -} - -int FixSavePos::unpack_exchange(int nlocal, double *buf) -{ - int m = 0; - x[nlocal][0] = buf[m++]; - x[nlocal][1] = buf[m++]; - x[nlocal][2] = buf[m++]; - - return m; -} -\end{verbatim} -\end{center} - -Now, a little bit about memory allocation. We used Memory class which -is just a bunch of template functions for allocating 1D and 2D -arrays. So you need to add include ``memory.h'' to have access to them. - -Finally, if you need to write/read some global information used in -your fix to the restart file, you might do it by setting flag -restart\_global = 1 in the constructor and implementing methods void -write\_restart(FILE *fp) and void restart(char *buf). - -\end{document} diff --git a/doc/src/Intro_website.rst b/doc/src/Intro_website.rst index 0999e90907..125d2e0f4c 100644 --- a/doc/src/Intro_website.rst +++ b/doc/src/Intro_website.rst @@ -23,7 +23,6 @@ this Intr are included in this list. * `Mail list `_ * `Workshops `_ * `Tutorials `_ -* `Developer guide `_ * `Pre- and post-processing tools for LAMMPS `_ * `Other software usable with LAMMPS `_ diff --git a/doc/src/Manual.rst b/doc/src/Manual.rst index 29852093d0..b43e60208c 100644 --- a/doc/src/Manual.rst +++ b/doc/src/Manual.rst @@ -27,8 +27,7 @@ all LAMMPS development is coordinated. The content for this manual is part of the LAMMPS distribution. You can build a local copy of the Manual as HTML pages or a PDF file, by following the steps on the :doc:`Manual build ` doc page. -There is also a `Developer.pdf `_ document which gives -a brief description of the basic code structure of LAMMPS. +The manual is split into two parts: 1) User documentation and 2) Programmer documentation. ---------- diff --git a/doc/src/Manual_build.rst b/doc/src/Manual_build.rst index 972f38bf2e..affa9e5057 100644 --- a/doc/src/Manual_build.rst +++ b/doc/src/Manual_build.rst @@ -14,7 +14,6 @@ files. Here is a list with descriptions: lammps.1 # man page for the lammps command msi2lmp.1 # man page for the msi2lmp command Manual.pdf # large PDF version of entire manual - Developer.pdf # small PDF with info about how LAMMPS is structured LAMMPS.epub # Manual in ePUB e-book format LAMMPS.mobi # Manual in MOBI e-book format docenv # virtualenv folder for processing the manual sources @@ -35,7 +34,7 @@ of two ways: a. You can "fetch" the current HTML and PDF files from the LAMMPS web site. Just type ``make fetch``. This should download a html_www - directory and Manual_www.pdf/Developer_www.pdf files. Note that if + directory and a Manual_www.pdf file. Note that if new LAMMPS features have been added more recently than the date of your LAMMPS version, the fetched documentation will include those changes (but your source code will not, unless you update your local @@ -49,6 +48,11 @@ b. You can build the HTML or PDF files yourself, by typing ``make html`` only once, unless you type ``make clean-all``. After that, viewing and processing of the documentation can be done without internet access. +A current version of the manual (latest patch release, aka unstable branch) +is is available online at: `https://lammps.sandia.gov/doc/Manual.html `_ +A version of the manual corresponding to the ongoing development +(aka master branch) is available online at: `https://doc.lammps.org/ `_ + ---------- The generation of all documentation is managed by the Makefile in the @@ -58,10 +62,9 @@ available: .. code-block:: bash make html # generate HTML in html dir using Sphinx - make pdf # generate 2 PDF files (Manual.pdf,Developer.pdf) - # in doc dir via htmldoc and pdflatex - make fetch # fetch HTML doc pages and 2 PDF files from web site - # as a tarball and unpack into html dir and 2 PDFs + make pdf # generate PDF as Manual.pdf using Sphinx and pdflatex + make fetch # fetch HTML doc pages and PDF file from web site + # as a tarball and unpack into html dir and PDF make epub # generate LAMMPS.epub in ePUB format using Sphinx make mobi # generate LAMMPS.mobi in MOBI format using ebook-convert diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index 1ca9bcc4cc..848abc46bd 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -530,3 +530,213 @@ Where ``mine`` is the style name of your fix in the input script and automatically integrate it into the executable when compiling and find your fix class when it parses input script. +Let's write a simple fix which will print average velocity at the end +of each timestep. First of all, implement a constructor: + +.. code-block:: C++ + + FixPrintVel::FixPrintVel(LAMMPS *lmp, int narg, char **arg) + : Fix(lmp, narg, arg) + { + if (narg < 4) + error->all(FLERR,"Illegal fix print command"); + + nevery = atoi(arg[3]); + if (nevery <= 0) + error->all(FLERR,"Illegal fix print command"); + } + +In the constructor you should parse your fix arguments which are +specified in the script. All fixes have pretty the same syntax: +``fix [fix_identifier] [group_name] [fix_name] [fix_arguments]``. The +first 3 parameters are parsed by Fix base class constructor, while +``[fix_arguments]`` should be parsed by you. In our case, we need to +specify how often we want to print an average velocity. For instance, +once in 50 timesteps: ``fix 1 print/vel 50``. There is a special variable +in Fix class called nevery which specifies how often method +``end_of_step()`` is called. Thus all we need to do is just set it up. + +The next method we need to implement is ``setmask()``: + +.. code-block:: C++ + + int FixPrintVel::setmask() + { + int mask = 0; + mask |= FixConst::END_OF_STEP; + return mask; + } + +Here user specifies which methods of your fix should be called during +the execution. For instance, ``END_OF_STEP`` corresponds to the +``end_of_step()`` method. Overall, there are 8 most important methods, +methods are called in predefined order during the execution of the +verlet algorithm as was mentioned in the previous section: + +- ``initial_integrate()`` +- ``post_integrate()`` +- ``pre_exchange()`` +- ``pre_neighbor()`` +- ``pre_force()`` +- ``post_force()`` +- ``final_integrate()`` +- ``end_of_step()`` + +Fix developer must understand when he wants to execute his code. In +case if we want to write FixPrintVel, we need only end\_of\_step(): + +.. code-block:: C++ + + void FixPrintVel::end_of_step() + { + // for add3, scale3 + using namespace MathExtra; + + double** v = atom->v; + int nlocal = atom->nlocal; + double localAvgVel[4]; // 4th element for particles count + memset(localAvgVel, 0, 4 * sizeof(double)); + for (int particleInd = 0; particleInd < nlocal; ++particleInd) { + add3(localAvgVel, v[particleInd], localAvgVel); + } + localAvgVel[3] = nlocal; + double globalAvgVel[4]; + memset(globalAvgVel, 0, 4 * sizeof(double)); + MPI_Allreduce(localAvgVel, globalAvgVel, 4, MPI_DOUBLE, MPI_SUM, world); + scale3(1.0 / globalAvgVel[3], globalAvgVel); + if (comm->me == 0) { + printf("\%e, \%e, \%e\n", + globalAvgVel[0], globalAvgVel[1], globalAvgVel[2]); + } + } + +In the code above, we use MathExtra routines defined in +``math_extra.h``. There are bunch of math functions to work with +arrays of doubles as with math vectors. + +In this code we use an instance of Atom class. This object is stored +in the Pointers class (see ``pointers.h``). This object contains all +global information about the simulation system. Data from Pointers +class available to all classes inherited from it using protected +inheritance. Hence when you write you own class, which is going to use +LAMMPS data, don't forget to inherit from Pointers. When writing +fixes we inherit from class Fix which is inherited from Pointers so +there is no need to inherit from it directly. + +The code above computes average velocity for all particles in the +simulation. Yet you have one unused parameter in fix call from the +script: ``group_name``. This parameter specifies the group of atoms +used in the fix. So we should compute average for all particles in the +simulation only if ``group_name == "all"``, but it can be any group. +The group membership information of an atom is contained in the *mask* +property of and atom and the bit corresponding to a given group is +stored in the groupbit variable which is defined in Fix base class: + +.. code-block:: C++ + + for (int i = 0; i < nlocal; ++i) { + if (atom->mask[i] & groupbit) { + // Do all job here + } + } + +Class Atom encapsulates atoms positions, velocities, forces, etc. User +can access them using particle index. Note, that particle indexes are +usually changed every timestep because of sorting. + +Let us consider another Fix example: We want to have a fix which stores +atoms position from previous time step in your fix. The local atoms +indexes may not be valid on the next iteration. In order to handle +this situation there are several methods which should be implemented: + +- ``double memory_usage()``: return how much memory the fix uses (optional) +- ``void grow_arrays(int)``: do reallocation of the per particle arrays in your fix +- ``void copy_arrays(int i, int j, int delflag)``: copy i-th per-particle + information to j-th. Used when atom sorting is performed. if delflag is set + and atom j owns a body, move the body information to atom i. +- ``void set_arrays(int i)``: sets i-th particle related information to zero + +Note, that if your class implements these methods, it must call add calls of +add_callback and delete_callback to constructor and destructor. Since we want +to store positions of atoms from previous timestep, we need to add +``double** xold`` to the header file. Than add allocation code +to the constructor: + +.. code-block:: C++ + + FixSavePos::FixSavePos(LAMMPS *lmp, int narg, char **arg), xold(nullptr) + { + //... + memory->create(xold, atom->nmax, 3, "FixSavePos:x"); + atom->add_callback(0); + } + + FixSavePos::~FixSavePos() { + atom->delete_callback(id, 0); + memory->destroy(xold); + } + +Implement the aforementioned methods: + +.. code-block:: C++ + + double FixSavePos::memory_usage() + { + int nmax = atom->nmax; + double bytes = 0.0; + bytes += nmax * 3 * sizeof(double); + return bytes; + } + + void FixSavePos::grow_arrays(int nmax) + { + memory->grow(xold, nmax, 3, "FixSavePos:xold"); + } + + void FixSavePos::copy_arrays(int i, int j, int delflag) + { + memcpy(xold[j], xold[i], sizeof(double) * 3); + } + + void FixSavePos::set_arrays(int i) + { + memset(xold[i], 0, sizeof(double) * 3); + } + + int FixSavePos::pack_exchange(int i, double *buf) + { + int m = 0; + buf[m++] = xold[i][0]; + buf[m++] = xold[i][1]; + buf[m++] = xold[i][2]; + + return m; + } + + int FixSavePos::unpack_exchange(int nlocal, double *buf) + { + int m = 0; + xold[nlocal][0] = buf[m++]; + xold[nlocal][1] = buf[m++]; + xold[nlocal][2] = buf[m++]; + + return m; + } + +Now, a little bit about memory allocation. We use the Memory class which +is just a bunch of template functions for allocating 1D and 2D +arrays. So you need to add include ``memory.h`` to have access to them. + +Finally, if you need to write/read some global information used in +your fix to the restart file, you might do it by setting flag +``restart_global = 1`` in the constructor and implementing methods void +``write_restart(FILE *fp)`` and ``void restart(char *buf)``. +If, in addition, you want to write the per-atom property to restart +files additional settings and functions are needed: + +- a fix flag indicating this needs to be set ``restart_peratom = 1;`` +- ``atom->add_callback()`` and ``atom->delete_callback()`` must be called + a second time with the final argument set to 1 instead of 0 (indicating + restart processing instead of per-atom data memory management). +- the functions ``void pack_restart(int i, double *buf)`` and + ``void unpack_restart(int nlocal, int nth)`` need to be implemented -- GitLab From ef50a67169598f95f784a8b1efa1e1de92c486ce Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Fri, 28 Aug 2020 11:06:27 -0400 Subject: [PATCH 103/165] bond/react: make rmsd constraint lowercase --- doc/src/fix_bond_react.rst | 28 ++++++++++++++-------------- src/USER-REACTION/fix_bond_react.cpp | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) mode change 100755 => 100644 doc/src/fix_bond_react.rst diff --git a/doc/src/fix_bond_react.rst b/doc/src/fix_bond_react.rst old mode 100755 new mode 100644 index 25502c52d4..8d54ce755b --- a/doc/src/fix_bond_react.rst +++ b/doc/src/fix_bond_react.rst @@ -312,7 +312,7 @@ discussion of the 'update_edges' keyword. The fifth optional section begins with the keyword 'Constraints' and lists additional criteria that must be satisfied in order for the reaction to occur. Currently, there are five types of constraints available, as discussed below: -'distance', 'angle', 'dihedral', 'arrhenius', and 'RMSD'. +'distance', 'angle', 'dihedral', 'arrhenius', and 'rmsd'. A sample map file is given below: @@ -432,24 +432,24 @@ temperature calculations. A uniform random number between 0 and 1 is generated using *seed*\ ; if this number is less than the result of the Arrhenius equation above, the reaction is permitted to occur. -The constraint of type 'RMSD' has the following syntax: +The constraint of type 'rmsd' has the following syntax: .. parsed-literal:: - RMSD *RMSDmax* *molfragment* + rmsd *RMSDmax* *molfragment* -where 'RMSD' is the required keyword, and *RMSDmax* is the maximum +where 'rmsd' is the required keyword, and *RMSDmax* is the maximum root-mean-square deviation between atom positions of the pre-reaction -template and the local reaction site, after optimal translation and -rotation of the pre-reaction template. Optionally, the name of a -molecule fragment (of the pre-reaction template) can be specified by -*molfragment*\ . If a molecule fragment is specified, only atoms that -are part of this molecule fragment are used to determine the RMSD. A -molecule fragment must have been defined in the :doc:`molecule -` command for the pre-reaction template. For example, the -molecule fragment could consist of only the backbone atoms of a -polymer chain. This constraint can be used to enforce a specific -relative position and orientation between reacting molecules. +template and the local reaction site (distance units), after optimal +translation and rotation of the pre-reaction template. Optionally, the +name of a molecule fragment (of the pre-reaction template) can be +specified by *molfragment*\ . If a molecule fragment is specified, +only atoms that are part of this molecule fragment are used to +determine the RMSD. A molecule fragment must have been defined in the +:doc:`molecule ` command for the pre-reaction template. For +example, the molecule fragment could consist of only the backbone +atoms of a polymer chain. This constraint can be used to enforce a +specific relative position and orientation between reacting molecules. Once a reaction site has been successfully identified, data structures within LAMMPS that store bond topology are updated to reflect the diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index c5efb8c5a7..0b0e41581d 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -3360,7 +3360,7 @@ void FixBondReact::Constraints(char *line, int myrxn) constraints[nconstraints][4] = tmp[1]; constraints[nconstraints][5] = tmp[2]; constraints[nconstraints][6] = tmp[3]; - } else if (strcmp(constraint_type,"RMSD") == 0) { + } else if (strcmp(constraint_type,"rmsd") == 0) { constraints[nconstraints][1] = RMSD; strcpy(strargs[0],"0"); sscanf(line,"%*s %lg %s",&tmp[0],strargs[0]); -- GitLab From 9f2eba981af0ba432230ec1dec172e1858c20bce Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 11:44:31 -0400 Subject: [PATCH 104/165] a few more tweaks and spellcheck to make this ready for merging --- doc/src/pg_developer.rst | 82 ++++++++++----------- doc/utils/sphinx-config/false_positives.txt | 2 + 2 files changed, 43 insertions(+), 41 deletions(-) diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index 848abc46bd..a4fe4bdaf1 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -511,7 +511,7 @@ implement many things using fixes: All fixes are derived from the Fix base class and must have a -constructor with the signature: ``FixMine(class LAMMPS *, int, char **)``. +constructor with the signature: ``FixPrintVel(class LAMMPS *, int, char **)``. Every fix must be registered in LAMMPS by writing the following lines of code in the header before include guards: @@ -519,18 +519,20 @@ of code in the header before include guards: .. code-block:: c #ifdef FIX_CLASS - FixStyle(mine,FixMine) + FixStyle(print/vel,FixPrintVel) #else - /* the definition of the FixMine class comes here */ + /* the definition of the FixPrintVel class comes here */ ... #endif -Where ``mine`` is the style name of your fix in the input script and -``FixMine`` is the name of the class. This convention allows LAMMPS to -automatically integrate it into the executable when compiling and find -your fix class when it parses input script. +Where ``print/vel`` is the style name of your fix in the input script and +``FixPrintVel`` is the name of the class. The header file would be called +``fix_print_vel.h`` and the implementation file ``fix_print_vel.cpp``. +These conventions allow LAMMPS to automatically integrate it into the +executable when compiling and associate your new fix class with the designated +keyword when it parses the input script. -Let's write a simple fix which will print average velocity at the end +Let's write a simple fix which will print the average velocity at the end of each timestep. First of all, implement a constructor: .. code-block:: C++ @@ -539,21 +541,21 @@ of each timestep. First of all, implement a constructor: : Fix(lmp, narg, arg) { if (narg < 4) - error->all(FLERR,"Illegal fix print command"); + error->all(FLERR,"Illegal fix print/vel command"); - nevery = atoi(arg[3]); + nevery = force->inumeric(FLERR,arg[3]); if (nevery <= 0) - error->all(FLERR,"Illegal fix print command"); + error->all(FLERR,"Illegal fix print/vel command"); } In the constructor you should parse your fix arguments which are specified in the script. All fixes have pretty the same syntax: -``fix [fix_identifier] [group_name] [fix_name] [fix_arguments]``. The +``fix ``. The first 3 parameters are parsed by Fix base class constructor, while -``[fix_arguments]`` should be parsed by you. In our case, we need to +```` should be parsed by you. In our case, we need to specify how often we want to print an average velocity. For instance, once in 50 timesteps: ``fix 1 print/vel 50``. There is a special variable -in Fix class called nevery which specifies how often method +in the Fix class called ``nevery`` which specifies how often the method ``end_of_step()`` is called. Thus all we need to do is just set it up. The next method we need to implement is ``setmask()``: @@ -567,23 +569,11 @@ The next method we need to implement is ``setmask()``: return mask; } -Here user specifies which methods of your fix should be called during -the execution. For instance, ``END_OF_STEP`` corresponds to the -``end_of_step()`` method. Overall, there are 8 most important methods, -methods are called in predefined order during the execution of the -verlet algorithm as was mentioned in the previous section: - -- ``initial_integrate()`` -- ``post_integrate()`` -- ``pre_exchange()`` -- ``pre_neighbor()`` -- ``pre_force()`` -- ``post_force()`` -- ``final_integrate()`` -- ``end_of_step()`` - -Fix developer must understand when he wants to execute his code. In -case if we want to write FixPrintVel, we need only end\_of\_step(): +Here the user specifies which methods of your fix should be called +during execution. The constant ``END_OF_STEP`` corresponds to the +``end_of_step()`` method. The most important available methods that +are called during a timestep and the order in which they are called +are shown in the previous section. .. code-block:: C++ @@ -604,22 +594,31 @@ case if we want to write FixPrintVel, we need only end\_of\_step(): memset(globalAvgVel, 0, 4 * sizeof(double)); MPI_Allreduce(localAvgVel, globalAvgVel, 4, MPI_DOUBLE, MPI_SUM, world); scale3(1.0 / globalAvgVel[3], globalAvgVel); - if (comm->me == 0) { - printf("\%e, \%e, \%e\n", - globalAvgVel[0], globalAvgVel[1], globalAvgVel[2]); + if ((comm->me == 0) && screen) { + fmt::print(screen,"{}, {}, {}\n", + globalAvgVel[0], globalAvgVel[1], globalAvgVel[2]); } } In the code above, we use MathExtra routines defined in ``math_extra.h``. There are bunch of math functions to work with -arrays of doubles as with math vectors. +arrays of doubles as with math vectors. It is also important to note +that LAMMPS code should always assume to be run in parallel and that +atom data is thus distributed across the MPI ranks. Thus you can +only process data from local atoms directly and need to use MPI library +calls to combine or exchange data. For serial execution, LAMMPS +comes bundled with the MPI STUBS library that contains the MPI library +function calls in dummy versions that only work for a single MPI rank. In this code we use an instance of Atom class. This object is stored -in the Pointers class (see ``pointers.h``). This object contains all -global information about the simulation system. Data from Pointers -class available to all classes inherited from it using protected -inheritance. Hence when you write you own class, which is going to use -LAMMPS data, don't forget to inherit from Pointers. When writing +in the Pointers class (see ``pointers.h``) which is the base class of +the Fix base class. This object contains references to various class +instances (the original instances are created and held by the LAMMPS +class) with all global information about the simulation system. +Data from the Pointers class is available to all classes inherited from +it using protected inheritance. Hence when you write you own class, +which is going to use LAMMPS data, don't forget to inherit from Pointers +or pass an Pointer to it to all functions that need access. When writing fixes we inherit from class Fix which is inherited from Pointers so there is no need to inherit from it directly. @@ -642,7 +641,8 @@ stored in the groupbit variable which is defined in Fix base class: Class Atom encapsulates atoms positions, velocities, forces, etc. User can access them using particle index. Note, that particle indexes are -usually changed every timestep because of sorting. +usually changed every few timesteps because of neighbor list rebuilds +and spatial sorting (to improve cache efficiency). Let us consider another Fix example: We want to have a fix which stores atoms position from previous time step in your fix. The local atoms diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index c6db142634..81ff943ae9 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -586,6 +586,7 @@ del delaystep DeleteIDs deleteIDs +delflag Dellago delocalization delocalized @@ -1104,6 +1105,7 @@ gromos Gronbech Groot groupbig +groupbit grp Grueneisen gsmooth -- GitLab From e8cfa185acfd4afc442f6a42fc7e00035aa702be Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 12:31:43 -0400 Subject: [PATCH 105/165] update src/.gitignore for new files --- src/.gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/.gitignore b/src/.gitignore index 2fcbc5b80f..552c154d7d 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -32,6 +32,9 @@ /pair_kim.cpp /pair_kim.h +/superpose3d.h +/math_eigen.h + /kokkos.cpp /kokkos.h /kokkos_type.h -- GitLab From 167f12a4a4f1aea9f12339b23a684f27ffdde6a1 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 28 Aug 2020 13:53:36 -0400 Subject: [PATCH 106/165] Add python test for extract_compute of peratom vector --- unittest/python/python-numpy.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/unittest/python/python-numpy.py b/unittest/python/python-numpy.py index d5aa0a9d10..2d961d630c 100644 --- a/unittest/python/python-numpy.py +++ b/unittest/python/python-numpy.py @@ -1,5 +1,5 @@ import sys,os,unittest -from lammps import lammps, LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR, LMP_SIZE_ROWS +from lammps import lammps, LMP_STYLE_GLOBAL, LMP_STYLE_ATOM, LMP_TYPE_VECTOR, LMP_TYPE_SCALAR class PythonNumpy(unittest.TestCase): def setUp(self): @@ -25,5 +25,18 @@ class PythonNumpy(unittest.TestCase): self.assertEqual(values[1], 2.0) self.assertEqual(values[2], 2.5) + def testExtractComputePerAtom(self): + self.lmp.command("region box block 0 2 0 2 0 2") + self.lmp.command("create_box 1 box") + self.lmp.command("create_atoms 1 single 1.0 1.0 1.0") + self.lmp.command("create_atoms 1 single 1.0 1.0 1.5") + self.lmp.command("compute ke all ke/atom") + natoms = int(self.lmp.get_natoms()) + self.assertEqual(natoms,2) + values = self.lmp.numpy.extract_compute("ke", LMP_STYLE_ATOM, LMP_TYPE_VECTOR) + self.assertEqual(len(values), 2) + self.assertEqual(values[0], 0.0) + self.assertEqual(values[1], 0.0) + if __name__ == "__main__": unittest.main() -- GitLab From caeb0af0d1ad200c1e6500356fed164b406a6234 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 28 Aug 2020 13:54:06 -0400 Subject: [PATCH 107/165] Add missing argtypes for lammps_extract_global --- python/lammps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/lammps.py b/python/lammps.py index f552328cbb..64268bc345 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -281,6 +281,7 @@ class lammps(object): self.lib.lammps_get_last_error_message.argtypes = [c_void_p, c_char_p, c_int] self.lib.lammps_get_last_error_message.restype = c_int + self.lib.lammps_extract_global.argtypes = [c_void_p, c_char_p] self.lib.lammps_extract_compute.argtypes = [c_void_p, c_char_p, c_int, c_int] # detect if Python is using version of mpi4py that can pass a communicator @@ -443,7 +444,6 @@ class lammps(object): if style in (LMP_STYLE_GLOBAL, LMP_STYLE_LOCAL): if datatype == LMP_TYPE_VECTOR: nrows = self.lmp.extract_compute(cid, style, LMP_SIZE_VECTOR) - print("NROWS", nrows) return self.darray(value, nrows) elif datatype == LMP_TYPE_ARRAY: nrows = self.lmp.extract_compute(cid, style, LMP_SIZE_ROWS) -- GitLab From 6bcc263b41edf99ed70657b8b12a24a4bf183a99 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 28 Aug 2020 14:21:03 -0400 Subject: [PATCH 108/165] Ensure LAMMPS pointer is of type c_void_p Fixes segfaults caused by API change. The API change in lammps_open and lammps_open_no_mpi makes them return the LAMMPS pointer via their return value. However due to how ctypes operates, even if restype is specified to be c_void_p, the function returns an integer. Without the proper type of the pointer, calling functions without arglists would default to using 32bit integers to pass an argument, which cuts away parts of the 64bit pointer. Subsequently, resolving the truncated pointer in the library causes segfaults. This commit fixes the root cause. But it also highlights the need of specifying the arglists of all library functions. --- python/lammps.py | 6 +++--- unittest/python/python-numpy.py | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/python/lammps.py b/python/lammps.py index 64268bc345..f242ae1af6 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -340,7 +340,7 @@ class lammps(object): self.opened = 1 comm_ptr = self.MPI._addressof(comm) comm_val = MPI_Comm.from_address(comm_ptr) - self.lmp = self.lib.lammps_open(narg,cargs,comm_val,None) + self.lmp = c_void_p(self.lib.lammps_open(narg,cargs,comm_val,None)) else: if self.has_mpi4py and self.has_mpi_support: @@ -355,10 +355,10 @@ class lammps(object): cargs = (c_char_p*narg)(*cmdargs) self.lib.lammps_open_no_mpi.argtypes = [c_int, c_char_p*narg, \ c_void_p] - self.lmp = self.lib.lammps_open_no_mpi(narg,cargs,None) + self.lmp = c_void_p(self.lib.lammps_open_no_mpi(narg,cargs,None)) else: self.lib.lammps_open_no_mpi.argtypes = [c_int, c_char_p, c_void_p] - self.lmp = self.lib.lammps_open_no_mpi(0,None,None) + self.lmp = c_void_p(self.lib.lammps_open_no_mpi(0,None,None)) else: # magic to convert ptr to ctypes ptr diff --git a/unittest/python/python-numpy.py b/unittest/python/python-numpy.py index 2d961d630c..67dee454a1 100644 --- a/unittest/python/python-numpy.py +++ b/unittest/python/python-numpy.py @@ -1,5 +1,6 @@ import sys,os,unittest from lammps import lammps, LMP_STYLE_GLOBAL, LMP_STYLE_ATOM, LMP_TYPE_VECTOR, LMP_TYPE_SCALAR +from ctypes import c_void_p class PythonNumpy(unittest.TestCase): def setUp(self): @@ -11,6 +12,9 @@ class PythonNumpy(unittest.TestCase): def tearDown(self): del self.lmp + def testLammpsPointer(self): + self.assertEqual(type(self.lmp.lmp), c_void_p) + def testExtractCompute(self): self.lmp.command("region box block 0 2 0 2 0 2") self.lmp.command("create_box 1 box") -- GitLab From 9412d6f6fca0eb8c01f64f674baa66e6820a06f5 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 28 Aug 2020 15:12:36 -0400 Subject: [PATCH 109/165] Add missing argtypes declarations in lammps.py --- python/lammps.py | 61 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/python/lammps.py b/python/lammps.py index f242ae1af6..61fa146a6d 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -211,9 +211,19 @@ class lammps(object): else: self.lib = CDLL("liblammps_%s" % name + lib_ext,RTLD_GLOBAL) + # declare all argument and return types for all library methods here. # exceptions are where the arguments depend on certain conditions and # then are defined where the functions are used. + self.lib.lammps_extract_setting.argtypes = [c_void_p, c_char_p] + self.lib.lammps_extract_setting.restype = c_int + + # set default types + # needed in later declarations + self.c_bigint = get_ctypes_int(self.extract_setting("bigint")) + self.c_tagint = get_ctypes_int(self.extract_setting("tagint")) + self.c_imageint = get_ctypes_int(self.extract_setting("imageint")) + self.lib.lammps_open.restype = c_void_p self.lib.lammps_open_no_mpi.restype = c_void_p self.lib.lammps_close.argtypes = [c_void_p] @@ -284,6 +294,35 @@ class lammps(object): self.lib.lammps_extract_global.argtypes = [c_void_p, c_char_p] self.lib.lammps_extract_compute.argtypes = [c_void_p, c_char_p, c_int, c_int] + self.lib.lammps_get_thermo.argtypes = [c_void_p, c_char_p] + self.lib.lammps_get_thermo.restype = c_double + + self.lib.lammps_encode_image_flags.restype = self.c_imageint + + self.lib.lammps_config_package_name.argtypes = [c_int, c_char_p, c_int] + + self.lib.lammps_has_style.argtypes = [c_void_p, c_char_p, c_char_p] + + self.lib.lammps_set_variable.argtypes = [c_void_p, c_char_p, c_char_p] + + self.lib.lammps_style_count.argtypes = [c_void_p, c_char_p] + + self.lib.lammps_style_name.argtypes = [c_void_p, c_char_p, c_int, c_char_p, c_int] + + self.lib.lammps_version.argtypes = [c_void_p] + + self.lib.lammps_decode_image_flags.argtypes = [self.c_imageint, POINTER(c_int*3)] + + self.lib.lammps_extract_atom.argtypes = [c_void_p, c_char_p] + + self.lib.lammps_extract_fix.argtypes = [c_void_p, c_char_p, c_int, c_int, c_int, c_int] + + self.lib.lammps_extract_variable.argtypes = [c_void_p, c_char_p, c_char_p] + + # TODO: NOT IMPLEMENTED IN PYTHON WRAPPER + self.lammps_fix_external_set_energy_global = [c_void_p, c_char_p, c_double] + self.lammps_fix_external_set_virial_global = [c_void_p, c_char_p, POINTER(c_double)] + # detect if Python is using version of mpi4py that can pass a communicator self.has_mpi4py = False @@ -376,10 +415,6 @@ class lammps(object): # optional numpy support (lazy loading) self._numpy = None - # set default types - self.c_bigint = get_ctypes_int(self.extract_setting("bigint")) - self.c_tagint = get_ctypes_int(self.extract_setting("tagint")) - self.c_imageint = get_ctypes_int(self.extract_setting("imageint")) self._installed_packages = None self._available_styles = None @@ -545,19 +580,19 @@ class lammps(object): # ------------------------------------------------------------------------- - def file(self,file): + def file(self, path): """Read LAMMPS commands from a file. This is a wrapper around the :cpp:func:`lammps_file` function of the C-library interface. It will open the file with the name/path `file` and process the LAMMPS commands line by line until the end. The function will return when the end of the file is reached. - :param file: Name of the file/path with LAMMPS commands - :type file: string + :param path: Name of the file/path with LAMMPS commands + :type path: string """ - if file: file = file.encode() + if path: path = path.encode() else: return - self.lib.lammps_file(self.lmp,file) + self.lib.lammps_file(self.lmp, path) # ------------------------------------------------------------------------- @@ -701,7 +736,6 @@ class lammps(object): """ if name: name = name.encode() else: return None - self.lib.lammps_get_thermo.restype = c_double return self.lib.lammps_get_thermo(self.lmp,name) # ------------------------------------------------------------------------- @@ -720,7 +754,6 @@ class lammps(object): """ if name: name = name.encode() else: return None - self.lib.lammps_extract_setting.restype = c_int return int(self.lib.lammps_extract_setting(self.lmp,name)) # ------------------------------------------------------------------------- @@ -1137,7 +1170,6 @@ class lammps(object): :return: encoded image flags :rtype: lammps.c_imageint """ - self.lib.lammps_encode_image_flags.restype = self.c_imageint return self.lib.lammps_encode_image_flags(ix,iy,iz) # ------------------------------------------------------------------------- @@ -1155,7 +1187,6 @@ class lammps(object): """ flags = (c_int*3)() - self.lib.lammps_decode_image_flags.argtypes = [self.c_imageint, POINTER(c_int*3)] self.lib.lammps_decode_image_flags(image,byref(flags)) return [int(i) for i in flags] @@ -1251,11 +1282,11 @@ class lammps(object): else: se_lmp = 0 - self.lib.lammps_file.argtypes = [c_void_p, c_int, POINTER(self.c_tagint*n), + self.lib.lammps_create_atoms.argtypes = [c_void_p, c_int, POINTER(self.c_tagint*n), POINTER(c_int*n), POINTER(c_double*three_n), POINTER(c_double*three_n), POINTER(self.c_imageint*n), c_int] - return self.lib.lammps_create_atoms(self.lmp,n,id_lmp,type_lmp,x_lmp,v_lmp,img_lmp,se_lmp) + return self.lib.lammps_create_atoms(self.lmp, n, id_lmp, type_lmp, x_lmp, v_lmp, img_lmp, se_lmp) # ------------------------------------------------------------------------- -- GitLab From 17ec3a4fe84b9089b2337c6daa1c8b09ce9e75db Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 28 Aug 2020 15:15:01 -0400 Subject: [PATCH 110/165] Fix typo --- python/lammps.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/lammps.py b/python/lammps.py index 61fa146a6d..472bc29372 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -320,8 +320,8 @@ class lammps(object): self.lib.lammps_extract_variable.argtypes = [c_void_p, c_char_p, c_char_p] # TODO: NOT IMPLEMENTED IN PYTHON WRAPPER - self.lammps_fix_external_set_energy_global = [c_void_p, c_char_p, c_double] - self.lammps_fix_external_set_virial_global = [c_void_p, c_char_p, POINTER(c_double)] + self.lib.lammps_fix_external_set_energy_global = [c_void_p, c_char_p, c_double] + self.lib.lammps_fix_external_set_virial_global = [c_void_p, c_char_p, POINTER(c_double)] # detect if Python is using version of mpi4py that can pass a communicator -- GitLab From 2e2763d0f15d043a0aa613ae2d7fb7197a8d2bf6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 15:09:23 -0400 Subject: [PATCH 111/165] update .gitignore for recent additions --- src/.gitignore | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/.gitignore b/src/.gitignore index 2fcbc5b80f..990fb3ca20 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -49,6 +49,13 @@ /pair_meamc.cpp /pair_meamc.h +/compute_mliap.cpp +/compute_mliap.h +/mliap_*.cpp +/mliap_*.h +/pair_mliap.cpp +/pair_mliap.h + /ptm_*.cpp /ptm_*.h /compute_ptm.cpp @@ -305,6 +312,8 @@ /bond_oxrna2_fene.h /bond_quartic.cpp /bond_quartic.h +/bond_special.cpp +/bond_special.h /bond_table.cpp /bond_table.h /cg_cmm_parms.cpp @@ -589,6 +598,8 @@ /fix_meso_move.h /fix_meso_stationary.cpp /fix_meso_stationary.h +/fix_momentum_chunk.cpp +/fix_momentum_chunk.h /fix_mscg.cpp /fix_mscg.h /fix_msst.cpp @@ -750,6 +761,8 @@ /fix_wall_piston.h /fix_wall_srd.cpp /fix_wall_srd.h +/fix_widom.cpp +/fix_widom.h /gpu_extra.h /gridcomm.cpp /gridcomm.h -- GitLab From 8fcd72405a01a286e046df1acb0b9f406b018111 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 16:32:23 -0400 Subject: [PATCH 112/165] port over more of the framework of the programmer guide and remove programming details from user guide --- doc/src/Howto_couple.rst | 142 +++++++------------- doc/src/Howto_library.rst | 269 +++++--------------------------------- doc/src/Manual.rst | 2 +- doc/src/pg_fortran.rst | 23 ++++ doc/src/pg_library.rst | 158 ++++++++++++++++++++++ doc/src/pg_python.rst | 29 ++++ 6 files changed, 292 insertions(+), 331 deletions(-) create mode 100644 doc/src/pg_fortran.rst create mode 100644 doc/src/pg_library.rst create mode 100644 doc/src/pg_python.rst diff --git a/doc/src/Howto_couple.rst b/doc/src/Howto_couple.rst index c652d4f599..2eadbb522e 100644 --- a/doc/src/Howto_couple.rst +++ b/doc/src/Howto_couple.rst @@ -12,96 +12,52 @@ LAMMPS can be coupled to other codes in at least 4 ways. Each has advantages and disadvantages, which you will have to think about in the context of your application. ----------- - -(1) Define a new :doc:`fix ` command that calls the other code. In -this scenario, LAMMPS is the driver code. During its timestepping, -the fix is invoked, and can make library calls to the other code, -which has been linked to LAMMPS as a library. This is the way the -`POEMS `_ package that performs constrained rigid-body motion on -groups of atoms is hooked to LAMMPS. See the :doc:`fix poems ` command for more details. See the -:doc:`Modify ` doc pages for info on how to add a new fix to -LAMMPS. - -.. _poems: http://www.rpi.edu/~anderk5/lab - ----------- - -(2) Define a new LAMMPS command that calls the other code. This is -conceptually similar to method (1), but in this case LAMMPS and the -other code are on a more equal footing. Note that now the other code -is not called during the timestepping of a LAMMPS run, but between -runs. The LAMMPS input script can be used to alternate LAMMPS runs -with calls to the other code, invoked via the new command. The -:doc:`run ` command facilitates this with its *every* option, which -makes it easy to run a few steps, invoke the command, run a few steps, -invoke the command, etc. - -In this scenario, the other code can be called as a library, as in -(1), or it could be a stand-alone code, invoked by a system() call -made by the command (assuming your parallel machine allows one or more -processors to start up another program). In the latter case the -stand-alone code could communicate with LAMMPS through files that the -command writes and reads. - -See the :doc:`Modify command ` doc page for info on how -to add a new command to LAMMPS. - ----------- - -(3) Use LAMMPS as a library called by another code. In this case the -other code is the driver and calls LAMMPS as needed. Or a wrapper -code could link and call both LAMMPS and another code as libraries. -Again, the :doc:`run ` command has options that allow it to be -invoked with minimal overhead (no setup or clean-up) if you wish to do -multiple short runs, driven by another program. - -Examples of driver codes that call LAMMPS as a library are included in -the examples/COUPLE directory of the LAMMPS distribution; see -examples/COUPLE/README for more details: - -* simple: simple driver programs in C++ and C which invoke LAMMPS as a - library -* plugin: simple driver program in C which invokes LAMMPS as a plugin - from a shared library. -* lammps_quest: coupling of LAMMPS and `Quest `_, to run classical - MD with quantum forces calculated by a density functional code -* lammps_spparks: coupling of LAMMPS and `SPPARKS `_, to couple - a kinetic Monte Carlo model for grain growth using MD to calculate - strain induced across grain boundaries - -.. _quest: http://dft.sandia.gov/Quest - -.. _spparks: http://www.sandia.gov/~sjplimp/spparks.html - -The :doc:`Build basics ` doc page describes how to build -LAMMPS as a library. Once this is done, you can interface with LAMMPS -either via C++, C, Fortran, or Python (or any other language that -supports a vanilla C-like interface). For example, from C++ you could -create one (or more) "instances" of LAMMPS, pass it an input script to -process, or execute individual commands, all by invoking the correct -class methods in LAMMPS. From C or Fortran you can make function -calls to do the same things. See the :doc:`Python ` doc -pages for a description of the Python wrapper provided with LAMMPS -that operates through the LAMMPS library interface. - -The files src/library.cpp and library.h contain the C-style interface -to LAMMPS. See the :doc:`Howto library ` doc page for a -description of the interface and how to extend it for your needs. - -Note that the lammps_open() function that creates an instance of -LAMMPS takes an MPI communicator as an argument. This means that -instance of LAMMPS will run on the set of processors in the -communicator. Thus the calling code can run LAMMPS on all or a subset -of processors. For example, a wrapper script might decide to -alternate between LAMMPS and another code, allowing them both to run -on all the processors. Or it might allocate half the processors to -LAMMPS and half to the other code and run both codes simultaneously -before syncing them up periodically. Or it might instantiate multiple -instances of LAMMPS to perform different calculations. - ----------- - -(4) Couple LAMMPS with another code in a client/server mode. This is -described on the :doc:`Howto client/server ` doc -page. +1. Define a new :doc:`fix ` command that calls the other code. In + this scenario, LAMMPS is the driver code. During timestepping, + the fix is invoked, and can make library calls to the other code, + which has been linked to LAMMPS as a library. This is the way how the + :ref:`LATTE ` package, which performs density-functional + tight-binding calculations using the `LATTE software `_ + to compute forces, is hooked to LAMMPS. + See the :doc:`fix latte ` command for more details. + Also see the :doc:`Modify ` doc pages for info on how to + add a new fix to LAMMPS. + +.. spacer + +2. Define a new LAMMPS command that calls the other code. This is + conceptually similar to method (1), but in this case LAMMPS and the + other code are on a more equal footing. Note that now the other code + is not called during the timestepping of a LAMMPS run, but between + runs. The LAMMPS input script can be used to alternate LAMMPS runs + with calls to the other code, invoked via the new command. The + :doc:`run ` command facilitates this with its *every* option, + which makes it easy to run a few steps, invoke the command, run a few + steps, invoke the command, etc. + + In this scenario, the other code can be called as a library, as in + 1., or it could be a stand-alone code, invoked by a system() call + made by the command (assuming your parallel machine allows one or + more processors to start up another program). In the latter case the + stand-alone code could communicate with LAMMPS through files that the + command writes and reads. + + See the :doc:`Modify command ` doc page for info on how + to add a new command to LAMMPS. + +.. spacer + +3. Use LAMMPS as a library called by another code. In this case the + other code is the driver and calls LAMMPS as needed. Or a wrapper + code could link and call both LAMMPS and another code as libraries. + Again, the :doc:`run ` command has options that allow it to be + invoked with minimal overhead (no setup or clean-up) if you wish to + do multiple short runs, driven by another program. Details about + using the library interface are given in the :doc:`library API + ` documentation. + +.. spacer + +4. Couple LAMMPS with another code in a client/server mode. This is + described on the :doc:`Howto client/server ` doc + page. diff --git a/doc/src/Howto_library.rst b/doc/src/Howto_library.rst index 774d9838c1..afa8dde941 100644 --- a/doc/src/Howto_library.rst +++ b/doc/src/Howto_library.rst @@ -2,241 +2,36 @@ Library interface to LAMMPS =========================== As described on the :doc:`Build basics ` doc page, LAMMPS -can be built as a library, so that it can be called by another code, -used in a :doc:`coupled manner ` with other codes, or -driven through a :doc:`Python interface `. +can be built as a static or shared library, so that it can be called by +another code, used in a :doc:`coupled manner ` with other +codes, or driven through a :doc:`Python interface `. + +At the core of LAMMPS is the ``LAMMPS`` class which encapsulates the +state of the simulation program through the state of the various class +instances that it is composed of. So a calculation using LAMMPS +requires to create an instance of the ``LAMMPS`` class and then send it +(text) commands, either individually or from a file, or perform other +operations that modify the state stored inside that instance or drive +simulations. This is essentially what the ``src/main.cpp`` file does +as well for the standalone LAMMPS executable with reading commands +either from an input file or stdin. + +Creating a LAMMPS instance can be done by using C++ code directly or +through a C-style interface library to LAMMPS that is provided in the +files ``src/library.cpp`` and ``library.h``. This +:ref:`C language API `, can be used from C and C++, +and is also the basis for the :doc:`Python ` and +:doc:`Fortran ` interfaces or wrappers included in the +LAMMPS source code. + +The ``examples/COUPLE`` and ``python/examples`` directories contain some +example programs written in C++, C, Fortran, and Python, which show how +a driver code can link to LAMMPS as a library, run LAMMPS on a subset of +processors (so the others are available to run some other code +concurrently), grab data from LAMMPS, change it, and send it back into +LAMMPS. + +A detailed documentation of the available APIs and examples of how to +use them can be found in the :doc:`Programmer Documentation +` section of this manual. -All of these methodologies use a C-style interface to LAMMPS that is -provided in the files src/library.cpp and src/library.h. The -functions therein have a C-style argument list, but contain C++ code -you could write yourself in a C++ application that was invoking LAMMPS -directly. The C++ code in the functions illustrates how to invoke -internal LAMMPS operations. Note that LAMMPS classes are defined -within a LAMMPS namespace (LAMMPS_NS) if you use them from another C++ -application. - -The examples/COUPLE and python/examples directories have example C++ -and C and Python codes which show how a driver code can link to LAMMPS -as a library, run LAMMPS on a subset of processors, grab data from -LAMMPS, change it, and put it back into LAMMPS. - -Thread-safety -------------- - -LAMMPS has not initially been conceived as a thread-safe program, but -over the years changes have been applied to replace operations that -collide with creating multiple LAMMPS instances from multiple-threads -of the same process with thread-safe alternatives. This primarily -applies to the core LAMMPS code and less so on add-on packages, especially -when those packages require additional code in the *lib* folder, -interface LAMMPS to Fortran libraries, or the code uses static variables -(like the USER-COLVARS package. - -Another major issue to deal with is to correctly handle MPI. Creating -a LAMMPS instance requires passing an MPI communicator, or it assumes -the MPI_COMM_WORLD communicator, which spans all MPI processor ranks. -When creating multiple LAMMPS object instances from different threads, -this communicator has to be different for each thread or else collisions -can happen, or it has to be guaranteed, that only one thread at a time -is active. MPI communicators, however, are not a problem, if LAMMPS is -compiled with the MPI STUBS library, which implies that there is no MPI -communication and only 1 MPI rank. - -Provided APIs -------------- - -The file src/library.cpp contains the following functions for creating -and destroying an instance of LAMMPS and sending it commands to -execute. See the documentation in the src/library.cpp file for -details. - -.. note:: - - You can write code for additional functions as needed to define - how your code talks to LAMMPS and add them to src/library.cpp and - src/library.h, as well as to the :doc:`Python interface `. - The added functions can access or change any internal LAMMPS data you - wish. - -.. code-block:: c - - void lammps_open(int, char **, MPI_Comm, void **) - void lammps_open_no_mpi(int, char **, void **) - void lammps_close(void *) - int lammps_version(void *) - void lammps_file(void *, char *) - char *lammps_command(void *, char *) - void lammps_commands_list(void *, int, char **) - void lammps_commands_string(void *, char *) - void lammps_free(void *) - -The lammps_open() function is used to initialize LAMMPS, passing in a -list of strings as if they were :doc:`command-line arguments ` when LAMMPS is run in stand-alone mode -from the command line, and a MPI communicator for LAMMPS to run under. -It returns a ptr to the LAMMPS object that is created, and which is -used in subsequent library calls. The lammps_open() function can be -called multiple times, to create multiple instances of LAMMPS. - -LAMMPS will run on the set of processors in the communicator. This -means the calling code can run LAMMPS on all or a subset of -processors. For example, a wrapper script might decide to alternate -between LAMMPS and another code, allowing them both to run on all the -processors. Or it might allocate half the processors to LAMMPS and -half to the other code and run both codes simultaneously before -syncing them up periodically. Or it might instantiate multiple -instances of LAMMPS to perform different calculations. - -The lammps_open_no_mpi() function is similar except that no MPI -communicator is passed from the caller. Instead, MPI_COMM_WORLD is -used to instantiate LAMMPS, and MPI is initialized if necessary. - -The lammps_close() function is used to shut down an instance of LAMMPS -and free all its memory. - -The lammps_version() function can be used to determined the specific -version of the underlying LAMMPS code. This is particularly useful -when loading LAMMPS as a shared library via dlopen(). The code using -the library interface can than use this information to adapt to -changes to the LAMMPS command syntax between versions. The returned -LAMMPS version code is an integer (e.g. 2 Sep 2015 results in -20150902) that grows with every new LAMMPS version. - -The lammps_file(), lammps_command(), lammps_commands_list(), and -lammps_commands_string() functions are used to pass one or more -commands to LAMMPS to execute, the same as if they were coming from an -input script. - -Via these functions, the calling code can read or generate a series of -LAMMPS commands one or multiple at a time and pass it through the library -interface to setup a problem and then run it in stages. The caller -can interleave the command function calls with operations it performs, -calls to extract information from or set information within LAMMPS, or -calls to another code's library. - -The lammps_file() function passes the filename of an input script. -The lammps_command() function passes a single command as a string. -The lammps_commands_list() function passes multiple commands in a -char\*\* list. In both lammps_command() and lammps_commands_list(), -individual commands may or may not have a trailing newline. The -lammps_commands_string() function passes multiple commands -concatenated into one long string, separated by newline characters. -In both lammps_commands_list() and lammps_commands_string(), a single -command can be spread across multiple lines, if the last printable -character of all but the last line is "&", the same as if the lines -appeared in an input script. - -The lammps_free() function is a clean-up function to free memory that -the library allocated previously via other function calls. See -comments in src/library.cpp file for which other functions need this -clean-up. - -The file src/library.cpp also contains these functions for extracting -information from LAMMPS and setting value within LAMMPS. Again, see -the documentation in the src/library.cpp file for details, including -which quantities can be queried by name: - -.. code-block:: c - - int lammps_extract_setting(void *, char *) - void *lammps_extract_global(void *, char *) - void lammps_extract_box(void *, double *, double *, - double *, double *, double *, int *, int *) - void *lammps_extract_atom(void *, char *) - void *lammps_extract_compute(void *, char *, int, int) - void *lammps_extract_fix(void *, char *, int, int, int, int) - void *lammps_extract_variable(void *, char *, char *) - -The extract_setting() function returns info on the size -of data types (e.g. 32-bit or 64-bit atom IDs) used -by the LAMMPS executable (a compile-time choice). - -The other extract functions return a pointer to various global or -per-atom quantities stored in LAMMPS or to values calculated by a -compute, fix, or variable. The pointer returned by the -extract_global() function can be used as a permanent reference to a -value which may change. For the extract_atom() method, see the -extract() method in the src/atom.cpp file for a list of valid per-atom -properties. New names could easily be added if the property you want -is not listed. For the other extract functions, the underlying -storage may be reallocated as LAMMPS runs, so you need to re-call the -function to assure a current pointer or returned value(s). - -.. code-block:: c - - double lammps_get_thermo(void *, char *) - int lammps_get_natoms(void *) - - int lammps_set_variable(void *, char *, char *) - void lammps_reset_box(void *, double *, double *, double, double, double) - -The lammps_get_thermo() function returns the current value of a thermo -keyword as a double precision value. - -The lammps_get_natoms() function returns the total number of atoms in -the system and can be used by the caller to allocate memory for the -lammps_gather_atoms() and lammps_scatter_atoms() functions. - -The lammps_set_variable() function can set an existing string-style -variable to a new string value, so that subsequent LAMMPS commands can -access the variable. - -The lammps_reset_box() function resets the size and shape of the -simulation box, e.g. as part of restoring a previously extracted and -saved state of a simulation. - -.. code-block:: c - - void lammps_gather_atoms(void *, char *, int, int, void *) - void lammps_gather_atoms_concat(void *, char *, int, int, void *) - void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *) - void lammps_scatter_atoms(void *, char *, int, int, void *) - void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *) - -The gather functions collect peratom info of the requested type (atom -coords, atom types, forces, etc) from all processors, and returns the -same vector of values to each calling processor. The scatter -functions do the inverse. They distribute a vector of peratom values, -passed by all calling processors, to individual atoms, which may be -owned by different processors. - -.. warning:: - - These functions are not compatible with the - -DLAMMPS_BIGBIG setting when compiling LAMMPS. Dummy functions - that result in an error message and abort will be substituted - instead of resulting in random crashes and memory corruption. - -The lammps_gather_atoms() function does this for all N atoms in the -system, ordered by atom ID, from 1 to N. The -lammps_gather_atoms_concat() function does it for all N atoms, but -simply concatenates the subset of atoms owned by each processor. The -resulting vector is not ordered by atom ID. Atom IDs can be requested -by the same function if the caller needs to know the ordering. The -lammps_gather_subset() function allows the caller to request values -for only a subset of atoms (identified by ID). -For all 3 gather function, per-atom image flags can be retrieved in 2 ways. -If the count is specified as 1, they are returned -in a packed format with all three image flags stored in a single integer. -If the count is specified as 3, the values are unpacked into xyz flags -by the library before returning them. - -The lammps_scatter_atoms() function takes a list of values for all N -atoms in the system, ordered by atom ID, from 1 to N, and assigns -those values to each atom in the system. The -lammps_scatter_atoms_subset() function takes a subset of IDs as an -argument and only scatters those values to the owning atoms. - -.. code-block:: c - - void lammps_create_atoms(void *, int, tagint *, int *, double *, double *, - imageint *, int) - -The lammps_create_atoms() function takes a list of N atoms as input -with atom types and coords (required), an optionally atom IDs and -velocities and image flags. It uses the coords of each atom to assign -it as a new atom to the processor that owns it. This function is -useful to add atoms to a simulation or (in tandem with -lammps_reset_box()) to restore a previously extracted and saved state -of a simulation. Additional properties for the new atoms can then be -assigned via the lammps_scatter_atoms() or lammps_extract_atom() -functions. diff --git a/doc/src/Manual.rst b/doc/src/Manual.rst index b43e60208c..a0697e1381 100644 --- a/doc/src/Manual.rst +++ b/doc/src/Manual.rst @@ -67,8 +67,8 @@ every LAMMPS command. :name: progdoc :includehidden: + pg_library pg_developer -.. pg_library .. pg_modify .. pg_base diff --git a/doc/src/pg_fortran.rst b/doc/src/pg_fortran.rst new file mode 100644 index 0000000000..d028337b2c --- /dev/null +++ b/doc/src/pg_fortran.rst @@ -0,0 +1,23 @@ +The ``LIBLAMMPS`` Fortran Module +******************************** + +The ``LIBLAMMPS`` module provides an interface to call LAMMPS from a +Fortran code. It is based on the LAMMPS C-library interface and +requires a Fortran 2003 compatible compiler to be compiled. + +While C libraries have a defined binary interface (ABI) and can thus be +used from multiple compiler versions from different vendors for as long +as they are compatible with the hosting operating system, the same is +not true for Fortran codes. Thus the LAMMPS Fortran module needs to be +compiled alongside the code using it from the source code in +``examples/COUPLE/fortran/lammps.f90``. When linking, you also need to +:doc:`link to the LAMMPS library `. A typical command line +for a simple program using the Fortran interface would be: + +.. code-block:: bash + + mpifort -o testlib.x lammps.f90 testlib.f90 -L. -llammps + +Please note, that the MPI compiler wrapper is only required when the +calling the library from an MPI parallel code. + diff --git a/doc/src/pg_library.rst b/doc/src/pg_library.rst new file mode 100644 index 0000000000..3cd8d2196d --- /dev/null +++ b/doc/src/pg_library.rst @@ -0,0 +1,158 @@ +LAMMPS Library Interfaces +************************* + +As described on the :doc:`library interface to LAMMPS ` +doc page, LAMMPS can be built as a library (static or shared), so that +it can be called by another code, used in a :doc:`coupled manner +` with other codes, or driven through a :doc:`Python +script `. Even the LAMMPS standalone executable is +essentially a thin wrapper on top of the LAMMPS library, creating a +LAMMPS instance, processing input and then existing. + +Several of these approaches are based on C language wrapper functions +in the files ``src/library.h`` and ``src/library.cpp``, but it is also +possible to use C++ directly. The basic procedure is always the same: +you create one or more instances of the +:cpp:class:`LAMMPS ` and then pass commands as +strings or from files to that LAMMPS instance to execute calculations, +or read, manipulate, and update data from the active class instances +inside the LAMMPS to do analysis or perform operations that are not +possible with existing commands. + +.. _thread-safety: + +.. admonition:: Thread-safety + :class: note + + LAMMPS was initially not conceived as a thread-safe program, but over + the years changes have been applied to replace operations that + collide with creating multiple LAMMPS instances from multiple-threads + of the same process with thread-safe alternatives. This primarily + applies to the core LAMMPS code and less so on add-on packages, + especially when those packages require additional code in the *lib* + folder, interface LAMMPS to Fortran libraries, or the code uses + static variables (like the USER-COLVARS package). + + Another major issue to deal with is to correctly handle MPI. + Creating a LAMMPS instance requires passing an MPI communicator, or + it assumes the ``MPI_COMM_WORLD`` communicator, which spans all MPI + processor ranks. When creating multiple LAMMPS object instances from + different threads, this communicator has to be different for each + thread or else collisions can happen. or it has to be guaranteed, + that only one thread at a time is active. MPI communicators, + however, are not a problem, if LAMMPS is compiled with the MPI STUBS + library, which implies that there is no MPI communication and only 1 + MPI rank. + +---------- + +.. _lammps_c_api: + +LAMMPS C Library API +==================== + +The C library interface is most commonly used path to manage LAMMPS +instances from a compiled code and it is the basis for the :doc:`Python +` and :doc:`Fortran ` modules. Almost all +functions of the C language API require an argument containing a +"handle" in the form of a ``void *`` type variable, which points to the +location of a LAMMPS class instance. + +The ``library.h`` header file by default includes the ``mpi.h`` header +for an MPI library, so it must be present when compiling code using the +library interface. This usually must be the header from the same MPI +library as the LAMMPS library was compiled with. The exception is when +LAMMPS was compiled in serial mode using the ``STUBS`` MPI library. In +that case the calling code may be compiled with a different MPI library +for as long as :cpp:func:`lammps_open_no_mpi` is called to create a +LAMMPS instance. Then you may set the define ``-DLAMMPS_LIB_NO_MPI`` +when compiling your code and the inclusion of ``mpi.h`` will be skipped +and consequently the function :cpp:func:`lammps_open` may not be used. + +.. admonition:: Errors versus exceptions + :class: note + + If any of the function calls in the LAMMPS library API will trigger + an error inside LAMMPS, this will result in an abort of the entire + program. This is not always desirable. Instead, LAMMPS can be + compiled to instead :ref:`throw a C++ exception `. + +.. warning:: + + No checks are made on the arguments of the function calls of the C + library interface. *All* function arguments must be non-NULL unless + *explicitly* allowed and point to consistent and valid data. Buffers + for storing returned data must be allocated to a suitable size. + Passing invalid or unsuitable information will likely cause crashes + or corrupt data. + +------------------------------ + +.. toctree:: + :maxdepth: 1 + +.. pg_lib_create +.. pg_lib_execute +.. pg_lib_properties +.. pg_lib_objects +.. pg_lib_scatter +.. pg_lib_neighbor +.. pg_lib_config +.. pg_lib_utility +.. pg_lib_add + +-------------------- + +.. _lammps_python_api: + +LAMMPS Python APIs +================== + +The LAMMPS Python module enables calling the LAMMPS C library API from +Python by dynamically loading functions in the LAMMPS shared library through +the `Python ctypes module `_. +Because of the dynamics loading, it is **required** that LAMMPS is compiled +in :ref:`"shared" mode `. The Python interface is object oriented, but +otherwise trying to be very similar to the C library API. Three different +Python classes to run LAMMPS are available and they build on each other. + +.. toctree:: + :maxdepth: 1 + + pg_python + +------------------- + +.. _lammps_fortran_api: + +LAMMPS Fortran API +================== + +The LAMMPS Fortran module is a wrapper around calling functions from the +LAMMPS C library API from Fortran through the ISO_C_BINDING feature in +Fortran 2003. The interface is object oriented but otherwise trying to +be very similar to the C library API and the basic Python module. + +.. toctree:: + :maxdepth: 1 + + pg_fortran + +------------------- + +.. _lammps_cplusplus_api: + +LAMMPS C++ API +============== + +It is also possible to invoke the LAMMPS C++ API directly in your code. +It is lacking some of the convenience of the C library API, but it allows +a more direct access to simulation data and thus more low-level manipulations. +The following links provide some examples and references to the C++ API. + +.. toctree:: + :maxdepth: 1 + +.. pg_cplusplus + + diff --git a/doc/src/pg_python.rst b/doc/src/pg_python.rst new file mode 100644 index 0000000000..66f5c08cd0 --- /dev/null +++ b/doc/src/pg_python.rst @@ -0,0 +1,29 @@ +The ``lammps`` Python module +**************************** + +.. py:module:: lammps + +The LAMMPS Python interface is implemented as a module called +:py:mod:`lammps` in the ``lammps.py`` file in the ``python`` folder of +the LAMMPS source code distribution. After compilation of LAMMPS, the +module can be installed into a Python system folder or a user folder +with ``make install-python``. Components of the module can then loaded +into a Python session with the ``import`` command. + +There are multiple Python interface classes in the :py:mod:`lammps` module: + +- the :py:class:`lammps ` class. This is a wrapper around + the C-library interface and its member functions try to replicate the + :doc:`C-library API ` closely. This is the most + feature-complete Python API. +- the :py:class:`PyLammps ` class. This is a more high-level + and more Python style class implemented on top of the + :py:class:`lammps ` class. +- the :py:class:`IPyLammps ` class is derived from + :py:class:`PyLammps ` and adds embedded graphics + features to conveniently include LAMMPS into `Jupyter + `_ notebooks. + +.. _mpi4py_url: https://mpi4py.readthedocs.io + + -- GitLab From a1bf772df23f7076295e774c9752f99aa3f263b2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 17:14:29 -0400 Subject: [PATCH 113/165] move modifying and extending LAMMPS section to programmer guide --- doc/src/Manual.rst | 2 +- doc/src/Modify.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Manual.rst b/doc/src/Manual.rst index a0697e1381..2ec830a0b7 100644 --- a/doc/src/Manual.rst +++ b/doc/src/Manual.rst @@ -54,7 +54,6 @@ every LAMMPS command. Howto Examples Tools - Modify Python_head Errors Manual_build @@ -68,6 +67,7 @@ every LAMMPS command. :includehidden: pg_library + Modify pg_developer .. pg_modify .. pg_base diff --git a/doc/src/Modify.rst b/doc/src/Modify.rst index 531fb6b1f3..fa45c4818e 100644 --- a/doc/src/Modify.rst +++ b/doc/src/Modify.rst @@ -1,5 +1,5 @@ -Modify & extend LAMMPS -********************** +Modifying & extending LAMMPS +**************************** LAMMPS is designed in a modular fashion so as to be easy to modify and extend with new functionality. In fact, about 95% of its source code -- GitLab From e64a977ae9b8ac1b41fc7ccbc21c5bfa595f526f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 17:14:49 -0400 Subject: [PATCH 114/165] include documentation of utility functions in utils:: to developer guide --- doc/src/pg_developer.rst | 72 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index a4fe4bdaf1..f88576fa51 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -48,8 +48,8 @@ Some source files and classes do not have a corresponding input script command, e.g. ``src/force.cpp`` and the :cpp:class:`LAMMPS_NS::Force` class. They are discussed in the next section. -Overview of LAMMPS class topology -================================= +LAMMPS class topology +===================== Though LAMMPS has a lot of source files and classes, its class topology is relative flat, as outlined in the :ref:`class-topology` figure. Each @@ -488,8 +488,8 @@ calls the ``post_run()`` method of fixes to perform operations only required at the end of a calculations (like freeing temporary storage or creating final outputs). -Modifying and extending LAMMPS -============================== +Writing LAMMPS styles +===================== The :doc:`Modify` section of the manual gives an overview of how LAMMPS can be extended by writing new classes that derive from existing @@ -740,3 +740,67 @@ files additional settings and functions are needed: restart processing instead of per-atom data memory management). - the functions ``void pack_restart(int i, double *buf)`` and ``void unpack_restart(int nlocal, int nth)`` need to be implemented + +LAMMPS utility functions +======================== + +The ``utils`` sub-namespace inside the ``LAMMPS_NS`` namespace provides +a collection of convenience functions and utilities that perform common +tasks that are required repeatedly throughout the LAMMPS code like +reading or writing to files with error checking or translation of +strings into specific types of numbers with checking for validity. This +reduces redundant implementations and encourages consistent behavior. + +I/O functions with validity check +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +These are wrappers around the corresponding C library calls like +``fgets()`` or ``fread()``. They will check if there were errors +on reading or an unexpected end-of-file state was reached. In that +case, the functions will stop the calculation with an error message, +indicating the name of the problematic file, if possible. + +.. doxygenfunction:: sfgets + :project: progguide + +.. doxygenfunction:: sfread + :project: progguide + +String to number conversions with validity check +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +These are functions equivalent to those in the ``Force`` class that +were implemented with the aim to replace and supersede those. Unlike +the versions in ``Force``, these can be used in cases where only +a single MPI rank is trying to convert strings to numbers, as you +can select through an argument, whether ``Error->all()`` or ``Error->one()`` +should be called on improper strings. + +These functions are preferred over C library calls like ``atoi()`` or +``atof()`` since they check if the **entire** provided string is a valid +(floating-point or integer) number, and will error out instead of silently +return the result of a partial conversion or zero in cases where the +string is not a valid number. This behavior allows to more easily detect +typos or issues when processing input files. + +.. doxygenfunction:: numeric + :project: progguide + +.. doxygenfunction:: inumeric + :project: progguide + +.. doxygenfunction:: bnumeric + :project: progguide + +.. doxygenfunction:: tnumeric + :project: progguide + + +Convenience functions +^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: strmatch + :project: progguide + +.. doxygenfunction:: check_packages_for_style + :project: progguide -- GitLab From cb098441826b2c0e49ebd1a5eefddd7ca041e224 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 28 Aug 2020 17:52:15 -0400 Subject: [PATCH 115/165] Add placeholders for future tests --- unittest/python/python-numpy.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/unittest/python/python-numpy.py b/unittest/python/python-numpy.py index 67dee454a1..9be5ddbaf7 100644 --- a/unittest/python/python-numpy.py +++ b/unittest/python/python-numpy.py @@ -1,5 +1,5 @@ import sys,os,unittest -from lammps import lammps, LMP_STYLE_GLOBAL, LMP_STYLE_ATOM, LMP_TYPE_VECTOR, LMP_TYPE_SCALAR +from lammps import lammps, LMP_STYLE_GLOBAL, LMP_STYLE_LOCAL, LMP_STYLE_ATOM, LMP_TYPE_VECTOR, LMP_TYPE_SCALAR, LMP_TYPE_ARRAY from ctypes import c_void_p class PythonNumpy(unittest.TestCase): @@ -15,7 +15,10 @@ class PythonNumpy(unittest.TestCase): def testLammpsPointer(self): self.assertEqual(type(self.lmp.lmp), c_void_p) - def testExtractCompute(self): + def testExtractComputeGlobalScalar(self): + # TODO + + def testExtractComputeGlobalVector(self): self.lmp.command("region box block 0 2 0 2 0 2") self.lmp.command("create_box 1 box") self.lmp.command("create_atoms 1 single 1.0 1.0 1.0") @@ -29,7 +32,10 @@ class PythonNumpy(unittest.TestCase): self.assertEqual(values[1], 2.0) self.assertEqual(values[2], 2.5) - def testExtractComputePerAtom(self): + def testExtractComputeGlobalArray(self): + # TODO + + def testExtractComputePerAtomVector(self): self.lmp.command("region box block 0 2 0 2 0 2") self.lmp.command("create_box 1 box") self.lmp.command("create_atoms 1 single 1.0 1.0 1.0") @@ -42,5 +48,17 @@ class PythonNumpy(unittest.TestCase): self.assertEqual(values[0], 0.0) self.assertEqual(values[1], 0.0) + def testExtractComputePerAtomArray(self): + # TODO + + def testExtractComputeLocalScalar(self): + # TODO + + def testExtractComputeLocalVector(self): + # TODO + + def testExtractComputeLocalArray(self): + # TODO + if __name__ == "__main__": unittest.main() -- GitLab From 2a365c17e08f6e58b823dcb239760bce73aeff74 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 18:21:18 -0400 Subject: [PATCH 116/165] update utils namespace documentation including doxygen parts --- doc/src/pg_developer.rst | 78 ++++++++++++++++++++- doc/utils/sphinx-config/false_positives.txt | 15 ++++ src/utils.cpp | 10 +-- src/utils.h | 16 ++--- 4 files changed, 106 insertions(+), 13 deletions(-) diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index f88576fa51..9ea30d599f 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -741,6 +741,8 @@ files additional settings and functions are needed: - the functions ``void pack_restart(int i, double *buf)`` and ``void unpack_restart(int nlocal, int nth)`` need to be implemented +--------------------------- + LAMMPS utility functions ======================== @@ -796,11 +798,85 @@ typos or issues when processing input files. :project: progguide +String processing functions +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The following are functions to help with processing strings +and parsing files or arguments. + +.. doxygenfunction:: trim + :project: progguide + +.. doxygenfunction:: trim_comment + :project: progguide + +.. doxygenfunction:: count_words(const char *text) + :project: progguide + +.. doxygenfunction:: count_words(const std::string &text) + :project: progguide + +.. doxygenfunction:: count_words(const std::string &text, const std::string &separators) + :project: progguide + +.. doxygenfunction:: trim_and_count_words + :project: progguide + +.. doxygenfunction:: split_words + :project: progguide + +.. doxygenfunction:: strmatch + :project: progguide + +.. doxygenfunction:: is_integer + :project: progguide + +.. doxygenfunction:: is_double + :project: progguide + +Filename and path functions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: guesspath + :project: progguide + +.. doxygenfunction:: path_basename + :project: progguide + +.. doxygenfunction:: path_join + :project: progguide + +.. doxygenfunction:: file_is_readable + :project: progguide + +Potential file functions +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: get_potential_file_path + :project: progguide + +.. doxygenfunction:: get_potential_date + :project: progguide + +.. doxygenfunction:: get_potential_units + :project: progguide + +.. doxygenfunction:: get_supported_conversions + :project: progguide + +.. doxygenfunction:: get_conversion_factor + :project: progguide + Convenience functions ^^^^^^^^^^^^^^^^^^^^^ -.. doxygenfunction:: strmatch +.. doxygenfunction:: logmesg + :project: progguide + +.. doxygenfunction:: getsyserror :project: progguide .. doxygenfunction:: check_packages_for_style :project: progguide + +.. doxygenfunction:: timespec2seconds + :project: progguide diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 81ff943ae9..cd68c3ddda 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -248,6 +248,7 @@ bispectrum Bispectrum bitbucket bitmapped +bitmask bitrate bitrates Bitzek @@ -302,6 +303,7 @@ Bryantsev Btarget btype buckPlusAttr +buf builtin Bulatov Bureekaew @@ -370,6 +372,7 @@ charmm CHARMM charmmfsh charmmfsw +charptr Chaudhuri checkbox checkmark @@ -845,6 +848,7 @@ Erhart erorate erose erotate +errno Ertas ervel Espanol @@ -903,6 +907,7 @@ Fc fcc fcm Fd +fd fdotr fdt Fehlberg @@ -927,6 +932,7 @@ ffplay fft fftbench fftw +fgets fhg Fi Fichthorn @@ -962,6 +968,7 @@ fmackay fmag fmass fmm +fmt fmx fmy fmz @@ -991,6 +998,7 @@ Fraige framerate Frauenheim Fraunhofer +fread Freitas Frenkel Friedrichs @@ -2256,6 +2264,8 @@ Particuology pastewka Pastewka pathangle +pathname +pathnames Patomtrans Pattnaik Pavese @@ -2855,8 +2865,12 @@ strcmp streitz Streitz Streiz +strerror strided strietz +strmatch +strncmp +strstr Stukowski Su subbox @@ -2999,6 +3013,7 @@ Tmin tmp tN Tobias +tokenizer tokyo tol toolchain diff --git a/src/utils.cpp b/src/utils.cpp index f841086673..e9058d4c2d 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -71,7 +71,7 @@ using namespace LAMMPS_NS; * This function is supposed to be a more safe, more specific and * simple to use API to find pattern matches. The purpose is to replace * uses of either strncmp() or strstr() in the code base to find - * substrings safely. With strncmp() finding prefixes, the number of + * sub-strings safely. With strncmp() finding prefixes, the number of * characters to match must be counted, which can lead to errors, * while using "^pattern" will do the same with less problems. * Matching for suffixes using strstr() is not as specific as 'pattern$', @@ -88,7 +88,7 @@ bool utils::strmatch(const std::string &text, const std::string &pattern) return (pos >= 0); } -/* This simplifies the repetitive task of outputting some +/** This function simplifies the repetitive task of outputting some * message to both the screen and/or the log file. In combination * with using fmt::format(), which returns the formatted text * in a std::string() instance, this can be used to reduce @@ -109,9 +109,11 @@ std::string utils::getsyserror() return std::string(strerror(errno)); } -/* - * On Linux the folder /proc/self/fd holds symbolic links to the actual +/** On Linux the folder /proc/self/fd holds symbolic links to the actual * pathnames associated with each open file descriptor of the current process. + * + * This function is used to provide a filename with error messages in functions + * where the filename is not passed as an argument, but the FILE * pointer. */ const char *utils::guesspath(char *buf, int len, FILE *fp) { diff --git a/src/utils.h b/src/utils.h index 4b9d3f7e81..4b1c68fb8e 100644 --- a/src/utils.h +++ b/src/utils.h @@ -150,14 +150,14 @@ namespace LAMMPS_NS { */ std::string trim(const std::string &line); - /** Trim anything from '#' onward + /** Return string with anything from '#' onward removed * * \param line string that should be trimmed * \return new string without comment (string) */ std::string trim_comment(const std::string &line); - /** Count words in string + /** Count words in string with custom choice of separating characters * * \param text string that should be searched * \param separators string containing characters that will be treated as whitespace @@ -189,11 +189,11 @@ namespace LAMMPS_NS { /** Take text and split into non-whitespace words. * - * This can handle single and double quotes, escaped quotes, - * and escaped codes within quotes, but due to using an STL - * container and STL strings is rather slow because of making - * copies. Designed for parsing command lines and similar text - * and not for time critical processing. Use a tokenizer for that. + * This can handle strings with single and double quotes, escaped quotes, + * and escaped codes within quotes, but due to using an STL container and + * STL strings is rather slow because of making copies. Designed for parsing + * command lines and similar text and not for time critical processing. + * Use a tokenizer class for that. * * \param text string that should be split * \return STL vector with the words @@ -220,7 +220,7 @@ namespace LAMMPS_NS { * * \param buf storage buffer for pathname. output will be truncated if not large enough * \param len size of storage buffer. output will be truncated to this length - 1 - * \param fp FILE pointer structe from STDIO library for which we want to detect the name + * \param fp FILE pointer struct from STDIO library for which we want to detect the name * \return pointer to the storage buffer, i.e. buf */ const char *guesspath(char *buf, int len, FILE *fp); -- GitLab From 02ea7af1f7339c27b95a2991ee8fa85229b66744 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 18:49:39 -0400 Subject: [PATCH 117/165] let dummy tests pass --- unittest/python/python-numpy.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/unittest/python/python-numpy.py b/unittest/python/python-numpy.py index 9be5ddbaf7..8fd41d2278 100644 --- a/unittest/python/python-numpy.py +++ b/unittest/python/python-numpy.py @@ -17,6 +17,7 @@ class PythonNumpy(unittest.TestCase): def testExtractComputeGlobalScalar(self): # TODO + pass def testExtractComputeGlobalVector(self): self.lmp.command("region box block 0 2 0 2 0 2") @@ -34,6 +35,7 @@ class PythonNumpy(unittest.TestCase): def testExtractComputeGlobalArray(self): # TODO + pass def testExtractComputePerAtomVector(self): self.lmp.command("region box block 0 2 0 2 0 2") @@ -50,15 +52,19 @@ class PythonNumpy(unittest.TestCase): def testExtractComputePerAtomArray(self): # TODO + pass def testExtractComputeLocalScalar(self): # TODO + pass def testExtractComputeLocalVector(self): # TODO + pass def testExtractComputeLocalArray(self): # TODO + pass if __name__ == "__main__": unittest.main() -- GitLab From cb1a2601e12a92aa374cc0ca33030ecd50d1c817 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 20:25:09 -0400 Subject: [PATCH 118/165] add more existing programmer guide docs --- doc/src/pg_cplusplus.rst | 91 +++++++++++++++++++ doc/src/pg_lib_add.rst | 33 +++++++ doc/src/pg_lib_config.rst | 67 ++++++++++++++ doc/src/pg_lib_create.rst | 104 ++++++++++++++++++++++ doc/src/pg_lib_execute.rst | 69 +++++++++++++++ doc/src/pg_lib_neighbor.rst | 30 +++++++ doc/src/pg_lib_objects.rst | 31 +++++++ doc/src/pg_lib_properties.rst | 62 +++++++++++++ doc/src/pg_lib_scatter.rst | 29 +++++++ doc/src/pg_lib_utility.rst | 30 +++++++ doc/src/pg_library.rst | 20 ++--- doc/src/pg_python.rst | 159 ++++++++++++++++++++++++++++++++++ 12 files changed, 715 insertions(+), 10 deletions(-) create mode 100644 doc/src/pg_cplusplus.rst create mode 100644 doc/src/pg_lib_add.rst create mode 100644 doc/src/pg_lib_config.rst create mode 100644 doc/src/pg_lib_create.rst create mode 100644 doc/src/pg_lib_execute.rst create mode 100644 doc/src/pg_lib_neighbor.rst create mode 100644 doc/src/pg_lib_objects.rst create mode 100644 doc/src/pg_lib_properties.rst create mode 100644 doc/src/pg_lib_scatter.rst create mode 100644 doc/src/pg_lib_utility.rst diff --git a/doc/src/pg_cplusplus.rst b/doc/src/pg_cplusplus.rst new file mode 100644 index 0000000000..2a7028b0f8 --- /dev/null +++ b/doc/src/pg_cplusplus.rst @@ -0,0 +1,91 @@ +Using the C++ API directly +************************** + +Using the C++ classes of the LAMMPS library is lacking some of the +convenience of the C library API, but it allows a more direct access to +simulation data and thus more low-level manipulations and tighter +integration of LAMMPS into another code. While for the complete C +library API is provided in the ``library.h`` header file, for using +the C++ API it is required to include the individual header files +defining the individual classes in use. Typically the name of the +class and the name of the header follow some simple rule. Examples +are given below. + + +Creating or deleting a LAMMPS object +************************************* + +When using the LAMMPS library interfaces, the core task is to create an +instance of the :cpp:class:`LAMMPS_NS::LAMMPS` class. In C++ this can +be done directly through the ``new`` operator. All further operations +are then initiated through calling member functions of some of the +components of the LAMMPS class or accessing their data members. The +destruction of the LAMMPS instance is correspondingly initiated by using +the ``delete`` operator. Here is a simple example: + +.. code-block:: c++ + + #include "lammps.h" + #include "universe.h" + + #include + #include + + int main(int argc, char **argv) + { + LAMMPS_NS::LAMMPS *lmp; + // custom argument vector for LAMMPS library + const char *lmpargv[] {"liblammps", "-log", "none"}; + int lmpargc = sizeof(lmpargv)/sizeof(const char *); + + // explicitly initialize MPI + MPI_Init(&argc, &argv); + + // create LAMMPS instance + lmp = new LAMMPS_NS::LAMMPS(lmpargc, (char **)lmpargv, MPI_COMM_WORLD); + // output numerical version string + std::cout << "LAMMPS version: " << lmp->universe->num_ver << std::endl; + // delete LAMMPS instance + delete lmp; + + // stop MPI environment + MPI_Finalize(); + return 0; + } + +Please note that this requires to include the ``lammps.h`` header for accessing +the members of the LAMMPS class and then the ``universe.h`` header for accessing the ``num_ver`` member of the :cpp:class:`Universe` class. + + +Executing LAMMPS commands +************************* + +Once a LAMMPS instance is created by your C++ code, you need to set up a +simulation and that is most conveniently done by "driving" it through +issuing commands like you would do when running a LAMMPS simulation from +an input script. Processing of input in LAMMPS is handled by the +:cpp:class:`Input ` class an instance of which is a +member of the :cpp:class:`LAMMPS ` class. You have +two options: reading commands from a file, or executing a single +command from a string. See below for a small example: + +.. code-block:: c++ + + #include "lammps.h" + #include "input.h" + #include + + using namespace LAMMPS_NS; + + int main(int argc, char **argv) + { + const char *lmpargv[] {"liblammps", "-log", "none"}; + int lmpargc = sizeof(lmpargv)/sizeof(const char *); + + MPI_Init(&argc, &argv); + LAMMPS *lmp = new LAMMPS(lmpargc, (char **)lmpargv, MPI_COMM_WORLD); + lmp->input->file("in.melt"); + lmp->input->one("run 100 post no"); + delete lmp; + return 0; + } diff --git a/doc/src/pg_lib_add.rst b/doc/src/pg_lib_add.rst new file mode 100644 index 0000000000..139476c683 --- /dev/null +++ b/doc/src/pg_lib_add.rst @@ -0,0 +1,33 @@ +Adding code to the Library interface +==================================== + +The functionality of the LAMMPS library interface has historically +always been motivated by the needs of its users and functions were +added or expanded as they were needed and used. Contributions to +the interface are always welcome. However with a refactoring of +the library interface and its documentation that started in 2020, +there are now a few requirements for inclusion of changes. + + - New functions should be orthogonal to existing ones and not + implement functionality that can already be achieved with the + existing APIs. + - All changes and additions should be documented with + `Doxygen `_ style comments and references + to those functions added to the corresponding files in the + ``doc/src`` folder. + - If possible, new unit tests to test those new features should + be added. + - The new feature should also be implemented and documented for + the Python and Fortran modules. + - All additions should work and be compatible with ``-DLAMMPS_BIGBIG``, + ``-DLAMMPS_SMALLBIG``, ``-DLAMMPS_SMALLSMALL`` and compiling + with and without MPI support. + - The ``library.h`` file should be kept compatible to C code at + a level similar to C89. Its interfaces may not reference any + custom data types (e.g. ``bigint``, ``tagint``, and so on) only + known inside of LAMMPS. + - only C style comments, not C++ style + +Please note, that these are *not* *strict* requirements, but the +LAMMPS developers appreciate if they are followed closely and will +assist with implementing what is missing. diff --git a/doc/src/pg_lib_config.rst b/doc/src/pg_lib_config.rst new file mode 100644 index 0000000000..9576e31dcd --- /dev/null +++ b/doc/src/pg_lib_config.rst @@ -0,0 +1,67 @@ +Retrieving LAMMPS configuration information +=========================================== + +The following library functions can be used to query the +LAMMPS library about compile time settings and included +packages and styles. + +----------------------- + +.. doxygenfunction:: lammps_config_has_mpi_support + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_config_has_gzip_support + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_config_has_png_support + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_config_has_jpeg_support + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_config_has_ffmpeg_support + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_config_has_exceptions + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_config_has_package + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_config_package_count + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_config_package_name + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_has_style + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_style_count + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_style_name + :project: progguide + diff --git a/doc/src/pg_lib_create.rst b/doc/src/pg_lib_create.rst new file mode 100644 index 0000000000..f8a8fb7829 --- /dev/null +++ b/doc/src/pg_lib_create.rst @@ -0,0 +1,104 @@ +Creating or deleting a LAMMPS object +==================================== + +The :cpp:func:`lammps_open` and :cpp:func:`lammps_open_no_mpi` +functions are used to create and initialize a +:cpp:func:`LAMMPS` instance. The calling program has to +provide a handle where a reference to this instance can be stored and +which has to be used in all subsequent function calls until that +instance is destroyed by calling :cpp:func:`lammps_close`. +Here is a simple example demonstrating its use: + +.. code-block:: C + + #include "library.h" + #include + + int main(int argc, char **argv) + { + void *handle; + int version; + const char *lmpargv[] = { "liblammps", "-log", "none"}; + int lmpargc = sizeof(lmpargv)/sizeof(const char *); + + /* create LAMMPS instance */ + handle = lammps_open_no_mpi(lmpargc, lmpargv, NULL); + if (handle == NULL) { + printf("LAMMPS initialization failed"); + lammps_mpi_finalize(); + return 1; + } + + /* get and print numerical version code */ + version = lammps_version(handle); + printf("LAMMPS Version: %d\n",version); + + /* delete LAMMPS instance and shut down MPI */ + lammps_close(handle); + lammps_mpi_finalize(); + return 0; + } + +The LAMMPS library will be using the MPI library it was compiled with +and will either run on all processors in the ``MPI_COMM_WORLD`` +communicator or on the set of processors in the communicator given in +the ``comm`` argument of :cpp:func:`lammps_open`. This means +the calling code can run LAMMPS on all or a subset of processors. For +example, a wrapper code might decide to alternate between LAMMPS and +another code, allowing them both to run on all the processors. Or it +might allocate part of the processors to LAMMPS and the rest to the +other code by creating a custom communicator with ``MPI_Comm_split()`` +and running both codes concurrently before syncing them up periodically. +Or it might instantiate multiple instances of LAMMPS to perform +different calculations and either alternate between them, run them +concurrently on split communicators, or run them one after the other. +The :cpp:func:`lammps_open` function may be called multiple +times for this latter purpose. + +The :cpp:func:`lammps_close` function is used to shut down +the :cpp:class:`LAMMPS ` class pointed to by the handle +passed as an argument and free all its memory. This has to be called for +every instance created with any of the :cpp:func:`lammps_open` functions. It will, however, **not** call +``MPI_Finalize()``, since that may only be called once. See +:cpp:func:`lammps_mpi_finalize` for an alternative to calling +``MPI_Finalize()`` explicitly in the calling program. + +The :cpp:func:`lammps_free` function is a clean-up +function to free memory that the library allocated previously +via other function calls. See below for notes in the descriptions +of the individual commands where such memory buffers were allocated. + +----------------------- + +.. doxygenfunction:: lammps_open + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_open_no_mpi + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_open_fortran + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_close + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_mpi_init + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_mpi_finalize + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_free + :project: progguide diff --git a/doc/src/pg_lib_execute.rst b/doc/src/pg_lib_execute.rst new file mode 100644 index 0000000000..3e79cb3cb4 --- /dev/null +++ b/doc/src/pg_lib_execute.rst @@ -0,0 +1,69 @@ +Executing LAMMPS commands +========================= + +Once a LAMMPS instance is created, there are multiple ways to "drive" a +simulation. In most cases it is easiest to process single or multiple +LAMMPS commands like in an input file. This can be done through reading +a file or passing single commands or lists of commands or blocks of +commands with the following functions. + +Via these functions, the calling code can have the LAMMPS instance act +on a series of :doc:`input file commands ` that are either +read from a file or passed as strings. This for, for example, allows to +setup a problem from a template file and then run it in stages while +performing other operations in between or concurrently. The caller can +interleave the LAMMPS function calls with operations it performs, calls +to extract information from or set information within LAMMPS, or calls +to another code's library. + +Also equivalent to regular :doc:`input script parsing ` +is the handling of comments and expansion of variables with ``${name}`` +or ``$(expression)`` syntax before the commands are parsed and +executed. Below is a short example using some of these functions. + +.. code-block:: C + + #include "library.h" + #include + #include + + int main(int argc, char **argv) + { + void *handle; + int i; + + MPI_Init(&argc, &argv); + handle = lammps_open(0, NULL, MPI_COMM_WORLD, NULL); + lammps_file(handle,"in.sysinit"); + lammps_command(handle,"run 1000 post no"); + + for (i=0; i < 100; ++i) { + lammps_commands_string(handle,"run 100 pre no post no\n" + "print 'PE = $(pe)'\n" + "print 'KE = $(ke)'\n"); + } + lammps_close(handle); + MPI_Finalize(); + return 0; + } + +----------------------- + +.. doxygenfunction:: lammps_file + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_command + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_commands_list + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_commands_string + :project: progguide + diff --git a/doc/src/pg_lib_neighbor.rst b/doc/src/pg_lib_neighbor.rst new file mode 100644 index 0000000000..b004e85d0e --- /dev/null +++ b/doc/src/pg_lib_neighbor.rst @@ -0,0 +1,30 @@ +Accessing LAMMPS Neighbor lists +=============================== + +The following functions allow to access neighbor lists +generated by LAMMPS or query their properties. + +----------------------- + +.. doxygenfunction:: lammps_find_compute_neighlist + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_find_fix_neighlist + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_find_pair_neighlist + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_neighlist_num_elements + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_neighlist_element_neighbors + :project: progguide diff --git a/doc/src/pg_lib_objects.rst b/doc/src/pg_lib_objects.rst new file mode 100644 index 0000000000..5da858db0c --- /dev/null +++ b/doc/src/pg_lib_objects.rst @@ -0,0 +1,31 @@ +Retrieving or setting properties of LAMMPS objects +================================================== + +This section documents accessing or modifying data from objects like +computes, fixes, or variables in LAMMPS. + +----------------------- + +.. doxygenfunction:: lammps_extract_compute + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_extract_fix + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_extract_variable + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_set_variable + :project: progguide + +----------------------- + +.. doxygenenum:: _LMP_STYLE_CONST + +.. doxygenenum:: _LMP_TYPE_CONST diff --git a/doc/src/pg_lib_properties.rst b/doc/src/pg_lib_properties.rst new file mode 100644 index 0000000000..789c7e2441 --- /dev/null +++ b/doc/src/pg_lib_properties.rst @@ -0,0 +1,62 @@ +Retrieving or setting LAMMPS system properties +============================================== + +The library interface allows to extract different kinds of information +about the active simulation instance and also to modify some of them. +This allows to combine MD simulation steps with other processing and +simulation methods computed in the calling code or another code that is +coupled to LAMMPS via the library interface. In some cases the data +returned is direct reference to the original data inside LAMMPS cast +to a void pointer. In that case the data needs to be cast to a suitable +pointer to be able to access it, and you need to know the correct dimensions +and lengths. When accessing per-atom data, please note that this data +is the per-processor **local** data and indexed accordingly. These arrays +can change sizes and order at every neighbor list rebuild and atom sort +event as atoms are migrating between sub-domains. + +----------------------- + +.. doxygenfunction:: lammps_version + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_get_natoms + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_get_thermo + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_extract_box + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_reset_box + :project: progguide + +------------------- + +.. doxygenfunction:: lammps_extract_setting + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_extract_global + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_extract_atom + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_create_atoms(void *handle, int n, int *id, int *type, double *x, double *v, int *image, int bexpand) + :project: progguide + + diff --git a/doc/src/pg_lib_scatter.rst b/doc/src/pg_lib_scatter.rst new file mode 100644 index 0000000000..5865d22349 --- /dev/null +++ b/doc/src/pg_lib_scatter.rst @@ -0,0 +1,29 @@ +Library functions for scatter/gather operations +================================================ + +.. TODO add description + +----------------------- + +.. doxygenfunction:: lammps_gather_atoms + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_gather_atoms_concat + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_gather_atoms_subset + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_scatter_atoms + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_scatter_atoms_subset + :project: progguide diff --git a/doc/src/pg_lib_utility.rst b/doc/src/pg_lib_utility.rst new file mode 100644 index 0000000000..8eda4e4988 --- /dev/null +++ b/doc/src/pg_lib_utility.rst @@ -0,0 +1,30 @@ +Library interface utility functions +=================================== + +To simplify some of the tasks, the library interface contains +some utility functions that are not directly calling LAMMPS. + +----------------------- + +.. doxygenfunction:: lammps_encode_image_flags + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_decode_image_flags(int image, int *flags) + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_set_fix_external_callback(void *, char *, FixExternalFnPtr, void*) + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_has_error + :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_get_last_error_message + :project: progguide diff --git a/doc/src/pg_library.rst b/doc/src/pg_library.rst index 3cd8d2196d..871ac5aaa5 100644 --- a/doc/src/pg_library.rst +++ b/doc/src/pg_library.rst @@ -91,15 +91,15 @@ and consequently the function :cpp:func:`lammps_open` may not be used. .. toctree:: :maxdepth: 1 -.. pg_lib_create -.. pg_lib_execute -.. pg_lib_properties -.. pg_lib_objects -.. pg_lib_scatter -.. pg_lib_neighbor -.. pg_lib_config -.. pg_lib_utility -.. pg_lib_add + pg_lib_create + pg_lib_execute + pg_lib_properties + pg_lib_objects + pg_lib_scatter + pg_lib_neighbor + pg_lib_config + pg_lib_utility + pg_lib_add -------------------- @@ -153,6 +153,6 @@ The following links provide some examples and references to the C++ API. .. toctree:: :maxdepth: 1 -.. pg_cplusplus + pg_cplusplus diff --git a/doc/src/pg_python.rst b/doc/src/pg_python.rst index 66f5c08cd0..72d07c5983 100644 --- a/doc/src/pg_python.rst +++ b/doc/src/pg_python.rst @@ -26,4 +26,163 @@ There are multiple Python interface classes in the :py:mod:`lammps` module: .. _mpi4py_url: https://mpi4py.readthedocs.io +---------- + +Creating or deleting a LAMMPS object +************************************ + +With the Python interface the creation of a :cpp:class:`LAMMPS +` instance is included in the constructor for the +:py:func:`lammps ` class. Internally it will call either +:cpp:func:`lammps_open` or :cpp:func:`lammps_open_no_mpi` from the C +library API to create the class instance. + +All arguments are optional. The *name* argument is to allow loading a +LAMMPS shared library that is named ``liblammps_machine.so`` instead of +the default name of ``liblammps.so``. In most cases the latter will be +installed or used. The *ptr* argument is for use of the +:py:mod:`lammps` module from inside a LAMMPS instance, e.g. with the +:doc:`python ` command, where a pointer to the already existing +:cpp:class:`LAMMPS ` class instance can be passed +to the Python class and used instead of creating a new instance. The +*comm* argument may be used in combination with the `mpi4py `_ +module to pass an MPI communicator to LAMMPS and thus it is possible +to run the Python module like the library interface on a subset of the +MPI ranks after splitting the communicator. Here is a simple example: + +.. code-block:: python + + from lammps import lammps + + # NOTE: argv[0] is set by the Python module + args = ["-log", "none"] + # create LAMMPS instance + lmp = lammps(cmdargs=args) + # get and print numerical version code + print("LAMMPS Version: ", lmp.version()) + # explicitly close and delete LAMMPS instance (optional) + lmp.close() + +Same as with the :doc:`C library API ` this will use the +``MPI_COMM_WORLD`` communicator for the MPI library that LAMMPS was +compiled with. The :py:func:`lmp.close() ` call is +optional since the LAMMPS class instance will also be deleted +automatically during the :py:class:`lammps ` class +destructor. + +Executing LAMMPS commands +************************* + +Once an instance of the :py:class:`lammps ` class is +created, there are multiple ways to "feed" it commands. In a way that is +not very different from running a LAMMPS input script, except that +Python has many more facilities for structured programming than the +LAMMPS input script syntax. Furthermore it is possible to "compute" +what the next LAMMPS command should be. Same as in the equivalent `C +library functions `, commands can be read from a file, a +single string, a list of strings and a block of commands in a single +multi-line string. They are processed under the same boundary conditions +as the C library counterparts. The example below demonstrates the use +of :py:func:`lammps.file`, :py:func:`lammps.command`, +:py:func:`lammps.commands_list`, and :py:func:`lammps.commands_string`: + +.. code-block:: python + + from lammps import lammps + + lmp = lammps() + # read commands from file 'in.melt' + lmp.file('in.melt') + # issue a single command + lmp.command('variable zpos index 1.0') + # create 10 groups with 10 atoms each + cmds = ["group g{} id {}:{}".format(i,10*i+1,10*(i+1)) for i in range(10)] + lmp.commands_list(cmds) + # run commands from a multi-line string + block = """ + clear + region box block 0 2 0 2 0 2 + create_box 1 box + create_atoms 1 single 1.0 1.0 ${zpos} + """ + lmp.commands_string(block) + +---------- + +The ``lammps`` class API +************************ + +The :py:class:`lammps ` class is the core of the LAMMPS +Python interfaces. It is a wrapper around the :doc:`LAMMPS C library +API ` using the `Python ctypes module +`_ and a shared library +compiled from the LAMMPS sources code. The individual methods in this +class try to closely follow the corresponding C functions. The handle +argument that needs to be passed to the C functions is stored internally +in the class and automatically added when calling the C library +functions. Below is a detailed documentation of the API. + +.. autoclass:: lammps.lammps + :members: + +---------- + +The ``PyLammps`` class API +************************** + +.. autoclass:: lammps.PyLammps + :members: + +---------- + +The ``IPyLammps`` class API +*************************** + +.. autoclass:: lammps.IPyLammps + :members: + +---------- + +Additional components of the ``lammps`` module +********************************************** + +The :py:mod:`lammps` module additionally contains several constants +and the :py:class:`NeighList ` class: + +.. _py_data_constants: +.. py:data:: LAMMPS_INT, LAMMPS_DOUBLE, LAMMPS_BIGINT, LAMMPS_TAGINT, LAMMPS_STRING + :type: int + + Constants in the :py:mod:`lammps` module to indicate how to + cast data when the C library function returns a void pointer. + Used in :py:func:`lammps.extract_global`. + +.. _py_style_constants: +.. py:data:: LMP_STYLE_GLOBAL, LMP_STYLE_ATOM, LMP_STYLE_LOCAL + :type: int + + Constants in the :py:mod:`lammps` module to select what style of data + to request from computes or fixes. See :cpp:enum:`_LMP_STYLE_CONST` + for the equivalent constants in the C library interface. Used in + :py:func:`lammps.extract_compute` and :py:func:`lammps.extract_fix`. + +.. _py_type_constants: +.. py:data:: LMP_TYPE_SCALAR, LMP_TYLE_VECTOR, LMP_TYPE_ARRAY, LMP_SIZE_VECTOR, LMP_SIZE_ROWS, LMP_SIZE_COLS + :type: int + + Constants in the :py:mod:`lammps` module to select what type of data + to request from computes or fixes. See :cpp:enum:`_LMP_TYPE_CONST` + for the equivalent constants in the C library interface. Used in + :py:func:`lammps.extract_compute` and :py:func:`lammps.extract_fix`. + +.. _py_var_constants: +.. py:data:: LMP_VAR_EQUAL, LMP_VAR_ATOM + :type: int + + Constants in the :py:mod:`lammps` module to select what style of + variable to query when calling :py:func:`lammps.extract_variable`. + +.. autoclass:: lammps.NeighList + :members: + :no-undoc-members: -- GitLab From 7b6924329f43523ce1357eaf49d3827cf6e5e13c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 20:25:38 -0400 Subject: [PATCH 119/165] make doxygen docs and code consistent --- src/library.cpp | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index c86de6e538..6ba0799085 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -752,29 +752,29 @@ recognized, the function returns -1. Please also see :cpp:func:`lammps_extract_ * \param keyword string with the name of the thermo keyword * \return value of the queried setting or -1 if unknown */ -int lammps_extract_setting(void * handle, char *name) +int lammps_extract_setting(void * handle, char *keyword) { LAMMPS *lmp = (LAMMPS *) handle; // This can be customized by adding keywords and documenting them in the section above. - if (strcmp(name,"bigint") == 0) return sizeof(bigint); - if (strcmp(name,"tagint") == 0) return sizeof(tagint); - if (strcmp(name,"imageint") == 0) return sizeof(imageint); - - if (strcmp(name,"dimension") == 0) return lmp->domain->dimension; - if (strcmp(name,"box_exist") == 0) return lmp->domain->box_exist; - if (strcmp(name,"triclinic") == 0) return lmp->domain->triclinic; - - if (strcmp(name,"nlocal") == 0) return lmp->atom->nlocal; - if (strcmp(name,"nghost") == 0) return lmp->atom->nghost; - if (strcmp(name,"nall") == 0) return lmp->atom->nlocal+lmp->atom->nghost; - if (strcmp(name,"nmax") == 0) return lmp->atom->nmax; - if (strcmp(name,"ntypes") == 0) return lmp->atom->ntypes; - - if (strcmp(name,"molecule_flag") == 0) return lmp->atom->molecule_flag; - if (strcmp(name,"q_flag") == 0) return lmp->atom->q_flag; - if (strcmp(name,"mu_flag") == 0) return lmp->atom->mu_flag; - if (strcmp(name,"rmass_flag") == 0) return lmp->atom->rmass_flag; + if (strcmp(keyword,"bigint") == 0) return sizeof(bigint); + if (strcmp(keyword,"tagint") == 0) return sizeof(tagint); + if (strcmp(keyword,"imageint") == 0) return sizeof(imageint); + + if (strcmp(keyword,"dimension") == 0) return lmp->domain->dimension; + if (strcmp(keyword,"box_exist") == 0) return lmp->domain->box_exist; + if (strcmp(keyword,"triclinic") == 0) return lmp->domain->triclinic; + + if (strcmp(keyword,"nlocal") == 0) return lmp->atom->nlocal; + if (strcmp(keyword,"nghost") == 0) return lmp->atom->nghost; + if (strcmp(keyword,"nall") == 0) return lmp->atom->nlocal+lmp->atom->nghost; + if (strcmp(keyword,"nmax") == 0) return lmp->atom->nmax; + if (strcmp(keyword,"ntypes") == 0) return lmp->atom->ntypes; + + if (strcmp(keyword,"molecule_flag") == 0) return lmp->atom->molecule_flag; + if (strcmp(keyword,"q_flag") == 0) return lmp->atom->q_flag; + if (strcmp(keyword,"mu_flag") == 0) return lmp->atom->mu_flag; + if (strcmp(keyword,"rmass_flag") == 0) return lmp->atom->rmass_flag; return -1; } -- GitLab From 2e1b4498bd900fc73d7876ecc1c65e7d4a510e45 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 20:30:00 -0400 Subject: [PATCH 120/165] update false positives --- doc/utils/sphinx-config/false_positives.txt | 47 ++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index cd68c3ddda..a300874e41 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -115,6 +115,7 @@ Archlinux arcsin arg args +argv arrhenius Arun arXiv @@ -138,6 +139,8 @@ atc AtC ATC athermal +atime +atimestep athomps atm atomeye @@ -207,7 +210,6 @@ bcolor bdiam bdw Beckman -behaviour Belak Bellott benchmarking @@ -267,6 +269,7 @@ bodystyle Bogaerts Bogusz Bohrs +boltz Boltzman BondAngle BondBond @@ -285,6 +288,14 @@ Botu Bouguet Bourne boxcolor +boxlo +boxhi +boxxlo +boxxhi +boxylo +boxyhi +boxzlo +boxzhi bp bpclermont bpls @@ -411,6 +422,7 @@ cmap Cmax cmd cmdlist +cmds Cmin cmm CMM @@ -675,6 +687,8 @@ Donadio dotc Doty doxygen +doxygenclass +doxygenfunction downarrow Doye dpd @@ -982,6 +996,7 @@ Fock Fogarty Foiles fopenmp +forceclear forestgreen formatarg formulae @@ -1006,6 +1021,7 @@ fs fsh fstyle fsw +ftm ftol fugacity Fumi @@ -1176,6 +1192,7 @@ hexorder Heyes HfO hgrid +hhmrr Hibbs Higdon Hijazi @@ -1185,6 +1202,7 @@ histogrammed histogramming hma hmaktulga +hplanck hoc Hochbruck Hofling @@ -1227,6 +1245,7 @@ hyperspherical hysteretic hz Ibanez +iatom ibar ibm icc @@ -1269,6 +1288,7 @@ indices inertiax inertiay inertiaz +infile infty inhomogeneities inhomogeneous @@ -1309,6 +1329,7 @@ ipp Ippolito IPv IPython +ipython Isele isenthalpic ish @@ -1457,6 +1478,7 @@ Kloza kmax Kmax KMP +kmu Knizhnik knl Kofke @@ -1943,6 +1965,7 @@ muz mv mV Mvapich +mvh mvv MxN myCompute @@ -1955,11 +1978,13 @@ na nabla Nagaosa Nakano +nall namespace namespaces nan NaN Nandor +nangles Nangletype nangletypes Nangletypes @@ -1988,6 +2013,7 @@ Nbin Nbins nbody Nbody +nbonds nbondtype Nbondtype nbondtypes @@ -2000,9 +2026,11 @@ Nc nchunk Nchunk ncoeff +ncol ncorr ncount nd +ndihedrals Ndihedraltype Ndirango ndof @@ -2048,6 +2076,7 @@ NiAlH Nicklas Niklasson Nikolskiy +nimpropers Nimpropertype Ninteger Nissila @@ -2056,6 +2085,7 @@ nitride nitrides niu Nk +nktv nl nlen Nlines @@ -2066,6 +2096,7 @@ nlp nm Nm Nmax +nmax Nmin Nmols nn @@ -2119,6 +2150,7 @@ Nrepeat nreset Nrho Nroff +nrow nrun Ns Nsample @@ -2137,6 +2169,7 @@ Nt Ntable ntheta nthreads +ntimestep Ntptask Ntriples Ntype @@ -2366,6 +2399,7 @@ polydisperse polydispersity polyelectrolyte polyhedra +polymorphism popen Popov popstore @@ -2399,6 +2433,7 @@ proc Proc procs Prony +progguide ps Ps pscreen @@ -2445,7 +2480,9 @@ qbmsst qcore qdist qE +qe qeff +qelectron qeq QeQ QEq @@ -2463,6 +2500,8 @@ qmol qoffload qopenmp qoverride +qqr +qqrd qtb quadratically quadrupolar @@ -2518,6 +2557,7 @@ rebo recursing Ree refactored +refactoring reflectionstyle regoin Reinders @@ -2603,6 +2643,7 @@ Rkouter RkouterN rmask Rmask +rmass rmax Rmax rmdir @@ -2737,6 +2778,7 @@ shlib SHM shm shockvel +shrinkexceed Shugaev si SiC @@ -3244,6 +3286,7 @@ vv vx Vx vxcm +vxmu vy Vy vycm @@ -3319,6 +3362,7 @@ Xmax xmgrace xMIC xmin +xml xmovie Xmovie xmu @@ -3333,6 +3377,7 @@ xsu xtc xu Xu +xxt xxxxx xy xyz -- GitLab From 3e92647abbe85cf47e2b24916c33c1aa68158e33 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 20:56:15 -0400 Subject: [PATCH 121/165] add new "official" fortran interface to LAMMPS in new folder "fortran" --- fortran/README | 11 ++ fortran/lammps.f90 | 281 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 292 insertions(+) create mode 100644 fortran/README create mode 100644 fortran/lammps.f90 diff --git a/fortran/README b/fortran/README new file mode 100644 index 0000000000..653b6a966e --- /dev/null +++ b/fortran/README @@ -0,0 +1,11 @@ +This directory contains Fortran code which interface LAMMPS as a library +and allows the LAMMPS library interface to be invoked from Fortran codes. +It requires a Fortran compiler that supports the Fortran 2003 standard. + +This interface is based on and supersedes the previous Fortran interfaces +in the examples/COUPLE/fortran* folders. But is fully supported by the +LAMMPS developers and included in the documentation and unit testing. + +Details on this Fortran interface and how to build programs using it +are in the manual in the doc/html/pg_fortran.html file. + diff --git a/fortran/lammps.f90 b/fortran/lammps.f90 new file mode 100644 index 0000000000..ba2e376b77 --- /dev/null +++ b/fortran/lammps.f90 @@ -0,0 +1,281 @@ +! ------------------------------------------------------------------------- +! LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +! http://lammps.sandia.gov, Sandia National Laboratories +! Steve Plimpton, sjplimp@sandia.gov +! +! Copyright (2003) Sandia Corporation. Under the terms of Contract +! DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains +! certain rights in this software. This software is distributed under +! the GNU General Public License. +! +! See the README file in the top-level LAMMPS directory. +! ------------------------------------------------------------------------- +! +! Fortran interface to the LAMMPS library implemented as a Fortran 2003 +! style module that wraps the C-style library interface in library.cpp +! and library.h using the ISO_C_BINDING module of the Fortran compiler. +! +! Based on the LAMMPS Fortran 2003 module contributed by: +! Karl D. Hammond +! University of Tennessee, Knoxville (USA), 2012 +! +! The Fortran module tries to follow the API of the C-library interface +! closely, but like the Python wrapper it employs an object oriented +! approach. To accommodate the object oriented approach, all exported +! subroutine and functions have to be implemented in Fortran to then +! call the interfaced C style functions with adapted calling conventions +! as needed. The C-library interfaced functions retain their names +! starting with "lammps_" while the Fortran versions start with "lmp_". +! +MODULE LIBLAMMPS + + USE, INTRINSIC :: ISO_C_BINDING, ONLY: c_ptr, c_null_ptr, c_loc, & + c_int, c_char, c_null_char, c_double + + IMPLICIT NONE + PRIVATE + PUBLIC :: lammps + + TYPE lammps + TYPE(c_ptr) :: handle + CONTAINS + PROCEDURE :: close => lmp_close + PROCEDURE :: file => lmp_file + PROCEDURE :: command => lmp_command + PROCEDURE :: commands_list => lmp_commands_list + PROCEDURE :: commands_string => lmp_commands_string + PROCEDURE :: version => lmp_version + PROCEDURE :: get_natoms => lmp_get_natoms + END TYPE lammps + + INTERFACE lammps + MODULE PROCEDURE lmp_open + END INTERFACE lammps + + ! interface definitions for calling functions in library.cpp + INTERFACE + FUNCTION lammps_open(argc,argv,comm,handle) & + BIND(C, name='lammps_open_fortran') + IMPORT :: c_ptr, c_int + INTEGER(c_int), VALUE, INTENT(in) :: argc, comm + TYPE(c_ptr), DIMENSION(*), INTENT(in) :: argv + TYPE(c_ptr), INTENT(out) :: handle + TYPE(c_ptr) :: lammps_open + END FUNCTION lammps_open + + FUNCTION lammps_open_no_mpi(argc,argv,handle) & + BIND(C, name='lammps_open_no_mpi') + IMPORT :: c_ptr, c_int + INTEGER(c_int), VALUE, INTENT(in) :: argc + TYPE(c_ptr), DIMENSION(*), INTENT(in) :: argv + TYPE(c_ptr), INTENT(out) :: handle + TYPE(c_ptr) :: lammps_open_no_mpi + END FUNCTION lammps_open_no_mpi + + SUBROUTINE lammps_close(handle) BIND(C, name='lammps_close') + IMPORT :: c_ptr + TYPE(c_ptr), VALUE :: handle + END SUBROUTINE lammps_close + + SUBROUTINE lammps_mpi_init(handle) BIND(C, name='lammps_mpi_init') + IMPORT :: c_ptr + TYPE(c_ptr), VALUE :: handle + END SUBROUTINE lammps_mpi_init + + SUBROUTINE lammps_mpi_finalize(handle) & + BIND(C, name='lammps_mpi_finalize') + IMPORT :: c_ptr + TYPE(c_ptr), VALUE :: handle + END SUBROUTINE lammps_mpi_finalize + + SUBROUTINE lammps_file(handle,filename) BIND(C, name='lammps_file') + IMPORT :: c_ptr + TYPE(c_ptr), VALUE :: handle + TYPE(c_ptr), VALUE :: filename + END SUBROUTINE lammps_file + + SUBROUTINE lammps_command(handle,cmd) BIND(C, name='lammps_command') + IMPORT :: c_ptr + TYPE(c_ptr), VALUE :: handle + TYPE(c_ptr), VALUE :: cmd + END SUBROUTINE lammps_command + + SUBROUTINE lammps_commands_list(handle,ncmd,cmds) & + BIND(C, name='lammps_commands_list') + IMPORT :: c_ptr, c_int + TYPE(c_ptr), VALUE :: handle + INTEGER(c_int), VALUE, INTENT(in) :: ncmd + TYPE(c_ptr), DIMENSION(*), INTENT(in) :: cmds + END SUBROUTINE lammps_commands_list + + SUBROUTINE lammps_commands_string(handle,str) & + BIND(C, name='lammps_commands_string') + IMPORT :: c_ptr + TYPE(c_ptr), VALUE :: handle + TYPE(c_ptr), VALUE :: str + END SUBROUTINE lammps_commands_string + + SUBROUTINE lammps_free(ptr) BIND(C, name='lammps_free') + IMPORT :: c_ptr + TYPE(c_ptr), VALUE :: ptr + END SUBROUTINE lammps_free + + FUNCTION lammps_version(handle) BIND(C, name='lammps_version') + IMPORT :: c_ptr, c_int + TYPE(c_ptr), VALUE :: handle + INTEGER(c_int) :: lammps_version + END FUNCTION lammps_version + + FUNCTION lammps_get_natoms(handle) BIND(C, name='lammps_get_natoms') + IMPORT :: c_ptr, c_double + TYPE(c_ptr), VALUE :: handle + REAL(c_double) :: lammps_get_natoms + END FUNCTION lammps_get_natoms + END INTERFACE + +CONTAINS + + ! Fortran wrappers and helper functions. + + ! Constructor for the LAMMPS class. + ! Combined wrapper around lammps_open_fortran() and lammps_open_no_mpi() + TYPE(lammps) FUNCTION lmp_open(args,comm) + IMPLICIT NONE + INTEGER,INTENT(in), OPTIONAL :: comm + CHARACTER(len=*), INTENT(in), OPTIONAL :: args(:) + TYPE(c_ptr), ALLOCATABLE :: argv(:) + TYPE(c_ptr) :: dummy=c_null_ptr + INTEGER :: i,argc + + IF (PRESENT(args)) THEN + ! convert argument list to c style + argc = SIZE(args) + ALLOCATE(argv(argc)) + DO i=1,argc + argv(i) = f2c_string(args(i)) + END DO + ELSE + argc = 1 + ALLOCATE(argv(1)) + argv(1) = f2c_string("liblammps") + ENDIF + + IF (PRESENT(comm)) THEN + lmp_open%handle = lammps_open(argc,argv,comm,dummy) + ELSE + lmp_open%handle = lammps_open_no_mpi(argc,argv,dummy) + END IF + + ! Clean up allocated memory + DO i=1,argc + CALL lammps_free(argv(i)) + END DO + DEALLOCATE(argv) + END FUNCTION lmp_open + + ! Combined Fortran wrapper around lammps_close() and lammps_mpi_finalize() + SUBROUTINE lmp_close(self,finalize) + IMPLICIT NONE + CLASS(lammps) :: self + LOGICAL,INTENT(in),OPTIONAL :: finalize + + CALL lammps_close(self%handle) + + IF (PRESENT(finalize)) THEN + IF (finalize) THEN + CALL lammps_mpi_finalize(self%handle) + END IF + END IF + END SUBROUTINE lmp_close + + INTEGER FUNCTION lmp_version(self) + IMPLICIT NONE + CLASS(lammps) :: self + + lmp_version = lammps_version(self%handle) + END FUNCTION lmp_version + + DOUBLE PRECISION FUNCTION lmp_get_natoms(self) + IMPLICIT NONE + CLASS(lammps) :: self + + lmp_get_natoms = lammps_get_natoms(self%handle) + END FUNCTION lmp_get_natoms + + SUBROUTINE lmp_file(self,filename) + IMPLICIT NONE + CLASS(lammps) :: self + CHARACTER(len=*) :: filename + TYPE(c_ptr) :: str + + str = f2c_string(filename) + CALL lammps_file(self%handle,str) + CALL lammps_free(str) + END SUBROUTINE lmp_file + + ! equivalent function to lammps_command() + SUBROUTINE lmp_command(self,cmd) + IMPLICIT NONE + CLASS(lammps) :: self + CHARACTER(len=*) :: cmd + TYPE(c_ptr) :: str + + str = f2c_string(cmd) + CALL lammps_command(self%handle,str) + CALL lammps_free(str) + END SUBROUTINE lmp_command + + ! equivalent function to lammps_commands_list() + SUBROUTINE lmp_commands_list(self,cmds) + IMPLICIT NONE + CLASS(lammps) :: self + CHARACTER(len=*), INTENT(in), OPTIONAL :: cmds(:) + TYPE(c_ptr), ALLOCATABLE :: cmdv(:) + INTEGER :: i,ncmd + + ! convert command list to c style + ncmd = SIZE(cmds) + ALLOCATE(cmdv(ncmd)) + DO i=1,ncmd + cmdv(i) = f2c_string(cmds(i)) + END DO + + CALL lammps_commands_list(self%handle,ncmd,cmdv) + + ! Clean up allocated memory + DO i=1,ncmd + CALL lammps_free(cmdv(i)) + END DO + DEALLOCATE(cmdv) + END SUBROUTINE lmp_commands_list + + ! equivalent function to lammps_commands_string() + SUBROUTINE lmp_commands_string(self,str) + IMPLICIT NONE + CLASS(lammps) :: self + CHARACTER(len=*) :: str + TYPE(c_ptr) :: tmp + + tmp = f2c_string(str) + CALL lammps_commands_string(self%handle,tmp) + CALL lammps_free(tmp) + END SUBROUTINE lmp_commands_string + + ! ---------------------------------------------------------------------- + ! local helper functions + ! copy fortran string to zero terminated c string + FUNCTION f2c_string(f_string) RESULT(ptr) + CHARACTER (len=*), INTENT(in) :: f_string + CHARACTER (len=1, kind=c_char), POINTER :: c_string(:) + TYPE(c_ptr) :: ptr + INTEGER :: i, n + + n = LEN_TRIM(f_string) + ALLOCATE(c_string(n+1)) + DO i=1,n + c_string(i) = f_string(i:i) + END DO + c_string(n+1) = c_null_char + ptr = c_loc(c_string(1)) + END FUNCTION f2c_string +END MODULE LIBLAMMPS -- GitLab From e44707d5e17faf8a37eb6bab6ec8f03528781eba Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 20:56:52 -0400 Subject: [PATCH 122/165] add unittest support for the fortran interface to LAMMPS --- unittest/CMakeLists.txt | 1 + unittest/fortran/CMakeLists.txt | 30 +++++++ unittest/fortran/fortran-commands.f90 | 111 ++++++++++++++++++++++++++ unittest/fortran/fortran-create.f90 | 86 ++++++++++++++++++++ unittest/fortran/mpi_stubs.f90 | 20 +++++ unittest/fortran/wrap-commands.cpp | 65 +++++++++++++++ unittest/fortran/wrap-create.cpp | 97 ++++++++++++++++++++++ 7 files changed, 410 insertions(+) create mode 100644 unittest/fortran/CMakeLists.txt create mode 100644 unittest/fortran/fortran-commands.f90 create mode 100644 unittest/fortran/fortran-create.f90 create mode 100644 unittest/fortran/mpi_stubs.f90 create mode 100644 unittest/fortran/wrap-commands.cpp create mode 100644 unittest/fortran/wrap-create.cpp diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt index bfa4c7d002..dd375112b7 100644 --- a/unittest/CMakeLists.txt +++ b/unittest/CMakeLists.txt @@ -5,6 +5,7 @@ add_subdirectory(formats) add_subdirectory(commands) add_subdirectory(c-library) add_subdirectory(cplusplus) +add_subdirectory(fortran) add_subdirectory(python) add_subdirectory(force-styles) diff --git a/unittest/fortran/CMakeLists.txt b/unittest/fortran/CMakeLists.txt new file mode 100644 index 0000000000..75382479d4 --- /dev/null +++ b/unittest/fortran/CMakeLists.txt @@ -0,0 +1,30 @@ +include(CheckGeneratorSupport) +if(NOT CMAKE_GENERATOR_SUPPORT_FORTRAN) + message(STATUS "Skipping Tests for the LAMMPS Fortran Module: no Fortran support in build tool") + return() +endif() + +include(CheckLanguage) +check_language(Fortran) +if(CMAKE_Fortran_COMPILER) + enable_language(Fortran) + get_filename_component(LAMMPS_FORTRAN_MODULE ${LAMMPS_SOURCE_DIR}/../fortran/lammps.f90 ABSOLUTE) + if(BUILD_MPI) + find_package(MPI REQUIRED) + else() + add_library(fmpi_stubs STATIC mpi_stubs.f90) + add_library(MPI::MPI_Fortran ALIAS fmpi_stubs) + endif() + + add_library(flammps STATIC ${LAMMPS_FORTRAN_MODULE}) + + add_executable(fortran-create wrap-create.cpp fortran-create.f90) + target_link_libraries(fortran-create PRIVATE flammps lammps MPI::MPI_Fortran GTest::GTest GTest::GTestMain) + add_test(FortranOpen fortran-create) + + add_executable(fortran-commands wrap-commands.cpp fortran-commands.f90) + target_link_libraries(fortran-commands PRIVATE flammps lammps MPI::MPI_Fortran GTest::GTest GTest::GTestMain) + add_test(FortranCommands fortran-commands) +else() + message(STATUS "Skipping Tests for the LAMMPS Fortran Module: no Fortran compiler") +endif() diff --git a/unittest/fortran/fortran-commands.f90 b/unittest/fortran/fortran-commands.f90 new file mode 100644 index 0000000000..748bc5774a --- /dev/null +++ b/unittest/fortran/fortran-commands.f90 @@ -0,0 +1,111 @@ +MODULE keepcmds + USE liblammps + TYPE(LAMMPS) :: lmp + CHARACTER(len=*), DIMENSION(*), PARAMETER :: demo_input = & + [ CHARACTER(len=40) :: & + 'region box block 0 $x 0 2 0 2', & + 'create_box 1 box', & + 'create_atoms 1 single 1.0 1.0 ${zpos}' ] + CHARACTER(len=*), DIMENSION(*), PARAMETER :: cont_input = & + [ CHARACTER(len=40) :: & + 'create_atoms 1 single &', & + ' 0.2 0.1 0.1' ] +END MODULE keepcmds + +FUNCTION f_lammps_with_args() BIND(C, name="f_lammps_with_args") + USE ISO_C_BINDING, ONLY: c_ptr + USE liblammps + USE keepcmds, ONLY: lmp + IMPLICIT NONE + TYPE(c_ptr) :: f_lammps_with_args + + CHARACTER(len=*), DIMENSION(*), PARAMETER :: args = & + [ CHARACTER(len=12) :: 'liblammps', '-log', 'none', & + '-echo','screen','-nocite','-var','zpos','1.5','-var','x','2'] + + lmp = lammps(args) + f_lammps_with_args = lmp%handle +END FUNCTION f_lammps_with_args + +SUBROUTINE f_lammps_close() BIND(C, name="f_lammps_close") + USE ISO_C_BINDING, ONLY: c_null_ptr + USE liblammps + USE keepcmds, ONLY: lmp + IMPLICIT NONE + + CALL lmp%close() + lmp%handle = c_null_ptr +END SUBROUTINE f_lammps_close + +FUNCTION f_lammps_get_natoms() BIND(C, name="f_lammps_get_natoms") + USE ISO_C_BINDING, ONLY: c_null_ptr, c_double + USE liblammps + USE keepcmds, ONLY: lmp + IMPLICIT NONE + REAL(c_double) :: f_lammps_get_natoms + + f_lammps_get_natoms = lmp%get_natoms() +END FUNCTION f_lammps_get_natoms + +SUBROUTINE f_lammps_file() BIND(C, name="f_lammps_file") + USE ISO_C_BINDING, ONLY: c_null_ptr + USE liblammps + USE keepcmds, ONLY: lmp, demo_input, cont_input + IMPLICIT NONE + INTEGER :: i + CHARACTER(len=*), PARAMETER :: demo_file = 'in.test', cont_file = 'in.cont' + + OPEN(10, file=demo_file, status='replace') + WRITE(10, fmt='(A)') (demo_input(i),i=1,SIZE(demo_input)) + CLOSE(10) + OPEN(11, file=cont_file, status='replace') + WRITE(11, fmt='(A)') (cont_input(i),i=1,SIZE(cont_input)) + CLOSE(11) + CALL lmp%file(demo_file) + CALL lmp%file(cont_file) + OPEN(12, file=demo_file, status='old') + CLOSE(12, status='delete') + OPEN(13, file=cont_file, status='old') + CLOSE(13, status='delete') +END SUBROUTINE f_lammps_file + +SUBROUTINE f_lammps_command() BIND(C, name="f_lammps_command") + USE ISO_C_BINDING, ONLY: c_null_ptr + USE liblammps + USE keepcmds, ONLY: lmp, demo_input + IMPLICIT NONE + INTEGER :: i + + DO i=1,SIZE(demo_input) + call lmp%command(demo_input(i)) + END DO +END SUBROUTINE f_lammps_command + +SUBROUTINE f_lammps_commands_list() BIND(C, name="f_lammps_commands_list") + USE ISO_C_BINDING, ONLY: c_null_ptr + USE liblammps + USE keepcmds, ONLY: lmp, demo_input, cont_input + IMPLICIT NONE + + CALL lmp%commands_list(demo_input) + CALL lmp%commands_list(cont_input) +END SUBROUTINE f_lammps_commands_list + +SUBROUTINE f_lammps_commands_string() BIND(C, name="f_lammps_commands_string") + USE ISO_C_BINDING, ONLY: c_null_ptr + USE liblammps + USE keepcmds, ONLY: lmp, demo_input, cont_input + IMPLICIT NONE + INTEGER :: i + CHARACTER(len=512) :: cmds + + cmds = '' + DO i=1,SIZE(demo_input) + cmds = TRIM(cmds) // TRIM(demo_input(i)) // NEW_LINE('A') + END DO + DO i=1,SIZE(cont_input) + cmds = TRIM(cmds) // TRIM(cont_input(i)) // NEW_LINE('A') + END DO + + CALL lmp%commands_string(cmds) +END SUBROUTINE f_lammps_commands_string diff --git a/unittest/fortran/fortran-create.f90 b/unittest/fortran/fortran-create.f90 new file mode 100644 index 0000000000..694646e9bd --- /dev/null +++ b/unittest/fortran/fortran-create.f90 @@ -0,0 +1,86 @@ +MODULE keepcreate + USE liblammps + TYPE(LAMMPS) :: lmp + INTEGER :: mycomm +END MODULE keepcreate + +FUNCTION f_lammps_no_mpi_no_args() BIND(C, name="f_lammps_no_mpi_no_args") + USE ISO_C_BINDING, ONLY: c_ptr + USE liblammps + USE keepcreate, ONLY: lmp + IMPLICIT NONE + TYPE(c_ptr) :: f_lammps_no_mpi_no_args + + lmp = lammps() + f_lammps_no_mpi_no_args = lmp%handle +END FUNCTION f_lammps_no_mpi_no_args + +FUNCTION f_lammps_no_mpi_with_args() BIND(C, name="f_lammps_no_mpi_with_args") + USE ISO_C_BINDING, ONLY: c_ptr + USE liblammps + USE keepcreate, ONLY: lmp + IMPLICIT NONE + TYPE(c_ptr) :: f_lammps_no_mpi_with_args + + CHARACTER(len=*), DIMENSION(*), PARAMETER :: args = & + [ CHARACTER(len=12) :: 'liblammps', '-log', 'none', '-nocite' ] + + lmp = lammps(args) + f_lammps_no_mpi_with_args = lmp%handle +END FUNCTION f_lammps_no_mpi_with_args + +FUNCTION f_lammps_open_no_args() BIND(C, name="f_lammps_open_no_args") + USE ISO_C_BINDING, ONLY: c_ptr + USE MPI, ONLY: MPI_COMM_WORLD, mpi_comm_split + USE liblammps + USE keepcreate, ONLY: lmp,mycomm + IMPLICIT NONE + TYPE(c_ptr) :: f_lammps_open_no_args + INTEGER :: color, key, ierr + + color = 1 + key = 1 + CALL mpi_comm_split(MPI_COMM_WORLD, color, key, mycomm, ierr) + lmp = lammps(comm=mycomm) + f_lammps_open_no_args = lmp%handle +END FUNCTION f_lammps_open_no_args + +FUNCTION f_lammps_open_with_args() BIND(C, name="f_lammps_open_with_args") + USE ISO_C_BINDING, ONLY: c_ptr + USE MPI, ONLY: MPI_COMM_WORLD, mpi_comm_split + USE liblammps + USE keepcreate, ONLY: lmp,mycomm + IMPLICIT NONE + TYPE(c_ptr) :: f_lammps_open_with_args + INTEGER :: color, key, ierr + + CHARACTER(len=*), DIMENSION(*), PARAMETER :: args = & + [ CHARACTER(len=12) :: 'liblammps', '-log', 'none', '-nocite' ] + + color = 2 + key = 1 + CALL mpi_comm_split(MPI_COMM_WORLD, color, key, mycomm, ierr) + lmp = lammps(args,mycomm) + f_lammps_open_with_args = lmp%handle +END FUNCTION f_lammps_open_with_args + +SUBROUTINE f_lammps_close() BIND(C, name="f_lammps_close") + USE ISO_C_BINDING, ONLY: c_null_ptr + USE liblammps + USE keepcreate, ONLY: lmp + IMPLICIT NONE + + CALL lmp%close() + lmp%handle = c_null_ptr +END SUBROUTINE f_lammps_close + +FUNCTION f_lammps_get_comm() BIND(C, name="f_lammps_get_comm") + USE liblammps + USE keepcreate, ONLY: mycomm + IMPLICIT NONE + INTEGER :: f_lammps_get_comm + + f_lammps_get_comm = mycomm +END FUNCTION f_lammps_get_comm + + diff --git a/unittest/fortran/mpi_stubs.f90 b/unittest/fortran/mpi_stubs.f90 new file mode 100644 index 0000000000..3f87fc38f7 --- /dev/null +++ b/unittest/fortran/mpi_stubs.f90 @@ -0,0 +1,20 @@ +MODULE MPI + IMPLICIT NONE + PRIVATE + + INTEGER, PARAMETER :: MPI_COMM_WORLD=0 + INTEGER, PARAMETER :: MPI_SUCCESS=0 + + PUBLIC :: MPI_COMM_WORLD, MPI_SUCCESS, & + mpi_comm_split + +CONTAINS + + SUBROUTINE mpi_comm_split(comm,color,key,newcomm,ierr) + INTEGER, INTENT(in) :: comm,color,key + INTEGER, INTENT(out) :: newcomm,ierr + + newcomm = comm + 1 + ierr = 0 + END SUBROUTINE mpi_comm_split +END MODULE MPI diff --git a/unittest/fortran/wrap-commands.cpp b/unittest/fortran/wrap-commands.cpp new file mode 100644 index 0000000000..493e7c4590 --- /dev/null +++ b/unittest/fortran/wrap-commands.cpp @@ -0,0 +1,65 @@ +// unit tests for issuing command to a LAMMPS instance through the Fortran wrapper + +#include "lammps.h" +#include +#include // for stdin, stdout +#include + +#include "gtest/gtest.h" + +// prototypes for fortran reverse wrapper functions +extern "C" { + void *f_lammps_with_args(); + void f_lammps_close(); + void f_lammps_file(); + void f_lammps_command(); + void f_lammps_commands_list(); + void f_lammps_commands_string(); + double f_lammps_get_natoms(); +} + +class LAMMPS_commands : public ::testing::Test +{ +protected: + LAMMPS_NS::LAMMPS *lmp; + LAMMPS_commands() {}; + ~LAMMPS_commands() override {}; + + void SetUp() override { + ::testing::internal::CaptureStdout(); + lmp = (LAMMPS_NS::LAMMPS *)f_lammps_with_args(); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,8).c_str(), "LAMMPS ("); + } + void TearDown() override { + ::testing::internal::CaptureStdout(); + f_lammps_close(); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); + lmp = nullptr; + } +}; + +TEST_F(LAMMPS_commands, from_file) { + EXPECT_EQ(f_lammps_get_natoms(),0); + f_lammps_file(); + EXPECT_EQ(f_lammps_get_natoms(),2); +}; + +TEST_F(LAMMPS_commands, from_line) { + EXPECT_EQ(f_lammps_get_natoms(),0); + f_lammps_command(); + EXPECT_EQ(f_lammps_get_natoms(),1); +}; + +TEST_F(LAMMPS_commands, from_list) { + EXPECT_EQ(f_lammps_get_natoms(),0); + f_lammps_commands_list(); + EXPECT_EQ(f_lammps_get_natoms(),2); +}; + +TEST_F(LAMMPS_commands, from_string) { + EXPECT_EQ(f_lammps_get_natoms(),0); + f_lammps_commands_string(); + EXPECT_EQ(f_lammps_get_natoms(),2); +}; diff --git a/unittest/fortran/wrap-create.cpp b/unittest/fortran/wrap-create.cpp new file mode 100644 index 0000000000..37443aba64 --- /dev/null +++ b/unittest/fortran/wrap-create.cpp @@ -0,0 +1,97 @@ +// unit tests for the LAMMPS base class + +#include "lammps.h" +#include +#include // for stdin, stdout +#include + +#include "gtest/gtest.h" + +// prototypes for fortran reverse wrapper functions +extern "C" { + void *f_lammps_open_no_args(); + void *f_lammps_open_with_args(); + void *f_lammps_no_mpi_no_args(); + void *f_lammps_no_mpi_with_args(); + void f_lammps_close(); + int f_lammps_get_comm(); +} + +TEST(open_no_mpi, no_args) { + ::testing::internal::CaptureStdout(); + int mpi_init=0; + MPI_Initialized(&mpi_init); + EXPECT_EQ(mpi_init,0); + void *handle = f_lammps_no_mpi_no_args(); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,6).c_str(),"LAMMPS"); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + MPI_Initialized(&mpi_init); + EXPECT_NE(mpi_init,0); + EXPECT_EQ(lmp->world, MPI_COMM_WORLD); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->screen, stdout); + EXPECT_NE(lmp->citeme, nullptr); + ::testing::internal::CaptureStdout(); + f_lammps_close(); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); +} + +TEST(open_no_mpi, with_args) { + ::testing::internal::CaptureStdout(); + void *handle = f_lammps_no_mpi_with_args(); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,6).c_str(),"LAMMPS"); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->screen, stdout); + EXPECT_EQ(lmp->logfile, nullptr); + EXPECT_EQ(lmp->citeme, nullptr); + EXPECT_EQ(lmp->world, MPI_COMM_WORLD); + + ::testing::internal::CaptureStdout(); + f_lammps_close(); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); +} + +TEST(fortran_open, no_args) { + ::testing::internal::CaptureStdout(); + void *handle = f_lammps_open_no_args(); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,6).c_str(),"LAMMPS"); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + + int f_comm = f_lammps_get_comm(); + MPI_Comm mycomm = MPI_Comm_f2c(f_comm); + EXPECT_EQ(lmp->world, mycomm); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->screen, stdout); + EXPECT_NE(lmp->citeme, nullptr); + ::testing::internal::CaptureStdout(); + f_lammps_close(); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); +} + +TEST(fortran_open, with_args) { + ::testing::internal::CaptureStdout(); + void *handle = f_lammps_open_with_args(); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,6).c_str(),"LAMMPS"); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + + int f_comm = f_lammps_get_comm(); + MPI_Comm mycomm = MPI_Comm_f2c(f_comm); + EXPECT_EQ(lmp->world, mycomm); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_EQ(lmp->screen, stdout); + EXPECT_EQ(lmp->logfile, nullptr); + EXPECT_EQ(lmp->citeme, nullptr); + + ::testing::internal::CaptureStdout(); + f_lammps_close(); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_STREQ(output.substr(0,16).c_str(), "Total wall time:"); +} -- GitLab From cec18b6aef75e3237e2822ad533506ba536ad14e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 20:57:19 -0400 Subject: [PATCH 123/165] add docs for the new fortran interface --- doc/src/pg_fortran.rst | 174 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 172 insertions(+), 2 deletions(-) diff --git a/doc/src/pg_fortran.rst b/doc/src/pg_fortran.rst index d028337b2c..a6085da13a 100644 --- a/doc/src/pg_fortran.rst +++ b/doc/src/pg_fortran.rst @@ -10,7 +10,7 @@ used from multiple compiler versions from different vendors for as long as they are compatible with the hosting operating system, the same is not true for Fortran codes. Thus the LAMMPS Fortran module needs to be compiled alongside the code using it from the source code in -``examples/COUPLE/fortran/lammps.f90``. When linking, you also need to +``fortran/lammps.f90``. When linking, you also need to :doc:`link to the LAMMPS library `. A typical command line for a simple program using the Fortran interface would be: @@ -19,5 +19,175 @@ for a simple program using the Fortran interface would be: mpifort -o testlib.x lammps.f90 testlib.f90 -L. -llammps Please note, that the MPI compiler wrapper is only required when the -calling the library from an MPI parallel code. +calling the library from an MPI parallel code. Please also note the order +of the source files: the lammps.f90 file needs to be compiled first, +since it provides the ``LIBLAMMPS`` module that is imported by the +fortran code using the interface. + +---------- + +Creating or deleting a LAMMPS object +************************************ + +With the Fortran interface the creation of a :cpp:class:`LAMMPS +` instance is included in the constructor for +creating the :f:func:`lammps` derived type. To import the definition of +that type and its type bound procedures you need to add a ``USE +LIBLAMMPS`` statement. Internally it will call either +:cpp:func:`lammps_open_fortran` or :cpp:func:`lammps_open_no_mpi` from +the C library API to create the class instance. All arguments are +optional and :cpp:func:`lammps_mpi_init` will be called automatically, +if it is needed. Similarly, a possible call to :cpp:func:`lammps_finalize` +is integrated into the :f:func:`close` function and triggered with +the optional logical argument set to ``.true.``. Here is a simple example: + +.. code-block:: fortran + + PROGRAM testlib + USE LIBLAMMPS ! include the LAMMPS library interface + TYPE(lammps) :: lmp ! derived type to hold LAMMPS instance + CHARACTER(len=*), DIMENSION(*), PARAMETER :: args = & + [ CHARACTER(len=12) :: 'liblammps', '-log', 'none' ] + + ! create a LAMMPS instance (and initialize MPI) + lmp = lammps(args) + ! get and print numerical version code + PRINT*, 'LAMMPS Version: ', lmp%version() + ! delete LAMMPS instance (and shuts down MPI) + CALL lmp%close(.true.) + + END PROGRAM testlib + +-------------------- + +Executing LAMMPS commands +========================= + +Once a LAMMPS instance is created, it is possible to "drive" the LAMMPS +simulation by telling LAMMPS to read commands from a file, or pass +individual or multiple commands from strings or lists of strings. This +is done similar to how it is implemented in the `C-library +` interface. Before handing off the calls to the +C-library interface, the corresponding Fortran versions of the calls +(:f:func:`file`, :f:func:`command`, :f:func:`commands_list`, and +:f:func:`commands_string`) have to make a copy of the strings passed as +arguments so that they can be modified to be compatible with the +requirements of strings in C without affecting the original strings. +Those copies are automatically deleted after the functions return. +Below is a small demonstration of the uses of the different functions: + +.. code-block:: fortran + + PROGRAM testcmd + USE LIBLAMMPS + TYPE(lammps) :: lmp + CHARACTER(len=512) :: cmds + CHARACTER(len=40),ALLOCATABLE :: cmdlist(:) + CHARACTER(len=10) :: trimmed + INTEGER :: i + + lmp = lammps() + CALL lmp%file('in.melt') + CALL lmp%command('variable zpos index 1.0') + ! define 10 groups of 10 atoms each + ALLOCATE(cmdlist(10)) + DO i=1,10 + WRITE(trimmed,'(I10)') 10*i + WRITE(cmdlist(i),'(A,I1,A,I10,A,A)') & + 'group g',i-1,' id ',10*(i-1)+1,':',ADJUSTL(trimmed) + END DO + CALL lmp%commands_list(cmdlist) + ! run multiple commands from multi-line string + cmds = 'clear' // NEW_LINE('A') // & + 'region box block 0 2 0 2 0 2' // NEW_LINE('A') // & + 'create_box 1 box' // NEW_LINE('A') // & + 'create_atoms 1 single 1.0 1.0 ${zpos}' + CALL lmp%commands_string(cmds) + CALL lmp%close() + + END PROGRAM testcmd + +--------------- + +The ``LIBLAMMPS`` module API +**************************** + +Below are the detailed descriptions of definitions and interfaces +of the contents of the ``LIBLAMMPS`` Fortran interface to LAMMPS. + +.. f:type:: lammps + + Derived type that is the general class of the Fortran interface. + It holds a reference to the :cpp:class:`LAMMPS ` class instance + that any of the included calls are forwarded to. + + :f c_ptr handle: reference to the LAMMPS class + :f close: :f:func:`close` + :f version: :f:func:`version` + :f file: :f:func:`file` + :f command: :f:func:`command` + :f commands_list: :f:func:`commands_list` + :f commands_string: :f:func:`commands_string` + +.. f:function:: lammps(args[,comm]) + + This is the constructor for the Fortran class and will forward + the arguments to a call to either :cpp:func:`lammps_open_fortran` + or :cpp:func:`lammps_open_no_mpi`. If the LAMMPS library has been + compiled with MPI support, it will also initialize MPI, if it has + not already been initialized before. + + The *args* argument with the list of command line parameters is + optional and so it the *comm* argument with the MPI communicator. + If *comm* is not provided, ``MPI_COMM_WORLD`` is assumed. For + more details please see the documentation of :cpp:func:`lammps_open`. + + :p character(len=*) args(*) [optional]: arguments as list of strings + :o integer comm [optional]: MPI communicator + :r lammps: an instance of the :f:type:`lammps` derived type + +.. f:subroutine:: close([finalize]) + + This method will close down the LAMMPS instance through calling + :cpp:func:`lammps_close`. If the *finalize* argument is present and + has a value of ``.true.``, then this subroutine also calls + :cpp:func:`lammps_mpi_finalize`. + + :o logical finalize [optional]: shut down the MPI environment of the LAMMPS library if true. + +.. f:function:: version() + + This method returns the numeric LAMMPS version like :cpp:func:`lammps_version` + + :r integer: LAMMPS version + +-------- + +.. f:subroutine:: file(filename) + + This method will call :cpp:func:`lammps_file` to have LAMMPS read + and process commands from a file. + + :p character(len=*) filename: name of file with LAMMPS commands + +.. f:subroutine:: command(cmd) + + This method will call :cpp:func:`lammps_command` to have LAMMPS + execute a single command. + + :p character(len=*) cmd: single LAMMPS command + +.. f:subroutine:: commands_list(cmds) + + This method will call :cpp:func:`lammps_commands_list` to have LAMMPS + execute a list of input lines. + + :p character(len=*) cmd(*): list of LAMMPS input lines + +.. f:subroutine:: commands_string(str) + + This method will call :cpp:func:`lammps_commands_string` to have LAMMPS + execute a block of commands from a string. + + :p character(len=*) str: LAMMPS input in string -- GitLab From 31c91a8928acbee2aa2fda265c8a11cec8551672 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Aug 2020 21:22:06 -0400 Subject: [PATCH 124/165] fix typo --- doc/src/pg_library.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/pg_library.rst b/doc/src/pg_library.rst index 871ac5aaa5..9193b56214 100644 --- a/doc/src/pg_library.rst +++ b/doc/src/pg_library.rst @@ -111,7 +111,7 @@ LAMMPS Python APIs The LAMMPS Python module enables calling the LAMMPS C library API from Python by dynamically loading functions in the LAMMPS shared library through the `Python ctypes module `_. -Because of the dynamics loading, it is **required** that LAMMPS is compiled +Because of the dynamic loading, it is **required** that LAMMPS is compiled in :ref:`"shared" mode `. The Python interface is object oriented, but otherwise trying to be very similar to the C library API. Three different Python classes to run LAMMPS are available and they build on each other. -- GitLab From 60dfb6f77f2d9c0eb8bb8609da119696436500fb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 12 May 2020 18:09:05 -0400 Subject: [PATCH 125/165] still need to disable variable tracking to silence unwanted warnings on ubuntu --- src/lmptype.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/lmptype.h b/src/lmptype.h index 68af28af61..e2e7a88a42 100644 --- a/src/lmptype.h +++ b/src/lmptype.h @@ -250,17 +250,23 @@ The typecast prevents compiler warnings about possible truncations. // functions and avoid compiler warnings about variable tracking. // Disable for broken -D_FORTIFY_SOURCE feature. -#if defined(_FORTIFY_SOURCE) && (_FORTIFY_SOURCE > 0) -#define _noopt -#elif defined(__clang__) +#if defined(__clang__) # define _noopt __attribute__((optnone)) #elif defined(__INTEL_COMPILER) # define _noopt #elif defined(__GNUC__) # if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) -# define _noopt __attribute__((optimize("O0","no-var-tracking-assignments"))) +# if defined(_FORTIFY_SOURCE) && (_FORTIFY_SOURCE > 0) +# define _noopt __attribute__((optimize("no-var-tracking-assignments"))) +# else +# define _noopt __attribute__((optimize("O0","no-var-tracking-assignments"))) +# endif # else -# define _noopt __attribute__((optimize("O0"))) +# if defined(_FORTIFY_SOURCE) && (_FORTIFY_SOURCE > 0) +# define _noopt +# else +# define _noopt __attribute__((optimize("O0"))) +# endif # endif #else # define _noopt -- GitLab From fcd0b9f78f61d0c4d6cfd012e6fe4d4270b87b4a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 18:23:03 -0400 Subject: [PATCH 126/165] move Force::bounds() and Force::boundsbig() to utils. --- src/ASPHERE/pair_gayberne.cpp | 4 +- src/ASPHERE/pair_line_lj.cpp | 5 +- src/ASPHERE/pair_resquared.cpp | 4 +- src/ASPHERE/pair_tri_lj.cpp | 5 +- src/BODY/pair_body_nparticle.cpp | 5 +- src/BODY/pair_body_rounded_polygon.cpp | 5 +- src/BODY/pair_body_rounded_polyhedron.cpp | 5 +- src/CLASS2/angle_class2.cpp | 2 +- src/CLASS2/bond_class2.cpp | 2 +- src/CLASS2/dihedral_class2.cpp | 2 +- src/CLASS2/improper_class2.cpp | 2 +- src/CLASS2/pair_lj_class2.cpp | 4 +- src/CLASS2/pair_lj_class2_coul_cut.cpp | 4 +- src/CLASS2/pair_lj_class2_coul_long.cpp | 4 +- src/COLLOID/pair_brownian.cpp | 4 +- src/COLLOID/pair_colloid.cpp | 4 +- src/COLLOID/pair_lubricate.cpp | 4 +- src/COLLOID/pair_lubricateU.cpp | 4 +- src/DIPOLE/pair_lj_cut_dipole_cut.cpp | 4 +- src/DIPOLE/pair_lj_cut_dipole_long.cpp | 4 +- src/DIPOLE/pair_lj_long_dipole_long.cpp | 4 +- src/GRANULAR/pair_gran_hooke_history.cpp | 4 +- src/GRANULAR/pair_granular.cpp | 4 +- src/KIM/pair_kim.cpp | 4 +- src/KOKKOS/pair_hybrid_overlay_kokkos.cpp | 5 +- src/KOKKOS/pair_table_rx_kokkos.cpp | 4 +- src/KSPACE/pair_born_coul_long.cpp | 4 +- src/KSPACE/pair_buck_coul_long.cpp | 4 +- src/KSPACE/pair_buck_long_coul_long.cpp | 4 +- src/KSPACE/pair_coul_long.cpp | 4 +- src/KSPACE/pair_lj_charmm_coul_long.cpp | 4 +- src/KSPACE/pair_lj_charmmfsw_coul_long.cpp | 4 +- src/KSPACE/pair_lj_cut_coul_long.cpp | 4 +- src/KSPACE/pair_lj_long_coul_long.cpp | 4 +- src/MANYBODY/pair_atm.cpp | 6 +- src/MANYBODY/pair_eam.cpp | 4 +- src/MC/pair_dsmc.cpp | 4 +- src/MISC/compute_ti.cpp | 3 +- src/MISC/pair_nm_cut.cpp | 4 +- src/MISC/pair_nm_cut_coul_cut.cpp | 4 +- src/MISC/pair_nm_cut_coul_long.cpp | 4 +- src/MOLECULE/angle_charmm.cpp | 2 +- src/MOLECULE/angle_cosine.cpp | 2 +- src/MOLECULE/angle_cosine_periodic.cpp | 2 +- src/MOLECULE/angle_cosine_squared.cpp | 2 +- src/MOLECULE/angle_harmonic.cpp | 2 +- src/MOLECULE/angle_table.cpp | 2 +- src/MOLECULE/bond_fene.cpp | 2 +- src/MOLECULE/bond_fene_expand.cpp | 2 +- src/MOLECULE/bond_gromos.cpp | 2 +- src/MOLECULE/bond_harmonic.cpp | 2 +- src/MOLECULE/bond_morse.cpp | 2 +- src/MOLECULE/bond_nonlinear.cpp | 2 +- src/MOLECULE/bond_quartic.cpp | 2 +- src/MOLECULE/bond_table.cpp | 2 +- src/MOLECULE/dihedral_charmm.cpp | 2 +- src/MOLECULE/dihedral_charmmfsw.cpp | 2 +- src/MOLECULE/dihedral_harmonic.cpp | 2 +- src/MOLECULE/dihedral_helix.cpp | 2 +- src/MOLECULE/dihedral_multi_harmonic.cpp | 2 +- src/MOLECULE/dihedral_opls.cpp | 2 +- src/MOLECULE/improper_cvff.cpp | 2 +- src/MOLECULE/improper_harmonic.cpp | 2 +- src/MOLECULE/improper_umbrella.cpp | 2 +- src/MOLECULE/pair_hbond_dreiding_lj.cpp | 7 +- src/MOLECULE/pair_hbond_dreiding_morse.cpp | 7 +- src/MOLECULE/pair_lj_charmm_coul_charmm.cpp | 4 +- .../pair_lj_charmmfsw_coul_charmmfsh.cpp | 4 +- src/MOLECULE/pair_lj_cut_tip4p_cut.cpp | 4 +- src/MOLECULE/pair_tip4p_cut.cpp | 4 +- src/PERI/pair_peri_eps.cpp | 4 +- src/PERI/pair_peri_lps.cpp | 4 +- src/PERI/pair_peri_pmb.cpp | 4 +- src/PERI/pair_peri_ves.cpp | 4 +- src/QEQ/fix_qeq.cpp | 2 +- src/RIGID/fix_rigid.cpp | 4 +- src/SPIN/pair_spin_dipole_cut.cpp | 4 +- src/SPIN/pair_spin_dipole_long.cpp | 4 +- src/SPIN/pair_spin_dmi.cpp | 4 +- src/SPIN/pair_spin_exchange.cpp | 4 +- src/SPIN/pair_spin_magelec.cpp | 4 +- src/SPIN/pair_spin_neel.cpp | 4 +- src/USER-AWPMD/pair_awpmd_cut.cpp | 4 +- src/USER-CGDNA/bond_oxdna_fene.cpp | 2 +- src/USER-CGDNA/pair_oxdna2_coaxstk.cpp | 4 +- src/USER-CGDNA/pair_oxdna2_dh.cpp | 4 +- src/USER-CGDNA/pair_oxdna_coaxstk.cpp | 4 +- src/USER-CGDNA/pair_oxdna_excv.cpp | 4 +- src/USER-CGDNA/pair_oxdna_hbond.cpp | 4 +- src/USER-CGDNA/pair_oxdna_stk.cpp | 4 +- src/USER-CGDNA/pair_oxdna_xstk.cpp | 4 +- src/USER-CGDNA/pair_oxrna2_stk.cpp | 4 +- src/USER-CGDNA/pair_oxrna2_xstk.cpp | 4 +- src/USER-CGSDK/angle_sdk.cpp | 2 +- src/USER-CGSDK/pair_lj_sdk.cpp | 4 +- src/USER-CGSDK/pair_lj_sdk_coul_long.cpp | 4 +- src/USER-DPD/pair_dpd_fdt.cpp | 4 +- src/USER-DPD/pair_dpd_fdt_energy.cpp | 4 +- src/USER-DPD/pair_exp6_rx.cpp | 4 +- src/USER-DPD/pair_multi_lucy.cpp | 4 +- src/USER-DPD/pair_multi_lucy_rx.cpp | 4 +- src/USER-DPD/pair_table_rx.cpp | 4 +- src/USER-DRUDE/pair_lj_cut_thole_long.cpp | 4 +- src/USER-DRUDE/pair_thole.cpp | 4 +- src/USER-EFF/pair_eff_cut.cpp | 4 +- src/USER-FEP/compute_fep.cpp | 13 +- src/USER-FEP/fix_adapt_fep.cpp | 13 +- src/USER-FEP/pair_coul_cut_soft.cpp | 4 +- src/USER-FEP/pair_coul_long_soft.cpp | 4 +- .../pair_lj_charmm_coul_long_soft.cpp | 4 +- src/USER-FEP/pair_lj_class2_coul_cut_soft.cpp | 4 +- .../pair_lj_class2_coul_long_soft.cpp | 4 +- src/USER-FEP/pair_lj_class2_soft.cpp | 4 +- src/USER-FEP/pair_lj_cut_coul_cut_soft.cpp | 4 +- src/USER-FEP/pair_lj_cut_coul_long_soft.cpp | 4 +- src/USER-FEP/pair_lj_cut_soft.cpp | 4 +- src/USER-FEP/pair_morse_soft.cpp | 4 +- src/USER-LB/fix_lb_rigid_pc_sphere.cpp | 5 +- src/USER-MESODPD/pair_edpd.cpp | 4 +- src/USER-MESODPD/pair_mdpd.cpp | 4 +- src/USER-MESODPD/pair_mdpd_rhosum.cpp | 5 +- src/USER-MESODPD/pair_tdpd.cpp | 4 +- src/USER-MESONT/pair_mesont_tpm.cpp | 4 +- src/USER-MISC/angle_cosine_shift.cpp | 2 +- src/USER-MISC/angle_cosine_shift_exp.cpp | 2 +- src/USER-MISC/angle_dipole.cpp | 2 +- src/USER-MISC/angle_fourier.cpp | 2 +- src/USER-MISC/angle_fourier_simple.cpp | 2 +- src/USER-MISC/angle_quartic.cpp | 2 +- src/USER-MISC/bond_harmonic_shift.cpp | 2 +- src/USER-MISC/bond_harmonic_shift_cut.cpp | 2 +- src/USER-MISC/bond_special.cpp | 3 +- src/USER-MISC/dihedral_cosine_shift_exp.cpp | 2 +- src/USER-MISC/dihedral_fourier.cpp | 2 +- src/USER-MISC/dihedral_nharmonic.cpp | 2 +- src/USER-MISC/dihedral_quadratic.cpp | 2 +- src/USER-MISC/dihedral_spherical.cpp | 2 +- src/USER-MISC/dihedral_table.cpp | 2 +- src/USER-MISC/dihedral_table_cut.cpp | 2 +- src/USER-MISC/improper_cossq.cpp | 2 +- src/USER-MISC/improper_distance.cpp | 2 +- src/USER-MISC/improper_fourier.cpp | 2 +- src/USER-MISC/improper_ring.cpp | 2 +- src/USER-MISC/pair_buck_mdf.cpp | 4 +- src/USER-MISC/pair_cosine_squared.cpp | 4 +- src/USER-MISC/pair_coul_diel.cpp | 4 +- src/USER-MISC/pair_coul_shield.cpp | 4 +- src/USER-MISC/pair_coul_slater_long.cpp | 5 +- src/USER-MISC/pair_gauss_cut.cpp | 4 +- src/USER-MISC/pair_kolmogorov_crespi_z.cpp | 4 +- src/USER-MISC/pair_lebedeva_z.cpp | 4 +- src/USER-MISC/pair_lennard_mdf.cpp | 4 +- src/USER-MISC/pair_list.cpp | 5 +- src/USER-MISC/pair_lj_expand_coul_long.cpp | 4 +- src/USER-MISC/pair_lj_mdf.cpp | 4 +- src/USER-MISC/pair_lj_sf_dipole_sf.cpp | 4 +- src/USER-MISC/pair_momb.cpp | 4 +- src/USER-MISC/pair_morse_smooth_linear.cpp | 4 +- src/USER-MISC/pair_srp.cpp | 4 +- src/USER-MOFFF/angle_class2_p6.cpp | 2 +- src/USER-MOFFF/angle_cosine_buck6d.cpp | 2 +- .../improper_inversion_harmonic.cpp | 2 +- src/USER-MOFFF/pair_buck6d_coul_gauss_dsf.cpp | 4 +- .../pair_buck6d_coul_gauss_long.cpp | 4 +- .../pair_sdpd_taitwater_isothermal.cpp | 5 +- src/USER-SMD/pair_smd_hertz.cpp | 5 +- .../pair_smd_triangulated_surface.cpp | 5 +- src/USER-SPH/pair_sph_heatconduction.cpp | 5 +- src/USER-SPH/pair_sph_idealgas.cpp | 5 +- src/USER-SPH/pair_sph_lj.cpp | 5 +- src/USER-SPH/pair_sph_rhosum.cpp | 5 +- src/USER-SPH/pair_sph_taitwater.cpp | 5 +- src/USER-SPH/pair_sph_taitwater_morris.cpp | 5 +- src/USER-YAFF/angle_cross.cpp | 2 +- src/USER-YAFF/angle_mm3.cpp | 2 +- src/USER-YAFF/bond_mm3.cpp | 2 +- src/USER-YAFF/improper_distharm.cpp | 2 +- src/USER-YAFF/improper_sqdistharm.cpp | 2 +- .../pair_lj_switch3_coulgauss_long.cpp | 4 +- .../pair_mm3_switch3_coulgauss_long.cpp | 4 +- src/angle_hybrid.cpp | 2 +- src/angle_zero.cpp | 2 +- src/bond_hybrid.cpp | 2 +- src/bond_zero.cpp | 2 +- src/comm.cpp | 2 +- src/compute_adf.cpp | 7 +- src/compute_coord_atom.cpp | 2 +- src/compute_rdf.cpp | 5 +- src/delete_bonds.cpp | 4 +- src/dihedral_hybrid.cpp | 2 +- src/dihedral_zero.cpp | 3 +- src/dump_image.cpp | 9 +- src/fix_adapt.cpp | 12 +- src/force.cpp | 68 ------ src/force.h | 2 - src/improper_hybrid.cpp | 2 +- src/improper_zero.cpp | 3 +- src/pair_beck.cpp | 4 +- src/pair_born.cpp | 4 +- src/pair_born_coul_dsf.cpp | 4 +- src/pair_born_coul_wolf.cpp | 4 +- src/pair_buck.cpp | 4 +- src/pair_buck_coul_cut.cpp | 4 +- src/pair_coul_cut.cpp | 4 +- src/pair_coul_dsf.cpp | 4 +- src/pair_coul_wolf.cpp | 4 +- src/pair_dpd.cpp | 4 +- src/pair_dpd_tstat.cpp | 4 +- src/pair_gauss.cpp | 4 +- src/pair_hybrid.cpp | 4 +- src/pair_hybrid_overlay.cpp | 5 +- src/pair_lj96_cut.cpp | 4 +- src/pair_lj_cubic.cpp | 4 +- src/pair_lj_cut.cpp | 4 +- src/pair_lj_cut_coul_cut.cpp | 4 +- src/pair_lj_cut_coul_dsf.cpp | 4 +- src/pair_lj_cut_coul_wolf.cpp | 4 +- src/pair_lj_expand.cpp | 4 +- src/pair_lj_gromacs.cpp | 4 +- src/pair_lj_gromacs_coul_gromacs.cpp | 4 +- src/pair_lj_smooth.cpp | 4 +- src/pair_lj_smooth_linear.cpp | 4 +- src/pair_mie_cut.cpp | 4 +- src/pair_morse.cpp | 4 +- src/pair_soft.cpp | 4 +- src/pair_table.cpp | 4 +- src/pair_ufm.cpp | 4 +- src/pair_yukawa.cpp | 4 +- src/pair_zbl.cpp | 4 +- src/pair_zero.cpp | 4 +- src/set.cpp | 6 +- src/utils.cpp | 214 ++++++++++++++++++ src/utils.h | 118 ++++++++-- 233 files changed, 751 insertions(+), 498 deletions(-) diff --git a/src/ASPHERE/pair_gayberne.cpp b/src/ASPHERE/pair_gayberne.cpp index 51896aab85..1c63ddbb5d 100644 --- a/src/ASPHERE/pair_gayberne.cpp +++ b/src/ASPHERE/pair_gayberne.cpp @@ -294,8 +294,8 @@ void PairGayBerne::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/ASPHERE/pair_line_lj.cpp b/src/ASPHERE/pair_line_lj.cpp index fdeb09aac4..48b35e4cd1 100644 --- a/src/ASPHERE/pair_line_lj.cpp +++ b/src/ASPHERE/pair_line_lj.cpp @@ -20,6 +20,7 @@ #include "neigh_list.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -367,8 +368,8 @@ void PairLineLJ::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double size_itype = force->numeric(FLERR,arg[2]); double size_jtype = force->numeric(FLERR,arg[3]); diff --git a/src/ASPHERE/pair_resquared.cpp b/src/ASPHERE/pair_resquared.cpp index dd4b11935e..4e653e4838 100644 --- a/src/ASPHERE/pair_resquared.cpp +++ b/src/ASPHERE/pair_resquared.cpp @@ -266,8 +266,8 @@ void PairRESquared::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/ASPHERE/pair_tri_lj.cpp b/src/ASPHERE/pair_tri_lj.cpp index 0984b0a30c..d71cc0b7a9 100644 --- a/src/ASPHERE/pair_tri_lj.cpp +++ b/src/ASPHERE/pair_tri_lj.cpp @@ -21,6 +21,7 @@ #include "neigh_list.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -438,8 +439,8 @@ void PairTriLJ::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/BODY/pair_body_nparticle.cpp b/src/BODY/pair_body_nparticle.cpp index bd7aba5455..f2b1fa77f9 100644 --- a/src/BODY/pair_body_nparticle.cpp +++ b/src/BODY/pair_body_nparticle.cpp @@ -23,6 +23,7 @@ #include "neigh_list.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -385,8 +386,8 @@ void PairBodyNparticle::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp index 22a6d82b44..7e213eba1c 100644 --- a/src/BODY/pair_body_rounded_polygon.cpp +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -34,6 +34,7 @@ #include "neigh_list.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -385,8 +386,8 @@ void PairBodyRoundedPolygon::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double k_n_one = force->numeric(FLERR,arg[2]); double k_na_one = force->numeric(FLERR,arg[3]); diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index ff7e7fc25e..d3e92ab2f6 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -37,6 +37,7 @@ #include "error.h" #include "math_extra.h" #include "math_const.h" +#include "utils.h" using namespace LAMMPS_NS; using namespace MathConst; @@ -363,8 +364,8 @@ void PairBodyRoundedPolyhedron::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double k_n_one = force->numeric(FLERR,arg[2]); double k_na_one = force->numeric(FLERR,arg[3]); diff --git a/src/CLASS2/angle_class2.cpp b/src/CLASS2/angle_class2.cpp index fe567ead34..79d71b2ee4 100644 --- a/src/CLASS2/angle_class2.cpp +++ b/src/CLASS2/angle_class2.cpp @@ -273,7 +273,7 @@ void AngleClass2::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); int count = 0; diff --git a/src/CLASS2/bond_class2.cpp b/src/CLASS2/bond_class2.cpp index 7feec1a4b3..d6b802a11a 100644 --- a/src/CLASS2/bond_class2.cpp +++ b/src/CLASS2/bond_class2.cpp @@ -134,7 +134,7 @@ void BondClass2::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double r0_one = force->numeric(FLERR,arg[1]); double k2_one = force->numeric(FLERR,arg[2]); diff --git a/src/CLASS2/dihedral_class2.cpp b/src/CLASS2/dihedral_class2.cpp index 73b6a420e8..e08661a480 100644 --- a/src/CLASS2/dihedral_class2.cpp +++ b/src/CLASS2/dihedral_class2.cpp @@ -639,7 +639,7 @@ void DihedralClass2::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); int count = 0; diff --git a/src/CLASS2/improper_class2.cpp b/src/CLASS2/improper_class2.cpp index 2d5918fdef..d150a5b7b4 100644 --- a/src/CLASS2/improper_class2.cpp +++ b/src/CLASS2/improper_class2.cpp @@ -523,7 +523,7 @@ void ImproperClass2::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); int count = 0; diff --git a/src/CLASS2/pair_lj_class2.cpp b/src/CLASS2/pair_lj_class2.cpp index 47b3185bbf..bdd922bce6 100644 --- a/src/CLASS2/pair_lj_class2.cpp +++ b/src/CLASS2/pair_lj_class2.cpp @@ -457,8 +457,8 @@ void PairLJClass2::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/CLASS2/pair_lj_class2_coul_cut.cpp b/src/CLASS2/pair_lj_class2_coul_cut.cpp index 3635c21c8c..da5732c9bd 100644 --- a/src/CLASS2/pair_lj_class2_coul_cut.cpp +++ b/src/CLASS2/pair_lj_class2_coul_cut.cpp @@ -223,8 +223,8 @@ void PairLJClass2CoulCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/CLASS2/pair_lj_class2_coul_long.cpp b/src/CLASS2/pair_lj_class2_coul_long.cpp index 0bb802579c..c8487e8c1d 100644 --- a/src/CLASS2/pair_lj_class2_coul_long.cpp +++ b/src/CLASS2/pair_lj_class2_coul_long.cpp @@ -633,8 +633,8 @@ void PairLJClass2CoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/COLLOID/pair_brownian.cpp b/src/COLLOID/pair_brownian.cpp index d73789d890..46ec5c9d2f 100644 --- a/src/COLLOID/pair_brownian.cpp +++ b/src/COLLOID/pair_brownian.cpp @@ -419,8 +419,8 @@ void PairBrownian::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_inner_one = cut_inner_global; double cut_one = cut_global; diff --git a/src/COLLOID/pair_colloid.cpp b/src/COLLOID/pair_colloid.cpp index d1c6e4594f..e97684dcd1 100644 --- a/src/COLLOID/pair_colloid.cpp +++ b/src/COLLOID/pair_colloid.cpp @@ -269,8 +269,8 @@ void PairColloid::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a12_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/COLLOID/pair_lubricate.cpp b/src/COLLOID/pair_lubricate.cpp index a72eaef679..59b3fd2909 100644 --- a/src/COLLOID/pair_lubricate.cpp +++ b/src/COLLOID/pair_lubricate.cpp @@ -501,8 +501,8 @@ void PairLubricate::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_inner_one = cut_inner_global; double cut_one = cut_global; diff --git a/src/COLLOID/pair_lubricateU.cpp b/src/COLLOID/pair_lubricateU.cpp index b0e21256ac..0a003cd0ab 100644 --- a/src/COLLOID/pair_lubricateU.cpp +++ b/src/COLLOID/pair_lubricateU.cpp @@ -1734,8 +1734,8 @@ void PairLubricateU::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_inner_one = cut_inner_global; double cut_one = cut_global; diff --git a/src/DIPOLE/pair_lj_cut_dipole_cut.cpp b/src/DIPOLE/pair_lj_cut_dipole_cut.cpp index 9f9e897357..bd68a9445a 100644 --- a/src/DIPOLE/pair_lj_cut_dipole_cut.cpp +++ b/src/DIPOLE/pair_lj_cut_dipole_cut.cpp @@ -326,8 +326,8 @@ void PairLJCutDipoleCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/DIPOLE/pair_lj_cut_dipole_long.cpp b/src/DIPOLE/pair_lj_cut_dipole_long.cpp index 7fc03005b5..5d78d9bfd3 100644 --- a/src/DIPOLE/pair_lj_cut_dipole_long.cpp +++ b/src/DIPOLE/pair_lj_cut_dipole_long.cpp @@ -373,8 +373,8 @@ void PairLJCutDipoleLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/DIPOLE/pair_lj_long_dipole_long.cpp b/src/DIPOLE/pair_lj_long_dipole_long.cpp index 7dc596eccb..27af0b7ff4 100644 --- a/src/DIPOLE/pair_lj_long_dipole_long.cpp +++ b/src/DIPOLE/pair_lj_long_dipole_long.cpp @@ -191,8 +191,8 @@ void PairLJLongDipoleLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index af46d813ca..04f1cb0a95 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -385,8 +385,8 @@ void PairGranHookeHistory::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index 8bf2d1bf17..b677c7711d 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -784,8 +784,8 @@ void PairGranular::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); //Defaults normal_model_one = tangential_model_one = -1; diff --git a/src/KIM/pair_kim.cpp b/src/KIM/pair_kim.cpp index 7d2333aab1..69586b55d6 100644 --- a/src/KIM/pair_kim.cpp +++ b/src/KIM/pair_kim.cpp @@ -343,8 +343,8 @@ void PairKIM::coeff(int narg, char **arg) error->all(FLERR,"Incorrect args for pair coefficients"); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // read args that map atom species to KIM elements // lmps_map_species_to_unique[i] = diff --git a/src/KOKKOS/pair_hybrid_overlay_kokkos.cpp b/src/KOKKOS/pair_hybrid_overlay_kokkos.cpp index 0cebd79c88..a051b7bf4d 100644 --- a/src/KOKKOS/pair_hybrid_overlay_kokkos.cpp +++ b/src/KOKKOS/pair_hybrid_overlay_kokkos.cpp @@ -17,6 +17,7 @@ #include "atom.h" #include "force.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -34,8 +35,8 @@ void PairHybridOverlayKokkos::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // 3rd arg = pair sub-style name // 4th arg = pair sub-style index if name used multiple times diff --git a/src/KOKKOS/pair_table_rx_kokkos.cpp b/src/KOKKOS/pair_table_rx_kokkos.cpp index 3dc325371b..28b3a0d12d 100644 --- a/src/KOKKOS/pair_table_rx_kokkos.cpp +++ b/src/KOKKOS/pair_table_rx_kokkos.cpp @@ -1025,8 +1025,8 @@ void PairTableRXKokkos::coeff(int narg, char **arg) if (!rx_flag) error->all(FLERR,"PairTableRX requires a fix rx command."); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int me; MPI_Comm_rank(world,&me); diff --git a/src/KSPACE/pair_born_coul_long.cpp b/src/KSPACE/pair_born_coul_long.cpp index b4d050412a..3c1391ed94 100644 --- a/src/KSPACE/pair_born_coul_long.cpp +++ b/src/KSPACE/pair_born_coul_long.cpp @@ -264,8 +264,8 @@ void PairBornCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a_one = force->numeric(FLERR,arg[2]); double rho_one = force->numeric(FLERR,arg[3]); diff --git a/src/KSPACE/pair_buck_coul_long.cpp b/src/KSPACE/pair_buck_coul_long.cpp index a63047ea9f..92086812a0 100644 --- a/src/KSPACE/pair_buck_coul_long.cpp +++ b/src/KSPACE/pair_buck_coul_long.cpp @@ -265,8 +265,8 @@ void PairBuckCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a_one = force->numeric(FLERR,arg[2]); double rho_one = force->numeric(FLERR,arg[3]); diff --git a/src/KSPACE/pair_buck_long_coul_long.cpp b/src/KSPACE/pair_buck_long_coul_long.cpp index 7408ac12b9..dc4704569e 100644 --- a/src/KSPACE/pair_buck_long_coul_long.cpp +++ b/src/KSPACE/pair_buck_long_coul_long.cpp @@ -200,8 +200,8 @@ void PairBuckLongCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,*(arg++),atom->ntypes,ilo,ihi); - force->bounds(FLERR,*(arg++),atom->ntypes,jlo,jhi); + utils::bounds(FLERR,*(arg++),1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,*(arg++),1,atom->ntypes,jlo,jhi,error); double buck_a_one = force->numeric(FLERR,*(arg++)); double buck_rho_one = force->numeric(FLERR,*(arg++)); diff --git a/src/KSPACE/pair_coul_long.cpp b/src/KSPACE/pair_coul_long.cpp index 9a9f2f3783..2cee7a7994 100644 --- a/src/KSPACE/pair_coul_long.cpp +++ b/src/KSPACE/pair_coul_long.cpp @@ -212,8 +212,8 @@ void PairCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/KSPACE/pair_lj_charmm_coul_long.cpp b/src/KSPACE/pair_lj_charmm_coul_long.cpp index 9ea6739c8e..4178660fff 100644 --- a/src/KSPACE/pair_lj_charmm_coul_long.cpp +++ b/src/KSPACE/pair_lj_charmm_coul_long.cpp @@ -647,8 +647,8 @@ void PairLJCharmmCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/KSPACE/pair_lj_charmmfsw_coul_long.cpp b/src/KSPACE/pair_lj_charmmfsw_coul_long.cpp index 36d8126eec..b1b86c7a4e 100644 --- a/src/KSPACE/pair_lj_charmmfsw_coul_long.cpp +++ b/src/KSPACE/pair_lj_charmmfsw_coul_long.cpp @@ -698,8 +698,8 @@ void PairLJCharmmfswCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/KSPACE/pair_lj_cut_coul_long.cpp b/src/KSPACE/pair_lj_cut_coul_long.cpp index 578e5be30c..b998c9b8ef 100644 --- a/src/KSPACE/pair_lj_cut_coul_long.cpp +++ b/src/KSPACE/pair_lj_cut_coul_long.cpp @@ -619,8 +619,8 @@ void PairLJCutCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/KSPACE/pair_lj_long_coul_long.cpp b/src/KSPACE/pair_lj_long_coul_long.cpp index 8ece088bd3..e226cc9912 100644 --- a/src/KSPACE/pair_lj_long_coul_long.cpp +++ b/src/KSPACE/pair_lj_long_coul_long.cpp @@ -198,8 +198,8 @@ void PairLJLongCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index e943b6bfdd..e10ebffb4f 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -224,9 +224,9 @@ void PairATM::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi,klo,khi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - force->bounds(FLERR,arg[2],atom->ntypes,klo,khi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); + utils::bounds(FLERR,arg[2],1,atom->ntypes,klo,khi,error); double nu_one = force->numeric(FLERR,arg[3]); diff --git a/src/MANYBODY/pair_eam.cpp b/src/MANYBODY/pair_eam.cpp index da2385237b..159ba55a29 100644 --- a/src/MANYBODY/pair_eam.cpp +++ b/src/MANYBODY/pair_eam.cpp @@ -378,8 +378,8 @@ void PairEAM::coeff(int narg, char **arg) // parse pair of atom types int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // read funcfl file if hasn't already been read // store filename in Funcfl data struct diff --git a/src/MC/pair_dsmc.cpp b/src/MC/pair_dsmc.cpp index ed03ca6ffc..e6d2f4fe89 100644 --- a/src/MC/pair_dsmc.cpp +++ b/src/MC/pair_dsmc.cpp @@ -245,8 +245,8 @@ void PairDSMC::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double sigma_one = force->numeric(FLERR,arg[2]); diff --git a/src/MISC/compute_ti.cpp b/src/MISC/compute_ti.cpp index 06188de238..286770017c 100644 --- a/src/MISC/compute_ti.cpp +++ b/src/MISC/compute_ti.cpp @@ -27,6 +27,7 @@ #include "input.h" #include "variable.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -79,7 +80,7 @@ ComputeTI::ComputeTI(LAMMPS *lmp, int narg, char **arg) : int n = strlen(arg[iarg]) + 1; pstyle[nterms] = new char[n]; strcpy(pstyle[nterms],arg[iarg]); - force->bounds(FLERR,arg[iarg+1],atom->ntypes,ilo[nterms],ihi[nterms]); + utils::bounds(FLERR,arg[iarg+1],1,atom->ntypes,ilo[nterms],ihi[nterms],error); iarg += 1; if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) { diff --git a/src/MISC/pair_nm_cut.cpp b/src/MISC/pair_nm_cut.cpp index 07731fe93b..9cf6700656 100644 --- a/src/MISC/pair_nm_cut.cpp +++ b/src/MISC/pair_nm_cut.cpp @@ -202,8 +202,8 @@ void PairNMCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double e0_one = force->numeric(FLERR,arg[2]); double r0_one = force->numeric(FLERR,arg[3]); diff --git a/src/MISC/pair_nm_cut_coul_cut.cpp b/src/MISC/pair_nm_cut_coul_cut.cpp index 270f4080ee..39efd4a2d1 100644 --- a/src/MISC/pair_nm_cut_coul_cut.cpp +++ b/src/MISC/pair_nm_cut_coul_cut.cpp @@ -231,8 +231,8 @@ void PairNMCutCoulCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double e0_one = force->numeric(FLERR,arg[2]); double r0_one = force->numeric(FLERR,arg[3]); diff --git a/src/MISC/pair_nm_cut_coul_long.cpp b/src/MISC/pair_nm_cut_coul_long.cpp index b63ede2b63..073cf59128 100644 --- a/src/MISC/pair_nm_cut_coul_long.cpp +++ b/src/MISC/pair_nm_cut_coul_long.cpp @@ -267,8 +267,8 @@ void PairNMCutCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double e0_one = force->numeric(FLERR,arg[2]); double r0_one = force->numeric(FLERR,arg[3]); diff --git a/src/MOLECULE/angle_charmm.cpp b/src/MOLECULE/angle_charmm.cpp index 161ad90ea3..ec46958c94 100644 --- a/src/MOLECULE/angle_charmm.cpp +++ b/src/MOLECULE/angle_charmm.cpp @@ -196,7 +196,7 @@ void AngleCharmm::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double theta0_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/angle_cosine.cpp b/src/MOLECULE/angle_cosine.cpp index 59593d2448..81d94c680e 100644 --- a/src/MOLECULE/angle_cosine.cpp +++ b/src/MOLECULE/angle_cosine.cpp @@ -156,7 +156,7 @@ void AngleCosine::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); diff --git a/src/MOLECULE/angle_cosine_periodic.cpp b/src/MOLECULE/angle_cosine_periodic.cpp index b305ece7dd..c771eb8e4b 100644 --- a/src/MOLECULE/angle_cosine_periodic.cpp +++ b/src/MOLECULE/angle_cosine_periodic.cpp @@ -201,7 +201,7 @@ void AngleCosinePeriodic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double c_one = force->numeric(FLERR,arg[1]); int b_one = force->inumeric(FLERR,arg[2]); diff --git a/src/MOLECULE/angle_cosine_squared.cpp b/src/MOLECULE/angle_cosine_squared.cpp index 9056600c3f..4dc96a538b 100644 --- a/src/MOLECULE/angle_cosine_squared.cpp +++ b/src/MOLECULE/angle_cosine_squared.cpp @@ -172,7 +172,7 @@ void AngleCosineSquared::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double theta0_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/angle_harmonic.cpp b/src/MOLECULE/angle_harmonic.cpp index baeb9a8ed8..c7b917b4d3 100644 --- a/src/MOLECULE/angle_harmonic.cpp +++ b/src/MOLECULE/angle_harmonic.cpp @@ -172,7 +172,7 @@ void AngleHarmonic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double theta0_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/angle_table.cpp b/src/MOLECULE/angle_table.cpp index 4890a11975..ed150da094 100644 --- a/src/MOLECULE/angle_table.cpp +++ b/src/MOLECULE/angle_table.cpp @@ -218,7 +218,7 @@ void AngleTable::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); int me; MPI_Comm_rank(world,&me); diff --git a/src/MOLECULE/bond_fene.cpp b/src/MOLECULE/bond_fene.cpp index 357c37b7a2..f853d038e4 100644 --- a/src/MOLECULE/bond_fene.cpp +++ b/src/MOLECULE/bond_fene.cpp @@ -152,7 +152,7 @@ void BondFENE::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double r0_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/bond_fene_expand.cpp b/src/MOLECULE/bond_fene_expand.cpp index 9cdc2639a5..d283a3553e 100644 --- a/src/MOLECULE/bond_fene_expand.cpp +++ b/src/MOLECULE/bond_fene_expand.cpp @@ -159,7 +159,7 @@ void BondFENEExpand::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double r0_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/bond_gromos.cpp b/src/MOLECULE/bond_gromos.cpp index 27447d7298..dc8236221f 100644 --- a/src/MOLECULE/bond_gromos.cpp +++ b/src/MOLECULE/bond_gromos.cpp @@ -123,7 +123,7 @@ void BondGromos::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double r0_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/bond_harmonic.cpp b/src/MOLECULE/bond_harmonic.cpp index 5ea60cda46..b637b41eb4 100644 --- a/src/MOLECULE/bond_harmonic.cpp +++ b/src/MOLECULE/bond_harmonic.cpp @@ -124,7 +124,7 @@ void BondHarmonic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double r0_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/bond_morse.cpp b/src/MOLECULE/bond_morse.cpp index c644d2be1c..e369099370 100644 --- a/src/MOLECULE/bond_morse.cpp +++ b/src/MOLECULE/bond_morse.cpp @@ -126,7 +126,7 @@ void BondMorse::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double d0_one = force->numeric(FLERR,arg[1]); double alpha_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/bond_nonlinear.cpp b/src/MOLECULE/bond_nonlinear.cpp index 1451fa29c2..a111f9dcea 100644 --- a/src/MOLECULE/bond_nonlinear.cpp +++ b/src/MOLECULE/bond_nonlinear.cpp @@ -123,7 +123,7 @@ void BondNonlinear::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double epsilon_one = force->numeric(FLERR,arg[1]); double r0_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/bond_quartic.cpp b/src/MOLECULE/bond_quartic.cpp index 813e322473..94b9ff70e5 100644 --- a/src/MOLECULE/bond_quartic.cpp +++ b/src/MOLECULE/bond_quartic.cpp @@ -201,7 +201,7 @@ void BondQuartic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double b1_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/bond_table.cpp b/src/MOLECULE/bond_table.cpp index 3a1529a155..20d83ddd3b 100644 --- a/src/MOLECULE/bond_table.cpp +++ b/src/MOLECULE/bond_table.cpp @@ -170,7 +170,7 @@ void BondTable::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); int me; MPI_Comm_rank(world,&me); diff --git a/src/MOLECULE/dihedral_charmm.cpp b/src/MOLECULE/dihedral_charmm.cpp index 0163772123..f30ad6cf34 100644 --- a/src/MOLECULE/dihedral_charmm.cpp +++ b/src/MOLECULE/dihedral_charmm.cpp @@ -330,7 +330,7 @@ void DihedralCharmm::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); // require integer values of shift for backwards compatibility // arbitrary phase angle shift could be allowed, but would break diff --git a/src/MOLECULE/dihedral_charmmfsw.cpp b/src/MOLECULE/dihedral_charmmfsw.cpp index 39b7e92bd2..13b2b0c205 100644 --- a/src/MOLECULE/dihedral_charmmfsw.cpp +++ b/src/MOLECULE/dihedral_charmmfsw.cpp @@ -348,7 +348,7 @@ void DihedralCharmmfsw::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); // require integer values of shift for backwards compatibility // arbitrary phase angle shift could be allowed, but would break diff --git a/src/MOLECULE/dihedral_harmonic.cpp b/src/MOLECULE/dihedral_harmonic.cpp index 48adf07903..cdf580e4e4 100644 --- a/src/MOLECULE/dihedral_harmonic.cpp +++ b/src/MOLECULE/dihedral_harmonic.cpp @@ -274,7 +274,7 @@ void DihedralHarmonic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); int sign_one = force->inumeric(FLERR,arg[2]); diff --git a/src/MOLECULE/dihedral_helix.cpp b/src/MOLECULE/dihedral_helix.cpp index 26461883c6..bc723bc3b2 100644 --- a/src/MOLECULE/dihedral_helix.cpp +++ b/src/MOLECULE/dihedral_helix.cpp @@ -285,7 +285,7 @@ void DihedralHelix::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); double aphi_one = force->numeric(FLERR,arg[1]); double bphi_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/dihedral_multi_harmonic.cpp b/src/MOLECULE/dihedral_multi_harmonic.cpp index b5db685247..143222de5e 100644 --- a/src/MOLECULE/dihedral_multi_harmonic.cpp +++ b/src/MOLECULE/dihedral_multi_harmonic.cpp @@ -275,7 +275,7 @@ void DihedralMultiHarmonic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); double a1_one = force->numeric(FLERR,arg[1]); double a2_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/dihedral_opls.cpp b/src/MOLECULE/dihedral_opls.cpp index 5dd268b39f..cbdad9228f 100644 --- a/src/MOLECULE/dihedral_opls.cpp +++ b/src/MOLECULE/dihedral_opls.cpp @@ -288,7 +288,7 @@ void DihedralOPLS::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); double k1_one = force->numeric(FLERR,arg[1]); double k2_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/improper_cvff.cpp b/src/MOLECULE/improper_cvff.cpp index 0ffb3f3c31..75f97907ef 100644 --- a/src/MOLECULE/improper_cvff.cpp +++ b/src/MOLECULE/improper_cvff.cpp @@ -296,7 +296,7 @@ void ImproperCvff::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); int sign_one = force->inumeric(FLERR,arg[2]); diff --git a/src/MOLECULE/improper_harmonic.cpp b/src/MOLECULE/improper_harmonic.cpp index e90bc04c90..2742bfe91a 100644 --- a/src/MOLECULE/improper_harmonic.cpp +++ b/src/MOLECULE/improper_harmonic.cpp @@ -238,7 +238,7 @@ void ImproperHarmonic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double chi_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/improper_umbrella.cpp b/src/MOLECULE/improper_umbrella.cpp index 5259b6baf4..2ca37d208d 100644 --- a/src/MOLECULE/improper_umbrella.cpp +++ b/src/MOLECULE/improper_umbrella.cpp @@ -276,7 +276,7 @@ void ImproperUmbrella::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double w_one = force->numeric(FLERR,arg[2]); diff --git a/src/MOLECULE/pair_hbond_dreiding_lj.cpp b/src/MOLECULE/pair_hbond_dreiding_lj.cpp index 647060eab7..ca2c91c1a2 100644 --- a/src/MOLECULE/pair_hbond_dreiding_lj.cpp +++ b/src/MOLECULE/pair_hbond_dreiding_lj.cpp @@ -30,6 +30,7 @@ #include "math_special.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; using namespace MathConst; @@ -317,9 +318,9 @@ void PairHbondDreidingLJ::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi,klo,khi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - force->bounds(FLERR,arg[2],atom->ntypes,klo,khi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); + utils::bounds(FLERR,arg[2],1,atom->ntypes,klo,khi,error); int donor_flag; if (strcmp(arg[3],"i") == 0) donor_flag = 0; diff --git a/src/MOLECULE/pair_hbond_dreiding_morse.cpp b/src/MOLECULE/pair_hbond_dreiding_morse.cpp index 44eefc07fd..6d2406de54 100644 --- a/src/MOLECULE/pair_hbond_dreiding_morse.cpp +++ b/src/MOLECULE/pair_hbond_dreiding_morse.cpp @@ -30,6 +30,7 @@ #include "math_special.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; using namespace MathConst; @@ -241,9 +242,9 @@ void PairHbondDreidingMorse::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi,klo,khi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - force->bounds(FLERR,arg[2],atom->ntypes,klo,khi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); + utils::bounds(FLERR,arg[2],1,atom->ntypes,klo,khi,error); int donor_flag; if (strcmp(arg[3],"i") == 0) donor_flag = 0; diff --git a/src/MOLECULE/pair_lj_charmm_coul_charmm.cpp b/src/MOLECULE/pair_lj_charmm_coul_charmm.cpp index 0712f6be73..e0d6f6b5d6 100644 --- a/src/MOLECULE/pair_lj_charmm_coul_charmm.cpp +++ b/src/MOLECULE/pair_lj_charmm_coul_charmm.cpp @@ -246,8 +246,8 @@ void PairLJCharmmCoulCharmm::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/MOLECULE/pair_lj_charmmfsw_coul_charmmfsh.cpp b/src/MOLECULE/pair_lj_charmmfsw_coul_charmmfsh.cpp index 026b96c00c..6710be9549 100644 --- a/src/MOLECULE/pair_lj_charmmfsw_coul_charmmfsh.cpp +++ b/src/MOLECULE/pair_lj_charmmfsw_coul_charmmfsh.cpp @@ -270,8 +270,8 @@ void PairLJCharmmfswCoulCharmmfsh::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/MOLECULE/pair_lj_cut_tip4p_cut.cpp b/src/MOLECULE/pair_lj_cut_tip4p_cut.cpp index 673fb83066..6d1626606f 100644 --- a/src/MOLECULE/pair_lj_cut_tip4p_cut.cpp +++ b/src/MOLECULE/pair_lj_cut_tip4p_cut.cpp @@ -457,8 +457,8 @@ void PairLJCutTIP4PCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/MOLECULE/pair_tip4p_cut.cpp b/src/MOLECULE/pair_tip4p_cut.cpp index 334dbf89c8..889565e5ea 100644 --- a/src/MOLECULE/pair_tip4p_cut.cpp +++ b/src/MOLECULE/pair_tip4p_cut.cpp @@ -395,8 +395,8 @@ void PairTIP4PCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/PERI/pair_peri_eps.cpp b/src/PERI/pair_peri_eps.cpp index cae33fe580..c415b5b20f 100644 --- a/src/PERI/pair_peri_eps.cpp +++ b/src/PERI/pair_peri_eps.cpp @@ -450,8 +450,8 @@ void PairPeriEPS::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double bulkmodulus_one = force->numeric(FLERR,arg[2]); double shearmodulus_one = force->numeric(FLERR,arg[3]); diff --git a/src/PERI/pair_peri_lps.cpp b/src/PERI/pair_peri_lps.cpp index 65c6c30e19..bdea3bb719 100644 --- a/src/PERI/pair_peri_lps.cpp +++ b/src/PERI/pair_peri_lps.cpp @@ -378,8 +378,8 @@ void PairPeriLPS::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double bulkmodulus_one = force->numeric(FLERR,arg[2]); double shearmodulus_one = force->numeric(FLERR,arg[3]); diff --git a/src/PERI/pair_peri_pmb.cpp b/src/PERI/pair_peri_pmb.cpp index 7c900b5c4e..9969a287eb 100644 --- a/src/PERI/pair_peri_pmb.cpp +++ b/src/PERI/pair_peri_pmb.cpp @@ -311,8 +311,8 @@ void PairPeriPMB::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double kspring_one = force->numeric(FLERR,arg[2]); double cut_one = force->numeric(FLERR,arg[3]); diff --git a/src/PERI/pair_peri_ves.cpp b/src/PERI/pair_peri_ves.cpp index ed9babf5ed..3d5ab00ef5 100644 --- a/src/PERI/pair_peri_ves.cpp +++ b/src/PERI/pair_peri_ves.cpp @@ -426,8 +426,8 @@ void PairPeriVES::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double bulkmodulus_one = force->numeric(FLERR,arg[2]); double shearmodulus_one = force->numeric(FLERR,arg[3]); diff --git a/src/QEQ/fix_qeq.cpp b/src/QEQ/fix_qeq.cpp index 63fa3caefe..d5a19f82fe 100644 --- a/src/QEQ/fix_qeq.cpp +++ b/src/QEQ/fix_qeq.cpp @@ -753,7 +753,7 @@ void FixQEq::read_file(char *file) n < 6; words[++n] = strtok(NULL," \t\n\r\f")); - force->bounds(FLERR,words[0],ntypes,nlo,nhi); + utils::bounds(FLERR,words[0],1,ntypes,nlo,nhi,error); for (n=nlo; n <=nhi; ++n) { chi[n] = force->numeric(FLERR,words[1]); eta[n] = force->numeric(FLERR,words[2]); diff --git a/src/RIGID/fix_rigid.cpp b/src/RIGID/fix_rigid.cpp index 0d15f22090..6f73d98f5d 100644 --- a/src/RIGID/fix_rigid.cpp +++ b/src/RIGID/fix_rigid.cpp @@ -340,7 +340,7 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : if (iarg+5 > narg) error->all(FLERR,"Illegal fix rigid command"); int mlo,mhi; - force->bounds(FLERR,arg[iarg+1],nbody,mlo,mhi); + utils::bounds(FLERR,arg[iarg+1],1,nbody,mlo,mhi,error); double xflag,yflag,zflag; if (strcmp(arg[iarg+2],"off") == 0) xflag = 0.0; @@ -371,7 +371,7 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : if (iarg+5 > narg) error->all(FLERR,"Illegal fix rigid command"); int mlo,mhi; - force->bounds(FLERR,arg[iarg+1],nbody,mlo,mhi); + utils::bounds(FLERR,arg[iarg+1],1,nbody,mlo,mhi,error); double xflag,yflag,zflag; if (strcmp(arg[iarg+2],"off") == 0) xflag = 0.0; diff --git a/src/SPIN/pair_spin_dipole_cut.cpp b/src/SPIN/pair_spin_dipole_cut.cpp index cdae3c0bab..49e82a9d68 100644 --- a/src/SPIN/pair_spin_dipole_cut.cpp +++ b/src/SPIN/pair_spin_dipole_cut.cpp @@ -105,8 +105,8 @@ void PairSpinDipoleCut::coeff(int narg, char **arg) error->all(FLERR,"Incorrect args in pair_style command"); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double spin_long_cut_one = force->numeric(FLERR,arg[2]); diff --git a/src/SPIN/pair_spin_dipole_long.cpp b/src/SPIN/pair_spin_dipole_long.cpp index aeb916cfae..bb27d8cadf 100644 --- a/src/SPIN/pair_spin_dipole_long.cpp +++ b/src/SPIN/pair_spin_dipole_long.cpp @@ -109,8 +109,8 @@ void PairSpinDipoleLong::coeff(int narg, char **arg) error->all(FLERR,"Incorrect args in pair_style command"); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double spin_long_cut_one = force->numeric(FLERR,arg[2]); diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index c6b0564463..a5452ed739 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -98,8 +98,8 @@ void PairSpinDmi::coeff(int narg, char **arg) error->all(FLERR,"Incorrect args in pair_style command"); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); const double rij = force->numeric(FLERR,arg[3]); const double dm = (force->numeric(FLERR,arg[4])); diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 5c5d5cb1a4..30c6383bc6 100644 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -92,8 +92,8 @@ void PairSpinExchange::coeff(int narg, char **arg) error->all(FLERR,"Incorrect args in pair_style command"); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // get exchange arguments from input command diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index 741305fbf4..9e1de9b1e7 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -95,8 +95,8 @@ void PairSpinMagelec::coeff(int narg, char **arg) error->all(FLERR,"Incorrect args in pair_style command"); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); const double rij = force->numeric(FLERR,arg[3]); const double magelec = (force->numeric(FLERR,arg[4])); diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 4fd8ecc215..5aef34ad9d 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -99,8 +99,8 @@ void PairSpinNeel::coeff(int narg, char **arg) error->all(FLERR,"Incorrect args in pair_style command"); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); const double rij = force->numeric(FLERR,arg[3]); const double k1 = force->numeric(FLERR,arg[4]); diff --git a/src/USER-AWPMD/pair_awpmd_cut.cpp b/src/USER-AWPMD/pair_awpmd_cut.cpp index e382a1cb9c..dc823661d8 100644 --- a/src/USER-AWPMD/pair_awpmd_cut.cpp +++ b/src/USER-AWPMD/pair_awpmd_cut.cpp @@ -484,8 +484,8 @@ void PairAWPMDCut::coeff(int narg, char **arg) } int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_one = cut_global; if (narg == 3) cut_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-CGDNA/bond_oxdna_fene.cpp b/src/USER-CGDNA/bond_oxdna_fene.cpp index b2737fc4cd..afe73c397a 100644 --- a/src/USER-CGDNA/bond_oxdna_fene.cpp +++ b/src/USER-CGDNA/bond_oxdna_fene.cpp @@ -302,7 +302,7 @@ void BondOxdnaFene::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double Delta_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp b/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp index 51ff26cc6e..be6287934f 100644 --- a/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp +++ b/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp @@ -555,8 +555,8 @@ void PairOxdna2Coaxstk::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // cross-stacking interaction count = 0; diff --git a/src/USER-CGDNA/pair_oxdna2_dh.cpp b/src/USER-CGDNA/pair_oxdna2_dh.cpp index e698d8d906..8cbe607197 100644 --- a/src/USER-CGDNA/pair_oxdna2_dh.cpp +++ b/src/USER-CGDNA/pair_oxdna2_dh.cpp @@ -277,8 +277,8 @@ void PairOxdna2Dh::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); count = 0; diff --git a/src/USER-CGDNA/pair_oxdna_coaxstk.cpp b/src/USER-CGDNA/pair_oxdna_coaxstk.cpp index 750c6c022d..b54798e1da 100644 --- a/src/USER-CGDNA/pair_oxdna_coaxstk.cpp +++ b/src/USER-CGDNA/pair_oxdna_coaxstk.cpp @@ -685,8 +685,8 @@ void PairOxdnaCoaxstk::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // cross-stacking interaction count = 0; diff --git a/src/USER-CGDNA/pair_oxdna_excv.cpp b/src/USER-CGDNA/pair_oxdna_excv.cpp index e8e2fad020..c45dfdc036 100644 --- a/src/USER-CGDNA/pair_oxdna_excv.cpp +++ b/src/USER-CGDNA/pair_oxdna_excv.cpp @@ -455,8 +455,8 @@ void PairOxdnaExcv::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); count = 0; diff --git a/src/USER-CGDNA/pair_oxdna_hbond.cpp b/src/USER-CGDNA/pair_oxdna_hbond.cpp index 26042339ea..f94be44e28 100644 --- a/src/USER-CGDNA/pair_oxdna_hbond.cpp +++ b/src/USER-CGDNA/pair_oxdna_hbond.cpp @@ -634,8 +634,8 @@ void PairOxdnaHbond::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi,imod4,jmod4; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // h-bonding interaction count = 0; diff --git a/src/USER-CGDNA/pair_oxdna_stk.cpp b/src/USER-CGDNA/pair_oxdna_stk.cpp index 4d1c4a7101..2c01e253e8 100644 --- a/src/USER-CGDNA/pair_oxdna_stk.cpp +++ b/src/USER-CGDNA/pair_oxdna_stk.cpp @@ -779,8 +779,8 @@ void PairOxdnaStk::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi,imod4,jmod4; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // stacking interaction count = 0; diff --git a/src/USER-CGDNA/pair_oxdna_xstk.cpp b/src/USER-CGDNA/pair_oxdna_xstk.cpp index a1fc86bd4d..b1eaccdca2 100644 --- a/src/USER-CGDNA/pair_oxdna_xstk.cpp +++ b/src/USER-CGDNA/pair_oxdna_xstk.cpp @@ -630,8 +630,8 @@ void PairOxdnaXstk::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // cross-stacking interaction count = 0; diff --git a/src/USER-CGDNA/pair_oxrna2_stk.cpp b/src/USER-CGDNA/pair_oxrna2_stk.cpp index de2cd63799..64dacd6c91 100644 --- a/src/USER-CGDNA/pair_oxrna2_stk.cpp +++ b/src/USER-CGDNA/pair_oxrna2_stk.cpp @@ -863,8 +863,8 @@ void PairOxrna2Stk::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // stacking interaction count = 0; diff --git a/src/USER-CGDNA/pair_oxrna2_xstk.cpp b/src/USER-CGDNA/pair_oxrna2_xstk.cpp index 73a73c1ea0..39a155c942 100644 --- a/src/USER-CGDNA/pair_oxrna2_xstk.cpp +++ b/src/USER-CGDNA/pair_oxrna2_xstk.cpp @@ -580,8 +580,8 @@ void PairOxrna2Xstk::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // cross-stacking interaction count = 0; diff --git a/src/USER-CGSDK/angle_sdk.cpp b/src/USER-CGSDK/angle_sdk.cpp index 11b3a8308c..077a4a2eee 100644 --- a/src/USER-CGSDK/angle_sdk.cpp +++ b/src/USER-CGSDK/angle_sdk.cpp @@ -241,7 +241,7 @@ void AngleSDK::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double theta0_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-CGSDK/pair_lj_sdk.cpp b/src/USER-CGSDK/pair_lj_sdk.cpp index 3e4f8deee8..7afa53be2e 100644 --- a/src/USER-CGSDK/pair_lj_sdk.cpp +++ b/src/USER-CGSDK/pair_lj_sdk.cpp @@ -256,8 +256,8 @@ void PairLJSDK::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int lj_type_one = find_lj_type(arg[2],lj_type_list); if (lj_type_one == LJ_NOT_SET) diff --git a/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp b/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp index 7e5852f367..db2dabacaa 100644 --- a/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp +++ b/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp @@ -318,8 +318,8 @@ void PairLJSDKCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int lj_type_one = find_lj_type(arg[2],lj_type_list); if (lj_type_one == LJ_NOT_SET) diff --git a/src/USER-DPD/pair_dpd_fdt.cpp b/src/USER-DPD/pair_dpd_fdt.cpp index 14bbe0b784..c6e7a78157 100644 --- a/src/USER-DPD/pair_dpd_fdt.cpp +++ b/src/USER-DPD/pair_dpd_fdt.cpp @@ -279,8 +279,8 @@ void PairDPDfdt::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a0_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-DPD/pair_dpd_fdt_energy.cpp b/src/USER-DPD/pair_dpd_fdt_energy.cpp index 455af2f481..cbebb1dc3a 100644 --- a/src/USER-DPD/pair_dpd_fdt_energy.cpp +++ b/src/USER-DPD/pair_dpd_fdt_energy.cpp @@ -367,8 +367,8 @@ void PairDPDfdtEnergy::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a0_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-DPD/pair_exp6_rx.cpp b/src/USER-DPD/pair_exp6_rx.cpp index 4ac491afb1..3e27dafe98 100644 --- a/src/USER-DPD/pair_exp6_rx.cpp +++ b/src/USER-DPD/pair_exp6_rx.cpp @@ -589,8 +589,8 @@ void PairExp6rx::coeff(int narg, char **arg) int ilo,ihi,jlo,jhi; int n; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); nspecies = atom->nspecies_dpd; if(nspecies==0) error->all(FLERR,"There are no rx species specified."); diff --git a/src/USER-DPD/pair_multi_lucy.cpp b/src/USER-DPD/pair_multi_lucy.cpp index 1cbb29a93c..143f393492 100644 --- a/src/USER-DPD/pair_multi_lucy.cpp +++ b/src/USER-DPD/pair_multi_lucy.cpp @@ -269,8 +269,8 @@ void PairMultiLucy::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int me; MPI_Comm_rank(world,&me); diff --git a/src/USER-DPD/pair_multi_lucy_rx.cpp b/src/USER-DPD/pair_multi_lucy_rx.cpp index 79df11a038..c8e733904c 100644 --- a/src/USER-DPD/pair_multi_lucy_rx.cpp +++ b/src/USER-DPD/pair_multi_lucy_rx.cpp @@ -374,8 +374,8 @@ void PairMultiLucyRX::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int me; MPI_Comm_rank(world,&me); diff --git a/src/USER-DPD/pair_table_rx.cpp b/src/USER-DPD/pair_table_rx.cpp index cf64c17c5e..10790960bd 100644 --- a/src/USER-DPD/pair_table_rx.cpp +++ b/src/USER-DPD/pair_table_rx.cpp @@ -308,8 +308,8 @@ void PairTableRX::coeff(int narg, char **arg) if (!rx_flag) error->all(FLERR,"Pair style table/rx requires a fix rx command."); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int me; MPI_Comm_rank(world,&me); diff --git a/src/USER-DRUDE/pair_lj_cut_thole_long.cpp b/src/USER-DRUDE/pair_lj_cut_thole_long.cpp index fa4f761663..76980bf105 100644 --- a/src/USER-DRUDE/pair_lj_cut_thole_long.cpp +++ b/src/USER-DRUDE/pair_lj_cut_thole_long.cpp @@ -320,8 +320,8 @@ void PairLJCutTholeLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-DRUDE/pair_thole.cpp b/src/USER-DRUDE/pair_thole.cpp index 4dd6cb12c0..df5fd1d92d 100644 --- a/src/USER-DRUDE/pair_thole.cpp +++ b/src/USER-DRUDE/pair_thole.cpp @@ -219,8 +219,8 @@ void PairThole::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double polar_one = force->numeric(FLERR,arg[2]); double thole_one = thole_global; diff --git a/src/USER-EFF/pair_eff_cut.cpp b/src/USER-EFF/pair_eff_cut.cpp index f9333f4bec..a2346f0167 100644 --- a/src/USER-EFF/pair_eff_cut.cpp +++ b/src/USER-EFF/pair_eff_cut.cpp @@ -903,8 +903,8 @@ void PairEffCut::coeff(int narg, char **arg) if ((strcmp(arg[0],"*") == 0) || (strcmp(arg[1],"*") == 0)) { int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_one = cut_global; if (narg == 3) cut_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-FEP/compute_fep.cpp b/src/USER-FEP/compute_fep.cpp index 1853828db3..664750c7a7 100644 --- a/src/USER-FEP/compute_fep.cpp +++ b/src/USER-FEP/compute_fep.cpp @@ -34,6 +34,7 @@ #include "timer.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -94,10 +95,10 @@ ComputeFEP::ComputeFEP(LAMMPS *lmp, int narg, char **arg) : n = strlen(arg[iarg+2]) + 1; perturb[npert].pparam = new char[n]; strcpy(perturb[npert].pparam,arg[iarg+2]); - force->bounds(FLERR,arg[iarg+3],atom->ntypes, - perturb[npert].ilo,perturb[npert].ihi); - force->bounds(FLERR,arg[iarg+4],atom->ntypes, - perturb[npert].jlo,perturb[npert].jhi); + utils::bounds(FLERR,arg[iarg+3],1,atom->ntypes, + perturb[npert].ilo,perturb[npert].ihi,error); + utils::bounds(FLERR,arg[iarg+4],1,atom->ntypes, + perturb[npert].jlo,perturb[npert].jhi,error); if (strstr(arg[iarg+5],"v_") == arg[iarg+5]) { n = strlen(&arg[iarg+5][2]) + 1; perturb[npert].var = new char[n]; @@ -111,8 +112,8 @@ ComputeFEP::ComputeFEP(LAMMPS *lmp, int narg, char **arg) : perturb[npert].aparam = CHARGE; chgflag = 1; } else error->all(FLERR,"Illegal atom argument in compute fep"); - force->bounds(FLERR,arg[iarg+2],atom->ntypes, - perturb[npert].ilo,perturb[npert].ihi); + utils::bounds(FLERR,arg[iarg+2],1,atom->ntypes, + perturb[npert].ilo,perturb[npert].ihi,error); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) { int n = strlen(&arg[iarg+3][2]) + 1; perturb[npert].var = new char[n]; diff --git a/src/USER-FEP/fix_adapt_fep.cpp b/src/USER-FEP/fix_adapt_fep.cpp index 46cf32cf0b..5d5f510547 100644 --- a/src/USER-FEP/fix_adapt_fep.cpp +++ b/src/USER-FEP/fix_adapt_fep.cpp @@ -32,6 +32,7 @@ #include "math_const.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -93,10 +94,10 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : n = strlen(arg[iarg+2]) + 1; adapt[nadapt].pparam = new char[n]; strcpy(adapt[nadapt].pparam,arg[iarg+2]); - force->bounds(FLERR,arg[iarg+3],atom->ntypes, - adapt[nadapt].ilo,adapt[nadapt].ihi); - force->bounds(FLERR,arg[iarg+4],atom->ntypes, - adapt[nadapt].jlo,adapt[nadapt].jhi); + utils::bounds(FLERR,arg[iarg+3],1,atom->ntypes, + adapt[nadapt].ilo,adapt[nadapt].ihi,error); + utils::bounds(FLERR,arg[iarg+4],1,atom->ntypes, + adapt[nadapt].jlo,adapt[nadapt].jhi,error); if (strstr(arg[iarg+5],"v_") == arg[iarg+5]) { n = strlen(&arg[iarg+5][2]) + 1; adapt[nadapt].var = new char[n]; @@ -124,8 +125,8 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].aparam = CHARGE; chgflag = 1; } else error->all(FLERR,"Illegal fix adapt/fep command"); - force->bounds(FLERR,arg[iarg+2],atom->ntypes, - adapt[nadapt].ilo,adapt[nadapt].ihi); + utils::bounds(FLERR,arg[iarg+2],1,atom->ntypes, + adapt[nadapt].ilo,adapt[nadapt].ihi,error); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) { int n = strlen(&arg[iarg+3][2]) + 1; adapt[nadapt].var = new char[n]; diff --git a/src/USER-FEP/pair_coul_cut_soft.cpp b/src/USER-FEP/pair_coul_cut_soft.cpp index eb872ab8b9..be771dc0de 100644 --- a/src/USER-FEP/pair_coul_cut_soft.cpp +++ b/src/USER-FEP/pair_coul_cut_soft.cpp @@ -185,8 +185,8 @@ void PairCoulCutSoft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double lambda_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-FEP/pair_coul_long_soft.cpp b/src/USER-FEP/pair_coul_long_soft.cpp index a631dca1b7..a0273f9650 100644 --- a/src/USER-FEP/pair_coul_long_soft.cpp +++ b/src/USER-FEP/pair_coul_long_soft.cpp @@ -203,8 +203,8 @@ void PairCoulLongSoft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double lambda_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-FEP/pair_lj_charmm_coul_long_soft.cpp b/src/USER-FEP/pair_lj_charmm_coul_long_soft.cpp index 81c1599508..eb9cedaa7b 100644 --- a/src/USER-FEP/pair_lj_charmm_coul_long_soft.cpp +++ b/src/USER-FEP/pair_lj_charmm_coul_long_soft.cpp @@ -648,8 +648,8 @@ void PairLJCharmmCoulLongSoft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-FEP/pair_lj_class2_coul_cut_soft.cpp b/src/USER-FEP/pair_lj_class2_coul_cut_soft.cpp index 255bdf6a07..1c898033c5 100644 --- a/src/USER-FEP/pair_lj_class2_coul_cut_soft.cpp +++ b/src/USER-FEP/pair_lj_class2_coul_cut_soft.cpp @@ -229,8 +229,8 @@ void PairLJClass2CoulCutSoft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-FEP/pair_lj_class2_coul_long_soft.cpp b/src/USER-FEP/pair_lj_class2_coul_long_soft.cpp index dda10ed9e0..33b1b46c2c 100644 --- a/src/USER-FEP/pair_lj_class2_coul_long_soft.cpp +++ b/src/USER-FEP/pair_lj_class2_coul_long_soft.cpp @@ -242,8 +242,8 @@ void PairLJClass2CoulLongSoft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-FEP/pair_lj_class2_soft.cpp b/src/USER-FEP/pair_lj_class2_soft.cpp index 957fc0f8ab..aa6d08afe1 100644 --- a/src/USER-FEP/pair_lj_class2_soft.cpp +++ b/src/USER-FEP/pair_lj_class2_soft.cpp @@ -194,8 +194,8 @@ void PairLJClass2Soft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-FEP/pair_lj_cut_coul_cut_soft.cpp b/src/USER-FEP/pair_lj_cut_coul_cut_soft.cpp index 3f85a2c8aa..7f62467f94 100644 --- a/src/USER-FEP/pair_lj_cut_coul_cut_soft.cpp +++ b/src/USER-FEP/pair_lj_cut_coul_cut_soft.cpp @@ -230,8 +230,8 @@ void PairLJCutCoulCutSoft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-FEP/pair_lj_cut_coul_long_soft.cpp b/src/USER-FEP/pair_lj_cut_coul_long_soft.cpp index c22b2ca673..c813c23bc2 100644 --- a/src/USER-FEP/pair_lj_cut_coul_long_soft.cpp +++ b/src/USER-FEP/pair_lj_cut_coul_long_soft.cpp @@ -595,8 +595,8 @@ void PairLJCutCoulLongSoft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-FEP/pair_lj_cut_soft.cpp b/src/USER-FEP/pair_lj_cut_soft.cpp index 92abdf540a..09ebd375a5 100644 --- a/src/USER-FEP/pair_lj_cut_soft.cpp +++ b/src/USER-FEP/pair_lj_cut_soft.cpp @@ -476,8 +476,8 @@ void PairLJCutSoft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-FEP/pair_morse_soft.cpp b/src/USER-FEP/pair_morse_soft.cpp index c727ea0c2a..b1f514711f 100644 --- a/src/USER-FEP/pair_morse_soft.cpp +++ b/src/USER-FEP/pair_morse_soft.cpp @@ -177,8 +177,8 @@ void PairMorseSoft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double d0_one = force->numeric(FLERR,arg[2]); double alpha_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-LB/fix_lb_rigid_pc_sphere.cpp b/src/USER-LB/fix_lb_rigid_pc_sphere.cpp index af1b01043d..9cc03591fa 100644 --- a/src/USER-LB/fix_lb_rigid_pc_sphere.cpp +++ b/src/USER-LB/fix_lb_rigid_pc_sphere.cpp @@ -31,6 +31,7 @@ #include "memory.h" #include "error.h" #include "fix_lb_fluid.h" +#include "utils.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -233,7 +234,7 @@ FixLbRigidPCSphere::FixLbRigidPCSphere(LAMMPS *lmp, int narg, char **arg) : if (iarg+5 > narg) error->all(FLERR,"Illegal fix lb/rigid/pc/sphere command"); int mlo,mhi; - force->bounds(FLERR,arg[iarg+1],nbody,mlo,mhi); + utils::bounds(FLERR,arg[iarg+1],1,nbody,mlo,mhi,error); double xflag,yflag,zflag; if (strcmp(arg[iarg+2],"off") == 0) xflag = 0.0; @@ -260,7 +261,7 @@ FixLbRigidPCSphere::FixLbRigidPCSphere(LAMMPS *lmp, int narg, char **arg) : if (iarg+5 > narg) error->all(FLERR,"Illegal fix lb/rigid/pc/sphere command"); int mlo,mhi; - force->bounds(FLERR,arg[iarg+1],nbody,mlo,mhi); + utils::bounds(FLERR,arg[iarg+1],1,nbody,mlo,mhi,error); double xflag,yflag,zflag; if (strcmp(arg[iarg+2],"off") == 0) xflag = 0.0; diff --git a/src/USER-MESODPD/pair_edpd.cpp b/src/USER-MESODPD/pair_edpd.cpp index c32477513d..b4264985e4 100644 --- a/src/USER-MESODPD/pair_edpd.cpp +++ b/src/USER-MESODPD/pair_edpd.cpp @@ -306,8 +306,8 @@ void PairEDPD::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a0_one = force->numeric(FLERR,arg[2]); double gamma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MESODPD/pair_mdpd.cpp b/src/USER-MESODPD/pair_mdpd.cpp index 7f98e6da79..f46f88861b 100644 --- a/src/USER-MESODPD/pair_mdpd.cpp +++ b/src/USER-MESODPD/pair_mdpd.cpp @@ -245,8 +245,8 @@ void PairMDPD::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double A_one = force->numeric(FLERR,arg[2]); double B_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MESODPD/pair_mdpd_rhosum.cpp b/src/USER-MESODPD/pair_mdpd_rhosum.cpp index 05cb123f61..6f60234af3 100644 --- a/src/USER-MESODPD/pair_mdpd_rhosum.cpp +++ b/src/USER-MESODPD/pair_mdpd_rhosum.cpp @@ -29,6 +29,7 @@ #include "memory.h" #include "error.h" #include "neighbor.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -196,8 +197,8 @@ void PairMDPDRhoSum::coeff(int narg, char **arg) { allocate(); int ilo, ihi, jlo, jhi; - force->bounds(FLERR,arg[0], atom->ntypes, ilo, ihi); - force->bounds(FLERR,arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); double cut_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MESODPD/pair_tdpd.cpp b/src/USER-MESODPD/pair_tdpd.cpp index f5350de53d..0da187fd7b 100644 --- a/src/USER-MESODPD/pair_tdpd.cpp +++ b/src/USER-MESODPD/pair_tdpd.cpp @@ -269,8 +269,8 @@ void PairTDPD::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a0_one = force->numeric(FLERR,arg[2]); double gamma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MESONT/pair_mesont_tpm.cpp b/src/USER-MESONT/pair_mesont_tpm.cpp index d46fcad813..1f91b0e823 100644 --- a/src/USER-MESONT/pair_mesont_tpm.cpp +++ b/src/USER-MESONT/pair_mesont_tpm.cpp @@ -639,8 +639,8 @@ void PairMESONTTPM::coeff(int narg, char **arg){ if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_one = cut_global; if (narg == 3) cut_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/angle_cosine_shift.cpp b/src/USER-MISC/angle_cosine_shift.cpp index 59f7555709..f2a3ddc54b 100644 --- a/src/USER-MISC/angle_cosine_shift.cpp +++ b/src/USER-MISC/angle_cosine_shift.cpp @@ -175,7 +175,7 @@ void AngleCosineShift::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double umin = force->numeric(FLERR,arg[1]); double theta0 = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/angle_cosine_shift_exp.cpp b/src/USER-MISC/angle_cosine_shift_exp.cpp index ef5a2824b9..ec1a02bf30 100644 --- a/src/USER-MISC/angle_cosine_shift_exp.cpp +++ b/src/USER-MISC/angle_cosine_shift_exp.cpp @@ -203,7 +203,7 @@ void AngleCosineShiftExp::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double umin_ = force->numeric(FLERR,arg[1]); double theta0_ = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/angle_dipole.cpp b/src/USER-MISC/angle_dipole.cpp index e2fd7e618f..1f959192a5 100644 --- a/src/USER-MISC/angle_dipole.cpp +++ b/src/USER-MISC/angle_dipole.cpp @@ -160,7 +160,7 @@ void AngleDipole::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double gamma0_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/angle_fourier.cpp b/src/USER-MISC/angle_fourier.cpp index f83c9c4f88..c1ddc0d640 100644 --- a/src/USER-MISC/angle_fourier.cpp +++ b/src/USER-MISC/angle_fourier.cpp @@ -179,7 +179,7 @@ void AngleFourier::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double C0_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/angle_fourier_simple.cpp b/src/USER-MISC/angle_fourier_simple.cpp index baf4953760..640922ceba 100644 --- a/src/USER-MISC/angle_fourier_simple.cpp +++ b/src/USER-MISC/angle_fourier_simple.cpp @@ -193,7 +193,7 @@ void AngleFourierSimple::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double C_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/angle_quartic.cpp b/src/USER-MISC/angle_quartic.cpp index 097e774f17..7ad97cebd4 100644 --- a/src/USER-MISC/angle_quartic.cpp +++ b/src/USER-MISC/angle_quartic.cpp @@ -183,7 +183,7 @@ void AngleQuartic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double theta0_one = force->numeric(FLERR,arg[1]); double k2_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/bond_harmonic_shift.cpp b/src/USER-MISC/bond_harmonic_shift.cpp index cbcc33a824..87e40ecc86 100644 --- a/src/USER-MISC/bond_harmonic_shift.cpp +++ b/src/USER-MISC/bond_harmonic_shift.cpp @@ -128,7 +128,7 @@ void BondHarmonicShift::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double Umin = force->numeric(FLERR,arg[1]); // energy at minimum double r0_one = force->numeric(FLERR,arg[2]); // position of minimum diff --git a/src/USER-MISC/bond_harmonic_shift_cut.cpp b/src/USER-MISC/bond_harmonic_shift_cut.cpp index aa051f4bec..abf01d9739 100644 --- a/src/USER-MISC/bond_harmonic_shift_cut.cpp +++ b/src/USER-MISC/bond_harmonic_shift_cut.cpp @@ -130,7 +130,7 @@ void BondHarmonicShiftCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double Umin = force->numeric(FLERR,arg[1]); // energy at minimum double r0_one = force->numeric(FLERR,arg[2]); // position of minimum diff --git a/src/USER-MISC/bond_special.cpp b/src/USER-MISC/bond_special.cpp index 31ebbaa406..87b3db95e8 100644 --- a/src/USER-MISC/bond_special.cpp +++ b/src/USER-MISC/bond_special.cpp @@ -25,6 +25,7 @@ #include "pair.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -143,7 +144,7 @@ void BondSpecial::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double factor_lj_one = force->numeric(FLERR,arg[1]); double factor_coul_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/dihedral_cosine_shift_exp.cpp b/src/USER-MISC/dihedral_cosine_shift_exp.cpp index 0537e555a2..2098e713cc 100644 --- a/src/USER-MISC/dihedral_cosine_shift_exp.cpp +++ b/src/USER-MISC/dihedral_cosine_shift_exp.cpp @@ -276,7 +276,7 @@ void DihedralCosineShiftExp::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); double umin_ = force->numeric(FLERR,arg[1]); double theta0_ = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/dihedral_fourier.cpp b/src/USER-MISC/dihedral_fourier.cpp index f30a5e1eab..aafef7d7d5 100644 --- a/src/USER-MISC/dihedral_fourier.cpp +++ b/src/USER-MISC/dihedral_fourier.cpp @@ -297,7 +297,7 @@ void DihedralFourier::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); // require integer values of shift for backwards compatibility // arbitrary phase angle shift could be allowed, but would break diff --git a/src/USER-MISC/dihedral_nharmonic.cpp b/src/USER-MISC/dihedral_nharmonic.cpp index 81010a040e..15ffb6914d 100644 --- a/src/USER-MISC/dihedral_nharmonic.cpp +++ b/src/USER-MISC/dihedral_nharmonic.cpp @@ -284,7 +284,7 @@ void DihedralNHarmonic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/dihedral_quadratic.cpp b/src/USER-MISC/dihedral_quadratic.cpp index 28efad65b7..30aeb34c0d 100644 --- a/src/USER-MISC/dihedral_quadratic.cpp +++ b/src/USER-MISC/dihedral_quadratic.cpp @@ -287,7 +287,7 @@ void DihedralQuadratic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double phi0_one= force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/dihedral_spherical.cpp b/src/USER-MISC/dihedral_spherical.cpp index c72570c494..6a10b19523 100644 --- a/src/USER-MISC/dihedral_spherical.cpp +++ b/src/USER-MISC/dihedral_spherical.cpp @@ -681,7 +681,7 @@ void DihedralSpherical::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); int nterms_one = force->inumeric(FLERR,arg[1]); diff --git a/src/USER-MISC/dihedral_table.cpp b/src/USER-MISC/dihedral_table.cpp index 9fd3679106..eb09472a39 100644 --- a/src/USER-MISC/dihedral_table.cpp +++ b/src/USER-MISC/dihedral_table.cpp @@ -813,7 +813,7 @@ void DihedralTable::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); int me; MPI_Comm_rank(world,&me); diff --git a/src/USER-MISC/dihedral_table_cut.cpp b/src/USER-MISC/dihedral_table_cut.cpp index e2283633bc..239ae9a0a0 100644 --- a/src/USER-MISC/dihedral_table_cut.cpp +++ b/src/USER-MISC/dihedral_table_cut.cpp @@ -794,7 +794,7 @@ void DihedralTableCut::coeff(int narg, char **arg) if (narg != 7) error->all(FLERR,"Incorrect args for dihedral coefficients"); if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[2]); double theta0_1_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MISC/improper_cossq.cpp b/src/USER-MISC/improper_cossq.cpp index c5556b746d..babd63fb70 100644 --- a/src/USER-MISC/improper_cossq.cpp +++ b/src/USER-MISC/improper_cossq.cpp @@ -269,7 +269,7 @@ void ImproperCossq::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double chi_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/improper_distance.cpp b/src/USER-MISC/improper_distance.cpp index 146bd344f1..640e175ea7 100644 --- a/src/USER-MISC/improper_distance.cpp +++ b/src/USER-MISC/improper_distance.cpp @@ -211,7 +211,7 @@ void ImproperDistance::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double chi_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/improper_fourier.cpp b/src/USER-MISC/improper_fourier.cpp index beb473d78c..63f4104053 100644 --- a/src/USER-MISC/improper_fourier.cpp +++ b/src/USER-MISC/improper_fourier.cpp @@ -279,7 +279,7 @@ void ImproperFourier::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double C0_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/improper_ring.cpp b/src/USER-MISC/improper_ring.cpp index 7f818595a2..9c94a4d719 100644 --- a/src/USER-MISC/improper_ring.cpp +++ b/src/USER-MISC/improper_ring.cpp @@ -288,7 +288,7 @@ void ImproperRing ::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double chi_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/pair_buck_mdf.cpp b/src/USER-MISC/pair_buck_mdf.cpp index 1937aeedf7..51d2f671b5 100644 --- a/src/USER-MISC/pair_buck_mdf.cpp +++ b/src/USER-MISC/pair_buck_mdf.cpp @@ -208,8 +208,8 @@ void PairBuckMDF::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a_one = force->numeric(FLERR,arg[2]); double rho_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MISC/pair_cosine_squared.cpp b/src/USER-MISC/pair_cosine_squared.cpp index ff0d763b2d..becba54b2e 100644 --- a/src/USER-MISC/pair_cosine_squared.cpp +++ b/src/USER-MISC/pair_cosine_squared.cpp @@ -130,8 +130,8 @@ void PairCosineSquared::coeff(int narg, char **arg) allocate(); int ilo, ihi, jlo, jhi; - force->bounds(FLERR, arg[0], atom->ntypes, ilo, ihi); - force->bounds(FLERR, arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); double epsilon_one = force->numeric(FLERR, arg[2]); double sigma_one = force->numeric(FLERR, arg[3]); diff --git a/src/USER-MISC/pair_coul_diel.cpp b/src/USER-MISC/pair_coul_diel.cpp index e0c675086f..f5a94bd0e1 100644 --- a/src/USER-MISC/pair_coul_diel.cpp +++ b/src/USER-MISC/pair_coul_diel.cpp @@ -181,8 +181,8 @@ void PairCoulDiel::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); eps_s = force->numeric(FLERR,arg[2]); double rme_one =force->numeric(FLERR,arg[3]); diff --git a/src/USER-MISC/pair_coul_shield.cpp b/src/USER-MISC/pair_coul_shield.cpp index 7ff479b2f7..3dad7a1a1f 100644 --- a/src/USER-MISC/pair_coul_shield.cpp +++ b/src/USER-MISC/pair_coul_shield.cpp @@ -198,8 +198,8 @@ void PairCoulShield::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double sigmae_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MISC/pair_coul_slater_long.cpp b/src/USER-MISC/pair_coul_slater_long.cpp index f5b7461db7..28be30c340 100644 --- a/src/USER-MISC/pair_coul_slater_long.cpp +++ b/src/USER-MISC/pair_coul_slater_long.cpp @@ -31,6 +31,7 @@ #include "respa.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -223,8 +224,8 @@ void PairCoulSlaterLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/pair_gauss_cut.cpp b/src/USER-MISC/pair_gauss_cut.cpp index 2a4f61cce3..ed34f91b8b 100644 --- a/src/USER-MISC/pair_gauss_cut.cpp +++ b/src/USER-MISC/pair_gauss_cut.cpp @@ -185,8 +185,8 @@ void PairGaussCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double hgauss_one = force->numeric(FLERR,arg[2]); double rmh_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MISC/pair_kolmogorov_crespi_z.cpp b/src/USER-MISC/pair_kolmogorov_crespi_z.cpp index 4315439624..2a932b840f 100644 --- a/src/USER-MISC/pair_kolmogorov_crespi_z.cpp +++ b/src/USER-MISC/pair_kolmogorov_crespi_z.cpp @@ -228,8 +228,8 @@ void PairKolmogorovCrespiZ::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // read args that map atom types to elements in potential file // map[i] = which element the Ith atom type is, -1 if NULL diff --git a/src/USER-MISC/pair_lebedeva_z.cpp b/src/USER-MISC/pair_lebedeva_z.cpp index 53ee82274e..82dc265ef9 100644 --- a/src/USER-MISC/pair_lebedeva_z.cpp +++ b/src/USER-MISC/pair_lebedeva_z.cpp @@ -224,8 +224,8 @@ void PairLebedevaZ::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // read args that map atom types to elements in potential file // map[i] = which element the Ith atom type is, -1 if NULL diff --git a/src/USER-MISC/pair_lennard_mdf.cpp b/src/USER-MISC/pair_lennard_mdf.cpp index 4728527a30..e1647f5220 100644 --- a/src/USER-MISC/pair_lennard_mdf.cpp +++ b/src/USER-MISC/pair_lennard_mdf.cpp @@ -214,8 +214,8 @@ void PairLennardMDF::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double aparm_one = force->numeric(FLERR,arg[2]); double bparm_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MISC/pair_list.cpp b/src/USER-MISC/pair_list.cpp index 2f4e886a61..fe21dd6560 100644 --- a/src/USER-MISC/pair_list.cpp +++ b/src/USER-MISC/pair_list.cpp @@ -24,6 +24,7 @@ #include "force.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -344,8 +345,8 @@ void PairList::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/pair_lj_expand_coul_long.cpp b/src/USER-MISC/pair_lj_expand_coul_long.cpp index 3d96a3343c..033d1c3ccd 100644 --- a/src/USER-MISC/pair_lj_expand_coul_long.cpp +++ b/src/USER-MISC/pair_lj_expand_coul_long.cpp @@ -651,8 +651,8 @@ void PairLJExpandCoulLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MISC/pair_lj_mdf.cpp b/src/USER-MISC/pair_lj_mdf.cpp index 51e24639b9..d1d8221bcc 100644 --- a/src/USER-MISC/pair_lj_mdf.cpp +++ b/src/USER-MISC/pair_lj_mdf.cpp @@ -216,8 +216,8 @@ void PairLJMDF::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MISC/pair_lj_sf_dipole_sf.cpp b/src/USER-MISC/pair_lj_sf_dipole_sf.cpp index 19bc66bdcb..570c8f4eab 100644 --- a/src/USER-MISC/pair_lj_sf_dipole_sf.cpp +++ b/src/USER-MISC/pair_lj_sf_dipole_sf.cpp @@ -361,8 +361,8 @@ void PairLJSFDipoleSF::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MISC/pair_momb.cpp b/src/USER-MISC/pair_momb.cpp index 010aa1e5fd..e98832c6d7 100644 --- a/src/USER-MISC/pair_momb.cpp +++ b/src/USER-MISC/pair_momb.cpp @@ -215,8 +215,8 @@ void PairMomb::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double d0_one = force->numeric(FLERR,arg[2]); double alpha_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MISC/pair_morse_smooth_linear.cpp b/src/USER-MISC/pair_morse_smooth_linear.cpp index 7513eebd98..64549114a9 100644 --- a/src/USER-MISC/pair_morse_smooth_linear.cpp +++ b/src/USER-MISC/pair_morse_smooth_linear.cpp @@ -184,8 +184,8 @@ void PairMorseSmoothLinear::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double d0_one = force->numeric(FLERR,arg[2]); double alpha_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MISC/pair_srp.cpp b/src/USER-MISC/pair_srp.cpp index d0e73b265d..3a53334b31 100644 --- a/src/USER-MISC/pair_srp.cpp +++ b/src/USER-MISC/pair_srp.cpp @@ -429,8 +429,8 @@ void PairSRP::coeff(int narg, char **arg) // set ij bond-bond cutoffs int ilo, ihi, jlo, jhi; - force->bounds(FLERR,arg[0], bptype, ilo, ihi); - force->bounds(FLERR,arg[1], bptype, jlo, jhi); + utils::bounds(FLERR,arg[0], 1, bptype, ilo, ihi, error); + utils::bounds(FLERR,arg[1], 1, bptype, jlo, jhi, error); double a0_one = force->numeric(FLERR,arg[2]); double cut_one = cut_global; diff --git a/src/USER-MOFFF/angle_class2_p6.cpp b/src/USER-MOFFF/angle_class2_p6.cpp index 839148bc13..5a913af379 100644 --- a/src/USER-MOFFF/angle_class2_p6.cpp +++ b/src/USER-MOFFF/angle_class2_p6.cpp @@ -280,7 +280,7 @@ void AngleClass2P6::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); int count = 0; diff --git a/src/USER-MOFFF/angle_cosine_buck6d.cpp b/src/USER-MOFFF/angle_cosine_buck6d.cpp index a6643601c1..838aa1ad70 100644 --- a/src/USER-MOFFF/angle_cosine_buck6d.cpp +++ b/src/USER-MOFFF/angle_cosine_buck6d.cpp @@ -251,7 +251,7 @@ void AngleCosineBuck6d::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double c_one = force->numeric(FLERR,arg[1]); int n_one = force->inumeric(FLERR,arg[2]); diff --git a/src/USER-MOFFF/improper_inversion_harmonic.cpp b/src/USER-MOFFF/improper_inversion_harmonic.cpp index e38b82067d..ac2e06d364 100644 --- a/src/USER-MOFFF/improper_inversion_harmonic.cpp +++ b/src/USER-MOFFF/improper_inversion_harmonic.cpp @@ -276,7 +276,7 @@ void ImproperInversionHarmonic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double w_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-MOFFF/pair_buck6d_coul_gauss_dsf.cpp b/src/USER-MOFFF/pair_buck6d_coul_gauss_dsf.cpp index 57a935a0b3..8ad6b55598 100644 --- a/src/USER-MOFFF/pair_buck6d_coul_gauss_dsf.cpp +++ b/src/USER-MOFFF/pair_buck6d_coul_gauss_dsf.cpp @@ -275,8 +275,8 @@ void PairBuck6dCoulGaussDSF::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double buck6d1_one = force->numeric(FLERR,arg[2]); double buck6d2_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-MOFFF/pair_buck6d_coul_gauss_long.cpp b/src/USER-MOFFF/pair_buck6d_coul_gauss_long.cpp index d3ccec3a55..848cafd882 100644 --- a/src/USER-MOFFF/pair_buck6d_coul_gauss_long.cpp +++ b/src/USER-MOFFF/pair_buck6d_coul_gauss_long.cpp @@ -291,8 +291,8 @@ void PairBuck6dCoulGaussLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double buck6d1_one = force->numeric(FLERR,arg[2]); double buck6d2_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-SDPD/pair_sdpd_taitwater_isothermal.cpp b/src/USER-SDPD/pair_sdpd_taitwater_isothermal.cpp index b6f0c63546..befcdb8d34 100644 --- a/src/USER-SDPD/pair_sdpd_taitwater_isothermal.cpp +++ b/src/USER-SDPD/pair_sdpd_taitwater_isothermal.cpp @@ -30,6 +30,7 @@ #include "error.h" #include "domain.h" #include "update.h" +#include "utils.h" #ifndef USE_ZEST #include "random_mars.h" #endif @@ -270,8 +271,8 @@ void PairSDPDTaitwaterIsothermal::coeff (int narg, char **arg) { if (!allocated) allocate(); int ilo, ihi, jlo, jhi; - force->bounds (FLERR, arg[0], atom->ntypes, ilo, ihi); - force->bounds (FLERR, arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); double rho0_one = force->numeric (FLERR,arg[2]); double soundspeed_one = force->numeric (FLERR,arg[3]); diff --git a/src/USER-SMD/pair_smd_hertz.cpp b/src/USER-SMD/pair_smd_hertz.cpp index 97be94d833..b4af7ca955 100644 --- a/src/USER-SMD/pair_smd_hertz.cpp +++ b/src/USER-SMD/pair_smd_hertz.cpp @@ -40,6 +40,7 @@ #include "neigh_request.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -260,8 +261,8 @@ void PairHertz::coeff(int narg, char **arg) { allocate(); int ilo, ihi, jlo, jhi; - force->bounds(FLERR,arg[0], atom->ntypes, ilo, ihi); - force->bounds(FLERR,arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); double bulkmodulus_one = atof(arg[2]); diff --git a/src/USER-SMD/pair_smd_triangulated_surface.cpp b/src/USER-SMD/pair_smd_triangulated_surface.cpp index 53a93df7f7..b09fd38d09 100644 --- a/src/USER-SMD/pair_smd_triangulated_surface.cpp +++ b/src/USER-SMD/pair_smd_triangulated_surface.cpp @@ -41,6 +41,7 @@ #include "neigh_request.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace std; using namespace LAMMPS_NS; @@ -342,8 +343,8 @@ void PairTriSurf::coeff(int narg, char **arg) { allocate(); int ilo, ihi, jlo, jhi; - force->bounds(FLERR,arg[0], atom->ntypes, ilo, ihi); - force->bounds(FLERR,arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR,arg[0], 1,atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR,arg[1], 1,atom->ntypes, jlo, jhi, error); double bulkmodulus_one = atof(arg[2]); diff --git a/src/USER-SPH/pair_sph_heatconduction.cpp b/src/USER-SPH/pair_sph_heatconduction.cpp index ebd2cef684..2305bcf240 100644 --- a/src/USER-SPH/pair_sph_heatconduction.cpp +++ b/src/USER-SPH/pair_sph_heatconduction.cpp @@ -19,6 +19,7 @@ #include "error.h" #include "neigh_list.h" #include "domain.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -167,8 +168,8 @@ void PairSPHHeatConduction::coeff(int narg, char **arg) { allocate(); int ilo, ihi, jlo, jhi; - force->bounds(FLERR,arg[0], atom->ntypes, ilo, ihi); - force->bounds(FLERR,arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); double alpha_one = force->numeric(FLERR,arg[2]); double cut_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-SPH/pair_sph_idealgas.cpp b/src/USER-SPH/pair_sph_idealgas.cpp index 1f6b63e199..16d5f173ca 100644 --- a/src/USER-SPH/pair_sph_idealgas.cpp +++ b/src/USER-SPH/pair_sph_idealgas.cpp @@ -19,6 +19,7 @@ #include "memory.h" #include "error.h" #include "domain.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -209,8 +210,8 @@ void PairSPHIdealGas::coeff(int narg, char **arg) { allocate(); int ilo, ihi, jlo, jhi; - force->bounds(FLERR,arg[0], atom->ntypes, ilo, ihi); - force->bounds(FLERR,arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); double viscosity_one = force->numeric(FLERR,arg[2]); double cut_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-SPH/pair_sph_lj.cpp b/src/USER-SPH/pair_sph_lj.cpp index ae42c413e7..c4d62bff38 100644 --- a/src/USER-SPH/pair_sph_lj.cpp +++ b/src/USER-SPH/pair_sph_lj.cpp @@ -19,6 +19,7 @@ #include "memory.h" #include "error.h" #include "domain.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -217,8 +218,8 @@ void PairSPHLJ::coeff(int narg, char **arg) { allocate(); int ilo, ihi, jlo, jhi; - force->bounds(FLERR,arg[0], atom->ntypes, ilo, ihi); - force->bounds(FLERR,arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); double viscosity_one = force->numeric(FLERR,arg[2]); double cut_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-SPH/pair_sph_rhosum.cpp b/src/USER-SPH/pair_sph_rhosum.cpp index fa51dc3781..5b68e157fd 100644 --- a/src/USER-SPH/pair_sph_rhosum.cpp +++ b/src/USER-SPH/pair_sph_rhosum.cpp @@ -22,6 +22,7 @@ #include "neighbor.h" #include "update.h" #include "domain.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -238,8 +239,8 @@ void PairSPHRhoSum::coeff(int narg, char **arg) { allocate(); int ilo, ihi, jlo, jhi; - force->bounds(FLERR,arg[0], atom->ntypes, ilo, ihi); - force->bounds(FLERR,arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); double cut_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-SPH/pair_sph_taitwater.cpp b/src/USER-SPH/pair_sph_taitwater.cpp index 79d9ac7742..d49840ed5b 100644 --- a/src/USER-SPH/pair_sph_taitwater.cpp +++ b/src/USER-SPH/pair_sph_taitwater.cpp @@ -20,6 +20,7 @@ #include "memory.h" #include "error.h" #include "domain.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -239,8 +240,8 @@ void PairSPHTaitwater::coeff(int narg, char **arg) { allocate(); int ilo, ihi, jlo, jhi; - force->bounds(FLERR,arg[0], atom->ntypes, ilo, ihi); - force->bounds(FLERR,arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); double rho0_one = force->numeric(FLERR,arg[2]); double soundspeed_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-SPH/pair_sph_taitwater_morris.cpp b/src/USER-SPH/pair_sph_taitwater_morris.cpp index 862d2a8053..f513cb36a2 100644 --- a/src/USER-SPH/pair_sph_taitwater_morris.cpp +++ b/src/USER-SPH/pair_sph_taitwater_morris.cpp @@ -20,6 +20,7 @@ #include "memory.h" #include "error.h" #include "domain.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -240,8 +241,8 @@ void PairSPHTaitwaterMorris::coeff(int narg, char **arg) { allocate(); int ilo, ihi, jlo, jhi; - force->bounds(FLERR,arg[0], atom->ntypes, ilo, ihi); - force->bounds(FLERR,arg[1], atom->ntypes, jlo, jhi); + utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); double rho0_one = force->numeric(FLERR,arg[2]); double soundspeed_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-YAFF/angle_cross.cpp b/src/USER-YAFF/angle_cross.cpp index 3d5715c23e..e60563401a 100644 --- a/src/USER-YAFF/angle_cross.cpp +++ b/src/USER-YAFF/angle_cross.cpp @@ -223,7 +223,7 @@ void AngleCross::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); int count = 0; diff --git a/src/USER-YAFF/angle_mm3.cpp b/src/USER-YAFF/angle_mm3.cpp index cb3010e97c..0ebb92d933 100644 --- a/src/USER-YAFF/angle_mm3.cpp +++ b/src/USER-YAFF/angle_mm3.cpp @@ -180,7 +180,7 @@ void AngleMM3::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); int count = 0; diff --git a/src/USER-YAFF/bond_mm3.cpp b/src/USER-YAFF/bond_mm3.cpp index 8001e35d74..4009f64448 100644 --- a/src/USER-YAFF/bond_mm3.cpp +++ b/src/USER-YAFF/bond_mm3.cpp @@ -135,7 +135,7 @@ void BondMM3::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double k2_one = force->numeric(FLERR,arg[1]); double r0_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-YAFF/improper_distharm.cpp b/src/USER-YAFF/improper_distharm.cpp index 751e6e19c2..8486809813 100644 --- a/src/USER-YAFF/improper_distharm.cpp +++ b/src/USER-YAFF/improper_distharm.cpp @@ -219,7 +219,7 @@ void ImproperDistHarm::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double chi_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-YAFF/improper_sqdistharm.cpp b/src/USER-YAFF/improper_sqdistharm.cpp index 82bf4a1755..9bd07e51e0 100644 --- a/src/USER-YAFF/improper_sqdistharm.cpp +++ b/src/USER-YAFF/improper_sqdistharm.cpp @@ -219,7 +219,7 @@ void ImproperSQDistHarm::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); double k_one = force->numeric(FLERR,arg[1]); double chi_one = force->numeric(FLERR,arg[2]); diff --git a/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp b/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp index 37fc143e8b..fa0f3f4b05 100644 --- a/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp +++ b/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp @@ -299,8 +299,8 @@ void PairLJSwitch3CoulGaussLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp b/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp index 6b0466cd6d..7b31aca039 100644 --- a/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp +++ b/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp @@ -301,8 +301,8 @@ void PairMM3Switch3CoulGaussLong::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/angle_hybrid.cpp b/src/angle_hybrid.cpp index 882749b6b2..d0a1d29e65 100644 --- a/src/angle_hybrid.cpp +++ b/src/angle_hybrid.cpp @@ -267,7 +267,7 @@ void AngleHybrid::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); // 2nd arg = angle sub-style name // allow for "none" or "skip" as valid sub-style name diff --git a/src/angle_zero.cpp b/src/angle_zero.cpp index 5da8e9d5bc..90359fbb53 100644 --- a/src/angle_zero.cpp +++ b/src/angle_zero.cpp @@ -87,7 +87,7 @@ void AngleZero::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); double theta0_one = 0.0; if (coeffflag && (narg == 2)) diff --git a/src/bond_hybrid.cpp b/src/bond_hybrid.cpp index aadc25987a..2fe9f7d388 100644 --- a/src/bond_hybrid.cpp +++ b/src/bond_hybrid.cpp @@ -268,7 +268,7 @@ void BondHybrid::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); // 2nd arg = bond sub-style name // allow for "none" as valid sub-style name diff --git a/src/bond_zero.cpp b/src/bond_zero.cpp index cb336ddd67..abc497d5d5 100644 --- a/src/bond_zero.cpp +++ b/src/bond_zero.cpp @@ -85,7 +85,7 @@ void BondZero::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); double r0_one = 0.0; if (coeffflag && (narg == 2)) diff --git a/src/comm.cpp b/src/comm.cpp index 7902545330..c9a517340c 100644 --- a/src/comm.cpp +++ b/src/comm.cpp @@ -320,7 +320,7 @@ void Comm::modify_params(int narg, char **arg) for (i=0; i < ntypes+1; ++i) cutusermulti[i] = -1.0; } - force->bounds(FLERR,arg[iarg+1],ntypes,nlo,nhi,1); + utils::bounds(FLERR,arg[iarg+1],1,ntypes,nlo,nhi,error); cut = force->numeric(FLERR,arg[iarg+2]); cutghostuser = MAX(cutghostuser,cut); if (cut < 0.0) diff --git a/src/compute_adf.cpp b/src/compute_adf.cpp index dee5fb214f..e525d0250b 100644 --- a/src/compute_adf.cpp +++ b/src/compute_adf.cpp @@ -30,6 +30,7 @@ #include "memory.h" #include "error.h" #include "comm.h" +#include "utils.h" using namespace LAMMPS_NS; using namespace MathConst; @@ -134,9 +135,9 @@ ComputeADF::ComputeADF(LAMMPS *lmp, int narg, char **arg) : cutflag = 1; iarg = 4; for (int m = 0; m < ntriples; m++) { - force->bounds(FLERR,arg[iarg],atom->ntypes,ilo[m],ihi[m]); - force->bounds(FLERR,arg[iarg+1],atom->ntypes,jlo[m],jhi[m]); - force->bounds(FLERR,arg[iarg+2],atom->ntypes,klo[m],khi[m]); + utils::bounds(FLERR,arg[iarg],1,atom->ntypes,ilo[m],ihi[m],error); + utils::bounds(FLERR,arg[iarg+1],1,atom->ntypes,jlo[m],jhi[m],error); + utils::bounds(FLERR,arg[iarg+2],1,atom->ntypes,klo[m],khi[m],error); if (ilo[m] > ihi[m] || jlo[m] > jhi[m] || klo[m] > khi[m]) diff --git a/src/compute_coord_atom.cpp b/src/compute_coord_atom.cpp index 4a96c29a24..7bf3d017a9 100644 --- a/src/compute_coord_atom.cpp +++ b/src/compute_coord_atom.cpp @@ -75,7 +75,7 @@ ComputeCoordAtom::ComputeCoordAtom(LAMMPS *lmp, int narg, char **arg) : } else { ncol = 0; while (iarg < narg) { - force->bounds(FLERR,arg[iarg],ntypes,typelo[ncol],typehi[ncol]); + utils::bounds(FLERR,arg[iarg],1,ntypes,typelo[ncol],typehi[ncol],error); if (typelo[ncol] > typehi[ncol]) error->all(FLERR,"Illegal compute coord/atom command"); ncol++; diff --git a/src/compute_rdf.cpp b/src/compute_rdf.cpp index 501a506c98..5ceddd4578 100644 --- a/src/compute_rdf.cpp +++ b/src/compute_rdf.cpp @@ -32,6 +32,7 @@ #include "memory.h" #include "error.h" #include "comm.h" +#include "utils.h" using namespace LAMMPS_NS; using namespace MathConst; @@ -98,8 +99,8 @@ ComputeRDF::ComputeRDF(LAMMPS *lmp, int narg, char **arg) : } else { iarg = 4; for (int ipair = 0; ipair < npairs; ipair++) { - force->bounds(FLERR,arg[iarg],atom->ntypes,ilo[ipair],ihi[ipair]); - force->bounds(FLERR,arg[iarg+1],atom->ntypes,jlo[ipair],jhi[ipair]); + utils::bounds(FLERR,arg[iarg],1,atom->ntypes,ilo[ipair],ihi[ipair],error); + utils::bounds(FLERR,arg[iarg+1],1,atom->ntypes,jlo[ipair],jhi[ipair],error); if (ilo[ipair] > ihi[ipair] || jlo[ipair] > jhi[ipair]) error->all(FLERR,"Illegal compute rdf command"); iarg += 2; diff --git a/src/delete_bonds.cpp b/src/delete_bonds.cpp index 7b9260bc52..f08c94a273 100644 --- a/src/delete_bonds.cpp +++ b/src/delete_bonds.cpp @@ -75,7 +75,7 @@ void DeleteBonds::command(int narg, char **arg) else error->all(FLERR,"Illegal delete_bonds command"); // setup list of types (atom,bond,etc) to consider - // use force->bounds(FLERR,) to allow setting of range of types + // use utils::bounds(FLERR,) to allow setting of range of types // range can be 0 to ntypes inclusive int *tlist = NULL; @@ -94,7 +94,7 @@ void DeleteBonds::command(int narg, char **arg) tlist = new int[n+1]; for (int i = 0; i <= n; i++) tlist[i] = 0; int nlo,nhi; - force->bounds(FLERR,arg[2],n,nlo,nhi,0); + utils::bounds(FLERR,arg[2],0,n,nlo,nhi,error); for (int i = nlo; i <= nhi; i++) tlist[i] = 1; iarg++; diff --git a/src/dihedral_hybrid.cpp b/src/dihedral_hybrid.cpp index ca5c90093c..8f41b30d56 100644 --- a/src/dihedral_hybrid.cpp +++ b/src/dihedral_hybrid.cpp @@ -255,7 +255,7 @@ void DihedralHybrid::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); // 2nd arg = dihedral sub-style name // allow for "none" or "skip" as valid sub-style name diff --git a/src/dihedral_zero.cpp b/src/dihedral_zero.cpp index daf46fe79a..59167ca30e 100644 --- a/src/dihedral_zero.cpp +++ b/src/dihedral_zero.cpp @@ -21,6 +21,7 @@ #include "force.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -80,7 +81,7 @@ void DihedralZero::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ndihedraltypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/dump_image.cpp b/src/dump_image.cpp index a78c214e08..73252e94f2 100644 --- a/src/dump_image.cpp +++ b/src/dump_image.cpp @@ -35,6 +35,7 @@ #include "math_extra.h" #include "error.h" #include "memory.h" +#include "utils.h" using namespace LAMMPS_NS; using namespace MathConst; @@ -1246,7 +1247,7 @@ int DumpImage::modify_param(int narg, char **arg) if (strcmp(arg[0],"acolor") == 0) { if (narg < 3) error->all(FLERR,"Illegal dump_modify command"); int nlo,nhi; - force->bounds(FLERR,arg[1],atom->ntypes,nlo,nhi); + utils::bounds(FLERR,arg[1],1,atom->ntypes,nlo,nhi,error); // ptrs = list of ncount colornames separated by '/' @@ -1280,7 +1281,7 @@ int DumpImage::modify_param(int narg, char **arg) if (strcmp(arg[0],"adiam") == 0) { if (narg < 3) error->all(FLERR,"Illegal dump_modify command"); int nlo,nhi; - force->bounds(FLERR,arg[1],atom->ntypes,nlo,nhi); + utils::bounds(FLERR,arg[1],1,atom->ntypes,nlo,nhi,error); double diam = force->numeric(FLERR,arg[2]); if (diam <= 0.0) error->all(FLERR,"Illegal dump_modify command"); for (int i = nlo; i <= nhi; i++) diamtype[i] = diam; @@ -1309,7 +1310,7 @@ int DumpImage::modify_param(int narg, char **arg) if (atom->nbondtypes == 0) error->all(FLERR,"Dump modify bcolor not allowed with no bond types"); int nlo,nhi; - force->bounds(FLERR,arg[1],atom->nbondtypes,nlo,nhi); + utils::bounds(FLERR,arg[1],1,atom->nbondtypes,nlo,nhi,error); // ptrs = list of ncount colornames separated by '/' @@ -1345,7 +1346,7 @@ int DumpImage::modify_param(int narg, char **arg) if (atom->nbondtypes == 0) error->all(FLERR,"Dump modify bdiam not allowed with no bond types"); int nlo,nhi; - force->bounds(FLERR,arg[1],atom->nbondtypes,nlo,nhi); + utils::bounds(FLERR,arg[1],1,atom->nbondtypes,nlo,nhi,error); double diam = force->numeric(FLERR,arg[2]); if (diam <= 0.0) error->all(FLERR,"Illegal dump_modify command"); for (int i = nlo; i <= nhi; i++) bdiamtype[i] = diam; diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index c502dc6595..f8b8092c0d 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -98,10 +98,10 @@ nadapt(0), id_fix_diam(NULL), id_fix_chg(NULL), adapt(NULL) adapt[nadapt].pparam = new char[n]; adapt[nadapt].pair = NULL; strcpy(adapt[nadapt].pparam,arg[iarg+2]); - force->bounds(FLERR,arg[iarg+3],atom->ntypes, - adapt[nadapt].ilo,adapt[nadapt].ihi); - force->bounds(FLERR,arg[iarg+4],atom->ntypes, - adapt[nadapt].jlo,adapt[nadapt].jhi); + utils::bounds(FLERR,arg[iarg+3],1,atom->ntypes, + adapt[nadapt].ilo,adapt[nadapt].ihi,error); + utils::bounds(FLERR,arg[iarg+4],1,atom->ntypes, + adapt[nadapt].jlo,adapt[nadapt].jhi,error); if (strstr(arg[iarg+5],"v_") == arg[iarg+5]) { n = strlen(&arg[iarg+5][2]) + 1; adapt[nadapt].var = new char[n]; @@ -120,8 +120,8 @@ nadapt(0), id_fix_diam(NULL), id_fix_chg(NULL), adapt(NULL) adapt[nadapt].bparam = new char[n]; adapt[nadapt].bond = NULL; strcpy(adapt[nadapt].bparam,arg[iarg+2]); - force->bounds(FLERR,arg[iarg+3],atom->nbondtypes, - adapt[nadapt].ilo,adapt[nadapt].ihi); + utils::bounds(FLERR,arg[iarg+3],1,atom->nbondtypes, + adapt[nadapt].ilo,adapt[nadapt].ihi,error); if (strstr(arg[iarg+4],"v_") == arg[iarg+4]) { n = strlen(&arg[iarg+4][2]) + 1; adapt[nadapt].var = new char[n]; diff --git a/src/force.cpp b/src/force.cpp index babb052e84..13b1971545 100644 --- a/src/force.cpp +++ b/src/force.cpp @@ -836,74 +836,6 @@ void Force::set_special(int narg, char **arg) error->all(FLERR,"Illegal special_bonds command"); } -/* ---------------------------------------------------------------------- - compute bounds implied by numeric str with a possible wildcard asterik - 1 = lower bound, nmax = upper bound - 5 possibilities: - (1) i = i to i, (2) * = nmin to nmax, - (3) i* = i to nmax, (4) *j = nmin to j, (5) i*j = i to j - return nlo,nhi -------------------------------------------------------------------------- */ - -void Force::bounds(const char *file, int line, char *str, - int nmax, int &nlo, int &nhi, int nmin) -{ - char *ptr = strchr(str,'*'); - - if (ptr == NULL) { - nlo = nhi = atoi(str); - } else if (strlen(str) == 1) { - nlo = nmin; - nhi = nmax; - } else if (ptr == str) { - nlo = nmin; - nhi = atoi(ptr+1); - } else if (strlen(ptr+1) == 0) { - nlo = atoi(str); - nhi = nmax; - } else { - nlo = atoi(str); - nhi = atoi(ptr+1); - } - - if (nlo < nmin || nhi > nmax || nlo > nhi) - error->all(file,line,"Numeric index is out of bounds"); -} - -/* ---------------------------------------------------------------------- - compute bounds implied by numeric str with a possible wildcard asterik - 1 = lower bound, nmax = upper bound - 5 possibilities: - (1) i = i to i, (2) * = nmin to nmax, - (3) i* = i to nmax, (4) *j = nmin to j, (5) i*j = i to j - return nlo,nhi -------------------------------------------------------------------------- */ - -void Force::boundsbig(const char *file, int line, char *str, - bigint nmax, bigint &nlo, bigint &nhi, bigint nmin) -{ - char *ptr = strchr(str,'*'); - - if (ptr == NULL) { - nlo = nhi = ATOBIGINT(str); - } else if (strlen(str) == 1) { - nlo = nmin; - nhi = nmax; - } else if (ptr == str) { - nlo = nmin; - nhi = ATOBIGINT(ptr+1); - } else if (strlen(ptr+1) == 0) { - nlo = ATOBIGINT(str); - nhi = nmax; - } else { - nlo = ATOBIGINT(str); - nhi = ATOBIGINT(ptr+1); - } - - if (nlo < nmin || nhi > nmax || nlo > nhi) - error->all(file,line,"Numeric index is out of bounds"); -} - /* ---------------------------------------------------------------------- read a floating point value from a string generate an error if not a legitimate floating point value diff --git a/src/force.h b/src/force.h index b566f02fb7..929d29d8e5 100644 --- a/src/force.h +++ b/src/force.h @@ -128,8 +128,6 @@ class Force : protected Pointers { void store_style(char *&, const std::string &, int); void set_special(int, char **); - void bounds(const char *, int, char *, int, int &, int &, int nmin=1); - void boundsbig(const char *, int, char *, bigint, bigint &, bigint &, bigint nmin=1); double numeric(const char *, int, char *); int inumeric(const char *, int, char *); bigint bnumeric(const char *, int, char *); diff --git a/src/improper_hybrid.cpp b/src/improper_hybrid.cpp index 69dfc2d9cd..ce0f36539f 100644 --- a/src/improper_hybrid.cpp +++ b/src/improper_hybrid.cpp @@ -263,7 +263,7 @@ void ImproperHybrid::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); // 2nd arg = improper sub-style name // allow for "none" as valid sub-style name diff --git a/src/improper_zero.cpp b/src/improper_zero.cpp index efa70c8ff5..f269f8bf03 100644 --- a/src/improper_zero.cpp +++ b/src/improper_zero.cpp @@ -21,6 +21,7 @@ #include "force.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -80,7 +81,7 @@ void ImproperZero::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_beck.cpp b/src/pair_beck.cpp index 6085398d4c..0b300bc7f5 100644 --- a/src/pair_beck.cpp +++ b/src/pair_beck.cpp @@ -199,8 +199,8 @@ void PairBeck::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double AA_one = force->numeric(FLERR,arg[2]); double BB_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_born.cpp b/src/pair_born.cpp index b0aba57df5..b2a5ee2f7b 100644 --- a/src/pair_born.cpp +++ b/src/pair_born.cpp @@ -199,8 +199,8 @@ void PairBorn::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a_one = force->numeric(FLERR,arg[2]); double rho_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_born_coul_dsf.cpp b/src/pair_born_coul_dsf.cpp index 3e8c76696b..ced2c3ccf3 100644 --- a/src/pair_born_coul_dsf.cpp +++ b/src/pair_born_coul_dsf.cpp @@ -240,8 +240,8 @@ void PairBornCoulDSF::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a_one = force->numeric(FLERR,arg[2]); double rho_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_born_coul_wolf.cpp b/src/pair_born_coul_wolf.cpp index dc4e4b8e3f..30275a05b1 100644 --- a/src/pair_born_coul_wolf.cpp +++ b/src/pair_born_coul_wolf.cpp @@ -243,8 +243,8 @@ void PairBornCoulWolf::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a_one = force->numeric(FLERR,arg[2]); double rho_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_buck.cpp b/src/pair_buck.cpp index 6fc1c782e0..982c400135 100644 --- a/src/pair_buck.cpp +++ b/src/pair_buck.cpp @@ -192,8 +192,8 @@ void PairBuck::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a_one = force->numeric(FLERR,arg[2]); double rho_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_buck_coul_cut.cpp b/src/pair_buck_coul_cut.cpp index de36b58df2..76ff05729e 100644 --- a/src/pair_buck_coul_cut.cpp +++ b/src/pair_buck_coul_cut.cpp @@ -225,8 +225,8 @@ void PairBuckCoulCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a_one = force->numeric(FLERR,arg[2]); double rho_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_coul_cut.cpp b/src/pair_coul_cut.cpp index a197955085..2abc65f322 100644 --- a/src/pair_coul_cut.cpp +++ b/src/pair_coul_cut.cpp @@ -172,8 +172,8 @@ void PairCoulCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_one = cut_global; if (narg == 3) cut_one = force->numeric(FLERR,arg[2]); diff --git a/src/pair_coul_dsf.cpp b/src/pair_coul_dsf.cpp index 992ee33ecb..b1bea9edbb 100644 --- a/src/pair_coul_dsf.cpp +++ b/src/pair_coul_dsf.cpp @@ -185,8 +185,8 @@ void PairCoulDSF::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_coul_wolf.cpp b/src/pair_coul_wolf.cpp index b34877f508..38220386c0 100644 --- a/src/pair_coul_wolf.cpp +++ b/src/pair_coul_wolf.cpp @@ -186,8 +186,8 @@ void PairCoulWolf::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_dpd.cpp b/src/pair_dpd.cpp index ef0b7dd21d..d38e1f0655 100644 --- a/src/pair_dpd.cpp +++ b/src/pair_dpd.cpp @@ -221,8 +221,8 @@ void PairDPD::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a0_one = force->numeric(FLERR,arg[2]); double gamma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_dpd_tstat.cpp b/src/pair_dpd_tstat.cpp index 8366ff459f..fde8e2e2c3 100644 --- a/src/pair_dpd_tstat.cpp +++ b/src/pair_dpd_tstat.cpp @@ -176,8 +176,8 @@ void PairDPDTstat::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a0_one = 0.0; double gamma_one = force->numeric(FLERR,arg[2]); diff --git a/src/pair_gauss.cpp b/src/pair_gauss.cpp index dcc3ac5f51..fbf55b397a 100644 --- a/src/pair_gauss.cpp +++ b/src/pair_gauss.cpp @@ -187,8 +187,8 @@ void PairGauss::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a_one = force->numeric(FLERR,arg[2]); double b_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_hybrid.cpp b/src/pair_hybrid.cpp index 646ddefc3e..baf3fd550f 100644 --- a/src/pair_hybrid.cpp +++ b/src/pair_hybrid.cpp @@ -438,8 +438,8 @@ void PairHybrid::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // 3rd arg = pair sub-style name // 4th arg = pair sub-style index if name used multiple times diff --git a/src/pair_hybrid_overlay.cpp b/src/pair_hybrid_overlay.cpp index 4c2acfe8ba..a0b233d5bc 100644 --- a/src/pair_hybrid_overlay.cpp +++ b/src/pair_hybrid_overlay.cpp @@ -17,6 +17,7 @@ #include "atom.h" #include "force.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -34,8 +35,8 @@ void PairHybridOverlay::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); // 3rd arg = pair sub-style name // 4th arg = pair sub-style index if name used multiple times diff --git a/src/pair_lj96_cut.cpp b/src/pair_lj96_cut.cpp index 8be6fefa44..de9ffcf486 100644 --- a/src/pair_lj96_cut.cpp +++ b/src/pair_lj96_cut.cpp @@ -456,8 +456,8 @@ void PairLJ96Cut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_lj_cubic.cpp b/src/pair_lj_cubic.cpp index 366554178f..2a2bd77599 100644 --- a/src/pair_lj_cubic.cpp +++ b/src/pair_lj_cubic.cpp @@ -192,8 +192,8 @@ void PairLJCubic::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_lj_cut.cpp b/src/pair_lj_cut.cpp index 60bb7bceee..e9f6bce50b 100644 --- a/src/pair_lj_cut.cpp +++ b/src/pair_lj_cut.cpp @@ -450,8 +450,8 @@ void PairLJCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_lj_cut_coul_cut.cpp b/src/pair_lj_cut_coul_cut.cpp index 7f0f89a5bf..8c1a52fa6c 100644 --- a/src/pair_lj_cut_coul_cut.cpp +++ b/src/pair_lj_cut_coul_cut.cpp @@ -217,8 +217,8 @@ void PairLJCutCoulCut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_lj_cut_coul_dsf.cpp b/src/pair_lj_cut_coul_dsf.cpp index 9dc6c001f4..cb2a4079c1 100644 --- a/src/pair_lj_cut_coul_dsf.cpp +++ b/src/pair_lj_cut_coul_dsf.cpp @@ -241,8 +241,8 @@ void PairLJCutCoulDSF::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_lj_cut_coul_wolf.cpp b/src/pair_lj_cut_coul_wolf.cpp index 303d9a88bb..40bdfc5ce4 100644 --- a/src/pair_lj_cut_coul_wolf.cpp +++ b/src/pair_lj_cut_coul_wolf.cpp @@ -236,8 +236,8 @@ void PairLJCutCoulWolf::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_lj_expand.cpp b/src/pair_lj_expand.cpp index 98c8a808e2..a0728319c8 100644 --- a/src/pair_lj_expand.cpp +++ b/src/pair_lj_expand.cpp @@ -194,8 +194,8 @@ void PairLJExpand::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_lj_gromacs.cpp b/src/pair_lj_gromacs.cpp index 73f4307d62..d7cb640f30 100644 --- a/src/pair_lj_gromacs.cpp +++ b/src/pair_lj_gromacs.cpp @@ -220,8 +220,8 @@ void PairLJGromacs::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_lj_gromacs_coul_gromacs.cpp b/src/pair_lj_gromacs_coul_gromacs.cpp index a5663ecfd8..ab0e42e483 100644 --- a/src/pair_lj_gromacs_coul_gromacs.cpp +++ b/src/pair_lj_gromacs_coul_gromacs.cpp @@ -246,8 +246,8 @@ void PairLJGromacsCoulGromacs::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_lj_smooth.cpp b/src/pair_lj_smooth.cpp index bf97a44732..182738f547 100644 --- a/src/pair_lj_smooth.cpp +++ b/src/pair_lj_smooth.cpp @@ -225,8 +225,8 @@ void PairLJSmooth::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_lj_smooth_linear.cpp b/src/pair_lj_smooth_linear.cpp index 19e84f971d..e69fdc162b 100644 --- a/src/pair_lj_smooth_linear.cpp +++ b/src/pair_lj_smooth_linear.cpp @@ -194,8 +194,8 @@ void PairLJSmoothLinear::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_mie_cut.cpp b/src/pair_mie_cut.cpp index f031401a00..01f4ae98a4 100644 --- a/src/pair_mie_cut.cpp +++ b/src/pair_mie_cut.cpp @@ -461,8 +461,8 @@ void PairMIECut::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_morse.cpp b/src/pair_morse.cpp index b883036c18..52237555a0 100644 --- a/src/pair_morse.cpp +++ b/src/pair_morse.cpp @@ -181,8 +181,8 @@ void PairMorse::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double d0_one = force->numeric(FLERR,arg[2]); double alpha_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_soft.cpp b/src/pair_soft.cpp index ddfc4476dc..dee10052f9 100644 --- a/src/pair_soft.cpp +++ b/src/pair_soft.cpp @@ -172,8 +172,8 @@ void PairSoft::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double prefactor_one = force->numeric(FLERR,arg[2]); diff --git a/src/pair_table.cpp b/src/pair_table.cpp index bd2a6be654..0d9769cab8 100644 --- a/src/pair_table.cpp +++ b/src/pair_table.cpp @@ -259,8 +259,8 @@ void PairTable::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); int me; MPI_Comm_rank(world,&me); diff --git a/src/pair_ufm.cpp b/src/pair_ufm.cpp index 3b94902af7..9f9f18dced 100644 --- a/src/pair_ufm.cpp +++ b/src/pair_ufm.cpp @@ -187,8 +187,8 @@ void PairUFM::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double epsilon_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); diff --git a/src/pair_yukawa.cpp b/src/pair_yukawa.cpp index d1e06fdb84..5a3a589702 100644 --- a/src/pair_yukawa.cpp +++ b/src/pair_yukawa.cpp @@ -177,8 +177,8 @@ void PairYukawa::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a_one = force->numeric(FLERR,arg[2]); diff --git a/src/pair_zbl.cpp b/src/pair_zbl.cpp index 2ba499a911..5655570351 100644 --- a/src/pair_zbl.cpp +++ b/src/pair_zbl.cpp @@ -206,10 +206,10 @@ void PairZBL::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); int jlo,jhi; - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); z_one = force->numeric(FLERR,arg[2]); z_two = force->numeric(FLERR,arg[3]); diff --git a/src/pair_zero.cpp b/src/pair_zero.cpp index 6ab108ff4f..be09647365 100644 --- a/src/pair_zero.cpp +++ b/src/pair_zero.cpp @@ -117,8 +117,8 @@ void PairZero::coeff(int narg, char **arg) if (!allocated) allocate(); int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_one = cut_global; if (coeffflag && (narg == 3)) cut_one = force->numeric(FLERR,arg[2]); diff --git a/src/set.cpp b/src/set.cpp index 01176f68c0..22121c0b72 100644 --- a/src/set.cpp +++ b/src/set.cpp @@ -633,7 +633,7 @@ void Set::selection(int n) if (atom->tag_enable == 0) error->all(FLERR,"Cannot use set atom with no atom IDs defined"); bigint nlobig,nhibig; - force->boundsbig(FLERR,id,MAXTAGINT,nlobig,nhibig); + utils::boundsbig(FLERR,id,1,MAXTAGINT,nlobig,nhibig,error); tagint *tag = atom->tag; for (int i = 0; i < n; i++) @@ -644,7 +644,7 @@ void Set::selection(int n) if (atom->molecule_flag == 0) error->all(FLERR,"Cannot use set mol with no molecule IDs defined"); bigint nlobig,nhibig; - force->boundsbig(FLERR,id,MAXTAGINT,nlobig,nhibig); + utils::boundsbig(FLERR,id,1,MAXTAGINT,nlobig,nhibig,error); tagint *molecule = atom->molecule; for (int i = 0; i < n; i++) @@ -652,7 +652,7 @@ void Set::selection(int n) else select[i] = 0; } else if (style == TYPE_SELECT) { - force->bounds(FLERR,id,atom->ntypes,nlo,nhi); + utils::bounds(FLERR,id,1,atom->ntypes,nlo,nhi,error); int *type = atom->type; for (int i = 0; i < n; i++) diff --git a/src/utils.cpp b/src/utils.cpp index e9058d4c2d..46a369c02d 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -16,7 +16,11 @@ #include #include #include "lammps.h" +#include "compute.h" #include "error.h" +#include "fix.h" +#include "memory.h" +#include "modify.h" #include "tokenizer.h" #include "text_file_reader.h" #include "fmt/format.h" @@ -350,6 +354,216 @@ tagint utils::tnumeric(const char *file, int line, const char *str, return ATOTAGINT(str); } +/* ---------------------------------------------------------------------- + compute bounds implied by numeric str with a possible wildcard asterisk +------------------------------------------------------------------------- */ +void utils::bounds(const char *file, int line, char *str, + int nmin, int nmax, int &nlo, int &nhi, Error *error) +{ + char *ptr = strchr(str,'*'); + + nlo = nhi = -1; + if (ptr == NULL) { + nlo = nhi = atoi(str); + } else if (strlen(str) == 1) { + nlo = nmin; + nhi = nmax; + } else if (ptr == str) { + nlo = nmin; + nhi = atoi(ptr+1); + } else if (strlen(ptr+1) == 0) { + nlo = atoi(str); + nhi = nmax; + } else { + nlo = atoi(str); + nhi = atoi(ptr+1); + } + + if (error) { + if (nlo < nmin) + error->all(file,line,fmt::format("Numeric index {} is out of bounds" + "({}-{})",nlo,nmin,nmax)); + else if (nhi > nmax) + error->all(file,line,fmt::format("Numeric index {} is out of bounds" + "({}-{})",nhi,nmin,nmax)); + else if (nlo > nhi) + error->all(file,line,fmt::format("Numeric index {} is out of bounds" + "({}-{})",nlo,nmin,nhi)); + } +} + + +/* ---------------------------------------------------------------------- + compute bounds implied by numeric str with a possible wildcard asterisk +------------------------------------------------------------------------- */ +void utils::boundsbig(const char *file, int line, char *str, + bigint nmin, bigint nmax, bigint &nlo, bigint &nhi, + Error *error) +{ + char *ptr = strchr(str,'*'); + + nlo = nhi = -1; + if (ptr == NULL) { + nlo = nhi = ATOBIGINT(str); + } else if (strlen(str) == 1) { + nlo = nmin; + nhi = nmax; + } else if (ptr == str) { + nlo = nmin; + nhi = ATOBIGINT(ptr+1); + } else if (strlen(ptr+1) == 0) { + nlo = ATOBIGINT(str); + nhi = nmax; + } else { + nlo = ATOBIGINT(str); + nhi = ATOBIGINT(ptr+1); + } + + if (error) { + if (nlo < nmin) + error->all(file,line,fmt::format("Numeric index {} is out of bounds" + "({}-{})",nlo,nmin,nmax)); + else if (nhi > nmax) + error->all(file,line,fmt::format("Numeric index {} is out of bounds" + "({}-{})",nhi,nmin,nmax)); + else if (nlo > nhi) + error->all(file,line,fmt::format("Numeric index {} is out of bounds" + "({}-{})",nlo,nmin,nhi)); + } +} + +/* ------------------------------------------------------------------------- + Expand list of arguments in arg to earg if arg contains wildcards +------------------------------------------------------------------------- */ + +int utils::expand_args(const char *file, int line, int narg, char **arg, + int mode, char **&earg, LAMMPS *lmp) +{ + int n,iarg,index,nlo,nhi,nmax,expandflag,icompute,ifix; + char *ptr1,*ptr2,*str; + + ptr1 = NULL; + for (iarg = 0; iarg < narg; iarg++) { + ptr1 = strchr(arg[iarg],'*'); + if (ptr1) break; + } + + if (!ptr1) { + earg = arg; + return narg; + } + + // maxarg should always end up equal to newarg, so caller can free earg + + int maxarg = narg-iarg; + earg = (char **) lmp->memory->smalloc(maxarg*sizeof(char *),"input:earg"); + + int newarg = 0; + for (iarg = 0; iarg < narg; iarg++) { + expandflag = 0; + + if (strncmp(arg[iarg],"c_",2) == 0 || + strncmp(arg[iarg],"f_",2) == 0) { + + ptr1 = strchr(&arg[iarg][2],'['); + if (ptr1) { + ptr2 = strchr(ptr1,']'); + if (ptr2) { + *ptr2 = '\0'; + if (strchr(ptr1,'*')) { + if (arg[iarg][0] == 'c') { + *ptr1 = '\0'; + icompute = lmp->modify->find_compute(&arg[iarg][2]); + *ptr1 = '['; + + // check for global vector/array, peratom array, local array + + if (icompute >= 0) { + if (mode == 0 && lmp->modify->compute[icompute]->vector_flag) { + nmax = lmp->modify->compute[icompute]->size_vector; + expandflag = 1; + } else if (mode == 1 && lmp->modify->compute[icompute]->array_flag) { + nmax = lmp->modify->compute[icompute]->size_array_cols; + expandflag = 1; + } else if (lmp->modify->compute[icompute]->peratom_flag && + lmp->modify->compute[icompute]->size_peratom_cols) { + nmax = lmp->modify->compute[icompute]->size_peratom_cols; + expandflag = 1; + } else if (lmp->modify->compute[icompute]->local_flag && + lmp->modify->compute[icompute]->size_local_cols) { + nmax = lmp->modify->compute[icompute]->size_local_cols; + expandflag = 1; + } + } + } else if (arg[iarg][0] == 'f') { + *ptr1 = '\0'; + ifix = lmp->modify->find_fix(&arg[iarg][2]); + *ptr1 = '['; + + // check for global vector/array, peratom array, local array + + if (ifix >= 0) { + if (mode == 0 && lmp->modify->fix[ifix]->vector_flag) { + nmax = lmp->modify->fix[ifix]->size_vector; + expandflag = 1; + } else if (mode == 1 && lmp->modify->fix[ifix]->array_flag) { + nmax = lmp->modify->fix[ifix]->size_array_cols; + expandflag = 1; + } else if (lmp->modify->fix[ifix]->peratom_flag && + lmp->modify->fix[ifix]->size_peratom_cols) { + nmax = lmp->modify->fix[ifix]->size_peratom_cols; + expandflag = 1; + } else if (lmp->modify->fix[ifix]->local_flag && + lmp->modify->fix[ifix]->size_local_cols) { + nmax = lmp->modify->fix[ifix]->size_local_cols; + expandflag = 1; + } + } + } + } + *ptr2 = ']'; + } + } + } + + if (expandflag) { + *ptr2 = '\0'; + bounds(file,line,ptr1+1,1,nmax,nlo,nhi,lmp->error); + *ptr2 = ']'; + if (newarg+nhi-nlo+1 > maxarg) { + maxarg += nhi-nlo+1; + earg = (char **) + lmp->memory->srealloc(earg,maxarg*sizeof(char *),"input:earg"); + } + for (index = nlo; index <= nhi; index++) { + n = strlen(arg[iarg]) + 16; // 16 = space for large inserted integer + str = earg[newarg] = new char[n]; + strncpy(str,arg[iarg],ptr1+1-arg[iarg]); + sprintf(&str[ptr1+1-arg[iarg]],"%d",index); + strcat(str,ptr2); + newarg++; + } + + } else { + if (newarg == maxarg) { + maxarg++; + earg = (char **) + lmp->memory->srealloc(earg,maxarg*sizeof(char *),"input:earg"); + } + n = strlen(arg[iarg]) + 1; + earg[newarg] = new char[n]; + strcpy(earg[newarg],arg[iarg]); + newarg++; + } + } + + //printf("NEWARG %d\n",newarg); + //for (int i = 0; i < newarg; i++) + // printf(" arg %d: %s\n",i,earg[i]); + + return newarg; +} + /* ---------------------------------------------------------------------- Return string without leading or trailing whitespace ------------------------------------------------------------------------- */ diff --git a/src/utils.h b/src/utils.h index 4b1c68fb8e..2fb3c839a5 100644 --- a/src/utils.h +++ b/src/utils.h @@ -94,12 +94,12 @@ namespace LAMMPS_NS { /** Convert a string to a floating point number while checking * if it is a valid floating point or integer number * - * \param file name of source file for error message - * \param line in source file for error message - * \param str string to be converted to number + * \param file name of source file for error message + * \param line line number in source file for error message + * \param str string to be converted to number * \param do_abort determines whether to call Error::one() or Error::all() - * \param lmp pointer to top-level LAMMPS class instance - * \return double precision floating point number + * \param lmp pointer to top-level LAMMPS class instance + * \return double precision floating point number */ double numeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp); @@ -107,12 +107,12 @@ namespace LAMMPS_NS { /** Convert a string to an integer number while checking * if it is a valid integer number (regular int) * - * \param file name of source file for error message - * \param line in source file for error message - * \param str string to be converted to number + * \param file name of source file for error message + * \param line line number in source file for error message + * \param str string to be converted to number * \param do_abort determines whether to call Error::one() or Error::all() - * \param lmp pointer to top-level LAMMPS class instance - * \return integer number (regular int) + * \param lmp pointer to top-level LAMMPS class instance + * \return integer number (regular int) */ int inumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp); @@ -120,12 +120,12 @@ namespace LAMMPS_NS { /** Convert a string to an integer number while checking * if it is a valid integer number (bigint) * - * \param file name of source file for error message - * \param line in source file for error message - * \param str string to be converted to number + * \param file name of source file for error message + * \param line line number in source file for error message + * \param str string to be converted to number * \param do_abort determines whether to call Error::one() or Error::all() - * \param lmp pointer to top-level LAMMPS class instance - * \return integer number (bigint) + * \param lmp pointer to top-level LAMMPS class instance + * \return integer number (bigint) */ bigint bnumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp); @@ -133,16 +133,94 @@ namespace LAMMPS_NS { /** Convert a string to an integer number while checking * if it is a valid integer number (tagint) * - * \param file name of source file for error message - * \param line in source file for error message - * \param str string to be converted to number + * \param file name of source file for error message + * \param line line number in source file for error message + * \param str string to be converted to number * \param do_abort determines whether to call Error::one() or Error::all() - * \param lmp pointer to top-level LAMMPS class instance - * \return integer number (tagint) + * \param lmp pointer to top-level LAMMPS class instance + * \return integer number (tagint) */ tagint tnumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp); + /** Compute index bounds derived from a string with a possible wildcard + * +\verbatim embed:rst + +This functions processes the string in *str* and set the values of *nlo* +and *nhi* according to the following five cases: +#. a single number *i*: nlo = i; nhi = i; +#. a single asterix *\*\ *: nlo = nmin; nhi = nmax; +#. a single number followed by an asterix *i\*\ *: nlo = i; nhi = nmax; +#. a single asterix followed by a number *\*\ i*: nlo = nmin; nhi = i; +#. two numbers with an asterix in between *i\*\ j*: nlo = i; nhi = j; +\endverbatim + + * \param file name of source file for error message + * \param line line number in source file for error message + * \param str string to be processed + * \param nmin smallest possible lower bound + * \param nmax largest allowed upper bound + * \param nlo lower bound + * \param nhi upper bound + * \param error pointer to Error class for out-of-bounds error message + */ + void bounds(const char *file, int line, char *str, + int nmin, int nmax, int &nlo, int &nhi, Error *error); + + /** Compute index bounds derived from a string with a possible wildcard + * +\verbatim embed:rst +This functions processes the string in *str* and set the values of *nlo* +and *nhi* according to the following five cases: +#. a single number *i*: nlo = i; nhi = i; +#. a single asterix *\*\ *: nlo = nmin; nhi = nmax; +#. a single number followed by an asterix *i\*\ *: nlo = i; nhi = nmax; +#. a single asterix followed by a number *\*\ i*: nlo = nmin; nhi = i; +#. two numbers with an asterix in between *i\*\ j*: nlo = i; nhi = j; +\endverbatim + + * \param file name of source file for error message + * \param line line number in source file for error message + * \param str string to be processed + * \param nmin smallest possible lower bound + * \param nmax largest allowed upper bound + * \param nlo lower bound + * \param nhi upper bound + * \param error pointer to Error class for out-of-bounds error message + */ + void boundsbig(const char *file, int line, char *str, + bigint nmin, bigint nmax, bigint &nlo, bigint &nhi, + Error *error); + + /** Expand list of arguments when containing fix/compute wildcards + * + * This function searches the list of arguments in *arg* for strings + * of the kind c_ID[*] or f_ID[*] referring to computes or fixes. + * Any such strings are replaced by one or more strings with the + * '*' character replaced by the corresponding possible numbers as + * determined from the fix or compute instance. Other strings are + * just copied. If the *mode* parameter is set to 0, expand global + * vectors, but not global arrays; if it is set to 1, expand global + * arrays (by column) but not global vectors. + * + * If any expansion happens, the earg list and all its + * strings are new allocations and must be freed explicitly by the + * caller. Otherwise arg and earg will point to the same address + * and no explicit deallocation is needed by the caller. + * + * \param file name of source file for error message + * \param line line number in source file for error message + * \param narg number of arguments in current list + * \param arg argument list, possibly containing wildcards + * \param mode select between global vectors(=0) and arrays (=1) + * \param earg new argument list with wildcards expanded + * \param lmp pointer to top-level LAMMPS class instance + * \return number of arguments in expanded list + */ + int expand_args(const char *file, int line, int narg, char **arg, + int mode, char **&earg, LAMMPS *lmp); + /** Trim leading and trailing whitespace. Like TRIM() in Fortran. * * \param line string that should be trimmed -- GitLab From 741a1d1fc94754bb6231fc9f34faf429b165e2b7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 18:32:10 -0400 Subject: [PATCH 127/165] move Input::expand_args() to utils::expand_args() --- src/compute_chunk_spread_atom.cpp | 2 +- src/compute_global_atom.cpp | 3 +- src/compute_reduce.cpp | 3 +- src/compute_reduce_chunk.cpp | 3 +- src/dump_custom.cpp | 3 +- src/dump_local.cpp | 3 +- src/fix_ave_atom.cpp | 3 +- src/fix_ave_chunk.cpp | 2 +- src/fix_ave_correlate.cpp | 2 +- src/fix_ave_histo.cpp | 2 +- src/fix_ave_time.cpp | 2 +- src/input.cpp | 137 +----------------------------- src/input.h | 1 - src/thermo.cpp | 2 +- 14 files changed, 19 insertions(+), 149 deletions(-) diff --git a/src/compute_chunk_spread_atom.cpp b/src/compute_chunk_spread_atom.cpp index 41dbf2d5cb..579b194b9f 100644 --- a/src/compute_chunk_spread_atom.cpp +++ b/src/compute_chunk_spread_atom.cpp @@ -54,7 +54,7 @@ ComputeChunkSpreadAtom(LAMMPS *lmp, int narg, char **arg) : int iarg = 4; int expand = 0; char **earg; - int nargnew = input->expand_args(narg-iarg,&arg[iarg],1,earg); + int nargnew = utils::expand_args(FLERR,narg-iarg,&arg[iarg],1,earg,lmp); if (earg != &arg[iarg]) expand = 1; arg = earg; diff --git a/src/compute_global_atom.cpp b/src/compute_global_atom.cpp index f015ec910a..0c0e34fa0c 100644 --- a/src/compute_global_atom.cpp +++ b/src/compute_global_atom.cpp @@ -22,6 +22,7 @@ #include "variable.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -80,7 +81,7 @@ ComputeGlobalAtom::ComputeGlobalAtom(LAMMPS *lmp, int narg, char **arg) : int expand = 0; char **earg; - int nargnew = input->expand_args(narg-iarg,&arg[iarg],1,earg); + int nargnew = utils::expand_args(FLERR,narg-iarg,&arg[iarg],1,earg,lmp); if (earg != &arg[iarg]) expand = 1; arg = earg; diff --git a/src/compute_reduce.cpp b/src/compute_reduce.cpp index 8467554faa..d4730c1de0 100644 --- a/src/compute_reduce.cpp +++ b/src/compute_reduce.cpp @@ -25,6 +25,7 @@ #include "variable.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -78,7 +79,7 @@ ComputeReduce::ComputeReduce(LAMMPS *lmp, int narg, char **arg) : int expand = 0; char **earg; - int nargnew = input->expand_args(narg-iarg,&arg[iarg],1,earg); + int nargnew = utils::expand_args(FLERR,narg-iarg,&arg[iarg],1,earg,lmp); if (earg != &arg[iarg]) expand = 1; arg = earg; diff --git a/src/compute_reduce_chunk.cpp b/src/compute_reduce_chunk.cpp index 3b68e20fcb..cd64c8cb1b 100644 --- a/src/compute_reduce_chunk.cpp +++ b/src/compute_reduce_chunk.cpp @@ -25,6 +25,7 @@ #include "variable.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -64,7 +65,7 @@ ComputeReduceChunk::ComputeReduceChunk(LAMMPS *lmp, int narg, char **arg) : int expand = 0; char **earg; - int nargnew = input->expand_args(narg-iarg,&arg[iarg],1,earg); + int nargnew = utils::expand_args(FLERR,narg-iarg,&arg[iarg],1,earg,lmp); if (earg != &arg[iarg]) expand = 1; arg = earg; diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 3297ecb4e7..33b7c4603b 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -29,6 +29,7 @@ #include "error.h" #include "update.h" #include "variable.h" +#include "utils.h" #include "fmt/format.h" using namespace LAMMPS_NS; @@ -76,7 +77,7 @@ DumpCustom::DumpCustom(LAMMPS *lmp, int narg, char **arg) : // nfield may be shrunk below if extra optional args exist expand = 0; - nfield = nargnew = input->expand_args(narg-5,&arg[5],1,earg); + nfield = nargnew = utils::expand_args(FLERR,narg-5,&arg[5],1,earg,lmp); if (earg != &arg[5]) expand = 1; // allocate field vectors diff --git a/src/dump_local.cpp b/src/dump_local.cpp index 21a96d1e8a..85fb5dff14 100644 --- a/src/dump_local.cpp +++ b/src/dump_local.cpp @@ -24,6 +24,7 @@ #include "memory.h" #include "error.h" #include "force.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -57,7 +58,7 @@ DumpLocal::DumpLocal(LAMMPS *lmp, int narg, char **arg) : int expand = 0; char **earg; - nfield = input->expand_args(nfield,&arg[5],1,earg); + nfield = utils::expand_args(FLERR,nfield,&arg[5],1,earg,lmp); if (earg != &arg[5]) expand = 1; diff --git a/src/fix_ave_atom.cpp b/src/fix_ave_atom.cpp index 694df2bcf7..710aec1ef8 100644 --- a/src/fix_ave_atom.cpp +++ b/src/fix_ave_atom.cpp @@ -23,6 +23,7 @@ #include "memory.h" #include "error.h" #include "force.h" +#include "utils.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -51,7 +52,7 @@ FixAveAtom::FixAveAtom(LAMMPS *lmp, int narg, char **arg) : int expand = 0; char **earg; - nvalues = input->expand_args(nvalues,&arg[6],1,earg); + nvalues = utils::expand_args(FLERR,nvalues,&arg[6],1,earg,lmp); if (earg != &arg[6]) expand = 1; arg = earg; diff --git a/src/fix_ave_chunk.cpp b/src/fix_ave_chunk.cpp index 2987783b2a..a5730c6e60 100644 --- a/src/fix_ave_chunk.cpp +++ b/src/fix_ave_chunk.cpp @@ -72,7 +72,7 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) : int expand = 0; char **earg; - int nargnew = input->expand_args(narg-7,&arg[7],1,earg); + int nargnew = utils::expand_args(FLERR,narg-7,&arg[7],1,earg,lmp); if (earg != &arg[7]) expand = 1; arg = earg; diff --git a/src/fix_ave_correlate.cpp b/src/fix_ave_correlate.cpp index 2231611d1e..510b7ca769 100644 --- a/src/fix_ave_correlate.cpp +++ b/src/fix_ave_correlate.cpp @@ -65,7 +65,7 @@ FixAveCorrelate::FixAveCorrelate(LAMMPS * lmp, int narg, char **arg): int expand = 0; char **earg; - int nargnew = input->expand_args(narg-6,&arg[6],0,earg); + int nargnew = utils::expand_args(FLERR,narg-6,&arg[6],0,earg,lmp); if (earg != &arg[6]) expand = 1; arg = earg; diff --git a/src/fix_ave_histo.cpp b/src/fix_ave_histo.cpp index d0bedba34a..a07da83ed9 100644 --- a/src/fix_ave_histo.cpp +++ b/src/fix_ave_histo.cpp @@ -107,7 +107,7 @@ FixAveHisto::FixAveHisto(LAMMPS *lmp, int narg, char **arg) : int expand = 0; char **earg; - nvalues = input->expand_args(nvalues,&arg[9],mode,earg); + nvalues = utils::expand_args(FLERR,nvalues,&arg[9],mode,earg,lmp); if (earg != &arg[9]) expand = 1; arg = earg; diff --git a/src/fix_ave_time.cpp b/src/fix_ave_time.cpp index 84c5c04f11..a2c18361f6 100644 --- a/src/fix_ave_time.cpp +++ b/src/fix_ave_time.cpp @@ -88,7 +88,7 @@ FixAveTime::FixAveTime(LAMMPS *lmp, int narg, char **arg) : int expand = 0; char **earg; - nvalues = input->expand_args(nvalues,&arg[6],mode,earg); + nvalues = utils::expand_args(FLERR,nvalues,&arg[6],mode,earg,lmp); if (earg != &arg[6]) expand = 1; arg = earg; diff --git a/src/input.cpp b/src/input.cpp index dd640f18b0..a26bab5a0c 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -599,141 +599,6 @@ void Input::substitute(char *&str, char *&str2, int &max, int &max2, int flag) strcpy(str,str2); } -/* ---------------------------------------------------------------------- - expand arg to earg, for arguments with syntax c_ID[*] or f_ID[*] - fields to consider in input arg range from iarg to narg - return new expanded # of values, and copy them w/out "*" into earg - if any expansion occurs, earg is new allocation, must be freed by caller - if no expansion occurs, earg just points to arg, caller need not free -------------------------------------------------------------------------- */ - -int Input::expand_args(int narg, char **arg, int mode, char **&earg) -{ - int n,iarg,index,nlo,nhi,nmax,expandflag,icompute,ifix; - char *ptr1,*ptr2,*str; - - ptr1 = NULL; - for (iarg = 0; iarg < narg; iarg++) { - ptr1 = strchr(arg[iarg],'*'); - if (ptr1) break; - } - - if (!ptr1) { - earg = arg; - return narg; - } - - // maxarg should always end up equal to newarg, so caller can free earg - - int maxarg = narg-iarg; - earg = (char **) memory->smalloc(maxarg*sizeof(char *),"input:earg"); - - int newarg = 0; - for (iarg = 0; iarg < narg; iarg++) { - expandflag = 0; - - if (strncmp(arg[iarg],"c_",2) == 0 || - strncmp(arg[iarg],"f_",2) == 0) { - - ptr1 = strchr(&arg[iarg][2],'['); - if (ptr1) { - ptr2 = strchr(ptr1,']'); - if (ptr2) { - *ptr2 = '\0'; - if (strchr(ptr1,'*')) { - if (arg[iarg][0] == 'c') { - *ptr1 = '\0'; - icompute = modify->find_compute(&arg[iarg][2]); - *ptr1 = '['; - - // check for global vector/array, peratom array, local array - - if (icompute >= 0) { - if (mode == 0 && modify->compute[icompute]->vector_flag) { - nmax = modify->compute[icompute]->size_vector; - expandflag = 1; - } else if (mode == 1 && modify->compute[icompute]->array_flag) { - nmax = modify->compute[icompute]->size_array_cols; - expandflag = 1; - } else if (modify->compute[icompute]->peratom_flag && - modify->compute[icompute]->size_peratom_cols) { - nmax = modify->compute[icompute]->size_peratom_cols; - expandflag = 1; - } else if (modify->compute[icompute]->local_flag && - modify->compute[icompute]->size_local_cols) { - nmax = modify->compute[icompute]->size_local_cols; - expandflag = 1; - } - } - } else if (arg[iarg][0] == 'f') { - *ptr1 = '\0'; - ifix = modify->find_fix(&arg[iarg][2]); - *ptr1 = '['; - - // check for global vector/array, peratom array, local array - - if (ifix >= 0) { - if (mode == 0 && modify->fix[ifix]->vector_flag) { - nmax = modify->fix[ifix]->size_vector; - expandflag = 1; - } else if (mode == 1 && modify->fix[ifix]->array_flag) { - nmax = modify->fix[ifix]->size_array_cols; - expandflag = 1; - } else if (modify->fix[ifix]->peratom_flag && - modify->fix[ifix]->size_peratom_cols) { - nmax = modify->fix[ifix]->size_peratom_cols; - expandflag = 1; - } else if (modify->fix[ifix]->local_flag && - modify->fix[ifix]->size_local_cols) { - nmax = modify->fix[ifix]->size_local_cols; - expandflag = 1; - } - } - } - } - *ptr2 = ']'; - } - } - } - - if (expandflag) { - *ptr2 = '\0'; - force->bounds(FLERR,ptr1+1,nmax,nlo,nhi); - *ptr2 = ']'; - if (newarg+nhi-nlo+1 > maxarg) { - maxarg += nhi-nlo+1; - earg = (char **) - memory->srealloc(earg,maxarg*sizeof(char *),"input:earg"); - } - for (index = nlo; index <= nhi; index++) { - n = strlen(arg[iarg]) + 16; // 16 = space for large inserted integer - str = earg[newarg] = new char[n]; - strncpy(str,arg[iarg],ptr1+1-arg[iarg]); - sprintf(&str[ptr1+1-arg[iarg]],"%d",index); - strcat(str,ptr2); - newarg++; - } - - } else { - if (newarg == maxarg) { - maxarg++; - earg = (char **) - memory->srealloc(earg,maxarg*sizeof(char *),"input:earg"); - } - n = strlen(arg[iarg]) + 1; - earg[newarg] = new char[n]; - strcpy(earg[newarg],arg[iarg]); - newarg++; - } - } - - //printf("NEWARG %d\n",newarg); - //for (int i = 0; i < newarg; i++) - // printf(" arg %d: %s\n",i,earg[i]); - - return newarg; -} - /* ---------------------------------------------------------------------- return number of triple quotes in line ------------------------------------------------------------------------- */ @@ -1139,7 +1004,7 @@ void Input::partition() else error->all(FLERR,"Illegal partition command"); int ilo,ihi; - force->bounds(FLERR,arg[1],universe->nworlds,ilo,ihi); + utils::bounds(FLERR,arg[1],1,universe->nworlds,ilo,ihi,error); // copy original line to copy, since will use strtok() on it // ptr = start of 4th word diff --git a/src/input.h b/src/input.h index a50f769561..48caa13fde 100644 --- a/src/input.h +++ b/src/input.h @@ -38,7 +38,6 @@ class Input : protected Pointers { char *one(const std::string&); // process a single command void substitute(char *&, char *&, int &, int &, int); // substitute for variables in a string - int expand_args(int, char **, int, char **&); // expand args due to wildcard void write_echo(const std::string &); // send text to active echo file pointers protected: diff --git a/src/thermo.cpp b/src/thermo.cpp index 547d363285..f608b25016 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -126,7 +126,7 @@ Thermo::Thermo(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) int expand = 0; char **earg; - int nvalues = input->expand_args(narg-1,&arg[1],0,earg); + int nvalues = utils::expand_args(FLERR,narg-1,&arg[1],0,earg,lmp); if (earg != &arg[1]) expand = 1; line = new char[256+nvalues*64]; -- GitLab From 27b4e93bf538aca8cff37faa8a88ea4f6b613bdb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 18:32:21 -0400 Subject: [PATCH 128/165] silence compiler warnings --- src/molecule.cpp | 2 +- src/reader_native.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/molecule.cpp b/src/molecule.cpp index 8221a08b5f..cf9d995e2b 100644 --- a/src/molecule.cpp +++ b/src/molecule.cpp @@ -773,7 +773,7 @@ void Molecule::fragments(char *line) ValueTokenizer values(line); - if (values.count() > natoms+1) + if ((int)values.count() > natoms+1) error->one(FLERR,"Invalid atom ID in Fragments section of molecule file"); fragmentnames[i] = values.next_string(); diff --git a/src/reader_native.cpp b/src/reader_native.cpp index b329dd4f70..9b93c78000 100644 --- a/src/reader_native.cpp +++ b/src/reader_native.cpp @@ -320,7 +320,7 @@ void ReaderNative::read_atoms(int n, int nfield, double **fields) // tokenize the line std::vector words = Tokenizer(line).as_vector(); - if (words.size() < nwords) error->one(FLERR,"Insufficient columns in dump file"); + if ((int)words.size() < nwords) error->one(FLERR,"Insufficient columns in dump file"); // convert selected fields to floats -- GitLab From 96d8d12a88161c0d13d641accbaf64bdc15b8706 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 19:32:03 -0400 Subject: [PATCH 129/165] replace calls to force->*numeric() with the corresponding utils::*numeric() this also removes the now obsolete functions from Force --- src/ASPHERE/pair_gayberne.cpp | 26 ++-- src/ASPHERE/pair_line_lj.cpp | 14 +- src/ASPHERE/pair_resquared.cpp | 20 +-- src/ASPHERE/pair_tri_lj.cpp | 8 +- src/BODY/body_nparticle.cpp | 4 +- src/BODY/body_rounded_polygon.cpp | 4 +- src/BODY/body_rounded_polyhedron.cpp | 4 +- src/BODY/compute_body_local.cpp | 2 +- src/BODY/fix_wall_body_polygon.cpp | 20 +-- src/BODY/fix_wall_body_polyhedron.cpp | 22 +-- src/BODY/pair_body_nparticle.cpp | 8 +- src/BODY/pair_body_rounded_polygon.cpp | 14 +- src/BODY/pair_body_rounded_polyhedron.cpp | 14 +- src/CLASS2/angle_class2.cpp | 22 +-- src/CLASS2/bond_class2.cpp | 8 +- src/CLASS2/dihedral_class2.cpp | 64 ++++---- src/CLASS2/improper_class2.cpp | 16 +- src/CLASS2/pair_lj_class2.cpp | 8 +- src/CLASS2/pair_lj_class2_coul_cut.cpp | 12 +- src/CLASS2/pair_lj_class2_coul_long.cpp | 10 +- src/COLLOID/pair_brownian.cpp | 22 +-- src/COLLOID/pair_colloid.cpp | 12 +- src/COLLOID/pair_lubricate.cpp | 18 +-- src/COLLOID/pair_lubricateU.cpp | 18 +-- src/COLLOID/pair_lubricateU_poly.cpp | 14 +- src/DIPOLE/pair_lj_cut_dipole_cut.cpp | 12 +- src/DIPOLE/pair_lj_cut_dipole_long.cpp | 10 +- src/DIPOLE/pair_lj_long_dipole_long.cpp | 10 +- src/GPU/fix_gpu.cpp | 14 +- src/GRANULAR/fix_pour.cpp | 48 +++--- src/GRANULAR/fix_wall_gran.cpp | 84 +++++------ src/GRANULAR/pair_gran_hertz_history.cpp | 12 +- src/GRANULAR/pair_gran_hooke_history.cpp | 12 +- src/GRANULAR/pair_granular.cpp | 56 +++---- src/KOKKOS/kokkos.cpp | 2 +- src/KOKKOS/pair_coul_debye_kokkos.cpp | 4 +- src/KOKKOS/pair_hybrid_overlay_kokkos.cpp | 2 +- src/KOKKOS/pair_lj_cut_coul_debye_kokkos.cpp | 6 +- src/KOKKOS/pair_multi_lucy_rx_kokkos.cpp | 2 +- src/KOKKOS/pair_table_kokkos.cpp | 2 +- src/KOKKOS/pair_table_rx_kokkos.cpp | 4 +- src/KOKKOS/pppm_kokkos.cpp | 2 +- src/KSPACE/ewald.cpp | 2 +- src/KSPACE/ewald_disp.cpp | 2 +- src/KSPACE/fix_tune_kspace.cpp | 2 +- src/KSPACE/msm.cpp | 2 +- src/KSPACE/msm_cg.cpp | 2 +- src/KSPACE/pair_born_coul_long.cpp | 16 +- src/KSPACE/pair_buck_coul_long.cpp | 12 +- src/KSPACE/pair_buck_long_coul_long.cpp | 12 +- src/KSPACE/pair_coul_long.cpp | 2 +- src/KSPACE/pair_lj_charmm_coul_long.cpp | 14 +- src/KSPACE/pair_lj_charmmfsw_coul_long.cpp | 14 +- src/KSPACE/pair_lj_cut_coul_long.cpp | 10 +- src/KSPACE/pair_lj_cut_tip4p_long.cpp | 14 +- src/KSPACE/pair_lj_long_coul_long.cpp | 10 +- src/KSPACE/pair_lj_long_tip4p_long.cpp | 14 +- src/KSPACE/pair_tip4p_long.cpp | 12 +- src/KSPACE/pppm.cpp | 2 +- src/KSPACE/pppm_cg.cpp | 2 +- src/KSPACE/pppm_disp.cpp | 2 +- src/MANYBODY/fix_qeq_comb.cpp | 4 +- src/MANYBODY/pair_airebo.cpp | 8 +- src/MANYBODY/pair_atm.cpp | 6 +- src/MANYBODY/pair_vashishta_table.cpp | 4 +- src/MC/fix_atom_swap.cpp | 12 +- src/MC/fix_bond_break.cpp | 10 +- src/MC/fix_bond_create.cpp | 32 ++-- src/MC/fix_bond_swap.cpp | 8 +- src/MC/fix_gcmc.cpp | 42 +++--- src/MC/fix_tfmc.cpp | 12 +- src/MC/fix_widom.cpp | 14 +- src/MC/pair_dsmc.cpp | 16 +- src/MISC/dump_xtc.cpp | 6 +- src/MISC/fix_deposit.cpp | 64 ++++---- src/MISC/fix_efield.cpp | 6 +- src/MISC/fix_evaporate.cpp | 6 +- src/MISC/fix_gld.cpp | 12 +- src/MISC/fix_oneway.cpp | 2 +- src/MISC/fix_orient_bcc.cpp | 12 +- src/MISC/fix_orient_fcc.cpp | 12 +- src/MISC/fix_thermal_conductivity.cpp | 6 +- src/MISC/fix_ttm.cpp | 22 +-- src/MISC/fix_viscosity.cpp | 8 +- src/MISC/pair_nm_cut.cpp | 12 +- src/MISC/pair_nm_cut_coul_cut.cpp | 16 +- src/MISC/pair_nm_cut_coul_long.cpp | 14 +- src/MOLECULE/angle_charmm.cpp | 8 +- src/MOLECULE/angle_cosine.cpp | 2 +- src/MOLECULE/angle_cosine_periodic.cpp | 6 +- src/MOLECULE/angle_cosine_squared.cpp | 4 +- src/MOLECULE/angle_harmonic.cpp | 4 +- src/MOLECULE/angle_table.cpp | 2 +- src/MOLECULE/bond_fene.cpp | 8 +- src/MOLECULE/bond_fene_expand.cpp | 10 +- src/MOLECULE/bond_gromos.cpp | 4 +- src/MOLECULE/bond_harmonic.cpp | 4 +- src/MOLECULE/bond_morse.cpp | 6 +- src/MOLECULE/bond_nonlinear.cpp | 6 +- src/MOLECULE/bond_quartic.cpp | 10 +- src/MOLECULE/bond_table.cpp | 2 +- src/MOLECULE/dihedral_charmm.cpp | 8 +- src/MOLECULE/dihedral_charmmfsw.cpp | 8 +- src/MOLECULE/dihedral_harmonic.cpp | 6 +- src/MOLECULE/dihedral_helix.cpp | 6 +- src/MOLECULE/dihedral_multi_harmonic.cpp | 10 +- src/MOLECULE/dihedral_opls.cpp | 8 +- src/MOLECULE/improper_cvff.cpp | 6 +- src/MOLECULE/improper_harmonic.cpp | 4 +- src/MOLECULE/improper_umbrella.cpp | 4 +- src/MOLECULE/pair_hbond_dreiding_lj.cpp | 20 +-- src/MOLECULE/pair_hbond_dreiding_morse.cpp | 14 +- src/MOLECULE/pair_lj_charmm_coul_charmm.cpp | 16 +- .../pair_lj_charmmfsw_coul_charmmfsh.cpp | 14 +- src/MOLECULE/pair_lj_cut_tip4p_cut.cpp | 20 +-- src/MOLECULE/pair_tip4p_cut.cpp | 12 +- src/MSCG/fix_mscg.cpp | 2 +- src/PERI/pair_peri_eps.cpp | 12 +- src/PERI/pair_peri_lps.cpp | 10 +- src/PERI/pair_peri_pmb.cpp | 8 +- src/PERI/pair_peri_ves.cpp | 14 +- src/PYTHON/fix_python_invoke.cpp | 2 +- src/PYTHON/pair_python.cpp | 2 +- src/PYTHON/python_impl.cpp | 8 +- src/QEQ/fix_qeq.cpp | 18 +-- src/REPLICA/compute_event_displace.cpp | 2 +- src/REPLICA/fix_hyper_global.cpp | 8 +- src/REPLICA/fix_hyper_local.cpp | 20 +-- src/REPLICA/fix_neb.cpp | 12 +- src/REPLICA/hyper.cpp | 14 +- src/REPLICA/neb.cpp | 10 +- src/REPLICA/prd.cpp | 22 +-- src/REPLICA/tad.cpp | 32 ++-- src/REPLICA/temper.cpp | 12 +- src/RIGID/fix_ehex.cpp | 4 +- src/RIGID/fix_rigid.cpp | 54 +++---- src/RIGID/fix_rigid_small.cpp | 52 +++---- src/RIGID/fix_shake.cpp | 14 +- src/SHOCK/fix_append_atoms.cpp | 26 ++-- src/SHOCK/fix_msst.cpp | 16 +- src/SHOCK/fix_nphug.cpp | 6 +- src/SHOCK/fix_wall_piston.cpp | 14 +- src/SNAP/compute_sna_atom.cpp | 4 +- src/SNAP/compute_snad_atom.cpp | 4 +- src/SNAP/compute_snap.cpp | 4 +- src/SNAP/compute_snav_atom.cpp | 4 +- src/SPIN/fix_langevin_spin.cpp | 6 +- src/SPIN/fix_neb_spin.cpp | 2 +- src/SPIN/fix_precession_spin.cpp | 38 ++--- src/SPIN/min_spin.cpp | 4 +- src/SPIN/min_spin_cg.cpp | 2 +- src/SPIN/min_spin_lbfgs.cpp | 2 +- src/SPIN/neb_spin.cpp | 10 +- src/SPIN/pair_spin_dipole_cut.cpp | 4 +- src/SPIN/pair_spin_dipole_long.cpp | 4 +- src/SPIN/pair_spin_dmi.cpp | 12 +- src/SPIN/pair_spin_exchange.cpp | 10 +- src/SPIN/pair_spin_magelec.cpp | 12 +- src/SPIN/pair_spin_neel.cpp | 16 +- src/SRD/fix_srd.cpp | 20 +-- src/SRD/fix_wall_srd.cpp | 2 +- src/USER-AWPMD/pair_awpmd_cut.cpp | 12 +- src/USER-BOCS/fix_bocs.cpp | 28 ++-- src/USER-CGDNA/bond_oxdna_fene.cpp | 6 +- src/USER-CGDNA/fix_nve_dotc_langevin.cpp | 10 +- src/USER-CGDNA/pair_oxdna2_coaxstk.cpp | 48 +++--- src/USER-CGDNA/pair_oxdna2_dh.cpp | 6 +- src/USER-CGDNA/pair_oxdna_coaxstk.cpp | 52 +++---- src/USER-CGDNA/pair_oxdna_excv.cpp | 18 +-- src/USER-CGDNA/pair_oxdna_hbond.cpp | 60 ++++---- src/USER-CGDNA/pair_oxdna_stk.cpp | 44 +++--- src/USER-CGDNA/pair_oxdna_xstk.cpp | 58 ++++---- src/USER-CGDNA/pair_oxrna2_stk.cpp | 54 +++---- src/USER-CGDNA/pair_oxrna2_xstk.cpp | 50 +++---- src/USER-CGSDK/angle_sdk.cpp | 8 +- src/USER-CGSDK/pair_lj_sdk.cpp | 8 +- src/USER-CGSDK/pair_lj_sdk_coul_long.cpp | 10 +- src/USER-COLVARS/fix_colvars.cpp | 2 +- src/USER-DIFFRACTION/fix_saed_vtk.cpp | 10 +- src/USER-DPD/fix_eos_cv.cpp | 2 +- src/USER-DPD/fix_eos_table.cpp | 2 +- src/USER-DPD/fix_eos_table_rx.cpp | 2 +- src/USER-DPD/pair_dpd_fdt.cpp | 12 +- src/USER-DPD/pair_dpd_fdt_energy.cpp | 12 +- src/USER-DPD/pair_exp6_rx.cpp | 12 +- src/USER-DPD/pair_multi_lucy.cpp | 4 +- src/USER-DPD/pair_multi_lucy_rx.cpp | 4 +- src/USER-DPD/pair_table_rx.cpp | 4 +- src/USER-DRUDE/fix_langevin_drude.cpp | 12 +- src/USER-DRUDE/pair_lj_cut_thole_long.cpp | 16 +- src/USER-DRUDE/pair_thole.cpp | 10 +- src/USER-EFF/fix_temp_rescale_eff.cpp | 10 +- src/USER-EFF/pair_eff_cut.cpp | 24 +-- src/USER-FEP/compute_fep.cpp | 2 +- src/USER-FEP/fix_adapt_fep.cpp | 2 +- src/USER-FEP/pair_coul_cut_soft.cpp | 10 +- src/USER-FEP/pair_coul_long_soft.cpp | 8 +- .../pair_lj_charmm_coul_long_soft.cpp | 22 +-- src/USER-FEP/pair_lj_class2_coul_cut_soft.cpp | 20 +-- .../pair_lj_class2_coul_long_soft.cpp | 18 +-- src/USER-FEP/pair_lj_class2_soft.cpp | 14 +- src/USER-FEP/pair_lj_cut_coul_cut_soft.cpp | 20 +-- src/USER-FEP/pair_lj_cut_coul_long_soft.cpp | 18 +-- src/USER-FEP/pair_lj_cut_soft.cpp | 14 +- src/USER-FEP/pair_lj_cut_tip4p_long_soft.cpp | 22 +-- src/USER-FEP/pair_morse_soft.cpp | 16 +- src/USER-FEP/pair_tip4p_long_soft.cpp | 16 +- src/USER-H5MD/dump_h5md.cpp | 2 +- src/USER-INTEL/fix_intel.cpp | 6 +- src/USER-MANIFOLD/fix_manifoldforce.cpp | 2 +- src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp | 10 +- src/USER-MANIFOLD/fix_nvt_manifold_rattle.cpp | 8 +- src/USER-MESODPD/compute_tdpd_cc_atom.cpp | 2 +- src/USER-MESODPD/fix_edpd_source.cpp | 24 +-- src/USER-MESODPD/fix_mvv_dpd.cpp | 2 +- src/USER-MESODPD/fix_mvv_edpd.cpp | 2 +- src/USER-MESODPD/fix_mvv_tdpd.cpp | 2 +- src/USER-MESODPD/fix_tdpd_source.cpp | 26 ++-- src/USER-MESODPD/pair_edpd.cpp | 22 +-- src/USER-MESODPD/pair_mdpd.cpp | 16 +- src/USER-MESODPD/pair_mdpd_rhosum.cpp | 2 +- src/USER-MESODPD/pair_tdpd.cpp | 22 +-- src/USER-MESONT/pair_mesont_tpm.cpp | 8 +- src/USER-MISC/angle_cosine_shift.cpp | 4 +- src/USER-MISC/angle_cosine_shift_exp.cpp | 6 +- src/USER-MISC/angle_dipole.cpp | 4 +- src/USER-MISC/angle_fourier.cpp | 8 +- src/USER-MISC/angle_fourier_simple.cpp | 6 +- src/USER-MISC/angle_quartic.cpp | 8 +- src/USER-MISC/bond_harmonic_shift.cpp | 6 +- src/USER-MISC/bond_harmonic_shift_cut.cpp | 6 +- src/USER-MISC/bond_special.cpp | 4 +- src/USER-MISC/compute_cnp_atom.cpp | 2 +- src/USER-MISC/compute_entropy_atom.cpp | 6 +- src/USER-MISC/compute_hma.cpp | 2 +- src/USER-MISC/compute_pressure_cylinder.cpp | 8 +- src/USER-MISC/compute_stress_mop.cpp | 2 +- src/USER-MISC/compute_stress_mop_profile.cpp | 4 +- src/USER-MISC/dihedral_cosine_shift_exp.cpp | 6 +- src/USER-MISC/dihedral_fourier.cpp | 8 +- src/USER-MISC/dihedral_nharmonic.cpp | 4 +- src/USER-MISC/dihedral_quadratic.cpp | 4 +- src/USER-MISC/dihedral_spherical.cpp | 22 +-- src/USER-MISC/dihedral_table.cpp | 2 +- src/USER-MISC/dihedral_table_cut.cpp | 8 +- src/USER-MISC/fix_accelerate_cos.cpp | 2 +- src/USER-MISC/fix_addtorque.cpp | 6 +- src/USER-MISC/fix_ave_correlate_long.cpp | 12 +- src/USER-MISC/fix_electron_stopping.cpp | 6 +- src/USER-MISC/fix_ffl.cpp | 13 +- src/USER-MISC/fix_filter_corotate.cpp | 8 +- src/USER-MISC/fix_flow_gauss.cpp | 2 +- src/USER-MISC/fix_gle.cpp | 10 +- src/USER-MISC/fix_grem.cpp | 6 +- src/USER-MISC/fix_imd.cpp | 6 +- src/USER-MISC/fix_ipi.cpp | 2 +- src/USER-MISC/fix_momentum_chunk.cpp | 8 +- src/USER-MISC/fix_npt_cauchy.cpp | 82 +++++----- src/USER-MISC/fix_orient_eco.cpp | 6 +- src/USER-MISC/fix_propel_self.cpp | 4 +- src/USER-MISC/fix_rhok.cpp | 10 +- src/USER-MISC/fix_smd.cpp | 22 +-- src/USER-MISC/fix_srp.cpp | 4 +- src/USER-MISC/fix_ti_spring.cpp | 8 +- src/USER-MISC/fix_ttm_mod.cpp | 10 +- src/USER-MISC/fix_wall_reflect_stochastic.cpp | 12 +- src/USER-MISC/fix_wall_region_ees.cpp | 6 +- src/USER-MISC/improper_cossq.cpp | 4 +- src/USER-MISC/improper_distance.cpp | 4 +- src/USER-MISC/improper_fourier.cpp | 10 +- src/USER-MISC/improper_ring.cpp | 4 +- src/USER-MISC/pair_buck_mdf.cpp | 14 +- src/USER-MISC/pair_cosine_squared.cpp | 10 +- src/USER-MISC/pair_coul_diel.cpp | 10 +- src/USER-MISC/pair_coul_shield.cpp | 8 +- src/USER-MISC/pair_coul_slater_cut.cpp | 4 +- src/USER-MISC/pair_coul_slater_long.cpp | 4 +- src/USER-MISC/pair_e3b.cpp | 26 ++-- src/USER-MISC/pair_gauss_cut.cpp | 10 +- src/USER-MISC/pair_ilp_graphene_hbn.cpp | 4 +- src/USER-MISC/pair_kolmogorov_crespi_full.cpp | 4 +- src/USER-MISC/pair_kolmogorov_crespi_z.cpp | 2 +- src/USER-MISC/pair_lebedeva_z.cpp | 2 +- src/USER-MISC/pair_lennard_mdf.cpp | 12 +- src/USER-MISC/pair_list.cpp | 18 +-- src/USER-MISC/pair_lj_expand_coul_long.cpp | 12 +- src/USER-MISC/pair_lj_mdf.cpp | 12 +- src/USER-MISC/pair_lj_sf_dipole_sf.cpp | 14 +- src/USER-MISC/pair_momb.cpp | 18 +-- src/USER-MISC/pair_morse_smooth_linear.cpp | 10 +- src/USER-MISC/pair_srp.cpp | 10 +- src/USER-MISC/temper_grem.cpp | 12 +- src/USER-MISC/temper_npt.cpp | 14 +- src/USER-MOFFF/angle_class2_p6.cpp | 26 ++-- src/USER-MOFFF/angle_cosine_buck6d.cpp | 6 +- .../improper_inversion_harmonic.cpp | 4 +- src/USER-MOFFF/pair_buck6d_coul_gauss_dsf.cpp | 18 +-- .../pair_buck6d_coul_gauss_long.cpp | 20 +-- src/USER-NETCDF/dump_netcdf.cpp | 2 +- src/USER-NETCDF/dump_netcdf_mpiio.cpp | 2 +- src/USER-OMP/fix_omp.cpp | 2 +- src/USER-OMP/msm_cg_omp.cpp | 2 +- src/USER-PHONON/dynamical_matrix.cpp | 2 +- src/USER-PHONON/fix_phonon.cpp | 28 ++-- src/USER-PHONON/third_order.cpp | 2 +- src/USER-PTM/compute_ptm_atom.cpp | 2 +- src/USER-QTB/fix_qbmsst.cpp | 26 ++-- src/USER-QTB/fix_qtb.cpp | 10 +- src/USER-QUIP/pair_quip.cpp | 2 +- src/USER-REACTION/fix_bond_react.cpp | 14 +- src/USER-REAXC/fix_qeq_reax.cpp | 8 +- src/USER-REAXC/fix_reaxc_bonds.cpp | 2 +- src/USER-REAXC/pair_reaxc.cpp | 6 +- src/USER-SCAFACOS/scafacos.cpp | 2 +- src/USER-SDPD/fix_meso_move.cpp | 28 ++-- .../pair_sdpd_taitwater_isothermal.cpp | 12 +- src/USER-SMD/fix_smd_integrate_tlsph.cpp | 2 +- src/USER-SMD/fix_smd_integrate_ulsph.cpp | 8 +- .../fix_smd_move_triangulated_surface.cpp | 28 ++-- src/USER-SMD/fix_smd_setvel.cpp | 6 +- src/USER-SMD/fix_smd_wall_surface.cpp | 12 +- src/USER-SMD/pair_smd_hertz.cpp | 2 +- src/USER-SMD/pair_smd_tlsph.cpp | 82 +++++----- .../pair_smd_triangulated_surface.cpp | 2 +- src/USER-SMD/pair_smd_ulsph.cpp | 36 ++--- src/USER-SPH/pair_sph_heatconduction.cpp | 4 +- src/USER-SPH/pair_sph_idealgas.cpp | 4 +- src/USER-SPH/pair_sph_lj.cpp | 4 +- src/USER-SPH/pair_sph_rhosum.cpp | 4 +- src/USER-SPH/pair_sph_taitwater.cpp | 8 +- src/USER-SPH/pair_sph_taitwater_morris.cpp | 8 +- src/USER-UEF/fix_nh_uef.cpp | 8 +- src/USER-VTK/dump_vtk.cpp | 2 +- src/USER-YAFF/angle_cross.cpp | 12 +- src/USER-YAFF/angle_mm3.cpp | 4 +- src/USER-YAFF/bond_mm3.cpp | 4 +- src/USER-YAFF/improper_distharm.cpp | 4 +- src/USER-YAFF/improper_sqdistharm.cpp | 4 +- .../pair_lj_switch3_coulgauss_long.cpp | 16 +- .../pair_mm3_switch3_coulgauss_long.cpp | 16 +- src/VORONOI/compute_voronoi_atom.cpp | 6 +- src/angle_zero.cpp | 2 +- src/atom.cpp | 14 +- src/balance.cpp | 12 +- src/bond.cpp | 12 +- src/bond_zero.cpp | 2 +- src/change_box.cpp | 14 +- src/comm.cpp | 22 +-- src/compute.cpp | 2 +- src/compute_adf.cpp | 10 +- src/compute_aggregate_atom.cpp | 2 +- src/compute_centro_atom.cpp | 2 +- src/compute_chunk_atom.cpp | 32 ++-- src/compute_cluster_atom.cpp | 2 +- src/compute_cna_atom.cpp | 2 +- src/compute_coord_atom.cpp | 4 +- src/compute_hexorder_atom.cpp | 6 +- src/compute_orientorder_atom.cpp | 12 +- src/compute_pair.cpp | 2 +- src/compute_pressure.cpp | 2 +- src/compute_rdf.cpp | 4 +- src/compute_slice.cpp | 6 +- src/compute_temp_chunk.cpp | 4 +- src/compute_temp_partial.cpp | 6 +- src/compute_temp_profile.cpp | 30 ++-- src/compute_temp_ramp.cpp | 24 +-- src/create_atoms.cpp | 34 ++--- src/create_bonds.cpp | 40 ++--- src/create_box.cpp | 20 +-- src/delete_atoms.cpp | 6 +- src/displace_atoms.cpp | 48 +++--- src/dump.cpp | 14 +- src/dump_custom.cpp | 6 +- src/dump_image.cpp | 66 +++++---- src/dump_local.cpp | 2 +- src/dump_movie.cpp | 4 +- src/fix.cpp | 2 +- src/fix_adapt.cpp | 4 +- src/fix_addforce.cpp | 6 +- src/fix_ave_atom.cpp | 6 +- src/fix_ave_chunk.cpp | 12 +- src/fix_ave_correlate.cpp | 10 +- src/fix_ave_histo.cpp | 16 +- src/fix_ave_time.cpp | 12 +- src/fix_aveforce.cpp | 6 +- src/fix_balance.cpp | 8 +- src/fix_box_relax.cpp | 28 ++-- src/fix_controller.cpp | 12 +- src/fix_deform.cpp | 36 ++--- src/fix_drag.cpp | 10 +- src/fix_dt_reset.cpp | 10 +- src/fix_external.cpp | 6 +- src/fix_gravity.cpp | 14 +- src/fix_group.cpp | 2 +- src/fix_halt.cpp | 4 +- src/fix_heat.cpp | 4 +- src/fix_indent.cpp | 26 ++-- src/fix_langevin.cpp | 14 +- src/fix_lineforce.cpp | 6 +- src/fix_momentum.cpp | 8 +- src/fix_move.cpp | 28 ++-- src/fix_neigh_history.cpp | 2 +- src/fix_nh.cpp | 82 +++++----- src/fix_numdiff.cpp | 4 +- src/fix_nve_limit.cpp | 2 +- src/fix_planeforce.cpp | 6 +- src/fix_press_berendsen.cpp | 32 ++-- src/fix_print.cpp | 2 +- src/fix_read_restart.cpp | 4 +- src/fix_recenter.cpp | 6 +- src/fix_respa.cpp | 2 +- src/fix_restrain.cpp | 56 +++---- src/fix_setforce.cpp | 6 +- src/fix_spring.cpp | 20 +-- src/fix_spring_chunk.cpp | 2 +- src/fix_spring_rg.cpp | 4 +- src/fix_spring_self.cpp | 2 +- src/fix_store.cpp | 8 +- src/fix_store_state.cpp | 2 +- src/fix_temp_berendsen.cpp | 6 +- src/fix_temp_csld.cpp | 8 +- src/fix_temp_csvr.cpp | 8 +- src/fix_temp_rescale.cpp | 10 +- src/fix_tmd.cpp | 4 +- src/fix_vector.cpp | 2 +- src/fix_viscous.cpp | 6 +- src/fix_wall.cpp | 10 +- src/fix_wall_reflect.cpp | 2 +- src/fix_wall_region.cpp | 14 +- src/force.cpp | 116 ++------------- src/force.h | 4 - src/group.cpp | 12 +- src/image.cpp | 14 +- src/imbalance_group.cpp | 4 +- src/imbalance_neigh.cpp | 2 +- src/imbalance_time.cpp | 2 +- src/input.cpp | 8 +- src/kspace.cpp | 26 ++-- src/lattice.cpp | 46 +++--- src/min.cpp | 18 +-- src/minimize.cpp | 8 +- src/molecule.cpp | 22 +-- src/neighbor.cpp | 16 +- src/output.cpp | 8 +- src/pair.cpp | 22 +-- src/pair_beck.cpp | 14 +- src/pair_born.cpp | 14 +- src/pair_born_coul_dsf.cpp | 18 +-- src/pair_born_coul_wolf.cpp | 18 +-- src/pair_buck.cpp | 10 +- src/pair_buck_coul_cut.cpp | 14 +- src/pair_coul_cut.cpp | 4 +- src/pair_coul_debye.cpp | 4 +- src/pair_coul_dsf.cpp | 4 +- src/pair_coul_streitz.cpp | 4 +- src/pair_coul_wolf.cpp | 4 +- src/pair_dpd.cpp | 12 +- src/pair_dpd_tstat.cpp | 12 +- src/pair_gauss.cpp | 8 +- src/pair_hybrid.cpp | 10 +- src/pair_hybrid_overlay.cpp | 2 +- src/pair_lj96_cut.cpp | 8 +- src/pair_lj_cubic.cpp | 4 +- src/pair_lj_cut.cpp | 8 +- src/pair_lj_cut_coul_cut.cpp | 12 +- src/pair_lj_cut_coul_debye.cpp | 6 +- src/pair_lj_cut_coul_dsf.cpp | 12 +- src/pair_lj_cut_coul_wolf.cpp | 12 +- src/pair_lj_expand.cpp | 10 +- src/pair_lj_gromacs.cpp | 12 +- src/pair_lj_gromacs_coul_gromacs.cpp | 12 +- src/pair_lj_smooth.cpp | 12 +- src/pair_lj_smooth_linear.cpp | 8 +- src/pair_mie_cut.cpp | 12 +- src/pair_morse.cpp | 10 +- src/pair_soft.cpp | 6 +- src/pair_table.cpp | 4 +- src/pair_ufm.cpp | 8 +- src/pair_yukawa.cpp | 8 +- src/pair_zbl.cpp | 8 +- src/pair_zero.cpp | 4 +- src/pointers.h | 2 + src/read_data.cpp | 44 +++--- src/read_dump.cpp | 4 +- src/reader_xyz.cpp | 2 +- src/region.cpp | 14 +- src/region_block.cpp | 12 +- src/region_cone.cpp | 36 ++--- src/region_cylinder.cpp | 26 ++-- src/region_intersect.cpp | 2 +- src/region_plane.cpp | 12 +- src/region_prism.cpp | 18 +-- src/region_sphere.cpp | 8 +- src/region_union.cpp | 2 +- src/replicate.cpp | 6 +- src/rerun.cpp | 12 +- src/respa.cpp | 32 ++-- src/run.cpp | 8 +- src/set.cpp | 140 +++++++++--------- src/thermo.cpp | 2 +- src/timer.cpp | 2 +- src/universe.cpp | 2 +- src/update.cpp | 2 +- src/variable.cpp | 14 +- src/velocity.cpp | 36 ++--- src/write_restart.cpp | 4 +- 506 files changed, 3074 insertions(+), 3167 deletions(-) diff --git a/src/ASPHERE/pair_gayberne.cpp b/src/ASPHERE/pair_gayberne.cpp index 1c63ddbb5d..064e365dc1 100644 --- a/src/ASPHERE/pair_gayberne.cpp +++ b/src/ASPHERE/pair_gayberne.cpp @@ -268,10 +268,10 @@ void PairGayBerne::settings(int narg, char **arg) { if (narg != 4) error->all(FLERR,"Illegal pair_style command"); - gamma = force->numeric(FLERR,arg[0]); - upsilon = force->numeric(FLERR,arg[1])/2.0; - mu = force->numeric(FLERR,arg[2]); - cut_global = force->numeric(FLERR,arg[3]); + gamma = utils::numeric(FLERR,arg[0],false,lmp); + upsilon = utils::numeric(FLERR,arg[1],false,lmp)/2.0; + mu = utils::numeric(FLERR,arg[2],false,lmp); + cut_global = utils::numeric(FLERR,arg[3],false,lmp); // reset cutoffs that have been explicitly set @@ -297,17 +297,17 @@ void PairGayBerne::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double eia_one = force->numeric(FLERR,arg[4]); - double eib_one = force->numeric(FLERR,arg[5]); - double eic_one = force->numeric(FLERR,arg[6]); - double eja_one = force->numeric(FLERR,arg[7]); - double ejb_one = force->numeric(FLERR,arg[8]); - double ejc_one = force->numeric(FLERR,arg[9]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double eia_one = utils::numeric(FLERR,arg[4],false,lmp); + double eib_one = utils::numeric(FLERR,arg[5],false,lmp); + double eic_one = utils::numeric(FLERR,arg[6],false,lmp); + double eja_one = utils::numeric(FLERR,arg[7],false,lmp); + double ejb_one = utils::numeric(FLERR,arg[8],false,lmp); + double ejc_one = utils::numeric(FLERR,arg[9],false,lmp); double cut_one = cut_global; - if (narg == 11) cut_one = force->numeric(FLERR,arg[10]); + if (narg == 11) cut_one = utils::numeric(FLERR,arg[10],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/ASPHERE/pair_line_lj.cpp b/src/ASPHERE/pair_line_lj.cpp index 48b35e4cd1..a1c6477542 100644 --- a/src/ASPHERE/pair_line_lj.cpp +++ b/src/ASPHERE/pair_line_lj.cpp @@ -345,7 +345,7 @@ void PairLineLJ::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -371,14 +371,14 @@ void PairLineLJ::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double size_itype = force->numeric(FLERR,arg[2]); - double size_jtype = force->numeric(FLERR,arg[3]); - double epsilon_one = force->numeric(FLERR,arg[4]); - double sigma_one = force->numeric(FLERR,arg[5]); - double cutsub_one = force->numeric(FLERR,arg[6]); + double size_itype = utils::numeric(FLERR,arg[2],false,lmp); + double size_jtype = utils::numeric(FLERR,arg[3],false,lmp); + double epsilon_one = utils::numeric(FLERR,arg[4],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[5],false,lmp); + double cutsub_one = utils::numeric(FLERR,arg[6],false,lmp); double cut_one = cut_global; - if (narg == 8) cut_one = force->numeric(FLERR,arg[7]); + if (narg == 8) cut_one = utils::numeric(FLERR,arg[7],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/ASPHERE/pair_resquared.cpp b/src/ASPHERE/pair_resquared.cpp index 4e653e4838..a25addaba4 100644 --- a/src/ASPHERE/pair_resquared.cpp +++ b/src/ASPHERE/pair_resquared.cpp @@ -243,7 +243,7 @@ void PairRESquared::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -269,17 +269,17 @@ void PairRESquared::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double eia_one = force->numeric(FLERR,arg[4]); - double eib_one = force->numeric(FLERR,arg[5]); - double eic_one = force->numeric(FLERR,arg[6]); - double eja_one = force->numeric(FLERR,arg[7]); - double ejb_one = force->numeric(FLERR,arg[8]); - double ejc_one = force->numeric(FLERR,arg[9]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double eia_one = utils::numeric(FLERR,arg[4],false,lmp); + double eib_one = utils::numeric(FLERR,arg[5],false,lmp); + double eic_one = utils::numeric(FLERR,arg[6],false,lmp); + double eja_one = utils::numeric(FLERR,arg[7],false,lmp); + double ejb_one = utils::numeric(FLERR,arg[8],false,lmp); + double ejc_one = utils::numeric(FLERR,arg[9],false,lmp); double cut_one = cut_global; - if (narg == 11) cut_one = force->numeric(FLERR,arg[10]); + if (narg == 11) cut_one = utils::numeric(FLERR,arg[10],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/ASPHERE/pair_tri_lj.cpp b/src/ASPHERE/pair_tri_lj.cpp index d71cc0b7a9..0f840dadf3 100644 --- a/src/ASPHERE/pair_tri_lj.cpp +++ b/src/ASPHERE/pair_tri_lj.cpp @@ -416,7 +416,7 @@ void PairTriLJ::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -442,11 +442,11 @@ void PairTriLJ::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; - if (narg == 5) cut_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/BODY/body_nparticle.cpp b/src/BODY/body_nparticle.cpp index 73a85386bd..a99c025e1f 100644 --- a/src/BODY/body_nparticle.cpp +++ b/src/BODY/body_nparticle.cpp @@ -35,8 +35,8 @@ BodyNparticle::BodyNparticle(LAMMPS *lmp, int narg, char **arg) : { if (narg != 3) error->all(FLERR,"Invalid body nparticle command"); - int nmin = force->inumeric(FLERR,arg[1]); - int nmax = force->inumeric(FLERR,arg[2]); + int nmin = utils::inumeric(FLERR,arg[1],false,lmp); + int nmax = utils::inumeric(FLERR,arg[2],false,lmp); if (nmin <= 0 || nmin > nmax) error->all(FLERR,"Invalid body nparticle command"); diff --git a/src/BODY/body_rounded_polygon.cpp b/src/BODY/body_rounded_polygon.cpp index d8ac81b2e6..349ad957c2 100644 --- a/src/BODY/body_rounded_polygon.cpp +++ b/src/BODY/body_rounded_polygon.cpp @@ -46,8 +46,8 @@ BodyRoundedPolygon::BodyRoundedPolygon(LAMMPS *lmp, int narg, char **arg) : // nmin and nmax are minimum and maximum number of vertices - int nmin = force->inumeric(FLERR,arg[1]); - int nmax = force->inumeric(FLERR,arg[2]); + int nmin = utils::inumeric(FLERR,arg[1],false,lmp); + int nmax = utils::inumeric(FLERR,arg[2],false,lmp); if (nmin <= 0 || nmin > nmax) error->all(FLERR,"Invalid body rounded/polygon command"); diff --git a/src/BODY/body_rounded_polyhedron.cpp b/src/BODY/body_rounded_polyhedron.cpp index b6646cc116..cb84517b6f 100644 --- a/src/BODY/body_rounded_polyhedron.cpp +++ b/src/BODY/body_rounded_polyhedron.cpp @@ -44,8 +44,8 @@ BodyRoundedPolyhedron::BodyRoundedPolyhedron(LAMMPS *lmp, int narg, char **arg) // nmin and nmax are minimum and maximum number of vertices - int nmin = force->inumeric(FLERR,arg[1]); - int nmax = force->inumeric(FLERR,arg[2]); + int nmin = utils::inumeric(FLERR,arg[1],false,lmp); + int nmax = utils::inumeric(FLERR,arg[2],false,lmp); if (nmin <= 0 || nmin > nmax) error->all(FLERR,"Invalid body rounded/polyhedron command"); diff --git a/src/BODY/compute_body_local.cpp b/src/BODY/compute_body_local.cpp index c12502df42..915407db92 100644 --- a/src/BODY/compute_body_local.cpp +++ b/src/BODY/compute_body_local.cpp @@ -47,7 +47,7 @@ ComputeBodyLocal::ComputeBodyLocal(LAMMPS *lmp, int narg, char **arg) : else if (strcmp(arg[iarg],"type") == 0) which[nvalues++] = TYPE; else { which[nvalues] = INDEX; - index[nvalues] = force->inumeric(FLERR,arg[iarg]) - 1; + index[nvalues] = utils::inumeric(FLERR,arg[iarg],false,lmp) - 1; nvalues++; } } diff --git a/src/BODY/fix_wall_body_polygon.cpp b/src/BODY/fix_wall_body_polygon.cpp index e51476de60..ccfd37bbb2 100644 --- a/src/BODY/fix_wall_body_polygon.cpp +++ b/src/BODY/fix_wall_body_polygon.cpp @@ -62,11 +62,11 @@ FixWallBodyPolygon::FixWallBodyPolygon(LAMMPS *lmp, int narg, char **arg) : // wall/particle coefficients - kn = force->numeric(FLERR,arg[3]); + kn = utils::numeric(FLERR,arg[3],false,lmp); - c_n = force->numeric(FLERR,arg[4]); + c_n = utils::numeric(FLERR,arg[4],false,lmp); if (strcmp(arg[5],"NULL") == 0) c_t = 0.5 * c_n; - else c_t = force->numeric(FLERR,arg[5]); + else c_t = utils::numeric(FLERR,arg[5],false,lmp); if (kn < 0.0 || c_n < 0.0 || c_t < 0.0) error->all(FLERR,"Illegal fix wall/body/polygon command"); @@ -78,23 +78,23 @@ FixWallBodyPolygon::FixWallBodyPolygon(LAMMPS *lmp, int narg, char **arg) : if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/body/polygon command"); wallstyle = XPLANE; if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; - else lo = force->numeric(FLERR,arg[iarg+1]); + else lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; - else hi = force->numeric(FLERR,arg[iarg+2]); + else hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"yplane") == 0) { if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/body/polygon command"); wallstyle = YPLANE; if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; - else lo = force->numeric(FLERR,arg[iarg+1]); + else lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; - else hi = force->numeric(FLERR,arg[iarg+2]); + else hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"zcylinder") == 0) { if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/body/polygon command"); wallstyle = ZCYLINDER; lo = hi = 0.0; - cylradius = force->numeric(FLERR,arg[iarg+1]); + cylradius = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } @@ -109,8 +109,8 @@ FixWallBodyPolygon::FixWallBodyPolygon(LAMMPS *lmp, int narg, char **arg) : else if (strcmp(arg[iarg+1],"y") == 0) axis = 1; else if (strcmp(arg[iarg+1],"z") == 0) axis = 2; else error->all(FLERR,"Illegal fix wall/body/polygon command"); - amplitude = force->numeric(FLERR,arg[iarg+2]); - period = force->numeric(FLERR,arg[iarg+3]); + amplitude = utils::numeric(FLERR,arg[iarg+2],false,lmp); + period = utils::numeric(FLERR,arg[iarg+3],false,lmp); wiggle = 1; iarg += 4; } else error->all(FLERR,"Illegal fix wall/body/polygon command"); diff --git a/src/BODY/fix_wall_body_polyhedron.cpp b/src/BODY/fix_wall_body_polyhedron.cpp index 42c62de436..161f8d6d6d 100644 --- a/src/BODY/fix_wall_body_polyhedron.cpp +++ b/src/BODY/fix_wall_body_polyhedron.cpp @@ -62,11 +62,11 @@ FixWallBodyPolyhedron::FixWallBodyPolyhedron(LAMMPS *lmp, int narg, char **arg) // wall/particle coefficients - kn = force->numeric(FLERR,arg[3]); + kn = utils::numeric(FLERR,arg[3],false,lmp); - c_n = force->numeric(FLERR,arg[4]); + c_n = utils::numeric(FLERR,arg[4],false,lmp); if (strcmp(arg[5],"NULL") == 0) c_t = 0.5 * c_n; - else c_t = force->numeric(FLERR,arg[5]); + else c_t = utils::numeric(FLERR,arg[5],false,lmp); if (kn < 0.0 || c_n < 0.0 || c_t < 0.0) error->all(FLERR,"Illegal fix wall/body/polyhedron command"); @@ -78,25 +78,25 @@ FixWallBodyPolyhedron::FixWallBodyPolyhedron(LAMMPS *lmp, int narg, char **arg) if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/body/polyhedron command"); wallstyle = XPLANE; if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; - else lo = force->numeric(FLERR,arg[iarg+1]); + else lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; - else hi = force->numeric(FLERR,arg[iarg+2]); + else hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"yplane") == 0) { if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/body/polyhedron command"); wallstyle = YPLANE; if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; - else lo = force->numeric(FLERR,arg[iarg+1]); + else lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; - else hi = force->numeric(FLERR,arg[iarg+2]); + else hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"zplane") == 0) { if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/body/polyhedron command"); wallstyle = ZPLANE; if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; - else lo = force->numeric(FLERR,arg[iarg+1]); + else lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; - else hi = force->numeric(FLERR,arg[iarg+2]); + else hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } @@ -111,8 +111,8 @@ FixWallBodyPolyhedron::FixWallBodyPolyhedron(LAMMPS *lmp, int narg, char **arg) else if (strcmp(arg[iarg+1],"y") == 0) axis = 1; else if (strcmp(arg[iarg+1],"z") == 0) axis = 2; else error->all(FLERR,"Illegal fix wall/body/polyhedron command"); - amplitude = force->numeric(FLERR,arg[iarg+2]); - period = force->numeric(FLERR,arg[iarg+3]); + amplitude = utils::numeric(FLERR,arg[iarg+2],false,lmp); + period = utils::numeric(FLERR,arg[iarg+3],false,lmp); wiggle = 1; iarg += 4; } else error->all(FLERR,"Illegal fix wall/body/polyhedron command"); diff --git a/src/BODY/pair_body_nparticle.cpp b/src/BODY/pair_body_nparticle.cpp index f2b1fa77f9..b3333d4715 100644 --- a/src/BODY/pair_body_nparticle.cpp +++ b/src/BODY/pair_body_nparticle.cpp @@ -363,7 +363,7 @@ void PairBodyNparticle::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -389,11 +389,11 @@ void PairBodyNparticle::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; - if (narg == 5) cut_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp index 7e213eba1c..9687c28613 100644 --- a/src/BODY/pair_body_rounded_polygon.cpp +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -366,11 +366,11 @@ void PairBodyRoundedPolygon::settings(int narg, char **arg) { if (narg < 5) error->all(FLERR,"Illegal pair_style command"); - c_n = force->numeric(FLERR,arg[0]); - c_t = force->numeric(FLERR,arg[1]); - mu = force->numeric(FLERR,arg[2]); - delta_ua = force->numeric(FLERR,arg[3]); - cut_inner = force->numeric(FLERR,arg[4]); + c_n = utils::numeric(FLERR,arg[0],false,lmp); + c_t = utils::numeric(FLERR,arg[1],false,lmp); + mu = utils::numeric(FLERR,arg[2],false,lmp); + delta_ua = utils::numeric(FLERR,arg[3],false,lmp); + cut_inner = utils::numeric(FLERR,arg[4],false,lmp); if (delta_ua < 0) delta_ua = 1; } @@ -389,8 +389,8 @@ void PairBodyRoundedPolygon::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double k_n_one = force->numeric(FLERR,arg[2]); - double k_na_one = force->numeric(FLERR,arg[3]); + double k_n_one = utils::numeric(FLERR,arg[2],false,lmp); + double k_na_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index d3e92ab2f6..dfefc318af 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -344,11 +344,11 @@ void PairBodyRoundedPolyhedron::settings(int narg, char **arg) { if (narg < 5) error->all(FLERR,"Illegal pair_style command"); - c_n = force->numeric(FLERR,arg[0]); - c_t = force->numeric(FLERR,arg[1]); - mu = force->numeric(FLERR,arg[2]); - A_ua = force->numeric(FLERR,arg[3]); - cut_inner = force->numeric(FLERR,arg[4]); + c_n = utils::numeric(FLERR,arg[0],false,lmp); + c_t = utils::numeric(FLERR,arg[1],false,lmp); + mu = utils::numeric(FLERR,arg[2],false,lmp); + A_ua = utils::numeric(FLERR,arg[3],false,lmp); + cut_inner = utils::numeric(FLERR,arg[4],false,lmp); if (A_ua < 0) A_ua = 1; } @@ -367,8 +367,8 @@ void PairBodyRoundedPolyhedron::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double k_n_one = force->numeric(FLERR,arg[2]); - double k_na_one = force->numeric(FLERR,arg[3]); + double k_n_one = utils::numeric(FLERR,arg[2],false,lmp); + double k_na_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/CLASS2/angle_class2.cpp b/src/CLASS2/angle_class2.cpp index 79d71b2ee4..431479b489 100644 --- a/src/CLASS2/angle_class2.cpp +++ b/src/CLASS2/angle_class2.cpp @@ -280,9 +280,9 @@ void AngleClass2::coeff(int narg, char **arg) if (strcmp(arg[1],"bb") == 0) { if (narg != 5) error->all(FLERR,"Incorrect args for angle coefficients"); - double bb_k_one = force->numeric(FLERR,arg[2]); - double bb_r1_one = force->numeric(FLERR,arg[3]); - double bb_r2_one = force->numeric(FLERR,arg[4]); + double bb_k_one = utils::numeric(FLERR,arg[2],false,lmp); + double bb_r1_one = utils::numeric(FLERR,arg[3],false,lmp); + double bb_r2_one = utils::numeric(FLERR,arg[4],false,lmp); for (int i = ilo; i <= ihi; i++) { bb_k[i] = bb_k_one; @@ -295,10 +295,10 @@ void AngleClass2::coeff(int narg, char **arg) } else if (strcmp(arg[1],"ba") == 0) { if (narg != 6) error->all(FLERR,"Incorrect args for angle coefficients"); - double ba_k1_one = force->numeric(FLERR,arg[2]); - double ba_k2_one = force->numeric(FLERR,arg[3]); - double ba_r1_one = force->numeric(FLERR,arg[4]); - double ba_r2_one = force->numeric(FLERR,arg[5]); + double ba_k1_one = utils::numeric(FLERR,arg[2],false,lmp); + double ba_k2_one = utils::numeric(FLERR,arg[3],false,lmp); + double ba_r1_one = utils::numeric(FLERR,arg[4],false,lmp); + double ba_r2_one = utils::numeric(FLERR,arg[5],false,lmp); for (int i = ilo; i <= ihi; i++) { ba_k1[i] = ba_k1_one; @@ -312,10 +312,10 @@ void AngleClass2::coeff(int narg, char **arg) } else { if (narg != 5) error->all(FLERR,"Incorrect args for angle coefficients"); - double theta0_one = force->numeric(FLERR,arg[1]); - double k2_one = force->numeric(FLERR,arg[2]); - double k3_one = force->numeric(FLERR,arg[3]); - double k4_one = force->numeric(FLERR,arg[4]); + double theta0_one = utils::numeric(FLERR,arg[1],false,lmp); + double k2_one = utils::numeric(FLERR,arg[2],false,lmp); + double k3_one = utils::numeric(FLERR,arg[3],false,lmp); + double k4_one = utils::numeric(FLERR,arg[4],false,lmp); // convert theta0 from degrees to radians diff --git a/src/CLASS2/bond_class2.cpp b/src/CLASS2/bond_class2.cpp index d6b802a11a..2cd63eafcb 100644 --- a/src/CLASS2/bond_class2.cpp +++ b/src/CLASS2/bond_class2.cpp @@ -136,10 +136,10 @@ void BondClass2::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double r0_one = force->numeric(FLERR,arg[1]); - double k2_one = force->numeric(FLERR,arg[2]); - double k3_one = force->numeric(FLERR,arg[3]); - double k4_one = force->numeric(FLERR,arg[4]); + double r0_one = utils::numeric(FLERR,arg[1],false,lmp); + double k2_one = utils::numeric(FLERR,arg[2],false,lmp); + double k3_one = utils::numeric(FLERR,arg[3],false,lmp); + double k4_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/CLASS2/dihedral_class2.cpp b/src/CLASS2/dihedral_class2.cpp index e08661a480..44d4902e4a 100644 --- a/src/CLASS2/dihedral_class2.cpp +++ b/src/CLASS2/dihedral_class2.cpp @@ -646,10 +646,10 @@ void DihedralClass2::coeff(int narg, char **arg) if (strcmp(arg[1],"mbt") == 0) { if (narg != 6) error->all(FLERR,"Incorrect args for dihedral coefficients"); - double f1_one = force->numeric(FLERR,arg[2]); - double f2_one = force->numeric(FLERR,arg[3]); - double f3_one = force->numeric(FLERR,arg[4]); - double r0_one = force->numeric(FLERR,arg[5]); + double f1_one = utils::numeric(FLERR,arg[2],false,lmp); + double f2_one = utils::numeric(FLERR,arg[3],false,lmp); + double f3_one = utils::numeric(FLERR,arg[4],false,lmp); + double r0_one = utils::numeric(FLERR,arg[5],false,lmp); for (int i = ilo; i <= ihi; i++) { mbt_f1[i] = f1_one; @@ -664,14 +664,14 @@ void DihedralClass2::coeff(int narg, char **arg) if (narg != 10) error->all(FLERR,"Incorrect args for dihedral coefficients"); - double f1_1_one = force->numeric(FLERR,arg[2]); - double f2_1_one = force->numeric(FLERR,arg[3]); - double f3_1_one = force->numeric(FLERR,arg[4]); - double f1_2_one = force->numeric(FLERR,arg[5]); - double f2_2_one = force->numeric(FLERR,arg[6]); - double f3_2_one = force->numeric(FLERR,arg[7]); - double r0_1_one = force->numeric(FLERR,arg[8]); - double r0_2_one = force->numeric(FLERR,arg[9]); + double f1_1_one = utils::numeric(FLERR,arg[2],false,lmp); + double f2_1_one = utils::numeric(FLERR,arg[3],false,lmp); + double f3_1_one = utils::numeric(FLERR,arg[4],false,lmp); + double f1_2_one = utils::numeric(FLERR,arg[5],false,lmp); + double f2_2_one = utils::numeric(FLERR,arg[6],false,lmp); + double f3_2_one = utils::numeric(FLERR,arg[7],false,lmp); + double r0_1_one = utils::numeric(FLERR,arg[8],false,lmp); + double r0_2_one = utils::numeric(FLERR,arg[9],false,lmp); for (int i = ilo; i <= ihi; i++) { ebt_f1_1[i] = f1_1_one; @@ -690,14 +690,14 @@ void DihedralClass2::coeff(int narg, char **arg) if (narg != 10) error->all(FLERR,"Incorrect args for dihedral coefficients"); - double f1_1_one = force->numeric(FLERR,arg[2]); - double f2_1_one = force->numeric(FLERR,arg[3]); - double f3_1_one = force->numeric(FLERR,arg[4]); - double f1_2_one = force->numeric(FLERR,arg[5]); - double f2_2_one = force->numeric(FLERR,arg[6]); - double f3_2_one = force->numeric(FLERR,arg[7]); - double theta0_1_one = force->numeric(FLERR,arg[8]); - double theta0_2_one = force->numeric(FLERR,arg[9]); + double f1_1_one = utils::numeric(FLERR,arg[2],false,lmp); + double f2_1_one = utils::numeric(FLERR,arg[3],false,lmp); + double f3_1_one = utils::numeric(FLERR,arg[4],false,lmp); + double f1_2_one = utils::numeric(FLERR,arg[5],false,lmp); + double f2_2_one = utils::numeric(FLERR,arg[6],false,lmp); + double f3_2_one = utils::numeric(FLERR,arg[7],false,lmp); + double theta0_1_one = utils::numeric(FLERR,arg[8],false,lmp); + double theta0_2_one = utils::numeric(FLERR,arg[9],false,lmp); // convert theta0's from degrees to radians @@ -717,9 +717,9 @@ void DihedralClass2::coeff(int narg, char **arg) } else if (strcmp(arg[1],"aat") == 0) { if (narg != 5) error->all(FLERR,"Incorrect args for dihedral coefficients"); - double k_one = force->numeric(FLERR,arg[2]); - double theta0_1_one = force->numeric(FLERR,arg[3]); - double theta0_2_one = force->numeric(FLERR,arg[4]); + double k_one = utils::numeric(FLERR,arg[2],false,lmp); + double theta0_1_one = utils::numeric(FLERR,arg[3],false,lmp); + double theta0_2_one = utils::numeric(FLERR,arg[4],false,lmp); // convert theta0's from degrees to radians @@ -734,9 +734,9 @@ void DihedralClass2::coeff(int narg, char **arg) } else if (strcmp(arg[1],"bb13") == 0) { if (narg != 5) error->all(FLERR,"Incorrect args for dihedral coefficients"); - double k_one = force->numeric(FLERR,arg[2]); - double r10_one = force->numeric(FLERR,arg[3]); - double r30_one = force->numeric(FLERR,arg[4]); + double k_one = utils::numeric(FLERR,arg[2],false,lmp); + double r10_one = utils::numeric(FLERR,arg[3],false,lmp); + double r30_one = utils::numeric(FLERR,arg[4],false,lmp); for (int i = ilo; i <= ihi; i++) { bb13t_k[i] = k_one; @@ -749,12 +749,12 @@ void DihedralClass2::coeff(int narg, char **arg) } else { if (narg != 7) error->all(FLERR,"Incorrect args for dihedral coefficients"); - double k1_one = force->numeric(FLERR,arg[1]); - double phi1_one = force->numeric(FLERR,arg[2]); - double k2_one = force->numeric(FLERR,arg[3]); - double phi2_one = force->numeric(FLERR,arg[4]); - double k3_one = force->numeric(FLERR,arg[5]); - double phi3_one = force->numeric(FLERR,arg[6]); + double k1_one = utils::numeric(FLERR,arg[1],false,lmp); + double phi1_one = utils::numeric(FLERR,arg[2],false,lmp); + double k2_one = utils::numeric(FLERR,arg[3],false,lmp); + double phi2_one = utils::numeric(FLERR,arg[4],false,lmp); + double k3_one = utils::numeric(FLERR,arg[5],false,lmp); + double phi3_one = utils::numeric(FLERR,arg[6],false,lmp); // convert phi's from degrees to radians diff --git a/src/CLASS2/improper_class2.cpp b/src/CLASS2/improper_class2.cpp index d150a5b7b4..662459abb7 100644 --- a/src/CLASS2/improper_class2.cpp +++ b/src/CLASS2/improper_class2.cpp @@ -530,12 +530,12 @@ void ImproperClass2::coeff(int narg, char **arg) if (strcmp(arg[1],"aa") == 0) { if (narg != 8) error->all(FLERR,"Incorrect args for improper coefficients"); - double k1_one = force->numeric(FLERR,arg[2]); - double k2_one = force->numeric(FLERR,arg[3]); - double k3_one = force->numeric(FLERR,arg[4]); - double theta0_1_one = force->numeric(FLERR,arg[5]); - double theta0_2_one = force->numeric(FLERR,arg[6]); - double theta0_3_one = force->numeric(FLERR,arg[7]); + double k1_one = utils::numeric(FLERR,arg[2],false,lmp); + double k2_one = utils::numeric(FLERR,arg[3],false,lmp); + double k3_one = utils::numeric(FLERR,arg[4],false,lmp); + double theta0_1_one = utils::numeric(FLERR,arg[5],false,lmp); + double theta0_2_one = utils::numeric(FLERR,arg[6],false,lmp); + double theta0_3_one = utils::numeric(FLERR,arg[7],false,lmp); // convert theta0's from degrees to radians @@ -553,8 +553,8 @@ void ImproperClass2::coeff(int narg, char **arg) } else { if (narg != 3) error->all(FLERR,"Incorrect args for improper coefficients"); - double k0_one = force->numeric(FLERR,arg[1]); - double chi0_one = force->numeric(FLERR,arg[2]); + double k0_one = utils::numeric(FLERR,arg[1],false,lmp); + double chi0_one = utils::numeric(FLERR,arg[2],false,lmp); // convert chi0 from degrees to radians diff --git a/src/CLASS2/pair_lj_class2.cpp b/src/CLASS2/pair_lj_class2.cpp index bdd922bce6..96b035f83b 100644 --- a/src/CLASS2/pair_lj_class2.cpp +++ b/src/CLASS2/pair_lj_class2.cpp @@ -435,7 +435,7 @@ void PairLJClass2::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -460,11 +460,11 @@ void PairLJClass2::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; - if (narg == 5) cut_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/CLASS2/pair_lj_class2_coul_cut.cpp b/src/CLASS2/pair_lj_class2_coul_cut.cpp index da5732c9bd..9aca9f048a 100644 --- a/src/CLASS2/pair_lj_class2_coul_cut.cpp +++ b/src/CLASS2/pair_lj_class2_coul_cut.cpp @@ -194,9 +194,9 @@ void PairLJClass2CoulCut::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul_global = cut_lj_global; - else cut_coul_global = force->numeric(FLERR,arg[1]); + else cut_coul_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -226,13 +226,13 @@ void PairLJClass2CoulCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; double cut_coul_one = cut_coul_global; - if (narg >= 5) cut_coul_one = cut_lj_one = force->numeric(FLERR,arg[4]); - if (narg == 6) cut_coul_one = force->numeric(FLERR,arg[5]); + if (narg >= 5) cut_coul_one = cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); + if (narg == 6) cut_coul_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/CLASS2/pair_lj_class2_coul_long.cpp b/src/CLASS2/pair_lj_class2_coul_long.cpp index c8487e8c1d..5c7c107d02 100644 --- a/src/CLASS2/pair_lj_class2_coul_long.cpp +++ b/src/CLASS2/pair_lj_class2_coul_long.cpp @@ -607,9 +607,9 @@ void PairLJClass2CoulLong::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[1]); + else cut_coul = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -636,11 +636,11 @@ void PairLJClass2CoulLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 5) cut_lj_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/COLLOID/pair_brownian.cpp b/src/COLLOID/pair_brownian.cpp index 46ec5c9d2f..d7b2dba14a 100644 --- a/src/COLLOID/pair_brownian.cpp +++ b/src/COLLOID/pair_brownian.cpp @@ -370,18 +370,18 @@ void PairBrownian::settings(int narg, char **arg) { if (narg != 7 && narg != 9) error->all(FLERR,"Illegal pair_style command"); - mu = force->numeric(FLERR,arg[0]); - flaglog = force->inumeric(FLERR,arg[1]); - flagfld = force->inumeric(FLERR,arg[2]); - cut_inner_global = force->numeric(FLERR,arg[3]); - cut_global = force->numeric(FLERR,arg[4]); - t_target = force->numeric(FLERR,arg[5]); - seed = force->inumeric(FLERR,arg[6]); + mu = utils::numeric(FLERR,arg[0],false,lmp); + flaglog = utils::inumeric(FLERR,arg[1],false,lmp); + flagfld = utils::inumeric(FLERR,arg[2],false,lmp); + cut_inner_global = utils::numeric(FLERR,arg[3],false,lmp); + cut_global = utils::numeric(FLERR,arg[4],false,lmp); + t_target = utils::numeric(FLERR,arg[5],false,lmp); + seed = utils::inumeric(FLERR,arg[6],false,lmp); flagHI = flagVF = 1; if (narg == 9) { - flagHI = force->inumeric(FLERR,arg[7]); - flagVF = force->inumeric(FLERR,arg[8]); + flagHI = utils::inumeric(FLERR,arg[7],false,lmp); + flagVF = utils::inumeric(FLERR,arg[8],false,lmp); } if (flaglog == 1 && flagHI == 0) { @@ -426,8 +426,8 @@ void PairBrownian::coeff(int narg, char **arg) double cut_one = cut_global; if (narg == 4) { - cut_inner_one = force->numeric(FLERR,arg[2]); - cut_one = force->numeric(FLERR,arg[3]); + cut_inner_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_one = utils::numeric(FLERR,arg[3],false,lmp); } int count = 0; diff --git a/src/COLLOID/pair_colloid.cpp b/src/COLLOID/pair_colloid.cpp index e97684dcd1..7552d123c3 100644 --- a/src/COLLOID/pair_colloid.cpp +++ b/src/COLLOID/pair_colloid.cpp @@ -246,7 +246,7 @@ void PairColloid::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -272,13 +272,13 @@ void PairColloid::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a12_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double d1_one = force->numeric(FLERR,arg[4]); - double d2_one = force->numeric(FLERR,arg[5]); + double a12_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double d1_one = utils::numeric(FLERR,arg[4],false,lmp); + double d2_one = utils::numeric(FLERR,arg[5],false,lmp); double cut_one = cut_global; - if (narg == 7) cut_one = force->numeric(FLERR,arg[6]); + if (narg == 7) cut_one = utils::numeric(FLERR,arg[6],false,lmp); if (d1_one < 0.0 || d2_one < 0.0) error->all(FLERR,"Invalid d1 or d2 value for pair colloid coeff"); diff --git a/src/COLLOID/pair_lubricate.cpp b/src/COLLOID/pair_lubricate.cpp index 59b3fd2909..4f2a4455a3 100644 --- a/src/COLLOID/pair_lubricate.cpp +++ b/src/COLLOID/pair_lubricate.cpp @@ -459,16 +459,16 @@ void PairLubricate::settings(int narg, char **arg) { if (narg != 5 && narg != 7) error->all(FLERR,"Illegal pair_style command"); - mu = force->numeric(FLERR,arg[0]); - flaglog = force->inumeric(FLERR,arg[1]); - flagfld = force->inumeric(FLERR,arg[2]); - cut_inner_global = force->numeric(FLERR,arg[3]); - cut_global = force->numeric(FLERR,arg[4]); + mu = utils::numeric(FLERR,arg[0],false,lmp); + flaglog = utils::inumeric(FLERR,arg[1],false,lmp); + flagfld = utils::inumeric(FLERR,arg[2],false,lmp); + cut_inner_global = utils::numeric(FLERR,arg[3],false,lmp); + cut_global = utils::numeric(FLERR,arg[4],false,lmp); flagHI = flagVF = 1; if (narg == 7) { - flagHI = force->inumeric(FLERR,arg[5]); - flagVF = force->inumeric(FLERR,arg[6]); + flagHI = utils::inumeric(FLERR,arg[5],false,lmp); + flagVF = utils::inumeric(FLERR,arg[6],false,lmp); } if (flaglog == 1 && flagHI == 0) { @@ -507,8 +507,8 @@ void PairLubricate::coeff(int narg, char **arg) double cut_inner_one = cut_inner_global; double cut_one = cut_global; if (narg == 4) { - cut_inner_one = force->numeric(FLERR,arg[2]); - cut_one = force->numeric(FLERR,arg[3]); + cut_inner_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_one = utils::numeric(FLERR,arg[3],false,lmp); } int count = 0; diff --git a/src/COLLOID/pair_lubricateU.cpp b/src/COLLOID/pair_lubricateU.cpp index 0a003cd0ab..4fb1611660 100644 --- a/src/COLLOID/pair_lubricateU.cpp +++ b/src/COLLOID/pair_lubricateU.cpp @@ -1679,16 +1679,16 @@ void PairLubricateU::settings(int narg, char **arg) { if (narg != 5 && narg != 7) error->all(FLERR,"Illegal pair_style command"); - mu = force->numeric(FLERR,arg[0]); - flaglog = force->inumeric(FLERR,arg[1]); - cut_inner_global = force->numeric(FLERR,arg[2]); - cut_global = force->numeric(FLERR,arg[3]); - gdot = force->numeric(FLERR,arg[4]); + mu = utils::numeric(FLERR,arg[0],false,lmp); + flaglog = utils::inumeric(FLERR,arg[1],false,lmp); + cut_inner_global = utils::numeric(FLERR,arg[2],false,lmp); + cut_global = utils::numeric(FLERR,arg[3],false,lmp); + gdot = utils::numeric(FLERR,arg[4],false,lmp); flagHI = flagVF = 1; if (narg == 7) { - flagHI = force->inumeric(FLERR,arg[5]); - flagVF = force->inumeric(FLERR,arg[6]); + flagHI = utils::inumeric(FLERR,arg[5],false,lmp); + flagVF = utils::inumeric(FLERR,arg[6],false,lmp); } if (flaglog == 1 && flagHI == 0) { @@ -1740,8 +1740,8 @@ void PairLubricateU::coeff(int narg, char **arg) double cut_inner_one = cut_inner_global; double cut_one = cut_global; if (narg == 4) { - cut_inner_one = force->numeric(FLERR,arg[2]); - cut_one = force->numeric(FLERR,arg[3]); + cut_inner_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_one = utils::numeric(FLERR,arg[3],false,lmp); } int count = 0; diff --git a/src/COLLOID/pair_lubricateU_poly.cpp b/src/COLLOID/pair_lubricateU_poly.cpp index 6b6727172d..7fd847671e 100644 --- a/src/COLLOID/pair_lubricateU_poly.cpp +++ b/src/COLLOID/pair_lubricateU_poly.cpp @@ -1077,15 +1077,15 @@ void PairLubricateUPoly::settings(int narg, char **arg) { if (narg < 5 || narg > 7) error->all(FLERR,"Illegal pair_style command"); - mu = force->numeric(FLERR,arg[0]); - flaglog = force->inumeric(FLERR,arg[1]); - cut_inner_global = force->numeric(FLERR,arg[2]); - cut_global = force->numeric(FLERR,arg[3]); - gdot = force->numeric(FLERR,arg[4]); + mu = utils::numeric(FLERR,arg[0],false,lmp); + flaglog = utils::inumeric(FLERR,arg[1],false,lmp); + cut_inner_global = utils::numeric(FLERR,arg[2],false,lmp); + cut_global = utils::numeric(FLERR,arg[3],false,lmp); + gdot = utils::numeric(FLERR,arg[4],false,lmp); flagHI = flagVF = 1; - if (narg >= 6) flagHI = force->inumeric(FLERR,arg[5]); - if (narg == 7) flagVF = force->inumeric(FLERR,arg[6]); + if (narg >= 6) flagHI = utils::inumeric(FLERR,arg[5],false,lmp); + if (narg == 7) flagVF = utils::inumeric(FLERR,arg[6],false,lmp); if (flaglog == 1 && flagHI == 0) { error->warning(FLERR,"Cannot include log terms without 1/r terms; " diff --git a/src/DIPOLE/pair_lj_cut_dipole_cut.cpp b/src/DIPOLE/pair_lj_cut_dipole_cut.cpp index bd68a9445a..8f91420043 100644 --- a/src/DIPOLE/pair_lj_cut_dipole_cut.cpp +++ b/src/DIPOLE/pair_lj_cut_dipole_cut.cpp @@ -298,9 +298,9 @@ void PairLJCutDipoleCut::settings(int narg, char **arg) if (strcmp(update->unit_style,"electron") == 0) error->all(FLERR,"Cannot (yet) use 'electron' units with dipoles"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul_global = cut_lj_global; - else cut_coul_global = force->numeric(FLERR,arg[1]); + else cut_coul_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -329,13 +329,13 @@ void PairLJCutDipoleCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; double cut_coul_one = cut_coul_global; - if (narg >= 5) cut_coul_one = cut_lj_one = force->numeric(FLERR,arg[4]); - if (narg == 6) cut_coul_one = force->numeric(FLERR,arg[5]); + if (narg >= 5) cut_coul_one = cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); + if (narg == 6) cut_coul_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/DIPOLE/pair_lj_cut_dipole_long.cpp b/src/DIPOLE/pair_lj_cut_dipole_long.cpp index 5d78d9bfd3..73aa628296 100644 --- a/src/DIPOLE/pair_lj_cut_dipole_long.cpp +++ b/src/DIPOLE/pair_lj_cut_dipole_long.cpp @@ -348,9 +348,9 @@ void PairLJCutDipoleLong::settings(int narg, char **arg) if (narg < 1 || narg > 2) error->all(FLERR,"Incorrect args in pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[1]); + else cut_coul = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -376,11 +376,11 @@ void PairLJCutDipoleLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 5) cut_lj_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/DIPOLE/pair_lj_long_dipole_long.cpp b/src/DIPOLE/pair_lj_long_dipole_long.cpp index 27af0b7ff4..f7c8251e79 100644 --- a/src/DIPOLE/pair_lj_long_dipole_long.cpp +++ b/src/DIPOLE/pair_lj_long_dipole_long.cpp @@ -90,10 +90,10 @@ void PairLJLongDipoleLong::settings(int narg, char **arg) if (!((ewald_order^ewald_off)&(1<<3))) error->all(FLERR, "Coulombic cut not supported in pair_style lj/long/dipole/long"); - cut_lj_global = force->numeric(FLERR,*(arg++)); + cut_lj_global = utils::numeric(FLERR,*(arg++),false,lmp); if (narg == 4 && (ewald_order==74)) error->all(FLERR,"Only one cut-off allowed when requesting all long"); - if (narg == 4) cut_coul = force->numeric(FLERR,*(arg++)); + if (narg == 4) cut_coul = utils::numeric(FLERR,*(arg++),false,lmp); else cut_coul = cut_lj_global; if (allocated) { // reset explicit cuts @@ -194,11 +194,11 @@ void PairLJLongDipoleLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 5) cut_lj_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/GPU/fix_gpu.cpp b/src/GPU/fix_gpu.cpp index ecde8ea093..0552d23cdb 100644 --- a/src/GPU/fix_gpu.cpp +++ b/src/GPU/fix_gpu.cpp @@ -138,27 +138,27 @@ FixGPU::FixGPU(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"binsize") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package gpu command"); - binsize = force->numeric(FLERR,arg[iarg+1]); + binsize = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (binsize <= 0.0) error->all(FLERR,"Illegal fix GPU command"); iarg += 2; } else if (strcmp(arg[iarg],"split") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package gpu command"); - _particle_split = force->numeric(FLERR,arg[iarg+1]); + _particle_split = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (_particle_split == 0.0 || _particle_split > 1.0) error->all(FLERR,"Illegal package GPU command"); iarg += 2; } else if (strcmp(arg[iarg],"gpuID") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal package gpu command"); - first_gpu = force->inumeric(FLERR,arg[iarg+1]); - last_gpu = force->inumeric(FLERR,arg[iarg+2]); + first_gpu = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + last_gpu = utils::inumeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"tpa") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package gpu command"); - threads_per_atom = force->inumeric(FLERR,arg[iarg+1]); + threads_per_atom = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"nthreads") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package gpu command"); - nthreads = force->inumeric(FLERR,arg[iarg+1]); + nthreads = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nthreads < 1) error->all(FLERR,"Illegal fix GPU command"); iarg += 2; } else if (strcmp(arg[iarg],"device") == 0) { @@ -167,7 +167,7 @@ FixGPU::FixGPU(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"blocksize") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package gpu command"); - block_pair = force->inumeric(FLERR,arg[iarg+1]); + block_pair = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else error->all(FLERR,"Illegal package gpu command"); } diff --git a/src/GRANULAR/fix_pour.cpp b/src/GRANULAR/fix_pour.cpp index 73b42b9653..879f48e023 100644 --- a/src/GRANULAR/fix_pour.cpp +++ b/src/GRANULAR/fix_pour.cpp @@ -65,9 +65,9 @@ FixPour::FixPour(LAMMPS *lmp, int narg, char **arg) : // required args - ninsert = force->inumeric(FLERR,arg[3]); - ntype = force->inumeric(FLERR,arg[4]); - seed = force->inumeric(FLERR,arg[5]); + ninsert = utils::inumeric(FLERR,arg[3],false,lmp); + ntype = utils::inumeric(FLERR,arg[4],false,lmp); + seed = utils::inumeric(FLERR,arg[5],false,lmp); if (seed <= 0) error->all(FLERR,"Illegal fix pour command"); @@ -930,9 +930,9 @@ void FixPour::options(int narg, char **arg) } else if (strcmp(arg[iarg],"molfrac") == 0) { if (mode != MOLECULE) error->all(FLERR,"Illegal fix pour command"); if (iarg+nmol+1 > narg) error->all(FLERR,"Illegal fix pour command"); - molfrac[0] = force->numeric(FLERR,arg[iarg+1]); + molfrac[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); for (int i = 1; i < nmol; i++) - molfrac[i] = molfrac[i-1] + force->numeric(FLERR,arg[iarg+i+1]); + molfrac[i] = molfrac[i-1] + utils::numeric(FLERR,arg[iarg+i+1],false,lmp); if (molfrac[nmol-1] < 1.0-EPSILON || molfrac[nmol-1] > 1.0+EPSILON) error->all(FLERR,"Illegal fix pour command"); molfrac[nmol-1] = 1.0; @@ -973,21 +973,21 @@ void FixPour::options(int narg, char **arg) if (strcmp(arg[iarg+1],"one") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix pour command"); dstyle = ONE; - radius_one = 0.5 * force->numeric(FLERR,arg[iarg+2]); + radius_one = 0.5 * utils::numeric(FLERR,arg[iarg+2],false,lmp); radius_max = radius_one; iarg += 3; } else if (strcmp(arg[iarg+1],"range") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix pour command"); dstyle = RANGE; - radius_lo = 0.5 * force->numeric(FLERR,arg[iarg+2]); - radius_hi = 0.5 * force->numeric(FLERR,arg[iarg+3]); + radius_lo = 0.5 * utils::numeric(FLERR,arg[iarg+2],false,lmp); + radius_hi = 0.5 * utils::numeric(FLERR,arg[iarg+3],false,lmp); if (radius_lo > radius_hi) error->all(FLERR,"Illegal fix pour command"); radius_max = radius_hi; iarg += 4; } else if (strcmp(arg[iarg+1],"poly") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix pour command"); dstyle = POLY; - npoly = force->inumeric(FLERR,arg[iarg+2]); + npoly = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (npoly <= 0) error->all(FLERR,"Illegal fix pour command"); if (iarg+3 + 2*npoly > narg) error->all(FLERR,"Illegal fix pour command"); @@ -996,8 +996,8 @@ void FixPour::options(int narg, char **arg) iarg += 3; radius_max = 0.0; for (int i = 0; i < npoly; i++) { - radius_poly[i] = 0.5 * force->numeric(FLERR,arg[iarg++]); - frac_poly[i] = force->numeric(FLERR,arg[iarg++]); + radius_poly[i] = 0.5 * utils::numeric(FLERR,arg[iarg++],false,lmp); + frac_poly[i] = utils::numeric(FLERR,arg[iarg++],false,lmp); if (radius_poly[i] <= 0.0 || frac_poly[i] < 0.0) error->all(FLERR,"Illegal fix pour command"); radius_max = MAX(radius_max,radius_poly[i]); @@ -1010,35 +1010,35 @@ void FixPour::options(int narg, char **arg) } else if (strcmp(arg[iarg],"dens") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix pour command"); - density_lo = force->numeric(FLERR,arg[iarg+1]); - density_hi = force->numeric(FLERR,arg[iarg+2]); + density_lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); + density_hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (density_lo > density_hi) error->all(FLERR,"Illegal fix pour command"); iarg += 3; } else if (strcmp(arg[iarg],"vol") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix pour command"); - volfrac = force->numeric(FLERR,arg[iarg+1]); - maxattempt = force->inumeric(FLERR,arg[iarg+2]); + volfrac = utils::numeric(FLERR,arg[iarg+1],false,lmp); + maxattempt = utils::inumeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"rate") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix pour command"); - rate = force->numeric(FLERR,arg[iarg+1]); + rate = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"vel") == 0) { if (domain->dimension == 3) { if (iarg+6 > narg) error->all(FLERR,"Illegal fix pour command"); - vxlo = force->numeric(FLERR,arg[iarg+1]); - vxhi = force->numeric(FLERR,arg[iarg+2]); - vylo = force->numeric(FLERR,arg[iarg+3]); - vyhi = force->numeric(FLERR,arg[iarg+4]); + vxlo = utils::numeric(FLERR,arg[iarg+1],false,lmp); + vxhi = utils::numeric(FLERR,arg[iarg+2],false,lmp); + vylo = utils::numeric(FLERR,arg[iarg+3],false,lmp); + vyhi = utils::numeric(FLERR,arg[iarg+4],false,lmp); if (vxlo > vxhi || vylo > vyhi) error->all(FLERR,"Illegal fix pour command"); - vz = force->numeric(FLERR,arg[iarg+5]); + vz = utils::numeric(FLERR,arg[iarg+5],false,lmp); iarg += 6; } else { if (iarg+4 > narg) error->all(FLERR,"Illegal fix pour command"); - vxlo = force->numeric(FLERR,arg[iarg+1]); - vxhi = force->numeric(FLERR,arg[iarg+2]); - vy = force->numeric(FLERR,arg[iarg+3]); + vxlo = utils::numeric(FLERR,arg[iarg+1],false,lmp); + vxhi = utils::numeric(FLERR,arg[iarg+2],false,lmp); + vy = utils::numeric(FLERR,arg[iarg+3],false,lmp); vz = 0.0; if (vxlo > vxhi) error->all(FLERR,"Illegal fix pour command"); iarg += 4; diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index d7cbf0362a..9ec76b88f1 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -93,16 +93,16 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : size_history = 3; if (narg < 11) error->all(FLERR,"Illegal fix wall/gran command"); - kn = force->numeric(FLERR,arg[4]); + kn = utils::numeric(FLERR,arg[4],false,lmp); if (strcmp(arg[5],"NULL") == 0) kt = kn * 2.0/7.0; - else kt = force->numeric(FLERR,arg[5]); + else kt = utils::numeric(FLERR,arg[5],false,lmp); - gamman = force->numeric(FLERR,arg[6]); + gamman = utils::numeric(FLERR,arg[6],false,lmp); if (strcmp(arg[7],"NULL") == 0) gammat = 0.5 * gamman; - else gammat = force->numeric(FLERR,arg[7]); + else gammat = utils::numeric(FLERR,arg[7],false,lmp); - xmu = force->numeric(FLERR,arg[8]); - int dampflag = force->inumeric(FLERR,arg[9]); + xmu = utils::numeric(FLERR,arg[8],false,lmp); + int dampflag = utils::inumeric(FLERR,arg[9],false,lmp); if (dampflag == 0) gammat = 0.0; if (kn < 0.0 || kt < 0.0 || gamman < 0.0 || gammat < 0.0 || @@ -127,8 +127,8 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal fix wall/gran command, " "not enough parameters provided for Hooke option"); normal_model = NORMAL_HOOKE; - normal_coeffs[0] = force->numeric(FLERR,arg[iarg+1]); //kn - normal_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); //damping + normal_coeffs[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); //kn + normal_coeffs[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); //damping iarg += 3; } else if (strcmp(arg[iarg], "hertz") == 0) { int num_coeffs = 2; @@ -136,8 +136,8 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal fix wall/gran command, " "not enough parameters provided for Hertz option"); normal_model = NORMAL_HERTZ; - normal_coeffs[0] = force->numeric(FLERR,arg[iarg+1]); //kn - normal_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); //damping + normal_coeffs[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); //kn + normal_coeffs[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); //damping iarg += num_coeffs+1; } else if (strcmp(arg[iarg], "hertz/material") == 0) { int num_coeffs = 3; @@ -145,9 +145,9 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal fix wall/gran command, " "not enough parameters provided for Hertz option"); normal_model = HERTZ_MATERIAL; - Emod = force->numeric(FLERR,arg[iarg+1]); //E - normal_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); //damping - poiss = force->numeric(FLERR,arg[iarg+3]); //Poisson's ratio + Emod = utils::numeric(FLERR,arg[iarg+1],false,lmp); //E + normal_coeffs[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); //damping + poiss = utils::numeric(FLERR,arg[iarg+3],false,lmp); //Poisson's ratio normal_coeffs[0] = Emod/(2*(1-poiss))*FOURTHIRDS; normal_coeffs[2] = poiss; iarg += num_coeffs+1; @@ -156,24 +156,24 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal fix wall/gran command, " "not enough parameters provided for Hertz option"); normal_model = DMT; - Emod = force->numeric(FLERR,arg[iarg+1]); //E - normal_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); //damping - poiss = force->numeric(FLERR,arg[iarg+3]); //Poisson's ratio + Emod = utils::numeric(FLERR,arg[iarg+1],false,lmp); //E + normal_coeffs[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); //damping + poiss = utils::numeric(FLERR,arg[iarg+3],false,lmp); //Poisson's ratio normal_coeffs[0] = Emod/(2*(1-poiss))*FOURTHIRDS; normal_coeffs[2] = poiss; - normal_coeffs[3] = force->numeric(FLERR,arg[iarg+4]); //cohesion + normal_coeffs[3] = utils::numeric(FLERR,arg[iarg+4],false,lmp); //cohesion iarg += 5; } else if (strcmp(arg[iarg], "jkr") == 0) { if (iarg + 4 >= narg) error->all(FLERR,"Illegal wall/gran command, " "not enough parameters provided for JKR option"); normal_model = JKR; - Emod = force->numeric(FLERR,arg[iarg+1]); //E - normal_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); //damping - poiss = force->numeric(FLERR,arg[iarg+3]); //Poisson's ratio + Emod = utils::numeric(FLERR,arg[iarg+1],false,lmp); //E + normal_coeffs[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); //damping + poiss = utils::numeric(FLERR,arg[iarg+3],false,lmp); //Poisson's ratio normal_coeffs[0] = Emod/(2*(1-poiss))*FOURTHIRDS; normal_coeffs[2] = poiss; - normal_coeffs[3] = force->numeric(FLERR,arg[iarg+4]); //cohesion + normal_coeffs[3] = utils::numeric(FLERR,arg[iarg+4],false,lmp); //cohesion iarg += 5; } else if (strcmp(arg[iarg], "damping") == 0) { if (iarg+1 >= narg) @@ -205,8 +205,8 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : tangential_model = TANGENTIAL_NOHISTORY; tangential_coeffs[0] = 0; // gammat and friction coeff - tangential_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); - tangential_coeffs[2] = force->numeric(FLERR,arg[iarg+3]); + tangential_coeffs[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + tangential_coeffs[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if ((strcmp(arg[iarg+1], "linear_history") == 0) || (strcmp(arg[iarg+1], "mindlin") == 0) || @@ -230,12 +230,12 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : } tangential_coeffs[0] = Emod/4*(2-poiss)*(1+poiss); } else { - tangential_coeffs[0] = force->numeric(FLERR,arg[iarg+2]); //kt + tangential_coeffs[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); //kt } tangential_history = 1; // gammat and friction coeff - tangential_coeffs[1] = force->numeric(FLERR,arg[iarg+3]); - tangential_coeffs[2] = force->numeric(FLERR,arg[iarg+4]); + tangential_coeffs[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + tangential_coeffs[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else { error->all(FLERR, "Illegal pair_coeff command, " @@ -254,9 +254,9 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : roll_model = ROLL_SDS; roll_history = 1; // kR, gammaR, rolling friction coeff - roll_coeffs[0] = force->numeric(FLERR,arg[iarg+2]); - roll_coeffs[1] = force->numeric(FLERR,arg[iarg+3]); - roll_coeffs[2] = force->numeric(FLERR,arg[iarg+4]); + roll_coeffs[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + roll_coeffs[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + roll_coeffs[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else { error->all(FLERR, "Illegal wall/gran command, " @@ -278,9 +278,9 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : "not enough parameters provided for twist model"); twist_model = TWIST_SDS; twist_history = 1; - twist_coeffs[0] = force->numeric(FLERR,arg[iarg+2]); //kt - twist_coeffs[1] = force->numeric(FLERR,arg[iarg+3]); //gammat - twist_coeffs[2] = force->numeric(FLERR,arg[iarg+4]); //friction coeff. + twist_coeffs[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); //kt + twist_coeffs[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); //gammat + twist_coeffs[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); //friction coeff. iarg += 5; } else { error->all(FLERR, "Illegal wall/gran command, " @@ -309,31 +309,31 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/gran command"); wallstyle = XPLANE; if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; - else lo = force->numeric(FLERR,arg[iarg+1]); + else lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; - else hi = force->numeric(FLERR,arg[iarg+2]); + else hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"yplane") == 0) { if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/gran command"); wallstyle = YPLANE; if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; - else lo = force->numeric(FLERR,arg[iarg+1]); + else lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; - else hi = force->numeric(FLERR,arg[iarg+2]); + else hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"zplane") == 0) { if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/gran command"); wallstyle = ZPLANE; if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; - else lo = force->numeric(FLERR,arg[iarg+1]); + else lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; - else hi = force->numeric(FLERR,arg[iarg+2]); + else hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"zcylinder") == 0) { if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/gran command"); wallstyle = ZCYLINDER; lo = hi = 0.0; - cylradius = force->numeric(FLERR,arg[iarg+1]); + cylradius = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"region") == 0) { if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/gran command"); @@ -357,8 +357,8 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : else if (strcmp(arg[iarg+1],"y") == 0) axis = 1; else if (strcmp(arg[iarg+1],"z") == 0) axis = 2; else error->all(FLERR,"Illegal fix wall/gran command"); - amplitude = force->numeric(FLERR,arg[iarg+2]); - period = force->numeric(FLERR,arg[iarg+3]); + amplitude = utils::numeric(FLERR,arg[iarg+2],false,lmp); + period = utils::numeric(FLERR,arg[iarg+3],false,lmp); wiggle = 1; iarg += 4; } else if (strcmp(arg[iarg],"shear") == 0) { @@ -367,7 +367,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : else if (strcmp(arg[iarg+1],"y") == 0) axis = 1; else if (strcmp(arg[iarg+1],"z") == 0) axis = 2; else error->all(FLERR,"Illegal fix wall/gran command"); - vshear = force->numeric(FLERR,arg[iarg+2]); + vshear = utils::numeric(FLERR,arg[iarg+2],false,lmp); wshear = 1; iarg += 3; } else if (strcmp(arg[iarg],"contacts") == 0) { diff --git a/src/GRANULAR/pair_gran_hertz_history.cpp b/src/GRANULAR/pair_gran_hertz_history.cpp index 4a362c0928..89230f26bf 100644 --- a/src/GRANULAR/pair_gran_hertz_history.cpp +++ b/src/GRANULAR/pair_gran_hertz_history.cpp @@ -279,16 +279,16 @@ void PairGranHertzHistory::settings(int narg, char **arg) { if (narg != 6) error->all(FLERR,"Illegal pair_style command"); - kn = force->numeric(FLERR,arg[0]); + kn = utils::numeric(FLERR,arg[0],false,lmp); if (strcmp(arg[1],"NULL") == 0) kt = kn * 2.0/7.0; - else kt = force->numeric(FLERR,arg[1]); + else kt = utils::numeric(FLERR,arg[1],false,lmp); - gamman = force->numeric(FLERR,arg[2]); + gamman = utils::numeric(FLERR,arg[2],false,lmp); if (strcmp(arg[3],"NULL") == 0) gammat = 0.5 * gamman; - else gammat = force->numeric(FLERR,arg[3]); + else gammat = utils::numeric(FLERR,arg[3],false,lmp); - xmu = force->numeric(FLERR,arg[4]); - dampflag = force->inumeric(FLERR,arg[5]); + xmu = utils::numeric(FLERR,arg[4],false,lmp); + dampflag = utils::inumeric(FLERR,arg[5],false,lmp); if (dampflag == 0) gammat = 0.0; if (kn < 0.0 || kt < 0.0 || gamman < 0.0 || gammat < 0.0 || diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index 04f1cb0a95..a8cd808411 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -358,16 +358,16 @@ void PairGranHookeHistory::settings(int narg, char **arg) { if (narg != 6) error->all(FLERR,"Illegal pair_style command"); - kn = force->numeric(FLERR,arg[0]); + kn = utils::numeric(FLERR,arg[0],false,lmp); if (strcmp(arg[1],"NULL") == 0) kt = kn * 2.0/7.0; - else kt = force->numeric(FLERR,arg[1]); + else kt = utils::numeric(FLERR,arg[1],false,lmp); - gamman = force->numeric(FLERR,arg[2]); + gamman = utils::numeric(FLERR,arg[2],false,lmp); if (strcmp(arg[3],"NULL") == 0) gammat = 0.5 * gamman; - else gammat = force->numeric(FLERR,arg[3]); + else gammat = utils::numeric(FLERR,arg[3],false,lmp); - xmu = force->numeric(FLERR,arg[4]); - dampflag = force->inumeric(FLERR,arg[5]); + xmu = utils::numeric(FLERR,arg[4],false,lmp); + dampflag = utils::inumeric(FLERR,arg[5],false,lmp); if (dampflag == 0) gammat = 0.0; if (kn < 0.0 || kt < 0.0 || gamman < 0.0 || gammat < 0.0 || diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index b677c7711d..88a9fe36f0 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -753,7 +753,7 @@ void PairGranular::allocate() void PairGranular::settings(int narg, char **arg) { if (narg == 1) { - cutoff_global = force->numeric(FLERR,arg[0]); + cutoff_global = utils::numeric(FLERR,arg[0],false,lmp); } else { cutoff_global = -1; // will be set based on particle sizes, model choice } @@ -800,35 +800,35 @@ void PairGranular::coeff(int narg, char **arg) error->all(FLERR,"Illegal pair_coeff command, " "not enough parameters provided for Hooke option"); normal_model_one = HOOKE; - normal_coeffs_one[0] = force->numeric(FLERR,arg[iarg+1]); // kn - normal_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); // damping + normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // kn + normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping iarg += 3; } else if (strcmp(arg[iarg], "hertz") == 0) { if (iarg + 2 >= narg) error->all(FLERR,"Illegal pair_coeff command, " "not enough parameters provided for Hertz option"); normal_model_one = HERTZ; - normal_coeffs_one[0] = force->numeric(FLERR,arg[iarg+1]); // kn - normal_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); // damping + normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // kn + normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping iarg += 3; } else if (strcmp(arg[iarg], "hertz/material") == 0) { if (iarg + 3 >= narg) error->all(FLERR,"Illegal pair_coeff command, " "not enough parameters provided for Hertz/material option"); normal_model_one = HERTZ_MATERIAL; - normal_coeffs_one[0] = force->numeric(FLERR,arg[iarg+1]); // E - normal_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); // damping - normal_coeffs_one[2] = force->numeric(FLERR,arg[iarg+3]); // Poisson's ratio + normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // E + normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping + normal_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); // Poisson's ratio iarg += 4; } else if (strcmp(arg[iarg], "dmt") == 0) { if (iarg + 4 >= narg) error->all(FLERR,"Illegal pair_coeff command, " "not enough parameters provided for Hertz option"); normal_model_one = DMT; - normal_coeffs_one[0] = force->numeric(FLERR,arg[iarg+1]); // E - normal_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); // damping - normal_coeffs_one[2] = force->numeric(FLERR,arg[iarg+3]); // Poisson's ratio - normal_coeffs_one[3] = force->numeric(FLERR,arg[iarg+4]); // cohesion + normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // E + normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping + normal_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); // Poisson's ratio + normal_coeffs_one[3] = utils::numeric(FLERR,arg[iarg+4],false,lmp); // cohesion iarg += 5; } else if (strcmp(arg[iarg], "jkr") == 0) { if (iarg + 4 >= narg) @@ -836,10 +836,10 @@ void PairGranular::coeff(int narg, char **arg) "not enough parameters provided for JKR option"); beyond_contact = 1; normal_model_one = JKR; - normal_coeffs_one[0] = force->numeric(FLERR,arg[iarg+1]); // E - normal_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); // damping - normal_coeffs_one[2] = force->numeric(FLERR,arg[iarg+3]); // Poisson's ratio - normal_coeffs_one[3] = force->numeric(FLERR,arg[iarg+4]); // cohesion + normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // E + normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping + normal_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); // Poisson's ratio + normal_coeffs_one[3] = utils::numeric(FLERR,arg[iarg+4],false,lmp); // cohesion iarg += 5; } else if (strcmp(arg[iarg], "damping") == 0) { if (iarg+1 >= narg) @@ -871,8 +871,8 @@ void PairGranular::coeff(int narg, char **arg) tangential_model_one = TANGENTIAL_NOHISTORY; tangential_coeffs_one[0] = 0; // gammat and friction coeff - tangential_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); - tangential_coeffs_one[2] = force->numeric(FLERR,arg[iarg+3]); + tangential_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + tangential_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if ((strcmp(arg[iarg+1], "linear_history") == 0) || (strcmp(arg[iarg+1], "mindlin") == 0) || @@ -905,11 +905,11 @@ void PairGranular::coeff(int narg, char **arg) } tangential_coeffs_one[0] = -1; } else { - tangential_coeffs_one[0] = force->numeric(FLERR,arg[iarg+2]); // kt + tangential_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // kt } // gammat and friction coeff - tangential_coeffs_one[1] = force->numeric(FLERR,arg[iarg+3]); - tangential_coeffs_one[2] = force->numeric(FLERR,arg[iarg+4]); + tangential_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + tangential_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else { error->all(FLERR, "Illegal pair_coeff command, " @@ -928,9 +928,9 @@ void PairGranular::coeff(int narg, char **arg) roll_model_one = ROLL_SDS; roll_history = 1; // kR and gammaR and rolling friction coeff - roll_coeffs_one[0] = force->numeric(FLERR,arg[iarg+2]); - roll_coeffs_one[1] = force->numeric(FLERR,arg[iarg+3]); - roll_coeffs_one[2] = force->numeric(FLERR,arg[iarg+4]); + roll_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + roll_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + roll_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else { error->all(FLERR, "Illegal pair_coeff command, " @@ -953,9 +953,9 @@ void PairGranular::coeff(int narg, char **arg) twist_model_one = TWIST_SDS; twist_history = 1; // kt and gammat and friction coeff - twist_coeffs_one[0] = force->numeric(FLERR,arg[iarg+2]); - twist_coeffs_one[1] = force->numeric(FLERR,arg[iarg+3]); - twist_coeffs_one[2] = force->numeric(FLERR,arg[iarg+4]); + twist_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + twist_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + twist_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else { error->all(FLERR, "Illegal pair_coeff command, " @@ -964,7 +964,7 @@ void PairGranular::coeff(int narg, char **arg) } else if (strcmp(arg[iarg], "cutoff") == 0) { if (iarg + 1 >= narg) error->all(FLERR, "Illegal pair_coeff command, not enough parameters"); - cutoff_one = force->numeric(FLERR,arg[iarg+1]); + cutoff_one = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else error->all(FLERR, "Illegal pair coeff command"); } diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 7e3a4ba68a..b5e6174528 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -324,7 +324,7 @@ void KokkosLMP::accelerator(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"binsize") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package kokkos command"); - binsize = force->numeric(FLERR,arg[iarg+1]); + binsize = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"newton") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package kokkos command"); diff --git a/src/KOKKOS/pair_coul_debye_kokkos.cpp b/src/KOKKOS/pair_coul_debye_kokkos.cpp index a97d1dbe13..e3326f3056 100644 --- a/src/KOKKOS/pair_coul_debye_kokkos.cpp +++ b/src/KOKKOS/pair_coul_debye_kokkos.cpp @@ -226,8 +226,8 @@ void PairCoulDebyeKokkos::settings(int narg, char **arg) { if (narg > 2) error->all(FLERR,"Illegal pair_style command"); - kappa = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + kappa = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/KOKKOS/pair_hybrid_overlay_kokkos.cpp b/src/KOKKOS/pair_hybrid_overlay_kokkos.cpp index a051b7bf4d..1f2ad404bb 100644 --- a/src/KOKKOS/pair_hybrid_overlay_kokkos.cpp +++ b/src/KOKKOS/pair_hybrid_overlay_kokkos.cpp @@ -53,7 +53,7 @@ void PairHybridOverlayKokkos::coeff(int narg, char **arg) if (narg < 4) error->all(FLERR,"Incorrect args for pair coefficients"); if (!isdigit(arg[3][0])) error->all(FLERR,"Incorrect args for pair coefficients"); - int index = force->inumeric(FLERR,arg[3]); + int index = utils::inumeric(FLERR,arg[3],false,lmp); if (index == multiple[m]) break; else continue; } else break; diff --git a/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.cpp b/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.cpp index 2f31b180d7..05e0d15dbf 100644 --- a/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.cpp +++ b/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.cpp @@ -277,10 +277,10 @@ void PairLJCutCoulDebyeKokkos::settings(int narg, char **arg) { if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); - kappa = force->numeric(FLERR,arg[0]); - cut_lj_global = force->numeric(FLERR,arg[1]); + kappa = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj_global = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) cut_coul_global = cut_lj_global; - else cut_coul_global = force->numeric(FLERR,arg[2]); + else cut_coul_global = utils::numeric(FLERR,arg[2],false,lmp); // reset cutoffs that were previously set from data file diff --git a/src/KOKKOS/pair_multi_lucy_rx_kokkos.cpp b/src/KOKKOS/pair_multi_lucy_rx_kokkos.cpp index 5fbc465c76..c4e1ae38cb 100644 --- a/src/KOKKOS/pair_multi_lucy_rx_kokkos.cpp +++ b/src/KOKKOS/pair_multi_lucy_rx_kokkos.cpp @@ -953,7 +953,7 @@ void PairMultiLucyRXKokkos::settings(int narg, char **arg) else if (strcmp(arg[0],"linear") == 0) tabstyle = LINEAR; else error->all(FLERR,"Unknown table style in pair_style command"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of pair table entries"); // optional keywords diff --git a/src/KOKKOS/pair_table_kokkos.cpp b/src/KOKKOS/pair_table_kokkos.cpp index 86845c72fe..b5b59dc456 100644 --- a/src/KOKKOS/pair_table_kokkos.cpp +++ b/src/KOKKOS/pair_table_kokkos.cpp @@ -428,7 +428,7 @@ void PairTableKokkos::settings(int narg, char **arg) else if (strcmp(arg[0],"bitmap") == 0) tabstyle = BITMAP; else error->all(FLERR,"Unknown table style in pair_style command"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of pair table entries"); // optional keywords diff --git a/src/KOKKOS/pair_table_rx_kokkos.cpp b/src/KOKKOS/pair_table_rx_kokkos.cpp index 28b3a0d12d..26aa4373cc 100644 --- a/src/KOKKOS/pair_table_rx_kokkos.cpp +++ b/src/KOKKOS/pair_table_rx_kokkos.cpp @@ -971,7 +971,7 @@ void PairTableRXKokkos::settings(int narg, char **arg) else if (strcmp(arg[0],"bitmap") == 0) tabstyle = BITMAP; else error->all(FLERR,"Unknown table style in pair_style command"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of pair table entries"); // optional keywords @@ -1063,7 +1063,7 @@ void PairTableRXKokkos::coeff(int narg, char **arg) // set table cutoff - if (narg == 7) tb->cut = force->numeric(FLERR,arg[6]); + if (narg == 7) tb->cut = utils::numeric(FLERR,arg[6],false,lmp); else if (tb->rflag) tb->cut = tb->rhi; else tb->cut = tb->rfile[tb->ninput-1]; diff --git a/src/KOKKOS/pppm_kokkos.cpp b/src/KOKKOS/pppm_kokkos.cpp index e71e5d6d53..2eea527947 100644 --- a/src/KOKKOS/pppm_kokkos.cpp +++ b/src/KOKKOS/pppm_kokkos.cpp @@ -144,7 +144,7 @@ template void PPPMKokkos::settings(int narg, char **arg) { if (narg < 1) error->all(FLERR,"Illegal kspace_style pppm/kk command"); - accuracy_relative = fabs(force->numeric(FLERR,arg[0])); + accuracy_relative = fabs(utils::numeric(FLERR,arg[0],false,lmp)); } /* ---------------------------------------------------------------------- diff --git a/src/KSPACE/ewald.cpp b/src/KSPACE/ewald.cpp index efb35d42b8..4aa95318db 100644 --- a/src/KSPACE/ewald.cpp +++ b/src/KSPACE/ewald.cpp @@ -71,7 +71,7 @@ void Ewald::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal kspace_style ewald command"); - accuracy_relative = fabs(force->numeric(FLERR,arg[0])); + accuracy_relative = fabs(utils::numeric(FLERR,arg[0],false,lmp)); } /* ---------------------------------------------------------------------- diff --git a/src/KSPACE/ewald_disp.cpp b/src/KSPACE/ewald_disp.cpp index b40e3cd34b..b616b2ae5d 100644 --- a/src/KSPACE/ewald_disp.cpp +++ b/src/KSPACE/ewald_disp.cpp @@ -69,7 +69,7 @@ EwaldDisp::EwaldDisp(LAMMPS *lmp) : KSpace(lmp), void EwaldDisp::settings(int narg, char **arg) { if (narg!=1) error->all(FLERR,"Illegal kspace_style ewald/n command"); - accuracy_relative = fabs(force->numeric(FLERR,arg[0])); + accuracy_relative = fabs(utils::numeric(FLERR,arg[0],false,lmp)); } diff --git a/src/KSPACE/fix_tune_kspace.cpp b/src/KSPACE/fix_tune_kspace.cpp index 8a7d49091a..45c8a35971 100644 --- a/src/KSPACE/fix_tune_kspace.cpp +++ b/src/KSPACE/fix_tune_kspace.cpp @@ -64,7 +64,7 @@ FixTuneKspace::FixTuneKspace(LAMMPS *lmp, int narg, char **arg) : // parse arguments - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix tune/kspace command"); // set up reneighboring diff --git a/src/KSPACE/msm.cpp b/src/KSPACE/msm.cpp index 973302a054..00bdac53db 100644 --- a/src/KSPACE/msm.cpp +++ b/src/KSPACE/msm.cpp @@ -108,7 +108,7 @@ MSM::MSM(LAMMPS *lmp) void MSM::settings(int narg, char **arg) { if (narg < 1) error->all(FLERR,"Illegal kspace_style msm command"); - accuracy_relative = fabs(force->numeric(FLERR,arg[0])); + accuracy_relative = fabs(utils::numeric(FLERR,arg[0],false,lmp)); } /* ---------------------------------------------------------------------- diff --git a/src/KSPACE/msm_cg.cpp b/src/KSPACE/msm_cg.cpp index 8236f93c9c..79d33b869d 100644 --- a/src/KSPACE/msm_cg.cpp +++ b/src/KSPACE/msm_cg.cpp @@ -58,7 +58,7 @@ void MSMCG::settings(int narg, char **arg) MSM::settings(narg,arg); - if (narg == 2) smallq = fabs(force->numeric(FLERR,arg[1])); + if (narg == 2) smallq = fabs(utils::numeric(FLERR,arg[1],false,lmp)); else smallq = SMALLQ; } diff --git a/src/KSPACE/pair_born_coul_long.cpp b/src/KSPACE/pair_born_coul_long.cpp index 3c1391ed94..4742e4c48c 100644 --- a/src/KSPACE/pair_born_coul_long.cpp +++ b/src/KSPACE/pair_born_coul_long.cpp @@ -240,9 +240,9 @@ void PairBornCoulLong::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[1]); + else cut_coul = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -267,15 +267,15 @@ void PairBornCoulLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a_one = force->numeric(FLERR,arg[2]); - double rho_one = force->numeric(FLERR,arg[3]); - double sigma_one = force->numeric(FLERR,arg[4]); + double a_one = utils::numeric(FLERR,arg[2],false,lmp); + double rho_one = utils::numeric(FLERR,arg[3],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[4],false,lmp); if (rho_one <= 0) error->all(FLERR,"Incorrect args for pair coefficients"); - double c_one = force->numeric(FLERR,arg[5]); - double d_one = force->numeric(FLERR,arg[6]); + double c_one = utils::numeric(FLERR,arg[5],false,lmp); + double d_one = utils::numeric(FLERR,arg[6],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 8) cut_lj_one = force->numeric(FLERR,arg[7]); + if (narg == 8) cut_lj_one = utils::numeric(FLERR,arg[7],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/KSPACE/pair_buck_coul_long.cpp b/src/KSPACE/pair_buck_coul_long.cpp index 92086812a0..f589dfaa90 100644 --- a/src/KSPACE/pair_buck_coul_long.cpp +++ b/src/KSPACE/pair_buck_coul_long.cpp @@ -240,9 +240,9 @@ void PairBuckCoulLong::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[1]); + else cut_coul = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -268,13 +268,13 @@ void PairBuckCoulLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a_one = force->numeric(FLERR,arg[2]); - double rho_one = force->numeric(FLERR,arg[3]); + double a_one = utils::numeric(FLERR,arg[2],false,lmp); + double rho_one = utils::numeric(FLERR,arg[3],false,lmp); if (rho_one <= 0) error->all(FLERR,"Incorrect args for pair coefficients"); - double c_one = force->numeric(FLERR,arg[4]); + double c_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 6) cut_lj_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_lj_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/KSPACE/pair_buck_long_coul_long.cpp b/src/KSPACE/pair_buck_long_coul_long.cpp index dc4704569e..3552e8bb86 100644 --- a/src/KSPACE/pair_buck_long_coul_long.cpp +++ b/src/KSPACE/pair_buck_long_coul_long.cpp @@ -97,10 +97,10 @@ void PairBuckLongCoulLong::settings(int narg, char **arg) if (!((ewald_order^ewald_off) & (1<<1))) error->all(FLERR, "Coulomb cut not supported in pair_style buck/long/coul/coul"); - cut_buck_global = force->numeric(FLERR,*(arg++)); + cut_buck_global = utils::numeric(FLERR,*(arg++),false,lmp); if (narg == 4 && ((ewald_order & 0x42) == 0x42)) error->all(FLERR,"Only one cutoff allowed when requesting all long"); - if (narg == 4) cut_coul = force->numeric(FLERR,*arg); + if (narg == 4) cut_coul = utils::numeric(FLERR,*arg,false,lmp); else cut_coul = cut_buck_global; if (allocated) { @@ -203,12 +203,12 @@ void PairBuckLongCoulLong::coeff(int narg, char **arg) utils::bounds(FLERR,*(arg++),1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,*(arg++),1,atom->ntypes,jlo,jhi,error); - double buck_a_one = force->numeric(FLERR,*(arg++)); - double buck_rho_one = force->numeric(FLERR,*(arg++)); - double buck_c_one = force->numeric(FLERR,*(arg++)); + double buck_a_one = utils::numeric(FLERR,*(arg++),false,lmp); + double buck_rho_one = utils::numeric(FLERR,*(arg++),false,lmp); + double buck_c_one = utils::numeric(FLERR,*(arg++),false,lmp); double cut_buck_one = cut_buck_global; - if (narg == 6) cut_buck_one = force->numeric(FLERR,*(arg++)); + if (narg == 6) cut_buck_one = utils::numeric(FLERR,*(arg++),false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/KSPACE/pair_coul_long.cpp b/src/KSPACE/pair_coul_long.cpp index 2cee7a7994..60187ce901 100644 --- a/src/KSPACE/pair_coul_long.cpp +++ b/src/KSPACE/pair_coul_long.cpp @@ -199,7 +199,7 @@ void PairCoulLong::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_coul = force->numeric(FLERR,arg[0]); + cut_coul = utils::numeric(FLERR,arg[0],false,lmp); } /* ---------------------------------------------------------------------- diff --git a/src/KSPACE/pair_lj_charmm_coul_long.cpp b/src/KSPACE/pair_lj_charmm_coul_long.cpp index 4178660fff..ff52720a08 100644 --- a/src/KSPACE/pair_lj_charmm_coul_long.cpp +++ b/src/KSPACE/pair_lj_charmm_coul_long.cpp @@ -631,10 +631,10 @@ void PairLJCharmmCoulLong::settings(int narg, char **arg) { if (narg != 2 && narg != 3) error->all(FLERR,"Illegal pair_style command"); - cut_lj_inner = force->numeric(FLERR,arg[0]); - cut_lj = force->numeric(FLERR,arg[1]); + cut_lj_inner = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) cut_coul = cut_lj; - else cut_coul = force->numeric(FLERR,arg[2]); + else cut_coul = utils::numeric(FLERR,arg[2],false,lmp); } /* ---------------------------------------------------------------------- @@ -650,13 +650,13 @@ void PairLJCharmmCoulLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double eps14_one = epsilon_one; double sigma14_one = sigma_one; if (narg == 6) { - eps14_one = force->numeric(FLERR,arg[4]); - sigma14_one = force->numeric(FLERR,arg[5]); + eps14_one = utils::numeric(FLERR,arg[4],false,lmp); + sigma14_one = utils::numeric(FLERR,arg[5],false,lmp); } int count = 0; diff --git a/src/KSPACE/pair_lj_charmmfsw_coul_long.cpp b/src/KSPACE/pair_lj_charmmfsw_coul_long.cpp index b1b86c7a4e..b10cdf2b08 100644 --- a/src/KSPACE/pair_lj_charmmfsw_coul_long.cpp +++ b/src/KSPACE/pair_lj_charmmfsw_coul_long.cpp @@ -682,10 +682,10 @@ void PairLJCharmmfswCoulLong::settings(int narg, char **arg) { if (narg != 2 && narg != 3) error->all(FLERR,"Illegal pair_style command"); - cut_lj_inner = force->numeric(FLERR,arg[0]); - cut_lj = force->numeric(FLERR,arg[1]); + cut_lj_inner = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) cut_coul = cut_lj; - else cut_coul = force->numeric(FLERR,arg[2]); + else cut_coul = utils::numeric(FLERR,arg[2],false,lmp); } /* ---------------------------------------------------------------------- @@ -701,13 +701,13 @@ void PairLJCharmmfswCoulLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double eps14_one = epsilon_one; double sigma14_one = sigma_one; if (narg == 6) { - eps14_one = force->numeric(FLERR,arg[4]); - sigma14_one = force->numeric(FLERR,arg[5]); + eps14_one = utils::numeric(FLERR,arg[4],false,lmp); + sigma14_one = utils::numeric(FLERR,arg[5],false,lmp); } int count = 0; diff --git a/src/KSPACE/pair_lj_cut_coul_long.cpp b/src/KSPACE/pair_lj_cut_coul_long.cpp index b998c9b8ef..ef25055a76 100644 --- a/src/KSPACE/pair_lj_cut_coul_long.cpp +++ b/src/KSPACE/pair_lj_cut_coul_long.cpp @@ -594,9 +594,9 @@ void PairLJCutCoulLong::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[1]); + else cut_coul = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -622,11 +622,11 @@ void PairLJCutCoulLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 5) cut_lj_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/KSPACE/pair_lj_cut_tip4p_long.cpp b/src/KSPACE/pair_lj_cut_tip4p_long.cpp index a4f115568f..426ec00e55 100644 --- a/src/KSPACE/pair_lj_cut_tip4p_long.cpp +++ b/src/KSPACE/pair_lj_cut_tip4p_long.cpp @@ -430,15 +430,15 @@ void PairLJCutTIP4PLong::settings(int narg, char **arg) { if (narg < 6 || narg > 7) error->all(FLERR,"Illegal pair_style command"); - typeO = force->inumeric(FLERR,arg[0]); - typeH = force->inumeric(FLERR,arg[1]); - typeB = force->inumeric(FLERR,arg[2]); - typeA = force->inumeric(FLERR,arg[3]); - qdist = force->numeric(FLERR,arg[4]); + typeO = utils::inumeric(FLERR,arg[0],false,lmp); + typeH = utils::inumeric(FLERR,arg[1],false,lmp); + typeB = utils::inumeric(FLERR,arg[2],false,lmp); + typeA = utils::inumeric(FLERR,arg[3],false,lmp); + qdist = utils::numeric(FLERR,arg[4],false,lmp); - cut_lj_global = force->numeric(FLERR,arg[5]); + cut_lj_global = utils::numeric(FLERR,arg[5],false,lmp); if (narg == 6) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[6]); + else cut_coul = utils::numeric(FLERR,arg[6],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/KSPACE/pair_lj_long_coul_long.cpp b/src/KSPACE/pair_lj_long_coul_long.cpp index e226cc9912..7b7a065e22 100644 --- a/src/KSPACE/pair_lj_long_coul_long.cpp +++ b/src/KSPACE/pair_lj_long_coul_long.cpp @@ -97,10 +97,10 @@ void PairLJLongCoulLong::settings(int narg, char **arg) if (!((ewald_order^ewald_off) & (1<<1))) error->all(FLERR, "Coulomb cut not supported in pair_style lj/long/coul/long"); - cut_lj_global = force->numeric(FLERR,*(arg++)); + cut_lj_global = utils::numeric(FLERR,*(arg++),false,lmp); if (narg == 4 && ((ewald_order & 0x42) == 0x42)) error->all(FLERR,"Only one cutoff allowed when requesting all long"); - if (narg == 4) cut_coul = force->numeric(FLERR,*arg); + if (narg == 4) cut_coul = utils::numeric(FLERR,*arg,false,lmp); else cut_coul = cut_lj_global; if (allocated) { @@ -201,11 +201,11 @@ void PairLJLongCoulLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 5) cut_lj_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/KSPACE/pair_lj_long_tip4p_long.cpp b/src/KSPACE/pair_lj_long_tip4p_long.cpp index fa8c221382..c71fee8206 100644 --- a/src/KSPACE/pair_lj_long_tip4p_long.cpp +++ b/src/KSPACE/pair_lj_long_tip4p_long.cpp @@ -1445,16 +1445,16 @@ void PairLJLongTIP4PLong::settings(int narg, char **arg) if (!((ewald_order^ewald_off)&(1<<1))) error->all(FLERR, "Coulomb cut not supported in pair_style lj/long/tip4p/long"); - typeO = force->inumeric(FLERR,arg[1]); - typeH = force->inumeric(FLERR,arg[2]); - typeB = force->inumeric(FLERR,arg[3]); - typeA = force->inumeric(FLERR,arg[4]); - qdist = force->numeric(FLERR,arg[5]); + typeO = utils::inumeric(FLERR,arg[1],false,lmp); + typeH = utils::inumeric(FLERR,arg[2],false,lmp); + typeB = utils::inumeric(FLERR,arg[3],false,lmp); + typeA = utils::inumeric(FLERR,arg[4],false,lmp); + qdist = utils::numeric(FLERR,arg[5],false,lmp); - cut_lj_global = force->numeric(FLERR,arg[6]); + cut_lj_global = utils::numeric(FLERR,arg[6],false,lmp); if (narg == 8) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[7]); + else cut_coul = utils::numeric(FLERR,arg[7],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/KSPACE/pair_tip4p_long.cpp b/src/KSPACE/pair_tip4p_long.cpp index c3ec44b7eb..ee7d4fed1b 100644 --- a/src/KSPACE/pair_tip4p_long.cpp +++ b/src/KSPACE/pair_tip4p_long.cpp @@ -398,13 +398,13 @@ void PairTIP4PLong::settings(int narg, char **arg) { if (narg != 6) error->all(FLERR,"Illegal pair_style command"); - typeO = force->inumeric(FLERR,arg[0]); - typeH = force->inumeric(FLERR,arg[1]); - typeB = force->inumeric(FLERR,arg[2]); - typeA = force->inumeric(FLERR,arg[3]); - qdist = force->numeric(FLERR,arg[4]); + typeO = utils::inumeric(FLERR,arg[0],false,lmp); + typeH = utils::inumeric(FLERR,arg[1],false,lmp); + typeB = utils::inumeric(FLERR,arg[2],false,lmp); + typeA = utils::inumeric(FLERR,arg[3],false,lmp); + qdist = utils::numeric(FLERR,arg[4],false,lmp); - cut_coul = force->numeric(FLERR,arg[5]); + cut_coul = utils::numeric(FLERR,arg[5],false,lmp); } /* ---------------------------------------------------------------------- diff --git a/src/KSPACE/pppm.cpp b/src/KSPACE/pppm.cpp index e399727001..9ce8ded7dd 100644 --- a/src/KSPACE/pppm.cpp +++ b/src/KSPACE/pppm.cpp @@ -164,7 +164,7 @@ PPPM::PPPM(LAMMPS *lmp) : KSpace(lmp), void PPPM::settings(int narg, char **arg) { if (narg < 1) error->all(FLERR,"Illegal kspace_style pppm command"); - accuracy_relative = fabs(force->numeric(FLERR,arg[0])); + accuracy_relative = fabs(utils::numeric(FLERR,arg[0],false,lmp)); } /* ---------------------------------------------------------------------- diff --git a/src/KSPACE/pppm_cg.cpp b/src/KSPACE/pppm_cg.cpp index 392d19336a..fa5235d6eb 100644 --- a/src/KSPACE/pppm_cg.cpp +++ b/src/KSPACE/pppm_cg.cpp @@ -66,7 +66,7 @@ void PPPMCG::settings(int narg, char **arg) PPPM::settings(narg,arg); - if (narg == 2) smallq = fabs(force->numeric(FLERR,arg[1])); + if (narg == 2) smallq = fabs(utils::numeric(FLERR,arg[1],false,lmp)); else smallq = SMALLQ; } diff --git a/src/KSPACE/pppm_disp.cpp b/src/KSPACE/pppm_disp.cpp index c81dcbf909..fba3f27938 100644 --- a/src/KSPACE/pppm_disp.cpp +++ b/src/KSPACE/pppm_disp.cpp @@ -228,7 +228,7 @@ PPPMDisp::PPPMDisp(LAMMPS *lmp) : KSpace(lmp), void PPPMDisp::settings(int narg, char **arg) { if (narg < 1) error->all(FLERR,"Illegal kspace_style pppm/disp command"); - accuracy_relative = fabs(force->numeric(FLERR,arg[0])); + accuracy_relative = fabs(utils::numeric(FLERR,arg[0],false,lmp)); } /* ---------------------------------------------------------------------- diff --git a/src/MANYBODY/fix_qeq_comb.cpp b/src/MANYBODY/fix_qeq_comb.cpp index 31d62f0645..b8bbba73da 100644 --- a/src/MANYBODY/fix_qeq_comb.cpp +++ b/src/MANYBODY/fix_qeq_comb.cpp @@ -49,8 +49,8 @@ FixQEQComb::FixQEQComb(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), respa_level_support = 1; ilevel_respa = 0; - nevery = force->inumeric(FLERR,arg[3]); - precision = force->numeric(FLERR,arg[4]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + precision = utils::numeric(FLERR,arg[4],false,lmp); if (nevery <= 0 || precision <= 0.0) error->all(FLERR,"Illegal fix qeq/comb command"); diff --git a/src/MANYBODY/pair_airebo.cpp b/src/MANYBODY/pair_airebo.cpp index 085905192e..6d783545f7 100644 --- a/src/MANYBODY/pair_airebo.cpp +++ b/src/MANYBODY/pair_airebo.cpp @@ -154,15 +154,15 @@ void PairAIREBO::settings(int narg, char **arg) if (narg != 1 && narg != 3 && narg != 4) error->all(FLERR,"Illegal pair_style command"); - cutlj = force->numeric(FLERR,arg[0]); + cutlj = utils::numeric(FLERR,arg[0],false,lmp); if (narg >= 3) { - ljflag = force->inumeric(FLERR,arg[1]); - torflag = force->inumeric(FLERR,arg[2]); + ljflag = utils::inumeric(FLERR,arg[1],false,lmp); + torflag = utils::inumeric(FLERR,arg[2],false,lmp); } if (narg == 4) { sigcut = cutlj; - sigmin = force->numeric(FLERR,arg[3]); + sigmin = utils::numeric(FLERR,arg[3],false,lmp); sigwid = sigcut - sigmin; } diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index e10ebffb4f..60905fd2ff 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -210,8 +210,8 @@ void PairATM::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); - cut_triple = force->numeric(FLERR,arg[1]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); + cut_triple = utils::numeric(FLERR,arg[1],false,lmp); } /* ---------------------------------------------------------------------- @@ -228,7 +228,7 @@ void PairATM::coeff(int narg, char **arg) utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); utils::bounds(FLERR,arg[2],1,atom->ntypes,klo,khi,error); - double nu_one = force->numeric(FLERR,arg[3]); + double nu_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MANYBODY/pair_vashishta_table.cpp b/src/MANYBODY/pair_vashishta_table.cpp index bf39183b9d..5e0c2c16f7 100644 --- a/src/MANYBODY/pair_vashishta_table.cpp +++ b/src/MANYBODY/pair_vashishta_table.cpp @@ -230,8 +230,8 @@ void PairVashishtaTable::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - ntable = force->inumeric(FLERR,arg[0]); - tabinner = force->numeric(FLERR,arg[1]); + ntable = utils::inumeric(FLERR,arg[0],false,lmp); + tabinner = utils::numeric(FLERR,arg[1],false,lmp); if (tabinner <= 0.0) error->all(FLERR,"Illegal inner cutoff for tabulation"); diff --git a/src/MC/fix_atom_swap.cpp b/src/MC/fix_atom_swap.cpp index 9a4a0b6a7f..53338f08dc 100644 --- a/src/MC/fix_atom_swap.cpp +++ b/src/MC/fix_atom_swap.cpp @@ -68,10 +68,10 @@ FixAtomSwap::FixAtomSwap(LAMMPS *lmp, int narg, char **arg) : // required args - nevery = force->inumeric(FLERR,arg[3]); - ncycles = force->inumeric(FLERR,arg[4]); - seed = force->inumeric(FLERR,arg[5]); - double temperature = force->numeric(FLERR,arg[6]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + ncycles = utils::inumeric(FLERR,arg[4],false,lmp); + seed = utils::inumeric(FLERR,arg[5],false,lmp); + double temperature = utils::numeric(FLERR,arg[6],false,lmp); beta = 1.0/(force->boltz*temperature); if (nevery <= 0) error->all(FLERR,"Illegal fix atom/swap command"); @@ -161,7 +161,7 @@ void FixAtomSwap::options(int narg, char **arg) while (iarg < narg) { if (isalpha(arg[iarg][0])) break; if (nswaptypes >= atom->ntypes) error->all(FLERR,"Illegal fix atom/swap command"); - type_list[nswaptypes] = force->numeric(FLERR,arg[iarg]); + type_list[nswaptypes] = utils::numeric(FLERR,arg[iarg],false,lmp); nswaptypes++; iarg++; } @@ -172,7 +172,7 @@ void FixAtomSwap::options(int narg, char **arg) if (isalpha(arg[iarg][0])) break; nmutypes++; if (nmutypes > atom->ntypes) error->all(FLERR,"Illegal fix atom/swap command"); - mu[nmutypes] = force->numeric(FLERR,arg[iarg]); + mu[nmutypes] = utils::numeric(FLERR,arg[iarg],false,lmp); iarg++; } } else error->all(FLERR,"Illegal fix atom/swap command"); diff --git a/src/MC/fix_bond_break.cpp b/src/MC/fix_bond_break.cpp index 2e8200f751..833a071694 100644 --- a/src/MC/fix_bond_break.cpp +++ b/src/MC/fix_bond_break.cpp @@ -41,7 +41,7 @@ FixBondBreak::FixBondBreak(LAMMPS *lmp, int narg, char **arg) : MPI_Comm_rank(world,&me); MPI_Comm_size(world,&nprocs); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix bond/break command"); force_reneighbor = 1; @@ -51,8 +51,8 @@ FixBondBreak::FixBondBreak(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extvector = 0; - btype = force->inumeric(FLERR,arg[4]); - cutoff = force->numeric(FLERR,arg[5]); + btype = utils::inumeric(FLERR,arg[4],false,lmp); + cutoff = utils::numeric(FLERR,arg[5],false,lmp); if (btype < 1 || btype > atom->nbondtypes) error->all(FLERR,"Invalid bond type in fix bond/break command"); @@ -69,8 +69,8 @@ FixBondBreak::FixBondBreak(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"prob") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/break command"); - fraction = force->numeric(FLERR,arg[iarg+1]); - seed = force->inumeric(FLERR,arg[iarg+2]); + fraction = utils::numeric(FLERR,arg[iarg+1],false,lmp); + seed = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (fraction < 0.0 || fraction > 1.0) error->all(FLERR,"Illegal fix bond/break command"); if (seed <= 0) error->all(FLERR,"Illegal fix bond/break command"); diff --git a/src/MC/fix_bond_create.cpp b/src/MC/fix_bond_create.cpp index 9639832db9..9603fc1583 100644 --- a/src/MC/fix_bond_create.cpp +++ b/src/MC/fix_bond_create.cpp @@ -47,7 +47,7 @@ FixBondCreate::FixBondCreate(LAMMPS *lmp, int narg, char **arg) : MPI_Comm_rank(world,&me); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix bond/create command"); force_reneighbor = 1; @@ -57,10 +57,10 @@ FixBondCreate::FixBondCreate(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extvector = 0; - iatomtype = force->inumeric(FLERR,arg[4]); - jatomtype = force->inumeric(FLERR,arg[5]); - double cutoff = force->numeric(FLERR,arg[6]); - btype = force->inumeric(FLERR,arg[7]); + iatomtype = utils::inumeric(FLERR,arg[4],false,lmp); + jatomtype = utils::inumeric(FLERR,arg[5],false,lmp); + double cutoff = utils::numeric(FLERR,arg[6],false,lmp); + btype = utils::inumeric(FLERR,arg[7],false,lmp); if (iatomtype < 1 || iatomtype > atom->ntypes || jatomtype < 1 || jatomtype > atom->ntypes) @@ -90,49 +90,49 @@ FixBondCreate::FixBondCreate(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"iparam") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/create command"); - imaxbond = force->inumeric(FLERR,arg[iarg+1]); - inewtype = force->inumeric(FLERR,arg[iarg+2]); + imaxbond = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + inewtype = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (imaxbond < 0) error->all(FLERR,"Illegal fix bond/create command"); if (inewtype < 1 || inewtype > atom->ntypes) error->all(FLERR,"Invalid atom type in fix bond/create command"); iarg += 3; } else if (strcmp(arg[iarg],"jparam") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/create command"); - jmaxbond = force->inumeric(FLERR,arg[iarg+1]); - jnewtype = force->inumeric(FLERR,arg[iarg+2]); + jmaxbond = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + jnewtype = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (jmaxbond < 0) error->all(FLERR,"Illegal fix bond/create command"); if (jnewtype < 1 || jnewtype > atom->ntypes) error->all(FLERR,"Invalid atom type in fix bond/create command"); iarg += 3; } else if (strcmp(arg[iarg],"prob") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/create command"); - fraction = force->numeric(FLERR,arg[iarg+1]); - seed = force->inumeric(FLERR,arg[iarg+2]); + fraction = utils::numeric(FLERR,arg[iarg+1],false,lmp); + seed = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (fraction < 0.0 || fraction > 1.0) error->all(FLERR,"Illegal fix bond/create command"); if (seed <= 0) error->all(FLERR,"Illegal fix bond/create command"); iarg += 3; } else if (strcmp(arg[iarg],"atype") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/create command"); - atype = force->inumeric(FLERR,arg[iarg+1]); + atype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (atype < 0) error->all(FLERR,"Illegal fix bond/create command"); iarg += 2; } else if (strcmp(arg[iarg],"dtype") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/create command"); - dtype = force->inumeric(FLERR,arg[iarg+1]); + dtype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (dtype < 0) error->all(FLERR,"Illegal fix bond/create command"); iarg += 2; } else if (strcmp(arg[iarg],"itype") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/create command"); - itype = force->inumeric(FLERR,arg[iarg+1]); + itype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (itype < 0) error->all(FLERR,"Illegal fix bond/create command"); iarg += 2; } else if (strcmp(arg[iarg],"aconstrain") == 0 && strcmp(style,"bond/create/angle") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/create/angle command"); - amin = force->numeric(FLERR,arg[iarg+1]); - amax = force->inumeric(FLERR,arg[iarg+2]); + amin = utils::numeric(FLERR,arg[iarg+1],false,lmp); + amax = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (amin >= amax) error->all(FLERR,"Illegal fix bond/create/angle command"); if (amin < 0 || amin > 180) diff --git a/src/MC/fix_bond_swap.cpp b/src/MC/fix_bond_swap.cpp index 8d3ff14f48..82b27d490f 100644 --- a/src/MC/fix_bond_swap.cpp +++ b/src/MC/fix_bond_swap.cpp @@ -59,7 +59,7 @@ FixBondSwap::FixBondSwap(LAMMPS *lmp, int narg, char **arg) : if (narg != 7) error->all(FLERR,"Illegal fix bond/swap command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix bond/swap command"); force_reneighbor = 1; @@ -69,13 +69,13 @@ FixBondSwap::FixBondSwap(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extvector = 0; - fraction = force->numeric(FLERR,arg[4]); - double cutoff = force->numeric(FLERR,arg[5]); + fraction = utils::numeric(FLERR,arg[4],false,lmp); + double cutoff = utils::numeric(FLERR,arg[5],false,lmp); cutsq = cutoff*cutoff; // initialize Marsaglia RNG with processor-unique seed - int seed = force->inumeric(FLERR,arg[6]); + int seed = utils::inumeric(FLERR,arg[6],false,lmp); random = new RanMars(lmp,seed + comm->me); // error check diff --git a/src/MC/fix_gcmc.cpp b/src/MC/fix_gcmc.cpp index f977f59c53..f286ab6807 100644 --- a/src/MC/fix_gcmc.cpp +++ b/src/MC/fix_gcmc.cpp @@ -87,14 +87,14 @@ FixGCMC::FixGCMC(LAMMPS *lmp, int narg, char **arg) : // required args - nevery = force->inumeric(FLERR,arg[3]); - nexchanges = force->inumeric(FLERR,arg[4]); - nmcmoves = force->inumeric(FLERR,arg[5]); - ngcmc_type = force->inumeric(FLERR,arg[6]); - seed = force->inumeric(FLERR,arg[7]); - reservoir_temperature = force->numeric(FLERR,arg[8]); - chemical_potential = force->numeric(FLERR,arg[9]); - displace = force->numeric(FLERR,arg[10]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + nexchanges = utils::inumeric(FLERR,arg[4],false,lmp); + nmcmoves = utils::inumeric(FLERR,arg[5],false,lmp); + ngcmc_type = utils::inumeric(FLERR,arg[6],false,lmp); + seed = utils::inumeric(FLERR,arg[7],false,lmp); + reservoir_temperature = utils::numeric(FLERR,arg[8],false,lmp); + chemical_potential = utils::numeric(FLERR,arg[9],false,lmp); + displace = utils::numeric(FLERR,arg[10],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix gcmc command"); if (nexchanges < 0) error->all(FLERR,"Illegal fix gcmc command"); @@ -287,9 +287,9 @@ void FixGCMC::options(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"mcmoves") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix gcmc command"); - patomtrans = force->numeric(FLERR,arg[iarg+1]); - pmoltrans = force->numeric(FLERR,arg[iarg+2]); - pmolrotate = force->numeric(FLERR,arg[iarg+3]); + patomtrans = utils::numeric(FLERR,arg[iarg+1],false,lmp); + pmoltrans = utils::numeric(FLERR,arg[iarg+2],false,lmp); + pmolrotate = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (patomtrans < 0 || pmoltrans < 0 || pmolrotate < 0) error->all(FLERR,"Illegal fix gcmc command"); pmctot = patomtrans + pmoltrans + pmolrotate; @@ -308,21 +308,21 @@ void FixGCMC::options(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"maxangle") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command"); - max_rotation_angle = force->numeric(FLERR,arg[iarg+1]); + max_rotation_angle = utils::numeric(FLERR,arg[iarg+1],false,lmp); max_rotation_angle *= MY_PI/180; iarg += 2; } else if (strcmp(arg[iarg],"pressure") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command"); - pressure = force->numeric(FLERR,arg[iarg+1]); + pressure = utils::numeric(FLERR,arg[iarg+1],false,lmp); pressure_flag = true; iarg += 2; } else if (strcmp(arg[iarg],"fugacity_coeff") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command"); - fugacity_coeff = force->numeric(FLERR,arg[iarg+1]); + fugacity_coeff = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"charge") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command"); - charge = force->numeric(FLERR,arg[iarg+1]); + charge = utils::numeric(FLERR,arg[iarg+1],false,lmp); charge_flag = true; iarg += 2; } else if (strcmp(arg[iarg],"rigid") == 0) { @@ -369,7 +369,7 @@ void FixGCMC::options(int narg, char **arg) ngrouptypesmax*sizeof(char *), "fix_gcmc:grouptypestrings"); } - grouptypes[ngrouptypes] = force->inumeric(FLERR,arg[iarg+1]); + grouptypes[ngrouptypes] = utils::inumeric(FLERR,arg[iarg+1],false,lmp); int n = strlen(arg[iarg+2]) + 1; grouptypestrings[ngrouptypes] = new char[n]; strcpy(grouptypestrings[ngrouptypes],arg[iarg+2]); @@ -377,25 +377,25 @@ void FixGCMC::options(int narg, char **arg) iarg += 3; } else if (strcmp(arg[iarg],"intra_energy") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command"); - energy_intra = force->numeric(FLERR,arg[iarg+1]); + energy_intra = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"tfac_insert") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command"); - tfac_insert = force->numeric(FLERR,arg[iarg+1]); + tfac_insert = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"overlap_cutoff") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command"); - double rtmp = force->numeric(FLERR,arg[iarg+1]); + double rtmp = utils::numeric(FLERR,arg[iarg+1],false,lmp); overlap_cutoffsq = rtmp*rtmp; overlap_flag = 1; iarg += 2; } else if (strcmp(arg[iarg],"min") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command"); - min_ngas = force->numeric(FLERR,arg[iarg+1]); + min_ngas = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"max") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command"); - max_ngas = force->numeric(FLERR,arg[iarg+1]); + max_ngas = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else error->all(FLERR,"Illegal fix gcmc command"); } diff --git a/src/MC/fix_tfmc.cpp b/src/MC/fix_tfmc.cpp index e57f1cdf4a..cf327dc2e1 100644 --- a/src/MC/fix_tfmc.cpp +++ b/src/MC/fix_tfmc.cpp @@ -44,9 +44,9 @@ FixTFMC::FixTFMC(LAMMPS *lmp, int narg, char **arg) : // although we are not doing MD, we would like to use tfMC as an MD "drop in" time_integrate = 1; - d_max = force->numeric(FLERR,arg[3]); - T_set = force->numeric(FLERR,arg[4]); - seed = force->inumeric(FLERR,arg[5]); + d_max = utils::numeric(FLERR,arg[3],false,lmp); + T_set = utils::numeric(FLERR,arg[4],false,lmp); + seed = utils::inumeric(FLERR,arg[5],false,lmp); if (d_max <= 0) error->all(FLERR,"Fix tfmc displacement length must be > 0"); if (T_set <= 0) error->all(FLERR,"Fix tfmc temperature must be > 0"); @@ -62,9 +62,9 @@ FixTFMC::FixTFMC(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"com") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix tfmc command"); comflag = 1; - xflag = force->inumeric(FLERR,arg[iarg+1]); - yflag = force->inumeric(FLERR,arg[iarg+2]); - zflag = force->inumeric(FLERR,arg[iarg+3]); + xflag = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + yflag = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + zflag = utils::inumeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"rot") == 0) { if (iarg+1 > narg) error->all(FLERR,"Illegal fix tfmc command"); diff --git a/src/MC/fix_widom.cpp b/src/MC/fix_widom.cpp index af904bfe6a..7f6f7ae1bd 100644 --- a/src/MC/fix_widom.cpp +++ b/src/MC/fix_widom.cpp @@ -83,11 +83,11 @@ FixWidom::FixWidom(LAMMPS *lmp, int narg, char **arg) : // required args - nevery = force->inumeric(FLERR,arg[3]); - ninsertions = force->inumeric(FLERR,arg[4]); - nwidom_type = force->inumeric(FLERR,arg[5]); - seed = force->inumeric(FLERR,arg[6]); - insertion_temperature = force->numeric(FLERR,arg[7]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + ninsertions = utils::inumeric(FLERR,arg[4],false,lmp); + nwidom_type = utils::inumeric(FLERR,arg[5],false,lmp); + seed = utils::inumeric(FLERR,arg[6],false,lmp); + insertion_temperature = utils::numeric(FLERR,arg[7],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix Widom command"); if (ninsertions < 0) error->all(FLERR,"Illegal fix Widom command"); @@ -234,7 +234,7 @@ void FixWidom::options(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"charge") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix Widom command"); - charge = force->numeric(FLERR,arg[iarg+1]); + charge = utils::numeric(FLERR,arg[iarg+1],false,lmp); charge_flag = true; iarg += 2; } else if (strcmp(arg[iarg],"full_energy") == 0) { @@ -242,7 +242,7 @@ void FixWidom::options(int narg, char **arg) iarg += 1; } else if (strcmp(arg[iarg],"intra_energy") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix Widom command"); - energy_intra = force->numeric(FLERR,arg[iarg+1]); + energy_intra = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else error->all(FLERR,"Illegal fix Widom command"); } diff --git a/src/MC/pair_dsmc.cpp b/src/MC/pair_dsmc.cpp index e6d2f4fe89..30c66a671f 100644 --- a/src/MC/pair_dsmc.cpp +++ b/src/MC/pair_dsmc.cpp @@ -209,12 +209,12 @@ void PairDSMC::settings(int narg, char **arg) if (narg != 6) error->all(FLERR,"Illegal pair_style command"); cut_global = 0.0; - max_cell_size = force->numeric(FLERR,arg[0]); - seed = force->inumeric(FLERR,arg[1]); - weighting = force->numeric(FLERR,arg[2]); - T_ref = force->numeric(FLERR,arg[3]); - recompute_vsigmamax_stride = force->inumeric(FLERR,arg[4]); - vsigmamax_samples = force->inumeric(FLERR,arg[5]); + max_cell_size = utils::numeric(FLERR,arg[0],false,lmp); + seed = utils::inumeric(FLERR,arg[1],false,lmp); + weighting = utils::numeric(FLERR,arg[2],false,lmp); + T_ref = utils::numeric(FLERR,arg[3],false,lmp); + recompute_vsigmamax_stride = utils::inumeric(FLERR,arg[4],false,lmp); + vsigmamax_samples = utils::inumeric(FLERR,arg[5],false,lmp); // initialize Marsaglia RNG with processor-unique seed @@ -248,10 +248,10 @@ void PairDSMC::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double sigma_one = force->numeric(FLERR,arg[2]); + double sigma_one = utils::numeric(FLERR,arg[2],false,lmp); double cut_one = cut_global; - if (narg == 4) cut_one = force->numeric(FLERR,arg[3]); + if (narg == 4) cut_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MISC/dump_xtc.cpp b/src/MISC/dump_xtc.cpp index 022591839f..fbd56b9096 100644 --- a/src/MISC/dump_xtc.cpp +++ b/src/MISC/dump_xtc.cpp @@ -283,7 +283,7 @@ int DumpXTC::modify_param(int narg, char **arg) return 2; } else if (strcmp(arg[0],"precision") == 0) { if (narg < 2) error->all(FLERR,"Illegal dump_modify command"); - precision = force->numeric(FLERR,arg[1]); + precision = utils::numeric(FLERR,arg[1],false,lmp); if ((fabs(precision-10.0) > EPS) && (fabs(precision-100.0) > EPS) && (fabs(precision-1000.0) > EPS) && (fabs(precision-10000.0) > EPS) && (fabs(precision-100000.0) > EPS) && @@ -292,13 +292,13 @@ int DumpXTC::modify_param(int narg, char **arg) return 2; } else if (strcmp(arg[0],"sfactor") == 0) { if (narg < 2) error->all(FLERR,"Illegal dump_modify command"); - sfactor = force->numeric(FLERR,arg[1]); + sfactor = utils::numeric(FLERR,arg[1],false,lmp); if (sfactor <= 0.0) error->all(FLERR,"Illegal dump_modify sfactor value (must be > 0.0)"); return 2; } else if (strcmp(arg[0],"tfactor") == 0) { if (narg < 2) error->all(FLERR,"Illegal dump_modify command"); - tfactor = force->numeric(FLERR,arg[1]); + tfactor = utils::numeric(FLERR,arg[1],false,lmp); if (tfactor <= 0.0) error->all(FLERR,"Illegal dump_modify tfactor value (must be > 0.0)"); return 2; diff --git a/src/MISC/fix_deposit.cpp b/src/MISC/fix_deposit.cpp index 4d65457340..7d9766c57c 100644 --- a/src/MISC/fix_deposit.cpp +++ b/src/MISC/fix_deposit.cpp @@ -56,10 +56,10 @@ FixDeposit::FixDeposit(LAMMPS *lmp, int narg, char **arg) : // required args - ninsert = force->inumeric(FLERR,arg[3]); - ntype = force->inumeric(FLERR,arg[4]); - nfreq = force->inumeric(FLERR,arg[5]); - seed = force->inumeric(FLERR,arg[6]); + ninsert = utils::inumeric(FLERR,arg[3],false,lmp); + ntype = utils::inumeric(FLERR,arg[4],false,lmp); + nfreq = utils::inumeric(FLERR,arg[5],false,lmp); + seed = utils::inumeric(FLERR,arg[6],false,lmp); if (seed <= 0) error->all(FLERR,"Illegal fix deposit command"); @@ -712,9 +712,9 @@ void FixDeposit::options(int narg, char **arg) } else if (strcmp(arg[iarg],"molfrac") == 0) { if (mode != MOLECULE) error->all(FLERR,"Illegal fix deposit command"); if (iarg+nmol+1 > narg) error->all(FLERR,"Illegal fix deposit command"); - molfrac[0] = force->numeric(FLERR,arg[iarg+1]); + molfrac[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); for (int i = 1; i < nmol; i++) - molfrac[i] = molfrac[i-1] + force->numeric(FLERR,arg[iarg+i+1]); + molfrac[i] = molfrac[i-1] + utils::numeric(FLERR,arg[iarg+i+1],false,lmp); if (molfrac[nmol-1] < 1.0-EPSILON || molfrac[nmol-1] > 1.0+EPSILON) error->all(FLERR,"Illegal fix deposit command"); molfrac[nmol-1] = 1.0; @@ -747,54 +747,54 @@ void FixDeposit::options(int narg, char **arg) if (iarg+3 > narg) error->all(FLERR,"Illegal fix deposit command"); globalflag = 1; localflag = 0; - lo = force->numeric(FLERR,arg[iarg+1]); - hi = force->numeric(FLERR,arg[iarg+2]); + lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); + hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"local") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix deposit command"); localflag = 1; globalflag = 0; - lo = force->numeric(FLERR,arg[iarg+1]); - hi = force->numeric(FLERR,arg[iarg+2]); - deltasq = force->numeric(FLERR,arg[iarg+3]) * - force->numeric(FLERR,arg[iarg+3]); + lo = utils::numeric(FLERR,arg[iarg+1],false,lmp); + hi = utils::numeric(FLERR,arg[iarg+2],false,lmp); + deltasq = utils::numeric(FLERR,arg[iarg+3],false,lmp) * + utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"near") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix deposit command"); - nearsq = force->numeric(FLERR,arg[iarg+1]) * - force->numeric(FLERR,arg[iarg+1]); + nearsq = utils::numeric(FLERR,arg[iarg+1],false,lmp) * + utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"attempt") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix deposit command"); - maxattempt = force->inumeric(FLERR,arg[iarg+1]); + maxattempt = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"rate") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix deposit command"); rateflag = 1; - rate = force->numeric(FLERR,arg[iarg+1]); + rate = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"vx") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deposit command"); - vxlo = force->numeric(FLERR,arg[iarg+1]); - vxhi = force->numeric(FLERR,arg[iarg+2]); + vxlo = utils::numeric(FLERR,arg[iarg+1],false,lmp); + vxhi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"vy") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deposit command"); - vylo = force->numeric(FLERR,arg[iarg+1]); - vyhi = force->numeric(FLERR,arg[iarg+2]); + vylo = utils::numeric(FLERR,arg[iarg+1],false,lmp); + vyhi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"vz") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deposit command"); - vzlo = force->numeric(FLERR,arg[iarg+1]); - vzhi = force->numeric(FLERR,arg[iarg+2]); + vzlo = utils::numeric(FLERR,arg[iarg+1],false,lmp); + vzhi = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"orient") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix deposit command"); orientflag = 1; - rx = force->numeric(FLERR,arg[iarg+1]); - ry = force->numeric(FLERR,arg[iarg+2]); - rz = force->numeric(FLERR,arg[iarg+3]); + rx = utils::numeric(FLERR,arg[iarg+1],false,lmp); + ry = utils::numeric(FLERR,arg[iarg+2],false,lmp); + rz = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (domain->dimension == 2 && (rx != 0.0 || ry != 0.0)) error->all(FLERR,"Illegal fix deposit orient settings"); if (rx == 0.0 && ry == 0.0 && rz == 0.0) @@ -808,17 +808,17 @@ void FixDeposit::options(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"gaussian") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal fix deposit command"); - xmid = force->numeric(FLERR,arg[iarg+1]); - ymid = force->numeric(FLERR,arg[iarg+2]); - zmid = force->numeric(FLERR,arg[iarg+3]); - sigma = force->numeric(FLERR,arg[iarg+4]); + xmid = utils::numeric(FLERR,arg[iarg+1],false,lmp); + ymid = utils::numeric(FLERR,arg[iarg+2],false,lmp); + zmid = utils::numeric(FLERR,arg[iarg+3],false,lmp); + sigma = utils::numeric(FLERR,arg[iarg+4],false,lmp); distflag = DIST_GAUSSIAN; iarg += 5; } else if (strcmp(arg[iarg],"target") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix deposit command"); - tx = force->numeric(FLERR,arg[iarg+1]); - ty = force->numeric(FLERR,arg[iarg+2]); - tz = force->numeric(FLERR,arg[iarg+3]); + tx = utils::numeric(FLERR,arg[iarg+1],false,lmp); + ty = utils::numeric(FLERR,arg[iarg+2],false,lmp); + tz = utils::numeric(FLERR,arg[iarg+3],false,lmp); targetflag = 1; iarg += 4; } else error->all(FLERR,"Illegal fix deposit command"); diff --git a/src/MISC/fix_efield.cpp b/src/MISC/fix_efield.cpp index 5a13b93b91..0dc0be4947 100644 --- a/src/MISC/fix_efield.cpp +++ b/src/MISC/fix_efield.cpp @@ -64,7 +64,7 @@ FixEfield::FixEfield(LAMMPS *lmp, int narg, char **arg) : xstr = new char[n]; strcpy(xstr,&arg[3][2]); } else { - ex = qe2f * force->numeric(FLERR,arg[3]); + ex = qe2f * utils::numeric(FLERR,arg[3],false,lmp); xstyle = CONSTANT; } @@ -73,7 +73,7 @@ FixEfield::FixEfield(LAMMPS *lmp, int narg, char **arg) : ystr = new char[n]; strcpy(ystr,&arg[4][2]); } else { - ey = qe2f * force->numeric(FLERR,arg[4]); + ey = qe2f * utils::numeric(FLERR,arg[4],false,lmp); ystyle = CONSTANT; } @@ -82,7 +82,7 @@ FixEfield::FixEfield(LAMMPS *lmp, int narg, char **arg) : zstr = new char[n]; strcpy(zstr,&arg[5][2]); } else { - ez = qe2f * force->numeric(FLERR,arg[5]); + ez = qe2f * utils::numeric(FLERR,arg[5],false,lmp); zstyle = CONSTANT; } diff --git a/src/MISC/fix_evaporate.cpp b/src/MISC/fix_evaporate.cpp index c7e7af9057..153de8851b 100644 --- a/src/MISC/fix_evaporate.cpp +++ b/src/MISC/fix_evaporate.cpp @@ -41,13 +41,13 @@ FixEvaporate::FixEvaporate(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 0; - nevery = force->inumeric(FLERR,arg[3]); - nflux = force->inumeric(FLERR,arg[4]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + nflux = utils::inumeric(FLERR,arg[4],false,lmp); iregion = domain->find_region(arg[5]); int n = strlen(arg[5]) + 1; idregion = new char[n]; strcpy(idregion,arg[5]); - int seed = force->inumeric(FLERR,arg[6]); + int seed = utils::inumeric(FLERR,arg[6],false,lmp); if (nevery <= 0 || nflux <= 0) error->all(FLERR,"Illegal fix evaporate command"); diff --git a/src/MISC/fix_gld.cpp b/src/MISC/fix_gld.cpp index 0e4c61813b..c4ff1ebeba 100644 --- a/src/MISC/fix_gld.cpp +++ b/src/MISC/fix_gld.cpp @@ -55,16 +55,16 @@ FixGLD::FixGLD(LAMMPS *lmp, int narg, char **arg) : // 1 = Group ID (e.g., all) // 2 = gld (name of this fix) // 3 = t_start (Starting target temperature) - t_start = force->numeric(FLERR,arg[3]); + t_start = utils::numeric(FLERR,arg[3],false,lmp); // 4 = t_stop (Stopping target temperature) - t_stop = force->numeric(FLERR,arg[4]); + t_stop = utils::numeric(FLERR,arg[4],false,lmp); // 5 = prony_terms (number of terms in Prony series) - prony_terms = force->inumeric(FLERR,arg[5]); + prony_terms = utils::inumeric(FLERR,arg[5],false,lmp); // 6 = seed (random seed) - int seed = force->inumeric(FLERR,arg[6]); + int seed = utils::inumeric(FLERR,arg[6],false,lmp); // 7 = series type if(strcmp(arg[7],"pprony") == 0) { @@ -99,8 +99,8 @@ FixGLD::FixGLD(LAMMPS *lmp, int narg, char **arg) : int iarg = narg_min; int icoeff = 0; while (iarg < narg && icoeff < prony_terms) { - double pc = force->numeric(FLERR,arg[iarg]); - double ptau = force->numeric(FLERR,arg[iarg+1]); + double pc = utils::numeric(FLERR,arg[iarg],false,lmp); + double ptau = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (pc < 0) error->all(FLERR,"Fix gld c coefficients must be >= 0"); diff --git a/src/MISC/fix_oneway.cpp b/src/MISC/fix_oneway.cpp index 68a27b68be..d2bef7cb9b 100644 --- a/src/MISC/fix_oneway.cpp +++ b/src/MISC/fix_oneway.cpp @@ -38,7 +38,7 @@ FixOneWay::FixOneWay(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) if (narg < 6) error->all(FLERR,"Illegal fix oneway command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery < 1) error->all(FLERR,"Illegal fix oneway command"); int len = strlen(arg[4]); diff --git a/src/MISC/fix_orient_bcc.cpp b/src/MISC/fix_orient_bcc.cpp index 8548ee04cf..3141f6496c 100644 --- a/src/MISC/fix_orient_bcc.cpp +++ b/src/MISC/fix_orient_bcc.cpp @@ -78,12 +78,12 @@ FixOrientBCC::FixOrientBCC(LAMMPS *lmp, int narg, char **arg) : respa_level_support = 1; ilevel_respa = 0; - nstats = force->inumeric(FLERR,arg[3]); - direction_of_motion = force->inumeric(FLERR,arg[4]); - a = force->numeric(FLERR,arg[5]); - Vxi = force->numeric(FLERR,arg[6]); - uxif_low = force->numeric(FLERR,arg[7]); - uxif_high = force->numeric(FLERR,arg[8]); + nstats = utils::inumeric(FLERR,arg[3],false,lmp); + direction_of_motion = utils::inumeric(FLERR,arg[4],false,lmp); + a = utils::numeric(FLERR,arg[5],false,lmp); + Vxi = utils::numeric(FLERR,arg[6],false,lmp); + uxif_low = utils::numeric(FLERR,arg[7],false,lmp); + uxif_high = utils::numeric(FLERR,arg[8],false,lmp); if (direction_of_motion == 0) { int n = strlen(arg[9]) + 1; diff --git a/src/MISC/fix_orient_fcc.cpp b/src/MISC/fix_orient_fcc.cpp index 97c545d189..bcba14c355 100644 --- a/src/MISC/fix_orient_fcc.cpp +++ b/src/MISC/fix_orient_fcc.cpp @@ -76,12 +76,12 @@ FixOrientFCC::FixOrientFCC(LAMMPS *lmp, int narg, char **arg) : respa_level_support = 1; ilevel_respa = 0; - nstats = force->inumeric(FLERR,arg[3]); - direction_of_motion = force->inumeric(FLERR,arg[4]); - a = force->numeric(FLERR,arg[5]); - Vxi = force->numeric(FLERR,arg[6]); - uxif_low = force->numeric(FLERR,arg[7]); - uxif_high = force->numeric(FLERR,arg[8]); + nstats = utils::inumeric(FLERR,arg[3],false,lmp); + direction_of_motion = utils::inumeric(FLERR,arg[4],false,lmp); + a = utils::numeric(FLERR,arg[5],false,lmp); + Vxi = utils::numeric(FLERR,arg[6],false,lmp); + uxif_low = utils::numeric(FLERR,arg[7],false,lmp); + uxif_high = utils::numeric(FLERR,arg[8],false,lmp); if (direction_of_motion == 0) { int n = strlen(arg[9]) + 1; diff --git a/src/MISC/fix_thermal_conductivity.cpp b/src/MISC/fix_thermal_conductivity.cpp index d0add6fecb..7eec60be8b 100644 --- a/src/MISC/fix_thermal_conductivity.cpp +++ b/src/MISC/fix_thermal_conductivity.cpp @@ -41,7 +41,7 @@ FixThermalConductivity::FixThermalConductivity(LAMMPS *lmp, MPI_Comm_rank(world,&me); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix thermal/conductivity command"); scalar_flag = 1; @@ -53,7 +53,7 @@ FixThermalConductivity::FixThermalConductivity(LAMMPS *lmp, else if (strcmp(arg[4],"z") == 0) edim = 2; else error->all(FLERR,"Illegal fix thermal/conductivity command"); - nbin = force->inumeric(FLERR,arg[5]); + nbin = utils::inumeric(FLERR,arg[5],false,lmp); if (nbin % 2 || nbin <= 2) error->all(FLERR,"Illegal fix thermal/conductivity command"); @@ -66,7 +66,7 @@ FixThermalConductivity::FixThermalConductivity(LAMMPS *lmp, if (strcmp(arg[iarg],"swap") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix thermal/conductivity command"); - nswap = force->inumeric(FLERR,arg[iarg+1]); + nswap = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nswap <= 0) error->all(FLERR, "Fix thermal/conductivity swap value must be positive"); diff --git a/src/MISC/fix_ttm.cpp b/src/MISC/fix_ttm.cpp index 896eb24b7c..24f988a76d 100644 --- a/src/MISC/fix_ttm.cpp +++ b/src/MISC/fix_ttm.cpp @@ -58,17 +58,17 @@ FixTTM::FixTTM(LAMMPS *lmp, int narg, char **arg) : restart_peratom = 1; restart_global = 1; - seed = force->inumeric(FLERR,arg[3]); - electronic_specific_heat = force->numeric(FLERR,arg[4]); - electronic_density = force->numeric(FLERR,arg[5]); - electronic_thermal_conductivity = force->numeric(FLERR,arg[6]); - gamma_p = force->numeric(FLERR,arg[7]); - gamma_s = force->numeric(FLERR,arg[8]); - v_0 = force->numeric(FLERR,arg[9]); - nxnodes = force->inumeric(FLERR,arg[10]); - nynodes = force->inumeric(FLERR,arg[11]); - nznodes = force->inumeric(FLERR,arg[12]); - nfileevery = force->inumeric(FLERR,arg[14]); + seed = utils::inumeric(FLERR,arg[3],false,lmp); + electronic_specific_heat = utils::numeric(FLERR,arg[4],false,lmp); + electronic_density = utils::numeric(FLERR,arg[5],false,lmp); + electronic_thermal_conductivity = utils::numeric(FLERR,arg[6],false,lmp); + gamma_p = utils::numeric(FLERR,arg[7],false,lmp); + gamma_s = utils::numeric(FLERR,arg[8],false,lmp); + v_0 = utils::numeric(FLERR,arg[9],false,lmp); + nxnodes = utils::inumeric(FLERR,arg[10],false,lmp); + nynodes = utils::inumeric(FLERR,arg[11],false,lmp); + nznodes = utils::inumeric(FLERR,arg[12],false,lmp); + nfileevery = utils::inumeric(FLERR,arg[14],false,lmp); if (nfileevery) { if (narg != 16) error->all(FLERR,"Illegal fix ttm command"); diff --git a/src/MISC/fix_viscosity.cpp b/src/MISC/fix_viscosity.cpp index d5a97cd4b0..b8c04132ea 100644 --- a/src/MISC/fix_viscosity.cpp +++ b/src/MISC/fix_viscosity.cpp @@ -43,7 +43,7 @@ FixViscosity::FixViscosity(LAMMPS *lmp, int narg, char **arg) : MPI_Comm_rank(world,&me); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix viscosity command"); scalar_flag = 1; @@ -60,7 +60,7 @@ FixViscosity::FixViscosity(LAMMPS *lmp, int narg, char **arg) : else if (strcmp(arg[5],"z") == 0) pdim = 2; else error->all(FLERR,"Illegal fix viscosity command"); - nbin = force->inumeric(FLERR,arg[6]); + nbin = utils::inumeric(FLERR,arg[6],false,lmp); if (nbin % 2 || nbin <= 2) error->all(FLERR,"Illegal fix viscosity command"); // optional keywords @@ -72,14 +72,14 @@ FixViscosity::FixViscosity(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"swap") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix viscosity command"); - nswap = force->inumeric(FLERR,arg[iarg+1]); + nswap = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nswap <= 0) error->all(FLERR,"Fix viscosity swap value must be positive"); iarg += 2; } else if (strcmp(arg[iarg],"vtarget") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix viscosity command"); if (strcmp(arg[iarg+1],"INF") == 0) vtarget = BIG; - else vtarget = force->numeric(FLERR,arg[iarg+1]); + else vtarget = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (vtarget <= 0.0) error->all(FLERR,"Fix viscosity vtarget value must be positive"); iarg += 2; diff --git a/src/MISC/pair_nm_cut.cpp b/src/MISC/pair_nm_cut.cpp index 9cf6700656..e2e6f40857 100644 --- a/src/MISC/pair_nm_cut.cpp +++ b/src/MISC/pair_nm_cut.cpp @@ -179,7 +179,7 @@ void PairNMCut::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -205,13 +205,13 @@ void PairNMCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double e0_one = force->numeric(FLERR,arg[2]); - double r0_one = force->numeric(FLERR,arg[3]); - double nn_one = force->numeric(FLERR,arg[4]); - double mm_one = force->numeric(FLERR,arg[5]); + double e0_one = utils::numeric(FLERR,arg[2],false,lmp); + double r0_one = utils::numeric(FLERR,arg[3],false,lmp); + double nn_one = utils::numeric(FLERR,arg[4],false,lmp); + double mm_one = utils::numeric(FLERR,arg[5],false,lmp); double cut_one = cut_global; - if (narg == 7) cut_one = force->numeric(FLERR,arg[6]); + if (narg == 7) cut_one = utils::numeric(FLERR,arg[6],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MISC/pair_nm_cut_coul_cut.cpp b/src/MISC/pair_nm_cut_coul_cut.cpp index 39efd4a2d1..efc84f22b5 100644 --- a/src/MISC/pair_nm_cut_coul_cut.cpp +++ b/src/MISC/pair_nm_cut_coul_cut.cpp @@ -203,9 +203,9 @@ void PairNMCutCoulCut::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul_global = cut_lj_global; - else cut_coul_global = force->numeric(FLERR,arg[1]); + else cut_coul_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -234,15 +234,15 @@ void PairNMCutCoulCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double e0_one = force->numeric(FLERR,arg[2]); - double r0_one = force->numeric(FLERR,arg[3]); - double nn_one = force->numeric(FLERR,arg[4]); - double mm_one = force->numeric(FLERR,arg[5]); + double e0_one = utils::numeric(FLERR,arg[2],false,lmp); + double r0_one = utils::numeric(FLERR,arg[3],false,lmp); + double nn_one = utils::numeric(FLERR,arg[4],false,lmp); + double mm_one = utils::numeric(FLERR,arg[5],false,lmp); double cut_lj_one = cut_lj_global; double cut_coul_one = cut_coul_global; - if (narg >= 7) cut_coul_one = cut_lj_one = force->numeric(FLERR,arg[4]); - if (narg == 8) cut_coul_one = force->numeric(FLERR,arg[5]); + if (narg >= 7) cut_coul_one = cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); + if (narg == 8) cut_coul_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MISC/pair_nm_cut_coul_long.cpp b/src/MISC/pair_nm_cut_coul_long.cpp index 073cf59128..79b1ebae66 100644 --- a/src/MISC/pair_nm_cut_coul_long.cpp +++ b/src/MISC/pair_nm_cut_coul_long.cpp @@ -242,9 +242,9 @@ void PairNMCutCoulLong::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[1]); + else cut_coul = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -270,13 +270,13 @@ void PairNMCutCoulLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double e0_one = force->numeric(FLERR,arg[2]); - double r0_one = force->numeric(FLERR,arg[3]); - double nn_one = force->numeric(FLERR,arg[4]); - double mm_one = force->numeric(FLERR,arg[5]); + double e0_one = utils::numeric(FLERR,arg[2],false,lmp); + double r0_one = utils::numeric(FLERR,arg[3],false,lmp); + double nn_one = utils::numeric(FLERR,arg[4],false,lmp); + double mm_one = utils::numeric(FLERR,arg[5],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 7) cut_lj_one = force->numeric(FLERR,arg[4]); + if (narg == 7) cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/angle_charmm.cpp b/src/MOLECULE/angle_charmm.cpp index ec46958c94..117056ac58 100644 --- a/src/MOLECULE/angle_charmm.cpp +++ b/src/MOLECULE/angle_charmm.cpp @@ -198,10 +198,10 @@ void AngleCharmm::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double theta0_one = force->numeric(FLERR,arg[2]); - double k_ub_one = force->numeric(FLERR,arg[3]); - double r_ub_one = force->numeric(FLERR,arg[4]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double theta0_one = utils::numeric(FLERR,arg[2],false,lmp); + double k_ub_one = utils::numeric(FLERR,arg[3],false,lmp); + double r_ub_one = utils::numeric(FLERR,arg[4],false,lmp); // convert theta0 from degrees to radians diff --git a/src/MOLECULE/angle_cosine.cpp b/src/MOLECULE/angle_cosine.cpp index 81d94c680e..732843f412 100644 --- a/src/MOLECULE/angle_cosine.cpp +++ b/src/MOLECULE/angle_cosine.cpp @@ -158,7 +158,7 @@ void AngleCosine::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/angle_cosine_periodic.cpp b/src/MOLECULE/angle_cosine_periodic.cpp index c771eb8e4b..2ec59bfb1e 100644 --- a/src/MOLECULE/angle_cosine_periodic.cpp +++ b/src/MOLECULE/angle_cosine_periodic.cpp @@ -203,9 +203,9 @@ void AngleCosinePeriodic::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double c_one = force->numeric(FLERR,arg[1]); - int b_one = force->inumeric(FLERR,arg[2]); - int n_one = force->inumeric(FLERR,arg[3]); + double c_one = utils::numeric(FLERR,arg[1],false,lmp); + int b_one = utils::inumeric(FLERR,arg[2],false,lmp); + int n_one = utils::inumeric(FLERR,arg[3],false,lmp); if (n_one <= 0) error->all(FLERR,"Incorrect args for angle coefficients"); int count = 0; diff --git a/src/MOLECULE/angle_cosine_squared.cpp b/src/MOLECULE/angle_cosine_squared.cpp index 4dc96a538b..ac276511a2 100644 --- a/src/MOLECULE/angle_cosine_squared.cpp +++ b/src/MOLECULE/angle_cosine_squared.cpp @@ -174,8 +174,8 @@ void AngleCosineSquared::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double theta0_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double theta0_one = utils::numeric(FLERR,arg[2],false,lmp); // convert theta0 from degrees to radians diff --git a/src/MOLECULE/angle_harmonic.cpp b/src/MOLECULE/angle_harmonic.cpp index c7b917b4d3..02bab37a8a 100644 --- a/src/MOLECULE/angle_harmonic.cpp +++ b/src/MOLECULE/angle_harmonic.cpp @@ -174,8 +174,8 @@ void AngleHarmonic::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double theta0_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double theta0_one = utils::numeric(FLERR,arg[2],false,lmp); // convert theta0 from degrees to radians diff --git a/src/MOLECULE/angle_table.cpp b/src/MOLECULE/angle_table.cpp index ed150da094..83e4485d48 100644 --- a/src/MOLECULE/angle_table.cpp +++ b/src/MOLECULE/angle_table.cpp @@ -190,7 +190,7 @@ void AngleTable::settings(int narg, char **arg) else if (strcmp(arg[0],"spline") == 0) tabstyle = SPLINE; else error->all(FLERR,"Unknown table style in angle style table"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of angle table entries"); // delete old tables, since cannot just change settings diff --git a/src/MOLECULE/bond_fene.cpp b/src/MOLECULE/bond_fene.cpp index f853d038e4..9617894a9a 100644 --- a/src/MOLECULE/bond_fene.cpp +++ b/src/MOLECULE/bond_fene.cpp @@ -154,10 +154,10 @@ void BondFENE::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double r0_one = force->numeric(FLERR,arg[2]); - double epsilon_one = force->numeric(FLERR,arg[3]); - double sigma_one = force->numeric(FLERR,arg[4]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double r0_one = utils::numeric(FLERR,arg[2],false,lmp); + double epsilon_one = utils::numeric(FLERR,arg[3],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/bond_fene_expand.cpp b/src/MOLECULE/bond_fene_expand.cpp index d283a3553e..eec8c14872 100644 --- a/src/MOLECULE/bond_fene_expand.cpp +++ b/src/MOLECULE/bond_fene_expand.cpp @@ -161,11 +161,11 @@ void BondFENEExpand::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double r0_one = force->numeric(FLERR,arg[2]); - double epsilon_one = force->numeric(FLERR,arg[3]); - double sigma_one = force->numeric(FLERR,arg[4]); - double shift_one = force->numeric(FLERR,arg[5]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double r0_one = utils::numeric(FLERR,arg[2],false,lmp); + double epsilon_one = utils::numeric(FLERR,arg[3],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[4],false,lmp); + double shift_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/bond_gromos.cpp b/src/MOLECULE/bond_gromos.cpp index dc8236221f..4e20a2711d 100644 --- a/src/MOLECULE/bond_gromos.cpp +++ b/src/MOLECULE/bond_gromos.cpp @@ -125,8 +125,8 @@ void BondGromos::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double r0_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double r0_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/bond_harmonic.cpp b/src/MOLECULE/bond_harmonic.cpp index b637b41eb4..773a4ee12a 100644 --- a/src/MOLECULE/bond_harmonic.cpp +++ b/src/MOLECULE/bond_harmonic.cpp @@ -126,8 +126,8 @@ void BondHarmonic::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double r0_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double r0_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/bond_morse.cpp b/src/MOLECULE/bond_morse.cpp index e369099370..38d8d6a45f 100644 --- a/src/MOLECULE/bond_morse.cpp +++ b/src/MOLECULE/bond_morse.cpp @@ -128,9 +128,9 @@ void BondMorse::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double d0_one = force->numeric(FLERR,arg[1]); - double alpha_one = force->numeric(FLERR,arg[2]); - double r0_one = force->numeric(FLERR,arg[3]); + double d0_one = utils::numeric(FLERR,arg[1],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[2],false,lmp); + double r0_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/bond_nonlinear.cpp b/src/MOLECULE/bond_nonlinear.cpp index a111f9dcea..1733ffc670 100644 --- a/src/MOLECULE/bond_nonlinear.cpp +++ b/src/MOLECULE/bond_nonlinear.cpp @@ -125,9 +125,9 @@ void BondNonlinear::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double epsilon_one = force->numeric(FLERR,arg[1]); - double r0_one = force->numeric(FLERR,arg[2]); - double lamda_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[1],false,lmp); + double r0_one = utils::numeric(FLERR,arg[2],false,lmp); + double lamda_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/bond_quartic.cpp b/src/MOLECULE/bond_quartic.cpp index 94b9ff70e5..c89ac552ae 100644 --- a/src/MOLECULE/bond_quartic.cpp +++ b/src/MOLECULE/bond_quartic.cpp @@ -203,11 +203,11 @@ void BondQuartic::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double b1_one = force->numeric(FLERR,arg[2]); - double b2_one = force->numeric(FLERR,arg[3]); - double rc_one = force->numeric(FLERR,arg[4]); - double u0_one = force->numeric(FLERR,arg[5]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double b1_one = utils::numeric(FLERR,arg[2],false,lmp); + double b2_one = utils::numeric(FLERR,arg[3],false,lmp); + double rc_one = utils::numeric(FLERR,arg[4],false,lmp); + double u0_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/bond_table.cpp b/src/MOLECULE/bond_table.cpp index 20d83ddd3b..2724d4f20c 100644 --- a/src/MOLECULE/bond_table.cpp +++ b/src/MOLECULE/bond_table.cpp @@ -142,7 +142,7 @@ void BondTable::settings(int narg, char **arg) else if (strcmp(arg[0],"spline") == 0) tabstyle = SPLINE; else error->all(FLERR,"Unknown table style in bond style table"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of bond table entries"); // delete old tables, since cannot just change settings diff --git a/src/MOLECULE/dihedral_charmm.cpp b/src/MOLECULE/dihedral_charmm.cpp index f30ad6cf34..71c9f586a3 100644 --- a/src/MOLECULE/dihedral_charmm.cpp +++ b/src/MOLECULE/dihedral_charmm.cpp @@ -336,10 +336,10 @@ void DihedralCharmm::coeff(int narg, char **arg) // arbitrary phase angle shift could be allowed, but would break // backwards compatibility and is probably not needed - double k_one = force->numeric(FLERR,arg[1]); - int multiplicity_one = force->inumeric(FLERR,arg[2]); - int shift_one = force->inumeric(FLERR,arg[3]); - double weight_one = force->numeric(FLERR,arg[4]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + int multiplicity_one = utils::inumeric(FLERR,arg[2],false,lmp); + int shift_one = utils::inumeric(FLERR,arg[3],false,lmp); + double weight_one = utils::numeric(FLERR,arg[4],false,lmp); if (multiplicity_one < 0) error->all(FLERR,"Incorrect multiplicity arg for dihedral coefficients"); diff --git a/src/MOLECULE/dihedral_charmmfsw.cpp b/src/MOLECULE/dihedral_charmmfsw.cpp index 13b2b0c205..d4956b42bd 100644 --- a/src/MOLECULE/dihedral_charmmfsw.cpp +++ b/src/MOLECULE/dihedral_charmmfsw.cpp @@ -354,10 +354,10 @@ void DihedralCharmmfsw::coeff(int narg, char **arg) // arbitrary phase angle shift could be allowed, but would break // backwards compatibility and is probably not needed - double k_one = force->numeric(FLERR,arg[1]); - int multiplicity_one = force->inumeric(FLERR,arg[2]); - int shift_one = force->inumeric(FLERR,arg[3]); - double weight_one = force->numeric(FLERR,arg[4]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + int multiplicity_one = utils::inumeric(FLERR,arg[2],false,lmp); + int shift_one = utils::inumeric(FLERR,arg[3],false,lmp); + double weight_one = utils::numeric(FLERR,arg[4],false,lmp); if (multiplicity_one < 0) error->all(FLERR,"Incorrect multiplicity arg for dihedral coefficients"); diff --git a/src/MOLECULE/dihedral_harmonic.cpp b/src/MOLECULE/dihedral_harmonic.cpp index cdf580e4e4..403bafd23e 100644 --- a/src/MOLECULE/dihedral_harmonic.cpp +++ b/src/MOLECULE/dihedral_harmonic.cpp @@ -276,9 +276,9 @@ void DihedralHarmonic::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - int sign_one = force->inumeric(FLERR,arg[2]); - int multiplicity_one = force->inumeric(FLERR,arg[3]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + int sign_one = utils::inumeric(FLERR,arg[2],false,lmp); + int multiplicity_one = utils::inumeric(FLERR,arg[3],false,lmp); // require sign = +/- 1 for backwards compatibility // arbitrary phase angle shift could be allowed, but would break diff --git a/src/MOLECULE/dihedral_helix.cpp b/src/MOLECULE/dihedral_helix.cpp index bc723bc3b2..ce31a12ed3 100644 --- a/src/MOLECULE/dihedral_helix.cpp +++ b/src/MOLECULE/dihedral_helix.cpp @@ -287,9 +287,9 @@ void DihedralHelix::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); - double aphi_one = force->numeric(FLERR,arg[1]); - double bphi_one = force->numeric(FLERR,arg[2]); - double cphi_one = force->numeric(FLERR,arg[3]); + double aphi_one = utils::numeric(FLERR,arg[1],false,lmp); + double bphi_one = utils::numeric(FLERR,arg[2],false,lmp); + double cphi_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/dihedral_multi_harmonic.cpp b/src/MOLECULE/dihedral_multi_harmonic.cpp index 143222de5e..a3c76b91ee 100644 --- a/src/MOLECULE/dihedral_multi_harmonic.cpp +++ b/src/MOLECULE/dihedral_multi_harmonic.cpp @@ -277,11 +277,11 @@ void DihedralMultiHarmonic::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); - double a1_one = force->numeric(FLERR,arg[1]); - double a2_one = force->numeric(FLERR,arg[2]); - double a3_one = force->numeric(FLERR,arg[3]); - double a4_one = force->numeric(FLERR,arg[4]); - double a5_one = force->numeric(FLERR,arg[5]); + double a1_one = utils::numeric(FLERR,arg[1],false,lmp); + double a2_one = utils::numeric(FLERR,arg[2],false,lmp); + double a3_one = utils::numeric(FLERR,arg[3],false,lmp); + double a4_one = utils::numeric(FLERR,arg[4],false,lmp); + double a5_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/dihedral_opls.cpp b/src/MOLECULE/dihedral_opls.cpp index cbdad9228f..151986ca3f 100644 --- a/src/MOLECULE/dihedral_opls.cpp +++ b/src/MOLECULE/dihedral_opls.cpp @@ -290,10 +290,10 @@ void DihedralOPLS::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); - double k1_one = force->numeric(FLERR,arg[1]); - double k2_one = force->numeric(FLERR,arg[2]); - double k3_one = force->numeric(FLERR,arg[3]); - double k4_one = force->numeric(FLERR,arg[4]); + double k1_one = utils::numeric(FLERR,arg[1],false,lmp); + double k2_one = utils::numeric(FLERR,arg[2],false,lmp); + double k3_one = utils::numeric(FLERR,arg[3],false,lmp); + double k4_one = utils::numeric(FLERR,arg[4],false,lmp); // store 1/2 factor with prefactor diff --git a/src/MOLECULE/improper_cvff.cpp b/src/MOLECULE/improper_cvff.cpp index 75f97907ef..d819642bb1 100644 --- a/src/MOLECULE/improper_cvff.cpp +++ b/src/MOLECULE/improper_cvff.cpp @@ -298,9 +298,9 @@ void ImproperCvff::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - int sign_one = force->inumeric(FLERR,arg[2]); - int multiplicity_one = force->inumeric(FLERR,arg[3]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + int sign_one = utils::inumeric(FLERR,arg[2],false,lmp); + int multiplicity_one = utils::inumeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/improper_harmonic.cpp b/src/MOLECULE/improper_harmonic.cpp index 2742bfe91a..2af1126876 100644 --- a/src/MOLECULE/improper_harmonic.cpp +++ b/src/MOLECULE/improper_harmonic.cpp @@ -240,8 +240,8 @@ void ImproperHarmonic::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double chi_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double chi_one = utils::numeric(FLERR,arg[2],false,lmp); // convert chi from degrees to radians diff --git a/src/MOLECULE/improper_umbrella.cpp b/src/MOLECULE/improper_umbrella.cpp index 2ca37d208d..1f2da63486 100644 --- a/src/MOLECULE/improper_umbrella.cpp +++ b/src/MOLECULE/improper_umbrella.cpp @@ -278,8 +278,8 @@ void ImproperUmbrella::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double w_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double w_one = utils::numeric(FLERR,arg[2],false,lmp); // convert w0 from degrees to radians diff --git a/src/MOLECULE/pair_hbond_dreiding_lj.cpp b/src/MOLECULE/pair_hbond_dreiding_lj.cpp index ca2c91c1a2..69ea81a017 100644 --- a/src/MOLECULE/pair_hbond_dreiding_lj.cpp +++ b/src/MOLECULE/pair_hbond_dreiding_lj.cpp @@ -301,10 +301,10 @@ void PairHbondDreidingLJ::settings(int narg, char **arg) { if (narg != 4) error->all(FLERR,"Illegal pair_style command"); - ap_global = force->inumeric(FLERR,arg[0]); - cut_inner_global = force->numeric(FLERR,arg[1]); - cut_outer_global = force->numeric(FLERR,arg[2]); - cut_angle_global = force->numeric(FLERR,arg[3]) * MY_PI/180.0; + ap_global = utils::inumeric(FLERR,arg[0],false,lmp); + cut_inner_global = utils::numeric(FLERR,arg[1],false,lmp); + cut_outer_global = utils::numeric(FLERR,arg[2],false,lmp); + cut_angle_global = utils::numeric(FLERR,arg[3],false,lmp) * MY_PI/180.0; } /* ---------------------------------------------------------------------- @@ -327,21 +327,21 @@ void PairHbondDreidingLJ::coeff(int narg, char **arg) else if (strcmp(arg[3],"j") == 0) donor_flag = 1; else error->all(FLERR,"Incorrect args for pair coefficients"); - double epsilon_one = force->numeric(FLERR,arg[4]); - double sigma_one = force->numeric(FLERR,arg[5]); + double epsilon_one = utils::numeric(FLERR,arg[4],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[5],false,lmp); int ap_one = ap_global; - if (narg > 6) ap_one = force->inumeric(FLERR,arg[6]); + if (narg > 6) ap_one = utils::inumeric(FLERR,arg[6],false,lmp); double cut_inner_one = cut_inner_global; double cut_outer_one = cut_outer_global; if (narg > 8) { - cut_inner_one = force->numeric(FLERR,arg[7]); - cut_outer_one = force->numeric(FLERR,arg[8]); + cut_inner_one = utils::numeric(FLERR,arg[7],false,lmp); + cut_outer_one = utils::numeric(FLERR,arg[8],false,lmp); } if (cut_inner_one>cut_outer_one) error->all(FLERR,"Pair inner cutoff >= Pair outer cutoff"); double cut_angle_one = cut_angle_global; - if (narg == 10) cut_angle_one = force->numeric(FLERR,arg[9]) * MY_PI/180.0; + if (narg == 10) cut_angle_one = utils::numeric(FLERR,arg[9],false,lmp) * MY_PI/180.0; // grow params array if necessary if (nparams == maxparam) { diff --git a/src/MOLECULE/pair_hbond_dreiding_morse.cpp b/src/MOLECULE/pair_hbond_dreiding_morse.cpp index 6d2406de54..8d6dfc7d68 100644 --- a/src/MOLECULE/pair_hbond_dreiding_morse.cpp +++ b/src/MOLECULE/pair_hbond_dreiding_morse.cpp @@ -251,22 +251,22 @@ void PairHbondDreidingMorse::coeff(int narg, char **arg) else if (strcmp(arg[3],"j") == 0) donor_flag = 1; else error->all(FLERR,"Incorrect args for pair coefficients"); - double d0_one = force->numeric(FLERR,arg[4]); - double alpha_one = force->numeric(FLERR,arg[5]); - double r0_one = force->numeric(FLERR,arg[6]); + double d0_one = utils::numeric(FLERR,arg[4],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[5],false,lmp); + double r0_one = utils::numeric(FLERR,arg[6],false,lmp); int ap_one = ap_global; - if (narg > 7) ap_one = force->inumeric(FLERR,arg[7]); + if (narg > 7) ap_one = utils::inumeric(FLERR,arg[7],false,lmp); double cut_inner_one = cut_inner_global; double cut_outer_one = cut_outer_global; if (narg > 9) { - cut_inner_one = force->numeric(FLERR,arg[8]); - cut_outer_one = force->numeric(FLERR,arg[9]); + cut_inner_one = utils::numeric(FLERR,arg[8],false,lmp); + cut_outer_one = utils::numeric(FLERR,arg[9],false,lmp); } if (cut_inner_one>cut_outer_one) error->all(FLERR,"Pair inner cutoff >= Pair outer cutoff"); double cut_angle_one = cut_angle_global; - if (narg > 10) cut_angle_one = force->numeric(FLERR,arg[10]) * MY_PI/180.0; + if (narg > 10) cut_angle_one = utils::numeric(FLERR,arg[10],false,lmp) * MY_PI/180.0; // grow params array if necessary diff --git a/src/MOLECULE/pair_lj_charmm_coul_charmm.cpp b/src/MOLECULE/pair_lj_charmm_coul_charmm.cpp index e0d6f6b5d6..f09f9a483a 100644 --- a/src/MOLECULE/pair_lj_charmm_coul_charmm.cpp +++ b/src/MOLECULE/pair_lj_charmm_coul_charmm.cpp @@ -224,14 +224,14 @@ void PairLJCharmmCoulCharmm::settings(int narg, char **arg) if (narg != 2 && narg != 4) error->all(FLERR,"Illegal pair_style command"); - cut_lj_inner = force->numeric(FLERR,arg[0]); - cut_lj = force->numeric(FLERR,arg[1]); + cut_lj_inner = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) { cut_coul_inner = cut_lj_inner; cut_coul = cut_lj; } else { - cut_coul_inner = force->numeric(FLERR,arg[2]); - cut_coul = force->numeric(FLERR,arg[3]); + cut_coul_inner = utils::numeric(FLERR,arg[2],false,lmp); + cut_coul = utils::numeric(FLERR,arg[3],false,lmp); } } @@ -249,13 +249,13 @@ void PairLJCharmmCoulCharmm::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double eps14_one = epsilon_one; double sigma14_one = sigma_one; if (narg == 6) { - eps14_one = force->numeric(FLERR,arg[4]); - sigma14_one = force->numeric(FLERR,arg[5]); + eps14_one = utils::numeric(FLERR,arg[4],false,lmp); + sigma14_one = utils::numeric(FLERR,arg[5],false,lmp); } int count = 0; diff --git a/src/MOLECULE/pair_lj_charmmfsw_coul_charmmfsh.cpp b/src/MOLECULE/pair_lj_charmmfsw_coul_charmmfsh.cpp index 6710be9549..e646392e0e 100644 --- a/src/MOLECULE/pair_lj_charmmfsw_coul_charmmfsh.cpp +++ b/src/MOLECULE/pair_lj_charmmfsw_coul_charmmfsh.cpp @@ -250,12 +250,12 @@ void PairLJCharmmfswCoulCharmmfsh::settings(int narg, char **arg) if (narg != 2 && narg != 3) error->all(FLERR,"Illegal pair_style command"); - cut_lj_inner = force->numeric(FLERR,arg[0]); - cut_lj = force->numeric(FLERR,arg[1]); + cut_lj_inner = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) { cut_coul = cut_lj; } else { - cut_coul = force->numeric(FLERR,arg[2]); + cut_coul = utils::numeric(FLERR,arg[2],false,lmp); } } @@ -273,13 +273,13 @@ void PairLJCharmmfswCoulCharmmfsh::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double eps14_one = epsilon_one; double sigma14_one = sigma_one; if (narg == 6) { - eps14_one = force->numeric(FLERR,arg[4]); - sigma14_one = force->numeric(FLERR,arg[5]); + eps14_one = utils::numeric(FLERR,arg[4],false,lmp); + sigma14_one = utils::numeric(FLERR,arg[5],false,lmp); } int count = 0; diff --git a/src/MOLECULE/pair_lj_cut_tip4p_cut.cpp b/src/MOLECULE/pair_lj_cut_tip4p_cut.cpp index 6d1626606f..b23195086c 100644 --- a/src/MOLECULE/pair_lj_cut_tip4p_cut.cpp +++ b/src/MOLECULE/pair_lj_cut_tip4p_cut.cpp @@ -425,15 +425,15 @@ void PairLJCutTIP4PCut::settings(int narg, char **arg) { if (narg < 6 || narg > 7) error->all(FLERR,"Illegal pair_style command"); - typeO = force->inumeric(FLERR,arg[0]); - typeH = force->inumeric(FLERR,arg[1]); - typeB = force->inumeric(FLERR,arg[2]); - typeA = force->inumeric(FLERR,arg[3]); - qdist = force->numeric(FLERR,arg[4]); + typeO = utils::inumeric(FLERR,arg[0],false,lmp); + typeH = utils::inumeric(FLERR,arg[1],false,lmp); + typeB = utils::inumeric(FLERR,arg[2],false,lmp); + typeA = utils::inumeric(FLERR,arg[3],false,lmp); + qdist = utils::numeric(FLERR,arg[4],false,lmp); - cut_lj_global = force->numeric(FLERR,arg[5]); + cut_lj_global = utils::numeric(FLERR,arg[5],false,lmp); if (narg == 6) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[6]); + else cut_coul = utils::numeric(FLERR,arg[6],false,lmp); cut_coulsq = cut_coul * cut_coul; cut_coulsqplus = (cut_coul + 2.0*qdist) * (cut_coul + 2.0*qdist); @@ -460,11 +460,11 @@ void PairLJCutTIP4PCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 5) cut_lj_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/MOLECULE/pair_tip4p_cut.cpp b/src/MOLECULE/pair_tip4p_cut.cpp index 889565e5ea..bea8acbcbc 100644 --- a/src/MOLECULE/pair_tip4p_cut.cpp +++ b/src/MOLECULE/pair_tip4p_cut.cpp @@ -373,12 +373,12 @@ void PairTIP4PCut::settings(int narg, char **arg) { if (narg != 6) error->all(FLERR,"Illegal pair_style command"); - typeO = force->inumeric(FLERR,arg[0]); - typeH = force->inumeric(FLERR,arg[1]); - typeB = force->inumeric(FLERR,arg[2]); - typeA = force->inumeric(FLERR,arg[3]); - qdist = force->numeric(FLERR,arg[4]); - cut_coul = force->numeric(FLERR,arg[5]); + typeO = utils::inumeric(FLERR,arg[0],false,lmp); + typeH = utils::inumeric(FLERR,arg[1],false,lmp); + typeB = utils::inumeric(FLERR,arg[2],false,lmp); + typeA = utils::inumeric(FLERR,arg[3],false,lmp); + qdist = utils::numeric(FLERR,arg[4],false,lmp); + cut_coul = utils::numeric(FLERR,arg[5],false,lmp); cut_coulsq = cut_coul * cut_coul; cut_coulsqplus = (cut_coul + 2.0*qdist) * (cut_coul + 2.0*qdist); diff --git a/src/MSCG/fix_mscg.cpp b/src/MSCG/fix_mscg.cpp index caa9a528a7..9c9e415be5 100644 --- a/src/MSCG/fix_mscg.cpp +++ b/src/MSCG/fix_mscg.cpp @@ -43,7 +43,7 @@ FixMSCG::FixMSCG(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { if (narg < 4) error->all(FLERR,"Illegal fix mscg command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix mscg command"); me = comm->me; diff --git a/src/PERI/pair_peri_eps.cpp b/src/PERI/pair_peri_eps.cpp index c415b5b20f..5e3a514b61 100644 --- a/src/PERI/pair_peri_eps.cpp +++ b/src/PERI/pair_peri_eps.cpp @@ -453,12 +453,12 @@ void PairPeriEPS::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double bulkmodulus_one = force->numeric(FLERR,arg[2]); - double shearmodulus_one = force->numeric(FLERR,arg[3]); - double cut_one = force->numeric(FLERR,arg[4]); - double s00_one = force->numeric(FLERR,arg[5]); - double alpha_one = force->numeric(FLERR,arg[6]); - double myieldstress_one = force->numeric(FLERR,arg[7]); + double bulkmodulus_one = utils::numeric(FLERR,arg[2],false,lmp); + double shearmodulus_one = utils::numeric(FLERR,arg[3],false,lmp); + double cut_one = utils::numeric(FLERR,arg[4],false,lmp); + double s00_one = utils::numeric(FLERR,arg[5],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[6],false,lmp); + double myieldstress_one = utils::numeric(FLERR,arg[7],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/PERI/pair_peri_lps.cpp b/src/PERI/pair_peri_lps.cpp index bdea3bb719..e73e2eff67 100644 --- a/src/PERI/pair_peri_lps.cpp +++ b/src/PERI/pair_peri_lps.cpp @@ -381,11 +381,11 @@ void PairPeriLPS::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double bulkmodulus_one = force->numeric(FLERR,arg[2]); - double shearmodulus_one = force->numeric(FLERR,arg[3]); - double cut_one = force->numeric(FLERR,arg[4]); - double s00_one = force->numeric(FLERR,arg[5]); - double alpha_one = force->numeric(FLERR,arg[6]); + double bulkmodulus_one = utils::numeric(FLERR,arg[2],false,lmp); + double shearmodulus_one = utils::numeric(FLERR,arg[3],false,lmp); + double cut_one = utils::numeric(FLERR,arg[4],false,lmp); + double s00_one = utils::numeric(FLERR,arg[5],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[6],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/PERI/pair_peri_pmb.cpp b/src/PERI/pair_peri_pmb.cpp index 9969a287eb..cf751885d6 100644 --- a/src/PERI/pair_peri_pmb.cpp +++ b/src/PERI/pair_peri_pmb.cpp @@ -314,10 +314,10 @@ void PairPeriPMB::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double kspring_one = force->numeric(FLERR,arg[2]); - double cut_one = force->numeric(FLERR,arg[3]); - double s00_one = force->numeric(FLERR,arg[4]); - double alpha_one = force->numeric(FLERR,arg[5]); + double kspring_one = utils::numeric(FLERR,arg[2],false,lmp); + double cut_one = utils::numeric(FLERR,arg[3],false,lmp); + double s00_one = utils::numeric(FLERR,arg[4],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/PERI/pair_peri_ves.cpp b/src/PERI/pair_peri_ves.cpp index 3d5ab00ef5..138584123a 100644 --- a/src/PERI/pair_peri_ves.cpp +++ b/src/PERI/pair_peri_ves.cpp @@ -429,13 +429,13 @@ void PairPeriVES::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double bulkmodulus_one = force->numeric(FLERR,arg[2]); - double shearmodulus_one = force->numeric(FLERR,arg[3]); - double cut_one = force->numeric(FLERR,arg[4]); - double s00_one = force->numeric(FLERR,arg[5]); - double alpha_one = force->numeric(FLERR,arg[6]); - double mlambdai_one = force->numeric(FLERR,arg[7]); - double mtaui_one = force->numeric(FLERR,arg[8]); + double bulkmodulus_one = utils::numeric(FLERR,arg[2],false,lmp); + double shearmodulus_one = utils::numeric(FLERR,arg[3],false,lmp); + double cut_one = utils::numeric(FLERR,arg[4],false,lmp); + double s00_one = utils::numeric(FLERR,arg[5],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[6],false,lmp); + double mlambdai_one = utils::numeric(FLERR,arg[7],false,lmp); + double mtaui_one = utils::numeric(FLERR,arg[8],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/PYTHON/fix_python_invoke.cpp b/src/PYTHON/fix_python_invoke.cpp index 57ea2e9148..767c22c496 100644 --- a/src/PYTHON/fix_python_invoke.cpp +++ b/src/PYTHON/fix_python_invoke.cpp @@ -34,7 +34,7 @@ FixPythonInvoke::FixPythonInvoke(LAMMPS *lmp, int narg, char **arg) : { if (narg != 6) error->all(FLERR,"Illegal fix python/invoke command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix python/invoke command"); // ensure Python interpreter is initialized diff --git a/src/PYTHON/pair_python.cpp b/src/PYTHON/pair_python.cpp index 8fbb3e6f8b..d0650bcb51 100644 --- a/src/PYTHON/pair_python.cpp +++ b/src/PYTHON/pair_python.cpp @@ -233,7 +233,7 @@ void PairPython::settings(int narg, char **arg) if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); } /* ---------------------------------------------------------------------- diff --git a/src/PYTHON/python_impl.cpp b/src/PYTHON/python_impl.cpp index b1183677d4..b54abe28b0 100644 --- a/src/PYTHON/python_impl.cpp +++ b/src/PYTHON/python_impl.cpp @@ -148,7 +148,7 @@ void PythonImpl::command(int narg, char **arg) while (iarg < narg) { if (strcmp(arg[iarg],"input") == 0) { if (iarg+2 > narg) error->all(FLERR,"Invalid python command"); - ninput = force->inumeric(FLERR,arg[iarg+1]); + ninput = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (ninput < 0) error->all(FLERR,"Invalid python command"); iarg += 2; istr = new char*[ninput]; @@ -168,7 +168,7 @@ void PythonImpl::command(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"length") == 0) { if (iarg+2 > narg) error->all(FLERR,"Invalid python command"); - length_longstr = force->inumeric(FLERR,arg[iarg+1]); + length_longstr = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (length_longstr <= 0) error->all(FLERR,"Invalid python command"); iarg += 2; } else if (strcmp(arg[iarg],"file") == 0) { @@ -433,7 +433,7 @@ int PythonImpl::create_entry(char *name) strcpy(pfuncs[ifunc].svalue[i],&istr[i][2]); } else { pfuncs[ifunc].ivarflag[i] = 0; - pfuncs[ifunc].ivalue[i] = force->inumeric(FLERR,istr[i]); + pfuncs[ifunc].ivalue[i] = utils::inumeric(FLERR,istr[i],false,lmp); } } else if (type == 'f') { pfuncs[ifunc].itype[i] = DOUBLE; @@ -444,7 +444,7 @@ int PythonImpl::create_entry(char *name) strcpy(pfuncs[ifunc].svalue[i],&istr[i][2]); } else { pfuncs[ifunc].ivarflag[i] = 0; - pfuncs[ifunc].dvalue[i] = force->numeric(FLERR,istr[i]); + pfuncs[ifunc].dvalue[i] = utils::numeric(FLERR,istr[i],false,lmp); } } else if (type == 's') { pfuncs[ifunc].itype[i] = STRING; diff --git a/src/QEQ/fix_qeq.cpp b/src/QEQ/fix_qeq.cpp index d5a19f82fe..877d75734c 100644 --- a/src/QEQ/fix_qeq.cpp +++ b/src/QEQ/fix_qeq.cpp @@ -45,10 +45,10 @@ FixQEq::FixQEq(LAMMPS *lmp, int narg, char **arg) : { if (narg < 8) error->all(FLERR,"Illegal fix qeq command"); - nevery = force->inumeric(FLERR,arg[3]); - cutoff = force->numeric(FLERR,arg[4]); - tolerance = force->numeric(FLERR,arg[5]); - maxiter = force->inumeric(FLERR,arg[6]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + cutoff = utils::numeric(FLERR,arg[4],false,lmp); + tolerance = utils::numeric(FLERR,arg[5],false,lmp); + maxiter = utils::inumeric(FLERR,arg[6],false,lmp); // check for sane arguments if ((nevery <= 0) || (cutoff <= 0.0) || (tolerance <= 0.0) || (maxiter <= 0)) @@ -755,11 +755,11 @@ void FixQEq::read_file(char *file) utils::bounds(FLERR,words[0],1,ntypes,nlo,nhi,error); for (n=nlo; n <=nhi; ++n) { - chi[n] = force->numeric(FLERR,words[1]); - eta[n] = force->numeric(FLERR,words[2]); - gamma[n] = force->numeric(FLERR,words[3]); - zeta[n] = force->numeric(FLERR,words[4]); - zcore[n] = force->numeric(FLERR,words[5]); + chi[n] = utils::numeric(FLERR,words[1],false,lmp); + eta[n] = utils::numeric(FLERR,words[2],false,lmp); + gamma[n] = utils::numeric(FLERR,words[3],false,lmp); + zeta[n] = utils::numeric(FLERR,words[4],false,lmp); + zcore[n] = utils::numeric(FLERR,words[5],false,lmp); setflag[n] = 1; } } diff --git a/src/REPLICA/compute_event_displace.cpp b/src/REPLICA/compute_event_displace.cpp index a6abcce85d..e130f85f5f 100644 --- a/src/REPLICA/compute_event_displace.cpp +++ b/src/REPLICA/compute_event_displace.cpp @@ -40,7 +40,7 @@ ComputeEventDisplace::ComputeEventDisplace(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; extscalar = 0; - double displace_dist = force->numeric(FLERR,arg[3]); + double displace_dist = utils::numeric(FLERR,arg[3],false,lmp); if (displace_dist <= 0.0) error->all(FLERR,"Distance must be > 0 for compute event/displace"); displace_distsq = displace_dist * displace_dist; diff --git a/src/REPLICA/fix_hyper_global.cpp b/src/REPLICA/fix_hyper_global.cpp index bc5df921c6..16c37fcb77 100644 --- a/src/REPLICA/fix_hyper_global.cpp +++ b/src/REPLICA/fix_hyper_global.cpp @@ -56,10 +56,10 @@ FixHyperGlobal::FixHyperGlobal(LAMMPS *lmp, int narg, char **arg) : extscalar = 0; extvector = 0; - cutbond = force->numeric(FLERR,arg[3]); - qfactor = force->numeric(FLERR,arg[4]); - vmax = force->numeric(FLERR,arg[5]); - tequil = force->numeric(FLERR,arg[6]); + cutbond = utils::numeric(FLERR,arg[3],false,lmp); + qfactor = utils::numeric(FLERR,arg[4],false,lmp); + vmax = utils::numeric(FLERR,arg[5],false,lmp); + tequil = utils::numeric(FLERR,arg[6],false,lmp); if (cutbond < 0.0 || qfactor <= 0.0 || vmax < 0.0 || tequil <= 0.0) error->all(FLERR,"Illegal fix hyper/global command"); diff --git a/src/REPLICA/fix_hyper_local.cpp b/src/REPLICA/fix_hyper_local.cpp index d5311fc37d..9e3ce9b00d 100644 --- a/src/REPLICA/fix_hyper_local.cpp +++ b/src/REPLICA/fix_hyper_local.cpp @@ -75,13 +75,13 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) : extscalar = 0; extvector = 0; - cutbond = force->numeric(FLERR,arg[3]); - qfactor = force->numeric(FLERR,arg[4]); - vmax = force->numeric(FLERR,arg[5]); - tequil = force->numeric(FLERR,arg[6]); - dcut = force->numeric(FLERR,arg[7]); - alpha_user = force->numeric(FLERR,arg[8]); - boost_target = force->numeric(FLERR,arg[9]); + cutbond = utils::numeric(FLERR,arg[3],false,lmp); + qfactor = utils::numeric(FLERR,arg[4],false,lmp); + vmax = utils::numeric(FLERR,arg[5],false,lmp); + tequil = utils::numeric(FLERR,arg[6],false,lmp); + dcut = utils::numeric(FLERR,arg[7],false,lmp); + alpha_user = utils::numeric(FLERR,arg[8],false,lmp); + boost_target = utils::numeric(FLERR,arg[9],false,lmp); if (cutbond < 0.0 || qfactor < 0.0 || vmax < 0.0 || tequil <= 0.0 || dcut <= 0.0 || alpha_user <= 0.0 || boost_target < 1.0) @@ -105,13 +105,13 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"bound") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix hyper/local command"); - boundfrac = force->numeric(FLERR,arg[iarg+1]); + boundfrac = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (boundfrac < 0.0) boundflag = 0; else boundflag = 1; iarg += 2; } else if (strcmp(arg[iarg],"reset") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix hyper/local command"); - resetfreq = force->inumeric(FLERR,arg[iarg+1]); + resetfreq = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (resetfreq < -1) error->all(FLERR,"Illegal fix hyper/local command"); iarg += 2; } else if (strcmp(arg[iarg],"check/ghost") == 0) { @@ -120,7 +120,7 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"check/bias") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix hyper/local command"); checkbias = 1; - checkbias_every = force->inumeric(FLERR,arg[iarg+1]); + checkbias_every = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (strcmp(arg[iarg+2],"error") == 0) checkbias_flag = ERROR; else if (strcmp(arg[iarg+2],"warn") == 0) checkbias_flag = WARN; else if (strcmp(arg[iarg+2],"ignore") == 0) checkbias_flag = IGNORE; diff --git a/src/REPLICA/fix_neb.cpp b/src/REPLICA/fix_neb.cpp index b3af01fda4..93689eb7f9 100644 --- a/src/REPLICA/fix_neb.cpp +++ b/src/REPLICA/fix_neb.cpp @@ -56,7 +56,7 @@ FixNEB::FixNEB(LAMMPS *lmp, int narg, char **arg) : if (narg < 4) error->all(FLERR,"Illegal fix neb command"); - kspring = force->numeric(FLERR,arg[3]); + kspring = utils::numeric(FLERR,arg[3],false,lmp); if (kspring <= 0.0) error->all(FLERR,"Illegal fix neb command"); // optional params @@ -85,7 +85,7 @@ FixNEB::FixNEB(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"perp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix neb command"); PerpSpring = true; - kspringPerp = force->numeric(FLERR,arg[iarg+1]); + kspringPerp = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (kspringPerp == 0.0) PerpSpring = false; if (kspringPerp < 0.0) error->all(FLERR,"Illegal fix neb command"); iarg += 2; @@ -94,22 +94,22 @@ FixNEB::FixNEB(LAMMPS *lmp, int narg, char **arg) : if (iarg+3 > narg) error->all(FLERR,"Illegal fix neb command"); if (strcmp(arg[iarg+1],"first") == 0) { FreeEndIni = true; - kspringIni = force->numeric(FLERR,arg[iarg+2]); + kspringIni = utils::numeric(FLERR,arg[iarg+2],false,lmp); } else if (strcmp(arg[iarg+1],"last") == 0) { FreeEndFinal = true; FinalAndInterWithRespToEIni = false; FreeEndFinalWithRespToEIni = false; - kspringFinal = force->numeric(FLERR,arg[iarg+2]); + kspringFinal = utils::numeric(FLERR,arg[iarg+2],false,lmp); } else if (strcmp(arg[iarg+1],"last/efirst") == 0) { FreeEndFinal = false; FinalAndInterWithRespToEIni = false; FreeEndFinalWithRespToEIni = true; - kspringFinal = force->numeric(FLERR,arg[iarg+2]); + kspringFinal = utils::numeric(FLERR,arg[iarg+2],false,lmp); } else if (strcmp(arg[iarg+1],"last/efirst/middle") == 0) { FreeEndFinal = false; FinalAndInterWithRespToEIni = true; FreeEndFinalWithRespToEIni = true; - kspringFinal = force->numeric(FLERR,arg[iarg+2]); + kspringFinal = utils::numeric(FLERR,arg[iarg+2],false,lmp); } else error->all(FLERR,"Illegal fix neb command"); iarg += 3; diff --git a/src/REPLICA/hyper.cpp b/src/REPLICA/hyper.cpp index 6a2891dee1..1e78326fbd 100644 --- a/src/REPLICA/hyper.cpp +++ b/src/REPLICA/hyper.cpp @@ -59,8 +59,8 @@ void Hyper::command(int narg, char **arg) if (narg < 4) error->all(FLERR,"Illegal hyper command"); - int nsteps = force->inumeric(FLERR,arg[0]); - t_event = force->inumeric(FLERR,arg[1]); + int nsteps = utils::inumeric(FLERR,arg[0],false,lmp); + t_event = utils::inumeric(FLERR,arg[1],false,lmp); char *id_fix = new char[strlen(arg[2])+1]; strcpy(id_fix,arg[2]); @@ -459,10 +459,10 @@ void Hyper::options(int narg, char **arg) while (iarg < narg) { if (strcmp(arg[iarg],"min") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal hyper command"); - etol = force->numeric(FLERR,arg[iarg+1]); - ftol = force->numeric(FLERR,arg[iarg+2]); - maxiter = force->inumeric(FLERR,arg[iarg+3]); - maxeval = force->inumeric(FLERR,arg[iarg+4]); + etol = utils::numeric(FLERR,arg[iarg+1],false,lmp); + ftol = utils::numeric(FLERR,arg[iarg+2],false,lmp); + maxiter = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + maxeval = utils::inumeric(FLERR,arg[iarg+4],false,lmp); if (maxiter < 0) error->all(FLERR,"Illegal hyper command"); iarg += 5; @@ -478,7 +478,7 @@ void Hyper::options(int narg, char **arg) } else if (strcmp(arg[iarg],"rebond") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal hyper command"); - rebond = force->inumeric(FLERR,arg[iarg+1]); + rebond = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else error->all(FLERR,"Illegal hyper command"); diff --git a/src/REPLICA/neb.cpp b/src/REPLICA/neb.cpp index 5a1f942815..34b5cf40fe 100644 --- a/src/REPLICA/neb.cpp +++ b/src/REPLICA/neb.cpp @@ -110,11 +110,11 @@ void NEB::command(int narg, char **arg) if (narg < 6) error->universe_all(FLERR,"Illegal NEB command"); - etol = force->numeric(FLERR,arg[0]); - ftol = force->numeric(FLERR,arg[1]); - n1steps = force->inumeric(FLERR,arg[2]); - n2steps = force->inumeric(FLERR,arg[3]); - nevery = force->inumeric(FLERR,arg[4]); + etol = utils::numeric(FLERR,arg[0],false,lmp); + ftol = utils::numeric(FLERR,arg[1],false,lmp); + n1steps = utils::inumeric(FLERR,arg[2],false,lmp); + n2steps = utils::inumeric(FLERR,arg[3],false,lmp); + nevery = utils::inumeric(FLERR,arg[4],false,lmp); // error checks diff --git a/src/REPLICA/prd.cpp b/src/REPLICA/prd.cpp index 633fcefc80..796cf01681 100644 --- a/src/REPLICA/prd.cpp +++ b/src/REPLICA/prd.cpp @@ -74,15 +74,15 @@ void PRD::command(int narg, char **arg) // read as double so can cast to bigint - int nsteps = force->inumeric(FLERR,arg[0]); - t_event = force->inumeric(FLERR,arg[1]); - n_dephase = force->inumeric(FLERR,arg[2]); - t_dephase = force->inumeric(FLERR,arg[3]); - t_corr = force->inumeric(FLERR,arg[4]); + int nsteps = utils::inumeric(FLERR,arg[0],false,lmp); + t_event = utils::inumeric(FLERR,arg[1],false,lmp); + n_dephase = utils::inumeric(FLERR,arg[2],false,lmp); + t_dephase = utils::inumeric(FLERR,arg[3],false,lmp); + t_corr = utils::inumeric(FLERR,arg[4],false,lmp); char *id_compute = new char[strlen(arg[5])+1]; strcpy(id_compute,arg[5]); - int seed = force->inumeric(FLERR,arg[6]); + int seed = utils::inumeric(FLERR,arg[6],false,lmp); options(narg-7,&arg[7]); @@ -892,17 +892,17 @@ void PRD::options(int narg, char **arg) while (iarg < narg) { if (strcmp(arg[iarg],"min") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal prd command"); - etol = force->numeric(FLERR,arg[iarg+1]); - ftol = force->numeric(FLERR,arg[iarg+2]); - maxiter = force->inumeric(FLERR,arg[iarg+3]); - maxeval = force->inumeric(FLERR,arg[iarg+4]); + etol = utils::numeric(FLERR,arg[iarg+1],false,lmp); + ftol = utils::numeric(FLERR,arg[iarg+2],false,lmp); + maxiter = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + maxeval = utils::inumeric(FLERR,arg[iarg+4],false,lmp); if (maxiter < 0) error->all(FLERR,"Illegal prd command"); iarg += 5; } else if (strcmp(arg[iarg],"temp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal prd command"); temp_flag = 1; - temp_dephase = force->numeric(FLERR,arg[iarg+1]); + temp_dephase = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (temp_dephase <= 0.0) error->all(FLERR,"Illegal prd command"); iarg += 2; diff --git a/src/REPLICA/tad.cpp b/src/REPLICA/tad.cpp index a629ee6b04..fba753d602 100644 --- a/src/REPLICA/tad.cpp +++ b/src/REPLICA/tad.cpp @@ -82,12 +82,12 @@ void TAD::command(int narg, char **arg) if (narg < 7) error->universe_all(FLERR,"Illegal tad command"); - nsteps = force->inumeric(FLERR,arg[0]); - t_event = force->inumeric(FLERR,arg[1]); - templo = force->numeric(FLERR,arg[2]); - temphi = force->numeric(FLERR,arg[3]); - delta_conf = force->numeric(FLERR,arg[4]); - tmax = force->numeric(FLERR,arg[5]); + nsteps = utils::inumeric(FLERR,arg[0],false,lmp); + t_event = utils::inumeric(FLERR,arg[1],false,lmp); + templo = utils::numeric(FLERR,arg[2],false,lmp); + temphi = utils::numeric(FLERR,arg[3],false,lmp); + delta_conf = utils::numeric(FLERR,arg[4],false,lmp); + tmax = utils::numeric(FLERR,arg[5],false,lmp); char *id_compute = new char[strlen(arg[6])+1]; strcpy(id_compute,arg[6]); @@ -592,10 +592,10 @@ void TAD::options(int narg, char **arg) while (iarg < narg) { if (strcmp(arg[iarg],"min") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal tad command"); - etol = force->numeric(FLERR,arg[iarg+1]); - ftol = force->numeric(FLERR,arg[iarg+2]); - maxiter = force->inumeric(FLERR,arg[iarg+3]); - maxeval = force->inumeric(FLERR,arg[iarg+4]); + etol = utils::numeric(FLERR,arg[iarg+1],false,lmp); + ftol = utils::numeric(FLERR,arg[iarg+2],false,lmp); + maxiter = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + maxeval = utils::inumeric(FLERR,arg[iarg+4],false,lmp); if (maxiter < 0 || maxeval < 0 || etol < 0.0 || ftol < 0.0 ) error->all(FLERR,"Illegal tad command"); @@ -603,11 +603,11 @@ void TAD::options(int narg, char **arg) } else if (strcmp(arg[iarg],"neb") == 0) { if (iarg+6 > narg) error->all(FLERR,"Illegal tad command"); - etol_neb = force->numeric(FLERR,arg[iarg+1]); - ftol_neb = force->numeric(FLERR,arg[iarg+2]); - n1steps_neb = force->inumeric(FLERR,arg[iarg+3]); - n2steps_neb = force->inumeric(FLERR,arg[iarg+4]); - nevery_neb = force->inumeric(FLERR,arg[iarg+5]); + etol_neb = utils::numeric(FLERR,arg[iarg+1],false,lmp); + ftol_neb = utils::numeric(FLERR,arg[iarg+2],false,lmp); + n1steps_neb = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + n2steps_neb = utils::inumeric(FLERR,arg[iarg+4],false,lmp); + nevery_neb = utils::inumeric(FLERR,arg[iarg+5],false,lmp); if (etol_neb < 0.0 || ftol_neb < 0.0 || n1steps_neb < 0 || n2steps_neb < 0 || nevery_neb < 0) error->all(FLERR,"Illegal tad command"); @@ -623,7 +623,7 @@ void TAD::options(int narg, char **arg) } else if (strcmp(arg[iarg],"neb_step") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal tad command"); - dt_neb = force->numeric(FLERR,arg[iarg+1]); + dt_neb = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (dt_neb <= 0.0) error->all(FLERR,"Illegal tad command"); iarg += 2; diff --git a/src/REPLICA/temper.cpp b/src/REPLICA/temper.cpp index a4c67108d3..a7ad4c068b 100644 --- a/src/REPLICA/temper.cpp +++ b/src/REPLICA/temper.cpp @@ -67,9 +67,9 @@ void Temper::command(int narg, char **arg) if (narg != 6 && narg != 7) error->universe_all(FLERR,"Illegal temper command"); - int nsteps = force->inumeric(FLERR,arg[0]); - nevery = force->inumeric(FLERR,arg[1]); - double temp = force->numeric(FLERR,arg[2]); + int nsteps = utils::inumeric(FLERR,arg[0],false,lmp); + nevery = utils::inumeric(FLERR,arg[1],false,lmp); + double temp = utils::numeric(FLERR,arg[2],false,lmp); // ignore temper command, if walltime limit was already reached @@ -80,11 +80,11 @@ void Temper::command(int narg, char **arg) if (whichfix == modify->nfix) error->universe_all(FLERR,"Tempering fix ID is not defined"); - seed_swap = force->inumeric(FLERR,arg[4]); - seed_boltz = force->inumeric(FLERR,arg[5]); + seed_swap = utils::inumeric(FLERR,arg[4],false,lmp); + seed_boltz = utils::inumeric(FLERR,arg[5],false,lmp); my_set_temp = universe->iworld; - if (narg == 7) my_set_temp = force->inumeric(FLERR,arg[6]); + if (narg == 7) my_set_temp = utils::inumeric(FLERR,arg[6],false,lmp); if ((my_set_temp < 0) || (my_set_temp >= universe->nworlds)) error->universe_one(FLERR,"Illegal temperature index"); diff --git a/src/RIGID/fix_ehex.cpp b/src/RIGID/fix_ehex.cpp index a5efc22d11..03119d304e 100644 --- a/src/RIGID/fix_ehex.cpp +++ b/src/RIGID/fix_ehex.cpp @@ -59,13 +59,13 @@ FixEHEX::FixEHEX(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), // apply fix every nevery timesteps - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix ehex command"); // heat flux into the reservoir - heat_input = force->numeric(FLERR,arg[4]); + heat_input = utils::numeric(FLERR,arg[4],false,lmp); // optional args diff --git a/src/RIGID/fix_rigid.cpp b/src/RIGID/fix_rigid.cpp index 6f73d98f5d..761b957292 100644 --- a/src/RIGID/fix_rigid.cpp +++ b/src/RIGID/fix_rigid.cpp @@ -226,7 +226,7 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[3],"group") == 0) { if (narg < 5) error->all(FLERR,"Illegal fix rigid command"); rstyle = GROUP; - nbody = force->inumeric(FLERR,arg[4]); + nbody = utils::inumeric(FLERR,arg[4],false,lmp); if (nbody <= 0) error->all(FLERR,"Illegal fix rigid command"); if (narg < 5+nbody) error->all(FLERR,"Illegal fix rigid command"); iarg = 5+nbody; @@ -404,10 +404,10 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : strcmp(style,"rigid/omp") != 0 && strcmp(style,"rigid/nve/omp") != 0) error->all(FLERR,"Illegal fix rigid command"); langflag = 1; - t_start = force->numeric(FLERR,arg[iarg+1]); - t_stop = force->numeric(FLERR,arg[iarg+2]); - t_period = force->numeric(FLERR,arg[iarg+3]); - seed = force->inumeric(FLERR,arg[iarg+4]); + t_start = utils::numeric(FLERR,arg[iarg+1],false,lmp); + t_stop = utils::numeric(FLERR,arg[iarg+2],false,lmp); + t_period = utils::numeric(FLERR,arg[iarg+3],false,lmp); + seed = utils::inumeric(FLERR,arg[iarg+4],false,lmp); if (t_period <= 0.0) error->all(FLERR,"Fix rigid langevin period must be > 0.0"); if (seed <= 0) error->all(FLERR,"Illegal fix rigid command"); @@ -418,9 +418,9 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : if (!utils::strmatch(style,"^rigid/n.t")) error->all(FLERR,"Illegal fix rigid command"); tstat_flag = 1; - t_start = force->numeric(FLERR,arg[iarg+1]); - t_stop = force->numeric(FLERR,arg[iarg+2]); - t_period = force->numeric(FLERR,arg[iarg+3]); + t_start = utils::numeric(FLERR,arg[iarg+1],false,lmp); + t_stop = utils::numeric(FLERR,arg[iarg+2],false,lmp); + t_period = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"iso") == 0) { @@ -428,10 +428,10 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : if (!utils::strmatch(style,"^rigid/np.")) error->all(FLERR,"Illegal fix rigid command"); pcouple = XYZ; - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -443,10 +443,10 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix rigid command"); if (!utils::strmatch(style,"^rigid/np.")) error->all(FLERR,"Illegal fix rigid command"); - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -458,9 +458,9 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix rigid command"); if (!utils::strmatch(style,"^rigid/np.")) error->all(FLERR,"Illegal fix rigid command"); - p_start[0] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = force->numeric(FLERR,arg[iarg+2]); - p_period[0] = force->numeric(FLERR,arg[iarg+3]); + p_start[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[0] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = 1; iarg += 4; @@ -468,9 +468,9 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix rigid command"); if (!utils::strmatch(style,"^rigid/np.")) error->all(FLERR,"Illegal fix rigid command"); - p_start[1] = force->numeric(FLERR,arg[iarg+1]); - p_stop[1] = force->numeric(FLERR,arg[iarg+2]); - p_period[1] = force->numeric(FLERR,arg[iarg+3]); + p_start[1] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[1] = 1; iarg += 4; @@ -478,9 +478,9 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix rigid command"); if (!utils::strmatch(style,"^rigid/np.")) error->all(FLERR,"Illegal fix rigid command"); - p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[2] = force->numeric(FLERR,arg[iarg+2]); - p_period[2] = force->numeric(FLERR,arg[iarg+3]); + p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[2] = 1; iarg += 4; @@ -515,16 +515,16 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix rigid command"); if (!utils::strmatch(style,"^rigid/n.t")) error->all(FLERR,"Illegal fix rigid command"); - t_chain = force->inumeric(FLERR,arg[iarg+1]); - t_iter = force->inumeric(FLERR,arg[iarg+2]); - t_order = force->inumeric(FLERR,arg[iarg+3]); + t_chain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + t_iter = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + t_order = utils::inumeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"pchain") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix rigid command"); if (!utils::strmatch(style,"^rigid/np.")) error->all(FLERR,"Illegal fix rigid command"); - p_chain = force->inumeric(FLERR,arg[iarg+1]); + p_chain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"infile") == 0) { diff --git a/src/RIGID/fix_rigid_small.cpp b/src/RIGID/fix_rigid_small.cpp index f12c53bf3a..01dd9e889e 100644 --- a/src/RIGID/fix_rigid_small.cpp +++ b/src/RIGID/fix_rigid_small.cpp @@ -210,10 +210,10 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) : (strcmp(style,"rigid/nph/small") != 0)) error->all(FLERR,"Illegal fix rigid/small command"); langflag = 1; - t_start = force->numeric(FLERR,arg[iarg+1]); - t_stop = force->numeric(FLERR,arg[iarg+2]); - t_period = force->numeric(FLERR,arg[iarg+3]); - seed = force->inumeric(FLERR,arg[iarg+4]); + t_start = utils::numeric(FLERR,arg[iarg+1],false,lmp); + t_stop = utils::numeric(FLERR,arg[iarg+2],false,lmp); + t_period = utils::numeric(FLERR,arg[iarg+3],false,lmp); + seed = utils::inumeric(FLERR,arg[iarg+4],false,lmp); if (t_period <= 0.0) error->all(FLERR,"Fix rigid/small langevin period must be > 0.0"); if (seed <= 0) error->all(FLERR,"Illegal fix rigid/small command"); @@ -252,9 +252,9 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) : if (!utils::strmatch(style,"^rigid/n.t/small")) error->all(FLERR,"Illegal fix rigid command"); tstat_flag = 1; - t_start = force->numeric(FLERR,arg[iarg+1]); - t_stop = force->numeric(FLERR,arg[iarg+2]); - t_period = force->numeric(FLERR,arg[iarg+3]); + t_start = utils::numeric(FLERR,arg[iarg+1],false,lmp); + t_stop = utils::numeric(FLERR,arg[iarg+2],false,lmp); + t_period = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"iso") == 0) { @@ -262,10 +262,10 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) : if (!utils::strmatch(style,"^rigid/np./small")) error->all(FLERR,"Illegal fix rigid/small command"); pcouple = XYZ; - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (domain->dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -277,10 +277,10 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix rigid/small command"); if (!utils::strmatch(style,"^rigid/np./small")) error->all(FLERR,"Illegal fix rigid/small command"); - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (domain->dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -292,9 +292,9 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix rigid/small command"); if (!utils::strmatch(style,"^rigid/np./small")) error->all(FLERR,"Illegal fix rigid/small command"); - p_start[0] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = force->numeric(FLERR,arg[iarg+2]); - p_period[0] = force->numeric(FLERR,arg[iarg+3]); + p_start[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[0] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = 1; iarg += 4; @@ -302,9 +302,9 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix rigid/small command"); if (!utils::strmatch(style,"^rigid/np./small")) error->all(FLERR,"Illegal fix rigid/small command"); - p_start[1] = force->numeric(FLERR,arg[iarg+1]); - p_stop[1] = force->numeric(FLERR,arg[iarg+2]); - p_period[1] = force->numeric(FLERR,arg[iarg+3]); + p_start[1] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[1] = 1; iarg += 4; @@ -312,9 +312,9 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix rigid/small command"); if (!utils::strmatch(style,"^rigid/np./small")) error->all(FLERR,"Illegal fix rigid/small command"); - p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[2] = force->numeric(FLERR,arg[iarg+2]); - p_period[2] = force->numeric(FLERR,arg[iarg+3]); + p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[2] = 1; iarg += 4; @@ -349,16 +349,16 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix rigid/small command"); if (!utils::strmatch(style,"^rigid/n.t/small")) error->all(FLERR,"Illegal fix rigid/small command"); - t_chain = force->inumeric(FLERR,arg[iarg+1]); - t_iter = force->inumeric(FLERR,arg[iarg+2]); - t_order = force->inumeric(FLERR,arg[iarg+3]); + t_chain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + t_iter = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + t_order = utils::inumeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"pchain") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix rigid/small command"); if (!utils::strmatch(style,"^rigid/np./small")) error->all(FLERR,"Illegal fix rigid/small command"); - p_chain = force->inumeric(FLERR,arg[iarg+1]); + p_chain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"gravity") == 0) { diff --git a/src/RIGID/fix_shake.cpp b/src/RIGID/fix_shake.cpp index a216526528..d6603cd7b6 100644 --- a/src/RIGID/fix_shake.cpp +++ b/src/RIGID/fix_shake.cpp @@ -95,9 +95,9 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : if (narg < 8) error->all(FLERR,"Illegal fix shake command"); - tolerance = force->numeric(FLERR,arg[3]); - max_iter = force->inumeric(FLERR,arg[4]); - output_every = force->inumeric(FLERR,arg[5]); + tolerance = utils::numeric(FLERR,arg[3],false,lmp); + max_iter = utils::inumeric(FLERR,arg[4],false,lmp); + output_every = utils::inumeric(FLERR,arg[5],false,lmp); // parse SHAKE args for bond and angle types // will be used by find_clusters @@ -131,25 +131,25 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : // read numeric args of b,a,t,m else if (mode == 'b') { - int i = force->inumeric(FLERR,arg[next]); + int i = utils::inumeric(FLERR,arg[next],false,lmp); if (i < 1 || i > atom->nbondtypes) error->all(FLERR,"Invalid bond type index for fix shake"); bond_flag[i] = 1; } else if (mode == 'a') { - int i = force->inumeric(FLERR,arg[next]); + int i = utils::inumeric(FLERR,arg[next],false,lmp); if (i < 1 || i > atom->nangletypes) error->all(FLERR,"Invalid angle type index for fix shake"); angle_flag[i] = 1; } else if (mode == 't') { - int i = force->inumeric(FLERR,arg[next]); + int i = utils::inumeric(FLERR,arg[next],false,lmp); if (i < 1 || i > atom->ntypes) error->all(FLERR,"Invalid atom type index for fix shake"); type_flag[i] = 1; } else if (mode == 'm') { - double massone = force->numeric(FLERR,arg[next]); + double massone = utils::numeric(FLERR,arg[next],false,lmp); if (massone == 0.0) error->all(FLERR,"Invalid atom mass for fix shake"); if (nmass == atom->ntypes) error->all(FLERR,"Too many masses for fix shake"); diff --git a/src/SHOCK/fix_append_atoms.cpp b/src/SHOCK/fix_append_atoms.cpp index 1a6b128cd5..b5b586bc7f 100644 --- a/src/SHOCK/fix_append_atoms.cpp +++ b/src/SHOCK/fix_append_atoms.cpp @@ -114,7 +114,7 @@ FixAppendAtoms::FixAppendAtoms(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Append boundary must be shrink/minimum"); } else if (strcmp(arg[iarg],"freq") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix append/atoms command"); - freq = force->inumeric(FLERR,arg[iarg+1]); + freq = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"spatial") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix append/atoms command"); @@ -123,7 +123,7 @@ FixAppendAtoms::FixAppendAtoms(LAMMPS *lmp, int narg, char **arg) : "Bad fix ID in fix append/atoms command"); spatflag = 1; int n = strlen(arg[iarg+1]); - spatlead = force->numeric(FLERR,arg[iarg+2]); + spatlead = utils::numeric(FLERR,arg[iarg+2],false,lmp); char *suffix = new char[n]; strcpy(suffix,&arg[iarg+1][2]); n = strlen(suffix) + 1; @@ -133,15 +133,15 @@ FixAppendAtoms::FixAppendAtoms(LAMMPS *lmp, int narg, char **arg) : iarg += 3; } else if (strcmp(arg[iarg],"basis") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix append/atoms command"); - int ibasis = force->inumeric(FLERR,arg[iarg+1]); - int itype = force->inumeric(FLERR,arg[iarg+2]); + int ibasis = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + int itype = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (ibasis <= 0 || ibasis > nbasis || itype <= 0 || itype > atom->ntypes) error->all(FLERR,"Invalid basis setting in fix append/atoms command"); basistype[ibasis-1] = itype; iarg += 3; } else if (strcmp(arg[iarg],"size") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix append/atoms command"); - size = force->numeric(FLERR,arg[iarg+1]); + size = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"units") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix append/atoms command"); @@ -152,20 +152,20 @@ FixAppendAtoms::FixAppendAtoms(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"random") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal fix append/atoms command"); ranflag = 1; - ranx = force->numeric(FLERR,arg[iarg+1]); - rany = force->numeric(FLERR,arg[iarg+2]); - ranz = force->numeric(FLERR,arg[iarg+3]); - xseed = force->inumeric(FLERR,arg[iarg+4]); + ranx = utils::numeric(FLERR,arg[iarg+1],false,lmp); + rany = utils::numeric(FLERR,arg[iarg+2],false,lmp); + ranz = utils::numeric(FLERR,arg[iarg+3],false,lmp); + xseed = utils::inumeric(FLERR,arg[iarg+4],false,lmp); if (xseed <= 0) error->all(FLERR,"Illegal fix append/atoms command"); randomx = new RanMars(lmp,xseed + comm->me); iarg += 5; } else if (strcmp(arg[iarg],"temp") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal fix append/atoms command"); tempflag = 1; - t_target = force->numeric(FLERR,arg[iarg+1]); - t_period = force->numeric(FLERR,arg[iarg+2]); - tseed = force->inumeric(FLERR,arg[iarg+3]); - t_extent = force->numeric(FLERR,arg[iarg+4]); + t_target = utils::numeric(FLERR,arg[iarg+1],false,lmp); + t_period = utils::numeric(FLERR,arg[iarg+2],false,lmp); + tseed = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + t_extent = utils::numeric(FLERR,arg[iarg+4],false,lmp); if (t_target <= 0) error->all(FLERR,"Illegal fix append/atoms command"); if (t_period <= 0) error->all(FLERR,"Illegal fix append/atoms command"); if (t_extent <= 0) error->all(FLERR,"Illegal fix append/atoms command"); diff --git a/src/SHOCK/fix_msst.cpp b/src/SHOCK/fix_msst.cpp index c9591e92ac..986b1323e8 100644 --- a/src/SHOCK/fix_msst.cpp +++ b/src/SHOCK/fix_msst.cpp @@ -90,7 +90,7 @@ FixMSST::FixMSST(LAMMPS *lmp, int narg, char **arg) : box_change |= BOX_CHANGE_Z; } else error->all(FLERR,"Illegal fix msst command"); - velocity = force->numeric(FLERR,arg[4]); + velocity = utils::numeric(FLERR,arg[4],false,lmp); if (velocity < 0) error->all(FLERR,"Illegal fix msst command"); // optional args @@ -99,30 +99,30 @@ FixMSST::FixMSST(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"q") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix msst command"); - qmass = force->numeric(FLERR,arg[iarg+1]); + qmass = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"mu") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix msst command"); - mu = force->numeric(FLERR,arg[iarg+1]); + mu = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"p0") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix msst command"); - p0 = force->numeric(FLERR,arg[iarg+1]); + p0 = utils::numeric(FLERR,arg[iarg+1],false,lmp); p0_set = 1; iarg += 2; } else if (strcmp(arg[iarg],"v0") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix msst command"); - v0 = force->numeric(FLERR,arg[iarg+1]); + v0 = utils::numeric(FLERR,arg[iarg+1],false,lmp); v0_set = 1; iarg += 2; } else if (strcmp(arg[iarg],"e0") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix msst command"); - e0 = force->numeric(FLERR,arg[iarg+1]); + e0 = utils::numeric(FLERR,arg[iarg+1],false,lmp); e0_set = 1; iarg += 2; } else if (strcmp(arg[iarg],"tscale") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix msst command"); - tscale = force->numeric(FLERR,arg[iarg+1]); + tscale = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (tscale < 0.0 || tscale > 1.0) error->all(FLERR,"Fix msst tscale must satisfy 0 <= tscale < 1"); iarg += 2; @@ -134,7 +134,7 @@ FixMSST::FixMSST(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"beta") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix msst command"); - beta = force->numeric(FLERR,arg[iarg+1]); + beta = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (beta < 0.0 || beta > 1.0) error->all(FLERR,"Illegal fix msst command"); iarg += 2; diff --git a/src/SHOCK/fix_nphug.cpp b/src/SHOCK/fix_nphug.cpp index 8ad787d759..1179bb6b35 100644 --- a/src/SHOCK/fix_nphug.cpp +++ b/src/SHOCK/fix_nphug.cpp @@ -439,17 +439,17 @@ int FixNPHug::modify_param(int narg, char **arg) { if (strcmp(arg[0],"e0") == 0) { if (narg < 2) error->all(FLERR,"Illegal fix nphug command"); - e0 = force->numeric(FLERR,arg[1]); + e0 = utils::numeric(FLERR,arg[1],false,lmp); e0_set = 1; return 2; } else if (strcmp(arg[0],"v0") == 0) { if (narg < 2) error->all(FLERR,"Illegal fix nphug command"); - v0 = force->numeric(FLERR,arg[1]); + v0 = utils::numeric(FLERR,arg[1],false,lmp); v0_set = 1; return 2; } else if (strcmp(arg[0],"p0") == 0) { if (narg < 2) error->all(FLERR,"Illegal fix nphug command"); - p0 = force->numeric(FLERR,arg[1]); + p0 = utils::numeric(FLERR,arg[1],false,lmp); p0_set = 1; return 2; } diff --git a/src/SHOCK/fix_wall_piston.cpp b/src/SHOCK/fix_wall_piston.cpp index 5a359d9f6f..a796c1a4b4 100644 --- a/src/SHOCK/fix_wall_piston.cpp +++ b/src/SHOCK/fix_wall_piston.cpp @@ -71,19 +71,19 @@ FixWallPiston::FixWallPiston(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Fix wall/piston command only available at zlo"); else if (strcmp(arg[iarg],"vel") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix wall/piston command"); - vz = force->numeric(FLERR,arg[iarg+1]); + vz = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"pos") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix wall/piston command"); - z0 = force->numeric(FLERR,arg[iarg+1]); + z0 = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"temp") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal fix wall/piston command"); tempflag = 1; - t_target = force->numeric(FLERR,arg[iarg+1]); - t_period = force->numeric(FLERR,arg[iarg+2]); - tseed = force->inumeric(FLERR,arg[iarg+3]); - t_extent = force->numeric(FLERR,arg[iarg+4]); + t_target = utils::numeric(FLERR,arg[iarg+1],false,lmp); + t_period = utils::numeric(FLERR,arg[iarg+2],false,lmp); + tseed = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + t_extent = utils::numeric(FLERR,arg[iarg+4],false,lmp); if (t_target <= 0) error->all(FLERR,"Illegal fix wall/piston command"); if (t_period <= 0) error->all(FLERR,"Illegal fix wall/piston command"); if (t_extent <= 0) error->all(FLERR,"Illegal fix wall/piston command"); @@ -94,7 +94,7 @@ FixWallPiston::FixWallPiston(LAMMPS *lmp, int narg, char **arg) : iarg += 5; } else if (strcmp(arg[iarg],"rough") == 0) { roughflag = 1; - roughdist = force->numeric(FLERR,arg[iarg+1]); + roughdist = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"ramp") == 0) { rampflag = 1; diff --git a/src/SNAP/compute_sna_atom.cpp b/src/SNAP/compute_sna_atom.cpp index 4a57f31ec3..1e85441d1f 100644 --- a/src/SNAP/compute_sna_atom.cpp +++ b/src/SNAP/compute_sna_atom.cpp @@ -114,9 +114,9 @@ ComputeSNAAtom::ComputeSNAAtom(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal compute sna/atom command"); chemflag = 1; memory->create(map,ntypes+1,"compute_sna_atom:map"); - nelements = force->inumeric(FLERR,arg[iarg+1]); + nelements = utils::inumeric(FLERR,arg[iarg+1],false,lmp); for(int i = 0; i < ntypes; i++) { - int jelem = force->inumeric(FLERR,arg[iarg+2+i]); + int jelem = utils::inumeric(FLERR,arg[iarg+2+i],false,lmp); if (jelem < 0 || jelem >= nelements) error->all(FLERR,"Illegal compute sna/atom command"); map[i+1] = jelem; diff --git a/src/SNAP/compute_snad_atom.cpp b/src/SNAP/compute_snad_atom.cpp index cd0c0cbc41..1376193070 100644 --- a/src/SNAP/compute_snad_atom.cpp +++ b/src/SNAP/compute_snad_atom.cpp @@ -112,9 +112,9 @@ ComputeSNADAtom::ComputeSNADAtom(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal compute snad/atom command"); chemflag = 1; memory->create(map,ntypes+1,"compute_snad_atom:map"); - nelements = force->inumeric(FLERR,arg[iarg+1]); + nelements = utils::inumeric(FLERR,arg[iarg+1],false,lmp); for(int i = 0; i < ntypes; i++) { - int jelem = force->inumeric(FLERR,arg[iarg+2+i]); + int jelem = utils::inumeric(FLERR,arg[iarg+2+i],false,lmp); if (jelem < 0 || jelem >= nelements) error->all(FLERR,"Illegal compute snad/atom command"); map[i+1] = jelem; diff --git a/src/SNAP/compute_snap.cpp b/src/SNAP/compute_snap.cpp index 613fc1a862..eb18b7274e 100644 --- a/src/SNAP/compute_snap.cpp +++ b/src/SNAP/compute_snap.cpp @@ -118,9 +118,9 @@ ComputeSnap::ComputeSnap(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal compute snap command"); chemflag = 1; memory->create(map,ntypes+1,"compute_snap:map"); - nelements = force->inumeric(FLERR,arg[iarg+1]); + nelements = utils::inumeric(FLERR,arg[iarg+1],false,lmp); for(int i = 0; i < ntypes; i++) { - int jelem = force->inumeric(FLERR,arg[iarg+2+i]); + int jelem = utils::inumeric(FLERR,arg[iarg+2+i],false,lmp); if (jelem < 0 || jelem >= nelements) error->all(FLERR,"Illegal compute snap command"); map[i+1] = jelem; diff --git a/src/SNAP/compute_snav_atom.cpp b/src/SNAP/compute_snav_atom.cpp index 2d33c35563..066fc56c11 100644 --- a/src/SNAP/compute_snav_atom.cpp +++ b/src/SNAP/compute_snav_atom.cpp @@ -107,9 +107,9 @@ ComputeSNAVAtom::ComputeSNAVAtom(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal compute sna/atom command"); chemflag = 1; memory->create(map,ntypes+1,"compute_sna_atom:map"); - nelements = force->inumeric(FLERR,arg[iarg+1]); + nelements = utils::inumeric(FLERR,arg[iarg+1],false,lmp); for(int i = 0; i < ntypes; i++) { - int jelem = force->inumeric(FLERR,arg[iarg+2+i]); + int jelem = utils::inumeric(FLERR,arg[iarg+2+i],false,lmp); if (jelem < 0 || jelem >= nelements) error->all(FLERR,"Illegal compute snav/atom command"); map[i+1] = jelem; diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 6b9ad517bb..6df9dd4af2 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -53,9 +53,9 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : extscalar = 1; nevery = 1; - temp = force->numeric(FLERR,arg[3]); - alpha_t = force->numeric(FLERR,arg[4]); - seed = force->inumeric(FLERR,arg[5]); + temp = utils::numeric(FLERR,arg[3],false,lmp); + alpha_t = utils::numeric(FLERR,arg[4],false,lmp); + seed = utils::inumeric(FLERR,arg[5],false,lmp); if (alpha_t < 0.0) { error->all(FLERR,"Illegal langevin/spin command"); diff --git a/src/SPIN/fix_neb_spin.cpp b/src/SPIN/fix_neb_spin.cpp index 5acbbf59e8..110cfb58d8 100644 --- a/src/SPIN/fix_neb_spin.cpp +++ b/src/SPIN/fix_neb_spin.cpp @@ -57,7 +57,7 @@ FixNEBSpin::FixNEBSpin(LAMMPS *lmp, int narg, char **arg) : if (narg < 4) error->all(FLERR,"Illegal fix neb_spin command"); - kspring = force->numeric(FLERR,arg[3]); + kspring = utils::numeric(FLERR,arg[3],false,lmp); if (kspring <= 0.0) error->all(FLERR,"Illegal fix neb command"); // optional params diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index b788d27d05..9a33f0d61d 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -80,33 +80,33 @@ FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lm if (strcmp(arg[iarg],"zeeman") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix precession/spin command"); zeeman_flag = 1; - H_field = force->numeric(FLERR,arg[iarg+1]); - nhx = force->numeric(FLERR,arg[iarg+2]); - nhy = force->numeric(FLERR,arg[iarg+3]); - nhz = force->numeric(FLERR,arg[iarg+4]); + H_field = utils::numeric(FLERR,arg[iarg+1],false,lmp); + nhx = utils::numeric(FLERR,arg[iarg+2],false,lmp); + nhy = utils::numeric(FLERR,arg[iarg+3],false,lmp); + nhz = utils::numeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else if (strcmp(arg[iarg],"anisotropy") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix precession/spin command"); aniso_flag = 1; - Ka = force->numeric(FLERR,arg[iarg+1]); - nax = force->numeric(FLERR,arg[iarg+2]); - nay = force->numeric(FLERR,arg[iarg+3]); - naz = force->numeric(FLERR,arg[iarg+4]); + Ka = utils::numeric(FLERR,arg[iarg+1],false,lmp); + nax = utils::numeric(FLERR,arg[iarg+2],false,lmp); + nay = utils::numeric(FLERR,arg[iarg+3],false,lmp); + naz = utils::numeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else if (strcmp(arg[iarg],"cubic") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix precession/spin command"); cubic_flag = 1; - k1c = force->numeric(FLERR,arg[iarg+1]); - k2c = force->numeric(FLERR,arg[iarg+2]); - nc1x = force->numeric(FLERR,arg[iarg+3]); - nc1y = force->numeric(FLERR,arg[iarg+4]); - nc1z = force->numeric(FLERR,arg[iarg+5]); - nc2x = force->numeric(FLERR,arg[iarg+6]); - nc2y = force->numeric(FLERR,arg[iarg+7]); - nc2z = force->numeric(FLERR,arg[iarg+8]); - nc3x = force->numeric(FLERR,arg[iarg+9]); - nc3y = force->numeric(FLERR,arg[iarg+10]); - nc3z = force->numeric(FLERR,arg[iarg+11]); + k1c = utils::numeric(FLERR,arg[iarg+1],false,lmp); + k2c = utils::numeric(FLERR,arg[iarg+2],false,lmp); + nc1x = utils::numeric(FLERR,arg[iarg+3],false,lmp); + nc1y = utils::numeric(FLERR,arg[iarg+4],false,lmp); + nc1z = utils::numeric(FLERR,arg[iarg+5],false,lmp); + nc2x = utils::numeric(FLERR,arg[iarg+6],false,lmp); + nc2y = utils::numeric(FLERR,arg[iarg+7],false,lmp); + nc2z = utils::numeric(FLERR,arg[iarg+8],false,lmp); + nc3x = utils::numeric(FLERR,arg[iarg+9],false,lmp); + nc3y = utils::numeric(FLERR,arg[iarg+10],false,lmp); + nc3z = utils::numeric(FLERR,arg[iarg+11],false,lmp); iarg += 12; } else error->all(FLERR,"Illegal precession/spin command"); } diff --git a/src/SPIN/min_spin.cpp b/src/SPIN/min_spin.cpp index f6a6b90891..df7fc71f8b 100644 --- a/src/SPIN/min_spin.cpp +++ b/src/SPIN/min_spin.cpp @@ -78,12 +78,12 @@ int MinSpin::modify_param(int narg, char **arg) { if (strcmp(arg[0],"alpha_damp") == 0) { if (narg < 2) error->all(FLERR,"Illegal min_modify command"); - alpha_damp = force->numeric(FLERR,arg[1]); + alpha_damp = utils::numeric(FLERR,arg[1],false,lmp); return 2; } if (strcmp(arg[0],"discrete_factor") == 0) { if (narg < 2) error->all(FLERR,"Illegal min_modify command"); - discrete_factor = force->numeric(FLERR,arg[1]); + discrete_factor = utils::numeric(FLERR,arg[1],false,lmp); return 2; } return 0; diff --git a/src/SPIN/min_spin_cg.cpp b/src/SPIN/min_spin_cg.cpp index de1ef39f66..a658713d1b 100644 --- a/src/SPIN/min_spin_cg.cpp +++ b/src/SPIN/min_spin_cg.cpp @@ -148,7 +148,7 @@ int MinSpinCG::modify_param(int narg, char **arg) { if (strcmp(arg[0],"discrete_factor") == 0) { if (narg < 2) error->all(FLERR,"Illegal fix_modify command"); - discrete_factor = force->numeric(FLERR,arg[1]); + discrete_factor = utils::numeric(FLERR,arg[1],false,lmp); return 2; } return 0; diff --git a/src/SPIN/min_spin_lbfgs.cpp b/src/SPIN/min_spin_lbfgs.cpp index df12782528..f92fc69e04 100644 --- a/src/SPIN/min_spin_lbfgs.cpp +++ b/src/SPIN/min_spin_lbfgs.cpp @@ -156,7 +156,7 @@ int MinSpinLBFGS::modify_param(int narg, char **arg) if (strcmp(arg[0],"discrete_factor") == 0) { if (narg < 2) error->all(FLERR,"Illegal min_modify command"); double discrete_factor; - discrete_factor = force->numeric(FLERR,arg[1]); + discrete_factor = utils::numeric(FLERR,arg[1],false,lmp); maxepsrot = MY_2PI / (10 * discrete_factor); return 2; } diff --git a/src/SPIN/neb_spin.cpp b/src/SPIN/neb_spin.cpp index 168e288181..96808b7f10 100644 --- a/src/SPIN/neb_spin.cpp +++ b/src/SPIN/neb_spin.cpp @@ -94,11 +94,11 @@ void NEBSpin::command(int narg, char **arg) if (narg < 6) error->universe_all(FLERR,"Illegal NEBSpin command"); - etol = force->numeric(FLERR,arg[0]); - ttol = force->numeric(FLERR,arg[1]); - n1steps = force->inumeric(FLERR,arg[2]); - n2steps = force->inumeric(FLERR,arg[3]); - nevery = force->inumeric(FLERR,arg[4]); + etol = utils::numeric(FLERR,arg[0],false,lmp); + ttol = utils::numeric(FLERR,arg[1],false,lmp); + n1steps = utils::inumeric(FLERR,arg[2],false,lmp); + n2steps = utils::inumeric(FLERR,arg[3],false,lmp); + nevery = utils::inumeric(FLERR,arg[4],false,lmp); // error checks diff --git a/src/SPIN/pair_spin_dipole_cut.cpp b/src/SPIN/pair_spin_dipole_cut.cpp index 49e82a9d68..5573d914b7 100644 --- a/src/SPIN/pair_spin_dipole_cut.cpp +++ b/src/SPIN/pair_spin_dipole_cut.cpp @@ -76,7 +76,7 @@ void PairSpinDipoleCut::settings(int narg, char **arg) { PairSpin::settings(narg,arg); - cut_spin_long_global = force->numeric(FLERR,arg[0]); + cut_spin_long_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -108,7 +108,7 @@ void PairSpinDipoleCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double spin_long_cut_one = force->numeric(FLERR,arg[2]); + double spin_long_cut_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/SPIN/pair_spin_dipole_long.cpp b/src/SPIN/pair_spin_dipole_long.cpp index bb27d8cadf..4188bb214c 100644 --- a/src/SPIN/pair_spin_dipole_long.cpp +++ b/src/SPIN/pair_spin_dipole_long.cpp @@ -81,7 +81,7 @@ void PairSpinDipoleLong::settings(int narg, char **arg) { PairSpin::settings(narg,arg); - cut_spin_long_global = force->numeric(FLERR,arg[0]); + cut_spin_long_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -112,7 +112,7 @@ void PairSpinDipoleLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double spin_long_cut_one = force->numeric(FLERR,arg[2]); + double spin_long_cut_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index a5452ed739..b4b3fcb6f5 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -65,7 +65,7 @@ void PairSpinDmi::settings(int narg, char **arg) { PairSpin::settings(narg,arg); - cut_spin_dmi_global = force->numeric(FLERR,arg[0]); + cut_spin_dmi_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -101,11 +101,11 @@ void PairSpinDmi::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - const double rij = force->numeric(FLERR,arg[3]); - const double dm = (force->numeric(FLERR,arg[4])); - double dmx = force->numeric(FLERR,arg[5]); - double dmy = force->numeric(FLERR,arg[6]); - double dmz = force->numeric(FLERR,arg[7]); + const double rij = utils::numeric(FLERR,arg[3],false,lmp); + const double dm = utils::numeric(FLERR,arg[4],false,lmp); + double dmx = utils::numeric(FLERR,arg[5],false,lmp); + double dmy = utils::numeric(FLERR,arg[6],false,lmp); + double dmz = utils::numeric(FLERR,arg[7],false,lmp); double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); dmx *= inorm; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 30c6383bc6..b82dca3dcc 100644 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -62,7 +62,7 @@ void PairSpinExchange::settings(int narg, char **arg) { PairSpin::settings(narg,arg); - cut_spin_exchange_global = force->numeric(FLERR,arg[0]); + cut_spin_exchange_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -97,10 +97,10 @@ void PairSpinExchange::coeff(int narg, char **arg) // get exchange arguments from input command - const double rc = force->numeric(FLERR,arg[3]); - const double j1 = force->numeric(FLERR,arg[4]); - const double j2 = force->numeric(FLERR,arg[5]); - const double j3 = force->numeric(FLERR,arg[6]); + const double rc = utils::numeric(FLERR,arg[3],false,lmp); + const double j1 = utils::numeric(FLERR,arg[4],false,lmp); + const double j2 = utils::numeric(FLERR,arg[5],false,lmp); + const double j3 = utils::numeric(FLERR,arg[6],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index 9e1de9b1e7..50cd1fe54a 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -64,7 +64,7 @@ void PairSpinMagelec::settings(int narg, char **arg) PairSpin::settings(narg,arg); - cut_spin_magelec_global = force->numeric(FLERR,arg[0]); + cut_spin_magelec_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -98,11 +98,11 @@ void PairSpinMagelec::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - const double rij = force->numeric(FLERR,arg[3]); - const double magelec = (force->numeric(FLERR,arg[4])); - double mex = force->numeric(FLERR,arg[5]); - double mey = force->numeric(FLERR,arg[6]); - double mez = force->numeric(FLERR,arg[7]); + const double rij = utils::numeric(FLERR,arg[3],false,lmp); + const double magelec = utils::numeric(FLERR,arg[4],false,lmp); + double mex = utils::numeric(FLERR,arg[5],false,lmp); + double mey = utils::numeric(FLERR,arg[6],false,lmp); + double mez = utils::numeric(FLERR,arg[7],false,lmp); double inorm = 1.0/(mex*mex+mey*mey+mez*mez); mex *= inorm; diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 5aef34ad9d..4468e157b4 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -66,7 +66,7 @@ void PairSpinNeel::settings(int narg, char **arg) { PairSpin::settings(narg,arg); - cut_spin_neel_global = force->numeric(FLERR,arg[0]); + cut_spin_neel_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -102,13 +102,13 @@ void PairSpinNeel::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - const double rij = force->numeric(FLERR,arg[3]); - const double k1 = force->numeric(FLERR,arg[4]); - const double k2 = force->numeric(FLERR,arg[5]); - const double k3 = force->numeric(FLERR,arg[6]); - const double l1 = force->numeric(FLERR,arg[7]); - const double l2 = force->numeric(FLERR,arg[8]); - const double l3 = force->numeric(FLERR,arg[9]); + const double rij = utils::numeric(FLERR,arg[3],false,lmp); + const double k1 = utils::numeric(FLERR,arg[4],false,lmp); + const double k2 = utils::numeric(FLERR,arg[5],false,lmp); + const double k3 = utils::numeric(FLERR,arg[6],false,lmp); + const double l1 = utils::numeric(FLERR,arg[7],false,lmp); + const double l2 = utils::numeric(FLERR,arg[8],false,lmp); + const double l3 = utils::numeric(FLERR,arg[9],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/SRD/fix_srd.cpp b/src/SRD/fix_srd.cpp index 8f15128399..ca0bdbac0a 100644 --- a/src/SRD/fix_srd.cpp +++ b/src/SRD/fix_srd.cpp @@ -94,15 +94,15 @@ FixSRD::FixSRD(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), global_freq = 1; extvector = 0; - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); bigexist = 1; if (strcmp(arg[4],"NULL") == 0) bigexist = 0; else biggroup = group->find(arg[4]); - temperature_srd = force->numeric(FLERR,arg[5]); - gridsrd = force->numeric(FLERR,arg[6]); - int seed = force->inumeric(FLERR,arg[7]); + temperature_srd = utils::numeric(FLERR,arg[5],false,lmp); + gridsrd = utils::numeric(FLERR,arg[6],false,lmp); + int seed = utils::inumeric(FLERR,arg[7],false,lmp); // parse options @@ -125,7 +125,7 @@ FixSRD::FixSRD(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), while (iarg < narg) { if (strcmp(arg[iarg],"lamda") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix srd command"); - lamda = force->numeric(FLERR,arg[iarg+1]); + lamda = utils::numeric(FLERR,arg[iarg+1],false,lmp); lamdaflag = 1; iarg += 2; } else if (strcmp(arg[iarg],"collision") == 0) { @@ -155,22 +155,22 @@ FixSRD::FixSRD(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), iarg += 2; } else if (strcmp(arg[iarg],"radius") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix srd command"); - radfactor = force->numeric(FLERR,arg[iarg+1]); + radfactor = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"bounce") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix srd command"); - maxbounceallow = force->inumeric(FLERR,arg[iarg+1]); + maxbounceallow = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"search") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix srd command"); - gridsearch = force->numeric(FLERR,arg[iarg+1]); + gridsearch = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"cubic") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix srd command"); if (strcmp(arg[iarg+1],"error") == 0) cubicflag = CUBIC_ERROR; else if (strcmp(arg[iarg+1],"warn") == 0) cubicflag = CUBIC_WARN; else error->all(FLERR,"Illegal fix srd command"); - cubictol = force->numeric(FLERR,arg[iarg+2]); + cubictol = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"shift") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix srd command"); @@ -178,7 +178,7 @@ FixSRD::FixSRD(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), else if (strcmp(arg[iarg+1],"yes") == 0) shiftuser = SHIFT_YES; else if (strcmp(arg[iarg+1],"possible") == 0) shiftuser = SHIFT_POSSIBLE; else error->all(FLERR,"Illegal fix srd command"); - shiftseed = force->inumeric(FLERR,arg[iarg+2]); + shiftseed = utils::inumeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"tstat") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix srd command"); diff --git a/src/SRD/fix_wall_srd.cpp b/src/SRD/fix_wall_srd.cpp index ab113df28a..8b9ea6fb79 100644 --- a/src/SRD/fix_wall_srd.cpp +++ b/src/SRD/fix_wall_srd.cpp @@ -76,7 +76,7 @@ FixWallSRD::FixWallSRD(LAMMPS *lmp, int narg, char **arg) : strcpy(varstr[nwall],&arg[iarg+1][2]); } else { wallstyle[nwall] = CONSTANT; - coord0[nwall] = force->numeric(FLERR,arg[iarg+1]); + coord0[nwall] = utils::numeric(FLERR,arg[iarg+1],false,lmp); } nwall++; diff --git a/src/USER-AWPMD/pair_awpmd_cut.cpp b/src/USER-AWPMD/pair_awpmd_cut.cpp index dc823661d8..4d812852db 100644 --- a/src/USER-AWPMD/pair_awpmd_cut.cpp +++ b/src/USER-AWPMD/pair_awpmd_cut.cpp @@ -407,7 +407,7 @@ void PairAWPMDCut::allocate() void PairAWPMDCut::settings(int narg, char **arg){ if (narg < 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); ermscale=1.; width_pbc=0.; @@ -427,21 +427,21 @@ void PairAWPMDCut::settings(int narg, char **arg){ i++; if(i>=narg) error->all(FLERR,"Setting 'fix' should be followed by a number in awpmd/cut"); - wpmd->w0=force->numeric(FLERR,arg[i]); + wpmd->w0=utils::numeric(FLERR,arg[i],false,lmp); } else if(!strcmp(arg[i],"harm")){ wpmd->constraint=AWPMD::HARM; i++; if(i>=narg) error->all(FLERR,"Setting 'harm' should be followed by a number in awpmd/cut"); - wpmd->w0=force->numeric(FLERR,arg[i]); + wpmd->w0=utils::numeric(FLERR,arg[i],false,lmp); wpmd->set_harm_constr(wpmd->w0); } else if(!strcmp(arg[i],"pbc")){ i++; if(i>=narg) error->all(FLERR,"Setting 'pbc' should be followed by a number in awpmd/cut"); - width_pbc=force->numeric(FLERR,arg[i]); + width_pbc=utils::numeric(FLERR,arg[i],false,lmp); } else if(!strcmp(arg[i],"relax")) wpmd->constraint=AWPMD::RELAX; @@ -449,7 +449,7 @@ void PairAWPMDCut::settings(int narg, char **arg){ i++; if(i>=narg) error->all(FLERR,"Setting 'ermscale' should be followed by a number in awpmd/cut"); - ermscale=force->numeric(FLERR,arg[i]); + ermscale=utils::numeric(FLERR,arg[i],false,lmp); } else if(!strcmp(arg[i],"flex_press")) flexible_pressure_flag = 1; @@ -488,7 +488,7 @@ void PairAWPMDCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_one = cut_global; - if (narg == 3) cut_one = force->numeric(FLERR,arg[2]); + if (narg == 3) cut_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-BOCS/fix_bocs.cpp b/src/USER-BOCS/fix_bocs.cpp index 7c2f75a8ce..838a708940 100644 --- a/src/USER-BOCS/fix_bocs.cpp +++ b/src/USER-BOCS/fix_bocs.cpp @@ -149,10 +149,10 @@ FixBocs::FixBocs(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"temp") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix bocs command"); tstat_flag = 1; - t_start = force->numeric(FLERR,arg[iarg+1]); + t_start = utils::numeric(FLERR,arg[iarg+1],false,lmp); t_target = t_start; - t_stop = force->numeric(FLERR,arg[iarg+2]); - t_period = force->numeric(FLERR,arg[iarg+3]); + t_stop = utils::numeric(FLERR,arg[iarg+2],false,lmp); + t_period = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (t_start <= 0.0 || t_stop <= 0.0) error->all(FLERR, "Target temperature for fix bocs cannot be 0.0"); @@ -167,11 +167,11 @@ FixBocs::FixBocs(LAMMPS *lmp, int narg, char **arg) : p_match_flag = 1; pcouple = XYZ; p_start[0] = p_start[1] = p_start[2] = - force->numeric(FLERR,arg[iarg+1]); + utils::numeric(FLERR,arg[iarg+1],false,lmp); p_stop[0] = p_stop[1] = p_stop[2] = - force->numeric(FLERR,arg[iarg+2]); + utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; p_flag[3] = p_flag[4] = p_flag[5] = 0; // MRD @@ -187,15 +187,15 @@ FixBocs::FixBocs(LAMMPS *lmp, int narg, char **arg) : " must be followed by: avg_vol n_mol n_pmatch_coeff"); } p_basis_type = 0; - vavg = force->numeric(FLERR,arg[iarg+1]); - N_mol = force->inumeric(FLERR,arg[iarg+2]); - N_p_match = force->inumeric(FLERR,arg[iarg+3]); + vavg = utils::numeric(FLERR,arg[iarg+1],false,lmp); + N_mol = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + N_p_match = utils::inumeric(FLERR,arg[iarg+3],false,lmp); p_match_coeffs = (double *) (calloc(N_p_match, sizeof(double)) ); iarg += 4; if (iarg + N_p_match > narg) error->all(FLERR,"Illegal fix bocs command. Missing coeffs."); for (int pmatchi = 0; pmatchi < N_p_match; pmatchi++) - p_match_coeffs[pmatchi] = force->numeric(FLERR,arg[iarg+pmatchi]); + p_match_coeffs[pmatchi] = utils::numeric(FLERR,arg[iarg+pmatchi],false,lmp); iarg += (N_p_match); } else if (strcmp(arg[iarg], "linear_spline") == 0 ) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bocs command. " @@ -217,14 +217,14 @@ FixBocs::FixBocs(LAMMPS *lmp, int narg, char **arg) : } // END NJD MRD } else if (strcmp(arg[iarg],"tchain") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bocs command"); - mtchain = force->inumeric(FLERR,arg[iarg+1]); + mtchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); // used by FixNVTSllod to preserve non-default value mtchain_default_flag = 0; if (mtchain < 1) error->all(FLERR,"Illegal fix bocs command"); iarg += 2; } else if (strcmp(arg[iarg],"pchain") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bocs command"); - mpchain = force->inumeric(FLERR,arg[iarg+1]); + mpchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (mpchain < 0) error->all(FLERR,"Illegal fix bocs command"); iarg += 2; } else if (strcmp(arg[iarg],"mtk") == 0) { @@ -235,12 +235,12 @@ FixBocs::FixBocs(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"tloop") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bocs command"); - nc_tchain = force->inumeric(FLERR,arg[iarg+1]); + nc_tchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nc_tchain < 0) error->all(FLERR,"Illegal fix bocs command"); iarg += 2; } else if (strcmp(arg[iarg],"ploop") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bocs command"); - nc_pchain = force->inumeric(FLERR,arg[iarg+1]); + nc_pchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nc_pchain < 0) error->all(FLERR,"Illegal fix bocs command"); iarg += 2; } else { diff --git a/src/USER-CGDNA/bond_oxdna_fene.cpp b/src/USER-CGDNA/bond_oxdna_fene.cpp index afe73c397a..cc70f2fb31 100644 --- a/src/USER-CGDNA/bond_oxdna_fene.cpp +++ b/src/USER-CGDNA/bond_oxdna_fene.cpp @@ -304,9 +304,9 @@ void BondOxdnaFene::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double Delta_one = force->numeric(FLERR,arg[2]); - double r0_one = force->numeric(FLERR,arg[3]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double Delta_one = utils::numeric(FLERR,arg[2],false,lmp); + double r0_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; diff --git a/src/USER-CGDNA/fix_nve_dotc_langevin.cpp b/src/USER-CGDNA/fix_nve_dotc_langevin.cpp index 59def4c812..66871fa64e 100644 --- a/src/USER-CGDNA/fix_nve_dotc_langevin.cpp +++ b/src/USER-CGDNA/fix_nve_dotc_langevin.cpp @@ -40,13 +40,13 @@ FixNVEDotcLangevin::FixNVEDotcLangevin(LAMMPS *lmp, int narg, char **arg) : { if (narg != 9) error->all(FLERR,"Illegal fix nve/dotc/langevin command"); - t_start = force->numeric(FLERR,arg[3]); + t_start = utils::numeric(FLERR,arg[3],false,lmp); t_target = t_start; - t_stop = force->numeric(FLERR,arg[4]); - t_period = force->numeric(FLERR,arg[5]); + t_stop = utils::numeric(FLERR,arg[4],false,lmp); + t_period = utils::numeric(FLERR,arg[5],false,lmp); if (t_period <= 0.0) error->all(FLERR,"Fix nve/dotc/langevin period must be > 0.0"); gamma = 1.0/t_period; - seed = force->inumeric(FLERR,arg[6]); + seed = utils::inumeric(FLERR,arg[6],false,lmp); if (seed <= 0) error->all(FLERR,"Illegal fix nve/dotc/langevin command"); if (strcmp(arg[7],"angmom") == 0) { @@ -56,7 +56,7 @@ FixNVEDotcLangevin::FixNVEDotcLangevin(LAMMPS *lmp, int narg, char **arg) : Gamma = 0.0; } else { - ascale = force->numeric(FLERR,arg[8]); + ascale = utils::numeric(FLERR,arg[8],false,lmp); Gamma = gamma * ascale; } diff --git a/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp b/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp index be6287934f..32ee0ed145 100644 --- a/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp +++ b/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp @@ -578,30 +578,30 @@ void PairOxdna2Coaxstk::coeff(int narg, char **arg) double AA_cxst1_one, BB_cxst1_one; - k_cxst_one = force->numeric(FLERR,arg[2]); - cut_cxst_0_one = force->numeric(FLERR,arg[3]); - cut_cxst_c_one = force->numeric(FLERR,arg[4]); - cut_cxst_lo_one = force->numeric(FLERR,arg[5]); - cut_cxst_hi_one = force->numeric(FLERR,arg[6]); - - a_cxst1_one = force->numeric(FLERR,arg[7]); - theta_cxst1_0_one = force->numeric(FLERR,arg[8]); - dtheta_cxst1_ast_one = force->numeric(FLERR,arg[9]); - - a_cxst4_one = force->numeric(FLERR,arg[10]); - theta_cxst4_0_one = force->numeric(FLERR,arg[11]); - dtheta_cxst4_ast_one = force->numeric(FLERR,arg[12]); - - a_cxst5_one = force->numeric(FLERR,arg[13]); - theta_cxst5_0_one = force->numeric(FLERR,arg[14]); - dtheta_cxst5_ast_one = force->numeric(FLERR,arg[15]); - - a_cxst6_one = force->numeric(FLERR,arg[16]); - theta_cxst6_0_one = force->numeric(FLERR,arg[17]); - dtheta_cxst6_ast_one = force->numeric(FLERR,arg[18]); - - AA_cxst1_one = force->numeric(FLERR,arg[19]); - BB_cxst1_one = force->numeric(FLERR,arg[20]); + k_cxst_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_cxst_0_one = utils::numeric(FLERR,arg[3],false,lmp); + cut_cxst_c_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_cxst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_cxst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); + + a_cxst1_one = utils::numeric(FLERR,arg[7],false,lmp); + theta_cxst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); + dtheta_cxst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); + + a_cxst4_one = utils::numeric(FLERR,arg[10],false,lmp); + theta_cxst4_0_one = utils::numeric(FLERR,arg[11],false,lmp); + dtheta_cxst4_ast_one = utils::numeric(FLERR,arg[12],false,lmp); + + a_cxst5_one = utils::numeric(FLERR,arg[13],false,lmp); + theta_cxst5_0_one = utils::numeric(FLERR,arg[14],false,lmp); + dtheta_cxst5_ast_one = utils::numeric(FLERR,arg[15],false,lmp); + + a_cxst6_one = utils::numeric(FLERR,arg[16],false,lmp); + theta_cxst6_0_one = utils::numeric(FLERR,arg[17],false,lmp); + dtheta_cxst6_ast_one = utils::numeric(FLERR,arg[18],false,lmp); + + AA_cxst1_one = utils::numeric(FLERR,arg[19],false,lmp); + BB_cxst1_one = utils::numeric(FLERR,arg[20],false,lmp); b_cxst_lo_one = 0.25 * (cut_cxst_lo_one - cut_cxst_0_one) * (cut_cxst_lo_one - cut_cxst_0_one)/ (0.5 * (cut_cxst_lo_one - cut_cxst_0_one) * (cut_cxst_lo_one - cut_cxst_0_one) - diff --git a/src/USER-CGDNA/pair_oxdna2_dh.cpp b/src/USER-CGDNA/pair_oxdna2_dh.cpp index 8cbe607197..04aaf82ccb 100644 --- a/src/USER-CGDNA/pair_oxdna2_dh.cpp +++ b/src/USER-CGDNA/pair_oxdna2_dh.cpp @@ -284,9 +284,9 @@ void PairOxdna2Dh::coeff(int narg, char **arg) double T, rhos_dh_one, qeff_dh_one; - T = force->numeric(FLERR,arg[2]); - rhos_dh_one = force->numeric(FLERR,arg[3]); - qeff_dh_one = force->numeric(FLERR,arg[4]); + T = utils::numeric(FLERR,arg[2],false,lmp); + rhos_dh_one = utils::numeric(FLERR,arg[3],false,lmp); + qeff_dh_one = utils::numeric(FLERR,arg[4],false,lmp); double lambda_dh_one, kappa_dh_one, qeff_dh_pf_one; double b_dh_one, cut_dh_ast_one, cut_dh_c_one; diff --git a/src/USER-CGDNA/pair_oxdna_coaxstk.cpp b/src/USER-CGDNA/pair_oxdna_coaxstk.cpp index b54798e1da..87f58857bb 100644 --- a/src/USER-CGDNA/pair_oxdna_coaxstk.cpp +++ b/src/USER-CGDNA/pair_oxdna_coaxstk.cpp @@ -709,32 +709,32 @@ void PairOxdnaCoaxstk::coeff(int narg, char **arg) double a_cxst3p_one, cosphi_cxst3p_ast_one, b_cxst3p_one, cosphi_cxst3p_c_one; double a_cxst4p_one, cosphi_cxst4p_ast_one, b_cxst4p_one, cosphi_cxst4p_c_one; - k_cxst_one = force->numeric(FLERR,arg[2]); - cut_cxst_0_one = force->numeric(FLERR,arg[3]); - cut_cxst_c_one = force->numeric(FLERR,arg[4]); - cut_cxst_lo_one = force->numeric(FLERR,arg[5]); - cut_cxst_hi_one = force->numeric(FLERR,arg[6]); - - a_cxst1_one = force->numeric(FLERR,arg[7]); - theta_cxst1_0_one = force->numeric(FLERR,arg[8]); - dtheta_cxst1_ast_one = force->numeric(FLERR,arg[9]); - - a_cxst4_one = force->numeric(FLERR,arg[10]); - theta_cxst4_0_one = force->numeric(FLERR,arg[11]); - dtheta_cxst4_ast_one = force->numeric(FLERR,arg[12]); - - a_cxst5_one = force->numeric(FLERR,arg[13]); - theta_cxst5_0_one = force->numeric(FLERR,arg[14]); - dtheta_cxst5_ast_one = force->numeric(FLERR,arg[15]); - - a_cxst6_one = force->numeric(FLERR,arg[16]); - theta_cxst6_0_one = force->numeric(FLERR,arg[17]); - dtheta_cxst6_ast_one = force->numeric(FLERR,arg[18]); - - a_cxst3p_one = force->numeric(FLERR,arg[19]); - cosphi_cxst3p_ast_one = force->numeric(FLERR,arg[20]); - a_cxst4p_one = force->numeric(FLERR,arg[21]); - cosphi_cxst4p_ast_one = force->numeric(FLERR,arg[22]); + k_cxst_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_cxst_0_one = utils::numeric(FLERR,arg[3],false,lmp); + cut_cxst_c_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_cxst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_cxst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); + + a_cxst1_one = utils::numeric(FLERR,arg[7],false,lmp); + theta_cxst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); + dtheta_cxst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); + + a_cxst4_one = utils::numeric(FLERR,arg[10],false,lmp); + theta_cxst4_0_one = utils::numeric(FLERR,arg[11],false,lmp); + dtheta_cxst4_ast_one = utils::numeric(FLERR,arg[12],false,lmp); + + a_cxst5_one = utils::numeric(FLERR,arg[13],false,lmp); + theta_cxst5_0_one = utils::numeric(FLERR,arg[14],false,lmp); + dtheta_cxst5_ast_one = utils::numeric(FLERR,arg[15],false,lmp); + + a_cxst6_one = utils::numeric(FLERR,arg[16],false,lmp); + theta_cxst6_0_one = utils::numeric(FLERR,arg[17],false,lmp); + dtheta_cxst6_ast_one = utils::numeric(FLERR,arg[18],false,lmp); + + a_cxst3p_one = utils::numeric(FLERR,arg[19],false,lmp); + cosphi_cxst3p_ast_one = utils::numeric(FLERR,arg[20],false,lmp); + a_cxst4p_one = utils::numeric(FLERR,arg[21],false,lmp); + cosphi_cxst4p_ast_one = utils::numeric(FLERR,arg[22],false,lmp); b_cxst_lo_one = 0.25 * (cut_cxst_lo_one - cut_cxst_0_one) * (cut_cxst_lo_one - cut_cxst_0_one)/ (0.5 * (cut_cxst_lo_one - cut_cxst_0_one) * (cut_cxst_lo_one - cut_cxst_0_one) - diff --git a/src/USER-CGDNA/pair_oxdna_excv.cpp b/src/USER-CGDNA/pair_oxdna_excv.cpp index c45dfdc036..22ed310003 100644 --- a/src/USER-CGDNA/pair_oxdna_excv.cpp +++ b/src/USER-CGDNA/pair_oxdna_excv.cpp @@ -471,9 +471,9 @@ void PairOxdnaExcv::coeff(int narg, char **arg) // Excluded volume interaction // LJ parameters - epsilon_ss_one = force->numeric(FLERR,arg[2]); - sigma_ss_one = force->numeric(FLERR,arg[3]); - cut_ss_ast_one = force->numeric(FLERR,arg[4]); + epsilon_ss_one = utils::numeric(FLERR,arg[2],false,lmp); + sigma_ss_one = utils::numeric(FLERR,arg[3],false,lmp); + cut_ss_ast_one = utils::numeric(FLERR,arg[4],false,lmp); // smoothing - determined through continuity and differentiability b_ss_one = 4.0/sigma_ss_one @@ -502,9 +502,9 @@ void PairOxdnaExcv::coeff(int narg, char **arg) count = 0; // LJ parameters - epsilon_sb_one = force->numeric(FLERR,arg[5]); - sigma_sb_one = force->numeric(FLERR,arg[6]); - cut_sb_ast_one = force->numeric(FLERR,arg[7]); + epsilon_sb_one = utils::numeric(FLERR,arg[5],false,lmp); + sigma_sb_one = utils::numeric(FLERR,arg[6],false,lmp); + cut_sb_ast_one = utils::numeric(FLERR,arg[7],false,lmp); // smoothing - determined through continuity and differentiability b_sb_one = 4.0/sigma_sb_one @@ -533,9 +533,9 @@ void PairOxdnaExcv::coeff(int narg, char **arg) count = 0; // LJ parameters - epsilon_bb_one = force->numeric(FLERR,arg[8]); - sigma_bb_one = force->numeric(FLERR,arg[9]); - cut_bb_ast_one = force->numeric(FLERR,arg[10]); + epsilon_bb_one = utils::numeric(FLERR,arg[8],false,lmp); + sigma_bb_one = utils::numeric(FLERR,arg[9],false,lmp); + cut_bb_ast_one = utils::numeric(FLERR,arg[10],false,lmp); // smoothing - determined through continuity and differentiability b_bb_one = 4.0/sigma_bb_one diff --git a/src/USER-CGDNA/pair_oxdna_hbond.cpp b/src/USER-CGDNA/pair_oxdna_hbond.cpp index f94be44e28..df952d0ff2 100644 --- a/src/USER-CGDNA/pair_oxdna_hbond.cpp +++ b/src/USER-CGDNA/pair_oxdna_hbond.cpp @@ -667,36 +667,36 @@ void PairOxdnaHbond::coeff(int narg, char **arg) if (strcmp(arg[2],"seqav") == 0) seqdepflag = 0; if (strcmp(arg[2],"seqdep") == 0) seqdepflag = 1; - epsilon_hb_one = force->numeric(FLERR,arg[3]); - a_hb_one = force->numeric(FLERR,arg[4]); - cut_hb_0_one = force->numeric(FLERR,arg[5]); - cut_hb_c_one = force->numeric(FLERR,arg[6]); - cut_hb_lo_one = force->numeric(FLERR,arg[7]); - cut_hb_hi_one = force->numeric(FLERR,arg[8]); - - a_hb1_one = force->numeric(FLERR,arg[9]); - theta_hb1_0_one = force->numeric(FLERR,arg[10]); - dtheta_hb1_ast_one = force->numeric(FLERR,arg[11]); - - a_hb2_one = force->numeric(FLERR,arg[12]); - theta_hb2_0_one = force->numeric(FLERR,arg[13]); - dtheta_hb2_ast_one = force->numeric(FLERR,arg[14]); - - a_hb3_one = force->numeric(FLERR,arg[15]); - theta_hb3_0_one = force->numeric(FLERR,arg[16]); - dtheta_hb3_ast_one = force->numeric(FLERR,arg[17]); - - a_hb4_one = force->numeric(FLERR,arg[18]); - theta_hb4_0_one = force->numeric(FLERR,arg[19]); - dtheta_hb4_ast_one = force->numeric(FLERR,arg[20]); - - a_hb7_one = force->numeric(FLERR,arg[21]); - theta_hb7_0_one = force->numeric(FLERR,arg[22]); - dtheta_hb7_ast_one = force->numeric(FLERR,arg[23]); - - a_hb8_one = force->numeric(FLERR,arg[24]); - theta_hb8_0_one = force->numeric(FLERR,arg[25]); - dtheta_hb8_ast_one = force->numeric(FLERR,arg[26]); + epsilon_hb_one = utils::numeric(FLERR,arg[3],false,lmp); + a_hb_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_hb_0_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_hb_c_one = utils::numeric(FLERR,arg[6],false,lmp); + cut_hb_lo_one = utils::numeric(FLERR,arg[7],false,lmp); + cut_hb_hi_one = utils::numeric(FLERR,arg[8],false,lmp); + + a_hb1_one = utils::numeric(FLERR,arg[9],false,lmp); + theta_hb1_0_one = utils::numeric(FLERR,arg[10],false,lmp); + dtheta_hb1_ast_one = utils::numeric(FLERR,arg[11],false,lmp); + + a_hb2_one = utils::numeric(FLERR,arg[12],false,lmp); + theta_hb2_0_one = utils::numeric(FLERR,arg[13],false,lmp); + dtheta_hb2_ast_one = utils::numeric(FLERR,arg[14],false,lmp); + + a_hb3_one = utils::numeric(FLERR,arg[15],false,lmp); + theta_hb3_0_one = utils::numeric(FLERR,arg[16],false,lmp); + dtheta_hb3_ast_one = utils::numeric(FLERR,arg[17],false,lmp); + + a_hb4_one = utils::numeric(FLERR,arg[18],false,lmp); + theta_hb4_0_one = utils::numeric(FLERR,arg[19],false,lmp); + dtheta_hb4_ast_one = utils::numeric(FLERR,arg[20],false,lmp); + + a_hb7_one = utils::numeric(FLERR,arg[21],false,lmp); + theta_hb7_0_one = utils::numeric(FLERR,arg[22],false,lmp); + dtheta_hb7_ast_one = utils::numeric(FLERR,arg[23],false,lmp); + + a_hb8_one = utils::numeric(FLERR,arg[24],false,lmp); + theta_hb8_0_one = utils::numeric(FLERR,arg[25],false,lmp); + dtheta_hb8_ast_one = utils::numeric(FLERR,arg[26],false,lmp); b_hb_lo_one = 2*a_hb_one*exp(-a_hb_one*(cut_hb_lo_one-cut_hb_0_one))* 2*a_hb_one*exp(-a_hb_one*(cut_hb_lo_one-cut_hb_0_one))* diff --git a/src/USER-CGDNA/pair_oxdna_stk.cpp b/src/USER-CGDNA/pair_oxdna_stk.cpp index 2c01e253e8..fa9204ed86 100644 --- a/src/USER-CGDNA/pair_oxdna_stk.cpp +++ b/src/USER-CGDNA/pair_oxdna_stk.cpp @@ -807,30 +807,30 @@ void PairOxdnaStk::coeff(int narg, char **arg) if (strcmp(arg[2],"seqav") == 0) seqdepflag = 0; if (strcmp(arg[2],"seqdep") == 0) seqdepflag = 1; - T = force->numeric(FLERR,arg[3]); - xi_st_one = force->numeric(FLERR,arg[4]); - kappa_st_one = force->numeric(FLERR,arg[5]); + T = utils::numeric(FLERR,arg[3],false,lmp); + xi_st_one = utils::numeric(FLERR,arg[4],false,lmp); + kappa_st_one = utils::numeric(FLERR,arg[5],false,lmp); epsilon_st_one = stacking_strength(xi_st_one, kappa_st_one, T); - a_st_one = force->numeric(FLERR,arg[6]); - cut_st_0_one = force->numeric(FLERR,arg[7]); - cut_st_c_one = force->numeric(FLERR,arg[8]); - cut_st_lo_one = force->numeric(FLERR,arg[9]); - cut_st_hi_one = force->numeric(FLERR,arg[10]); - - a_st4_one = force->numeric(FLERR,arg[11]); - theta_st4_0_one = force->numeric(FLERR,arg[12]); - dtheta_st4_ast_one = force->numeric(FLERR,arg[13]); - a_st5_one = force->numeric(FLERR,arg[14]); - theta_st5_0_one = force->numeric(FLERR,arg[15]); - dtheta_st5_ast_one = force->numeric(FLERR,arg[16]); - a_st6_one = force->numeric(FLERR,arg[17]); - theta_st6_0_one = force->numeric(FLERR,arg[18]); - dtheta_st6_ast_one = force->numeric(FLERR,arg[19]); - a_st1_one = force->numeric(FLERR,arg[20]); - cosphi_st1_ast_one = force->numeric(FLERR,arg[21]); - a_st2_one = force->numeric(FLERR,arg[22]); - cosphi_st2_ast_one = force->numeric(FLERR,arg[23]); + a_st_one = utils::numeric(FLERR,arg[6],false,lmp); + cut_st_0_one = utils::numeric(FLERR,arg[7],false,lmp); + cut_st_c_one = utils::numeric(FLERR,arg[8],false,lmp); + cut_st_lo_one = utils::numeric(FLERR,arg[9],false,lmp); + cut_st_hi_one = utils::numeric(FLERR,arg[10],false,lmp); + + a_st4_one = utils::numeric(FLERR,arg[11],false,lmp); + theta_st4_0_one = utils::numeric(FLERR,arg[12],false,lmp); + dtheta_st4_ast_one = utils::numeric(FLERR,arg[13],false,lmp); + a_st5_one = utils::numeric(FLERR,arg[14],false,lmp); + theta_st5_0_one = utils::numeric(FLERR,arg[15],false,lmp); + dtheta_st5_ast_one = utils::numeric(FLERR,arg[16],false,lmp); + a_st6_one = utils::numeric(FLERR,arg[17],false,lmp); + theta_st6_0_one = utils::numeric(FLERR,arg[18],false,lmp); + dtheta_st6_ast_one = utils::numeric(FLERR,arg[19],false,lmp); + a_st1_one = utils::numeric(FLERR,arg[20],false,lmp); + cosphi_st1_ast_one = utils::numeric(FLERR,arg[21],false,lmp); + a_st2_one = utils::numeric(FLERR,arg[22],false,lmp); + cosphi_st2_ast_one = utils::numeric(FLERR,arg[23],false,lmp); b_st_lo_one = 2*a_st_one*exp(-a_st_one*(cut_st_lo_one-cut_st_0_one))* 2*a_st_one*exp(-a_st_one*(cut_st_lo_one-cut_st_0_one))* diff --git a/src/USER-CGDNA/pair_oxdna_xstk.cpp b/src/USER-CGDNA/pair_oxdna_xstk.cpp index b1eaccdca2..7845451daf 100644 --- a/src/USER-CGDNA/pair_oxdna_xstk.cpp +++ b/src/USER-CGDNA/pair_oxdna_xstk.cpp @@ -657,35 +657,35 @@ void PairOxdnaXstk::coeff(int narg, char **arg) double a_xst8_one, theta_xst8_0_one, dtheta_xst8_ast_one; double b_xst8_one, dtheta_xst8_c_one; - k_xst_one = force->numeric(FLERR,arg[2]); - cut_xst_0_one = force->numeric(FLERR,arg[3]); - cut_xst_c_one = force->numeric(FLERR,arg[4]); - cut_xst_lo_one = force->numeric(FLERR,arg[5]); - cut_xst_hi_one = force->numeric(FLERR,arg[6]); - - a_xst1_one = force->numeric(FLERR,arg[7]); - theta_xst1_0_one = force->numeric(FLERR,arg[8]); - dtheta_xst1_ast_one = force->numeric(FLERR,arg[9]); - - a_xst2_one = force->numeric(FLERR,arg[10]); - theta_xst2_0_one = force->numeric(FLERR,arg[11]); - dtheta_xst2_ast_one = force->numeric(FLERR,arg[12]); - - a_xst3_one = force->numeric(FLERR,arg[13]); - theta_xst3_0_one = force->numeric(FLERR,arg[14]); - dtheta_xst3_ast_one = force->numeric(FLERR,arg[15]); - - a_xst4_one = force->numeric(FLERR,arg[16]); - theta_xst4_0_one = force->numeric(FLERR,arg[17]); - dtheta_xst4_ast_one = force->numeric(FLERR,arg[18]); - - a_xst7_one = force->numeric(FLERR,arg[19]); - theta_xst7_0_one = force->numeric(FLERR,arg[20]); - dtheta_xst7_ast_one = force->numeric(FLERR,arg[21]); - - a_xst8_one = force->numeric(FLERR,arg[22]); - theta_xst8_0_one = force->numeric(FLERR,arg[23]); - dtheta_xst8_ast_one = force->numeric(FLERR,arg[24]); + k_xst_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_xst_0_one = utils::numeric(FLERR,arg[3],false,lmp); + cut_xst_c_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_xst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_xst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); + + a_xst1_one = utils::numeric(FLERR,arg[7],false,lmp); + theta_xst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); + dtheta_xst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); + + a_xst2_one = utils::numeric(FLERR,arg[10],false,lmp); + theta_xst2_0_one = utils::numeric(FLERR,arg[11],false,lmp); + dtheta_xst2_ast_one = utils::numeric(FLERR,arg[12],false,lmp); + + a_xst3_one = utils::numeric(FLERR,arg[13],false,lmp); + theta_xst3_0_one = utils::numeric(FLERR,arg[14],false,lmp); + dtheta_xst3_ast_one = utils::numeric(FLERR,arg[15],false,lmp); + + a_xst4_one = utils::numeric(FLERR,arg[16],false,lmp); + theta_xst4_0_one = utils::numeric(FLERR,arg[17],false,lmp); + dtheta_xst4_ast_one = utils::numeric(FLERR,arg[18],false,lmp); + + a_xst7_one = utils::numeric(FLERR,arg[19],false,lmp); + theta_xst7_0_one = utils::numeric(FLERR,arg[20],false,lmp); + dtheta_xst7_ast_one = utils::numeric(FLERR,arg[21],false,lmp); + + a_xst8_one = utils::numeric(FLERR,arg[22],false,lmp); + theta_xst8_0_one = utils::numeric(FLERR,arg[23],false,lmp); + dtheta_xst8_ast_one = utils::numeric(FLERR,arg[24],false,lmp); b_xst_lo_one = 0.25 * (cut_xst_lo_one - cut_xst_0_one) * (cut_xst_lo_one - cut_xst_0_one)/ diff --git a/src/USER-CGDNA/pair_oxrna2_stk.cpp b/src/USER-CGDNA/pair_oxrna2_stk.cpp index 64dacd6c91..1b6c577a19 100644 --- a/src/USER-CGDNA/pair_oxrna2_stk.cpp +++ b/src/USER-CGDNA/pair_oxrna2_stk.cpp @@ -894,35 +894,35 @@ void PairOxrna2Stk::coeff(int narg, char **arg) if (strcmp(arg[2],"seqav") == 0) seqdepflag = 0; if (strcmp(arg[2],"seqdep") == 0) seqdepflag = 1; - T = force->numeric(FLERR,arg[3]); - xi_st_one = force->numeric(FLERR,arg[4]); - kappa_st_one = force->numeric(FLERR,arg[5]); + T = utils::numeric(FLERR,arg[3],false,lmp); + xi_st_one = utils::numeric(FLERR,arg[4],false,lmp); + kappa_st_one = utils::numeric(FLERR,arg[5],false,lmp); epsilon_st_one = stacking_strength(xi_st_one, kappa_st_one, T); - a_st_one = force->numeric(FLERR,arg[6]); - cut_st_0_one = force->numeric(FLERR,arg[7]); - cut_st_c_one = force->numeric(FLERR,arg[8]); - cut_st_lo_one = force->numeric(FLERR,arg[9]); - cut_st_hi_one = force->numeric(FLERR,arg[10]); - - a_st5_one = force->numeric(FLERR,arg[11]); - theta_st5_0_one = force->numeric(FLERR,arg[12]); - dtheta_st5_ast_one = force->numeric(FLERR,arg[13]); - a_st6_one = force->numeric(FLERR,arg[14]); - theta_st6_0_one = force->numeric(FLERR,arg[15]); - dtheta_st6_ast_one = force->numeric(FLERR,arg[16]); - - a_st9_one = force->numeric(FLERR,arg[17]); - theta_st9_0_one = force->numeric(FLERR,arg[18]); - dtheta_st9_ast_one = force->numeric(FLERR,arg[19]); - a_st10_one = force->numeric(FLERR,arg[20]); - theta_st10_0_one = force->numeric(FLERR,arg[21]); - dtheta_st10_ast_one = force->numeric(FLERR,arg[22]); - - a_st1_one = force->numeric(FLERR,arg[23]); - cosphi_st1_ast_one = force->numeric(FLERR,arg[24]); - a_st2_one = force->numeric(FLERR,arg[25]); - cosphi_st2_ast_one = force->numeric(FLERR,arg[26]); + a_st_one = utils::numeric(FLERR,arg[6],false,lmp); + cut_st_0_one = utils::numeric(FLERR,arg[7],false,lmp); + cut_st_c_one = utils::numeric(FLERR,arg[8],false,lmp); + cut_st_lo_one = utils::numeric(FLERR,arg[9],false,lmp); + cut_st_hi_one = utils::numeric(FLERR,arg[10],false,lmp); + + a_st5_one = utils::numeric(FLERR,arg[11],false,lmp); + theta_st5_0_one = utils::numeric(FLERR,arg[12],false,lmp); + dtheta_st5_ast_one = utils::numeric(FLERR,arg[13],false,lmp); + a_st6_one = utils::numeric(FLERR,arg[14],false,lmp); + theta_st6_0_one = utils::numeric(FLERR,arg[15],false,lmp); + dtheta_st6_ast_one = utils::numeric(FLERR,arg[16],false,lmp); + + a_st9_one = utils::numeric(FLERR,arg[17],false,lmp); + theta_st9_0_one = utils::numeric(FLERR,arg[18],false,lmp); + dtheta_st9_ast_one = utils::numeric(FLERR,arg[19],false,lmp); + a_st10_one = utils::numeric(FLERR,arg[20],false,lmp); + theta_st10_0_one = utils::numeric(FLERR,arg[21],false,lmp); + dtheta_st10_ast_one = utils::numeric(FLERR,arg[22],false,lmp); + + a_st1_one = utils::numeric(FLERR,arg[23],false,lmp); + cosphi_st1_ast_one = utils::numeric(FLERR,arg[24],false,lmp); + a_st2_one = utils::numeric(FLERR,arg[25],false,lmp); + cosphi_st2_ast_one = utils::numeric(FLERR,arg[26],false,lmp); b_st_lo_one = 2*a_st_one*exp(-a_st_one*(cut_st_lo_one-cut_st_0_one))* 2*a_st_one*exp(-a_st_one*(cut_st_lo_one-cut_st_0_one))* diff --git a/src/USER-CGDNA/pair_oxrna2_xstk.cpp b/src/USER-CGDNA/pair_oxrna2_xstk.cpp index 39a155c942..11c2f2b9b1 100644 --- a/src/USER-CGDNA/pair_oxrna2_xstk.cpp +++ b/src/USER-CGDNA/pair_oxrna2_xstk.cpp @@ -604,31 +604,31 @@ void PairOxrna2Xstk::coeff(int narg, char **arg) double a_xst8_one, theta_xst8_0_one, dtheta_xst8_ast_one; double b_xst8_one, dtheta_xst8_c_one; - k_xst_one = force->numeric(FLERR,arg[2]); - cut_xst_0_one = force->numeric(FLERR,arg[3]); - cut_xst_c_one = force->numeric(FLERR,arg[4]); - cut_xst_lo_one = force->numeric(FLERR,arg[5]); - cut_xst_hi_one = force->numeric(FLERR,arg[6]); - - a_xst1_one = force->numeric(FLERR,arg[7]); - theta_xst1_0_one = force->numeric(FLERR,arg[8]); - dtheta_xst1_ast_one = force->numeric(FLERR,arg[9]); - - a_xst2_one = force->numeric(FLERR,arg[10]); - theta_xst2_0_one = force->numeric(FLERR,arg[11]); - dtheta_xst2_ast_one = force->numeric(FLERR,arg[12]); - - a_xst3_one = force->numeric(FLERR,arg[13]); - theta_xst3_0_one = force->numeric(FLERR,arg[14]); - dtheta_xst3_ast_one = force->numeric(FLERR,arg[15]); - - a_xst7_one = force->numeric(FLERR,arg[16]); - theta_xst7_0_one = force->numeric(FLERR,arg[17]); - dtheta_xst7_ast_one = force->numeric(FLERR,arg[18]); - - a_xst8_one = force->numeric(FLERR,arg[19]); - theta_xst8_0_one = force->numeric(FLERR,arg[20]); - dtheta_xst8_ast_one = force->numeric(FLERR,arg[21]); + k_xst_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_xst_0_one = utils::numeric(FLERR,arg[3],false,lmp); + cut_xst_c_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_xst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_xst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); + + a_xst1_one = utils::numeric(FLERR,arg[7],false,lmp); + theta_xst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); + dtheta_xst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); + + a_xst2_one = utils::numeric(FLERR,arg[10],false,lmp); + theta_xst2_0_one = utils::numeric(FLERR,arg[11],false,lmp); + dtheta_xst2_ast_one = utils::numeric(FLERR,arg[12],false,lmp); + + a_xst3_one = utils::numeric(FLERR,arg[13],false,lmp); + theta_xst3_0_one = utils::numeric(FLERR,arg[14],false,lmp); + dtheta_xst3_ast_one = utils::numeric(FLERR,arg[15],false,lmp); + + a_xst7_one = utils::numeric(FLERR,arg[16],false,lmp); + theta_xst7_0_one = utils::numeric(FLERR,arg[17],false,lmp); + dtheta_xst7_ast_one = utils::numeric(FLERR,arg[18],false,lmp); + + a_xst8_one = utils::numeric(FLERR,arg[19],false,lmp); + theta_xst8_0_one = utils::numeric(FLERR,arg[20],false,lmp); + dtheta_xst8_ast_one = utils::numeric(FLERR,arg[21],false,lmp); b_xst_lo_one = 0.25 * (cut_xst_lo_one - cut_xst_0_one) * (cut_xst_lo_one - cut_xst_0_one)/ diff --git a/src/USER-CGSDK/angle_sdk.cpp b/src/USER-CGSDK/angle_sdk.cpp index 077a4a2eee..d535baeda5 100644 --- a/src/USER-CGSDK/angle_sdk.cpp +++ b/src/USER-CGSDK/angle_sdk.cpp @@ -243,8 +243,8 @@ void AngleSDK::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double theta0_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double theta0_one = utils::numeric(FLERR,arg[2],false,lmp); double repscale_one=1.0; // backward compatibility with old cg/cmm style input: @@ -253,9 +253,9 @@ void AngleSDK::coeff(int narg, char **arg) // otherwise assume repscale 1.0, since we were using // epsilon to turn repulsion on or off. if (narg == 6) { - repscale_one = force->numeric(FLERR,arg[4]); + repscale_one = utils::numeric(FLERR,arg[4],false,lmp); if (repscale_one > 0.0) repscale_one = 1.0; - } else if (narg == 4) repscale_one = force->numeric(FLERR,arg[3]); + } else if (narg == 4) repscale_one = utils::numeric(FLERR,arg[3],false,lmp); else if (narg == 3) repscale_one = 1.0; else error->all(FLERR,"Incorrect args for angle coefficients"); diff --git a/src/USER-CGSDK/pair_lj_sdk.cpp b/src/USER-CGSDK/pair_lj_sdk.cpp index 7afa53be2e..cf478e85fb 100644 --- a/src/USER-CGSDK/pair_lj_sdk.cpp +++ b/src/USER-CGSDK/pair_lj_sdk.cpp @@ -234,7 +234,7 @@ void PairLJSDK::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -263,11 +263,11 @@ void PairLJSDK::coeff(int narg, char **arg) if (lj_type_one == LJ_NOT_SET) error->all(FLERR,"Cannot parse LJ type flag."); - double epsilon_one = force->numeric(FLERR,arg[3]); - double sigma_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[3],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_one = cut_global; - if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp b/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp index db2dabacaa..cd02c7f9e1 100644 --- a/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp +++ b/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp @@ -293,9 +293,9 @@ void PairLJSDKCoulLong::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[1]); + else cut_coul = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -325,11 +325,11 @@ void PairLJSDKCoulLong::coeff(int narg, char **arg) if (lj_type_one == LJ_NOT_SET) error->all(FLERR,"Cannot parse LJ type flag."); - double epsilon_one = force->numeric(FLERR,arg[3]); - double sigma_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[3],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 6) cut_lj_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_lj_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-COLVARS/fix_colvars.cpp b/src/USER-COLVARS/fix_colvars.cpp index 7ce2a93680..f9e071a0b3 100644 --- a/src/USER-COLVARS/fix_colvars.cpp +++ b/src/USER-COLVARS/fix_colvars.cpp @@ -324,7 +324,7 @@ FixColvars::FixColvars(LAMMPS *lmp, int narg, char **arg) : } else if (0 == strcmp(arg[argsdone], "output")) { out_name = strdup(arg[argsdone+1]); } else if (0 == strcmp(arg[argsdone], "seed")) { - rng_seed = force->inumeric(FLERR,arg[argsdone+1]); + rng_seed = utils::inumeric(FLERR,arg[argsdone+1],false,lmp); } else if (0 == strcmp(arg[argsdone], "unwrap")) { if (0 == strcmp(arg[argsdone+1], "yes")) { unwrap_flag = 1; diff --git a/src/USER-DIFFRACTION/fix_saed_vtk.cpp b/src/USER-DIFFRACTION/fix_saed_vtk.cpp index b6c00c2374..0a018338a4 100644 --- a/src/USER-DIFFRACTION/fix_saed_vtk.cpp +++ b/src/USER-DIFFRACTION/fix_saed_vtk.cpp @@ -48,9 +48,9 @@ FixSAEDVTK::FixSAEDVTK(LAMMPS *lmp, int narg, char **arg) : MPI_Comm_rank(world,&me); - nevery = force->inumeric(FLERR,arg[3]); - nrepeat = force->inumeric(FLERR,arg[4]); - nfreq = force->inumeric(FLERR,arg[5]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + nrepeat = utils::inumeric(FLERR,arg[4],false,lmp); + nfreq = utils::inumeric(FLERR,arg[5],false,lmp); global_freq = nfreq; @@ -568,14 +568,14 @@ void FixSAEDVTK::options(int narg, char **arg) else error->all(FLERR,"Illegal fix saed/vtk command"); if (ave == WINDOW) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix saed/vtk command"); - nwindow = force->inumeric(FLERR,arg[iarg+2]); + nwindow = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (nwindow <= 0) error->all(FLERR,"Illegal fix saed/vtk command"); } iarg += 2; if (ave == WINDOW) iarg++; } else if (strcmp(arg[iarg],"start") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix saed/vtk command"); - startstep = force->inumeric(FLERR,arg[iarg+1]); + startstep = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"overwrite") == 0) { overwrite = 1; diff --git a/src/USER-DPD/fix_eos_cv.cpp b/src/USER-DPD/fix_eos_cv.cpp index 5b25519a40..bd0e334ffc 100644 --- a/src/USER-DPD/fix_eos_cv.cpp +++ b/src/USER-DPD/fix_eos_cv.cpp @@ -29,7 +29,7 @@ FixEOScv::FixEOScv(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { if (narg != 4) error->all(FLERR,"Illegal fix eos/cv command"); - cvEOS = force->numeric(FLERR,arg[3]); + cvEOS = utils::numeric(FLERR,arg[3],false,lmp); if(cvEOS <= 0.0) error->all(FLERR,"EOS cv must be > 0.0"); nevery = 1; diff --git a/src/USER-DPD/fix_eos_table.cpp b/src/USER-DPD/fix_eos_table.cpp index dc6310ae42..04a619ac3d 100644 --- a/src/USER-DPD/fix_eos_table.cpp +++ b/src/USER-DPD/fix_eos_table.cpp @@ -41,7 +41,7 @@ FixEOStable::FixEOStable(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[3],"linear") == 0) tabstyle = LINEAR; else error->all(FLERR,"Unknown table style in fix eos/table"); - tablength = force->inumeric(FLERR,arg[5]); + tablength = utils::inumeric(FLERR,arg[5],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of eos/table entries"); ntables = 0; diff --git a/src/USER-DPD/fix_eos_table_rx.cpp b/src/USER-DPD/fix_eos_table_rx.cpp index d9641f2aab..d728f7e987 100644 --- a/src/USER-DPD/fix_eos_table_rx.cpp +++ b/src/USER-DPD/fix_eos_table_rx.cpp @@ -60,7 +60,7 @@ FixEOStableRX::FixEOStableRX(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[3],"linear") == 0) tabstyle = LINEAR; else error->all(FLERR,"Unknown table style in fix eos/table/rx"); - tablength = force->inumeric(FLERR,arg[5]); + tablength = utils::inumeric(FLERR,arg[5],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of eos/table/rx entries"); ntables = 0; diff --git a/src/USER-DPD/pair_dpd_fdt.cpp b/src/USER-DPD/pair_dpd_fdt.cpp index c6e7a78157..876d76a42f 100644 --- a/src/USER-DPD/pair_dpd_fdt.cpp +++ b/src/USER-DPD/pair_dpd_fdt.cpp @@ -249,9 +249,9 @@ void PairDPDfdt::settings(int narg, char **arg) // process keywords if (narg != 3) error->all(FLERR,"Illegal pair_style command"); - temperature = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); - seed = force->inumeric(FLERR,arg[2]); + temperature = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); + seed = utils::inumeric(FLERR,arg[2],false,lmp); // initialize Marsaglia RNG with processor-unique seed @@ -282,13 +282,13 @@ void PairDPDfdt::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a0_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double a0_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; a0_is_zero = (a0_one == 0.0); // Typical use with SSA is to set a0 to zero - if (narg == 5) cut_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-DPD/pair_dpd_fdt_energy.cpp b/src/USER-DPD/pair_dpd_fdt_energy.cpp index cbebb1dc3a..3686bcb7e9 100644 --- a/src/USER-DPD/pair_dpd_fdt_energy.cpp +++ b/src/USER-DPD/pair_dpd_fdt_energy.cpp @@ -336,8 +336,8 @@ void PairDPDfdtEnergy::settings(int narg, char **arg) // process keywords if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); - seed = force->inumeric(FLERR,arg[1]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); + seed = utils::inumeric(FLERR,arg[1],false,lmp); if (atom->dpd_flag != 1) error->all(FLERR,"pair_style dpd/fdt/energy requires atom_style with internal temperature and energies (e.g. dpd)"); @@ -370,16 +370,16 @@ void PairDPDfdtEnergy::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a0_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double a0_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; double kappa_one, alpha_one; a0_is_zero = (a0_one == 0.0); // Typical use with SSA is to set a0 to zero - kappa_one = force->numeric(FLERR,arg[4]); + kappa_one = utils::numeric(FLERR,arg[4],false,lmp); alpha_one = sqrt(2.0*force->boltz*kappa_one); - if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-DPD/pair_exp6_rx.cpp b/src/USER-DPD/pair_exp6_rx.cpp index 3e27dafe98..4ba088201e 100644 --- a/src/USER-DPD/pair_exp6_rx.cpp +++ b/src/USER-DPD/pair_exp6_rx.cpp @@ -549,7 +549,7 @@ void PairExp6rx::settings(int narg, char **arg) { if (narg < 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // optional keywords @@ -666,10 +666,10 @@ void PairExp6rx::coeff(int narg, char **arg) double cut_one = cut_global; if (strcmp(arg[5],"exponent") == 0){ scalingFlag = EXPONENT; - exponentR = force->numeric(FLERR,arg[6]); - exponentEpsilon = force->numeric(FLERR,arg[7]); + exponentR = utils::numeric(FLERR,arg[6],false,lmp); + exponentEpsilon = utils::numeric(FLERR,arg[7],false,lmp); if (narg > 9) error->all(FLERR,"Incorrect args for pair coefficients"); - if (narg == 9) cut_one = force->numeric(FLERR,arg[8]); + if (narg == 9) cut_one = utils::numeric(FLERR,arg[8],false,lmp); } else if (strcmp(arg[5],"polynomial") == 0){ scalingFlag = POLYNOMIAL; memory->create(coeffAlpha,6,"pair:coeffAlpha"); @@ -677,11 +677,11 @@ void PairExp6rx::coeff(int narg, char **arg) memory->create(coeffRm,6,"pair:coeffRm"); read_file2(arg[6]); if (narg > 8) error->all(FLERR,"Incorrect args for pair coefficients"); - if (narg == 8) cut_one = force->numeric(FLERR,arg[7]); + if (narg == 8) cut_one = utils::numeric(FLERR,arg[7],false,lmp); } else if (strcmp(arg[5],"none") == 0){ scalingFlag = NONE; if (narg > 7) error->all(FLERR,"Incorrect args for pair coefficients"); - if (narg == 7) cut_one = force->numeric(FLERR,arg[6]); + if (narg == 7) cut_one = utils::numeric(FLERR,arg[6],false,lmp); } else { error->all(FLERR,"Incorrect args for pair coefficients"); } diff --git a/src/USER-DPD/pair_multi_lucy.cpp b/src/USER-DPD/pair_multi_lucy.cpp index 143f393492..f9074d5c05 100644 --- a/src/USER-DPD/pair_multi_lucy.cpp +++ b/src/USER-DPD/pair_multi_lucy.cpp @@ -240,7 +240,7 @@ void PairMultiLucy::settings(int narg, char **arg) else if (strcmp(arg[0],"linear") == 0) tabstyle = LINEAR; else error->all(FLERR,"Unknown table style in pair_style command"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of pair table entries"); // delete old tables, since cannot just change settings @@ -282,7 +282,7 @@ void PairMultiLucy::coeff(int narg, char **arg) bcast_table(tb); // set table cutoff - if (narg == 5) tb->cut = force->numeric(FLERR,arg[4]); + if (narg == 5) tb->cut = utils::numeric(FLERR,arg[4],false,lmp); else if (tb->rflag) tb->cut = tb->rhi; else tb->cut = tb->rfile[tb->ninput-1]; diff --git a/src/USER-DPD/pair_multi_lucy_rx.cpp b/src/USER-DPD/pair_multi_lucy_rx.cpp index c8e733904c..a8e588fe01 100644 --- a/src/USER-DPD/pair_multi_lucy_rx.cpp +++ b/src/USER-DPD/pair_multi_lucy_rx.cpp @@ -329,7 +329,7 @@ void PairMultiLucyRX::settings(int narg, char **arg) else if (strcmp(arg[0],"linear") == 0) tabstyle = LINEAR; else error->all(FLERR,"Unknown table style in pair_style command"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of pair table entries"); // optional keywords @@ -398,7 +398,7 @@ void PairMultiLucyRX::coeff(int narg, char **arg) // set table cutoff - if (narg == 7) tb->cut = force->numeric(FLERR,arg[6]); + if (narg == 7) tb->cut = utils::numeric(FLERR,arg[6],false,lmp); else if (tb->rflag) tb->cut = tb->rhi; else tb->cut = tb->rfile[tb->ninput-1]; diff --git a/src/USER-DPD/pair_table_rx.cpp b/src/USER-DPD/pair_table_rx.cpp index 10790960bd..56c3e28c46 100644 --- a/src/USER-DPD/pair_table_rx.cpp +++ b/src/USER-DPD/pair_table_rx.cpp @@ -258,7 +258,7 @@ void PairTableRX::settings(int narg, char **arg) else if (strcmp(arg[0],"bitmap") == 0) tabstyle = BITMAP; else error->all(FLERR,"Unknown table style in pair_style command"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of pair table entries"); // optional keywords @@ -346,7 +346,7 @@ void PairTableRX::coeff(int narg, char **arg) // set table cutoff - if (narg == 7) tb->cut = force->numeric(FLERR,arg[6]); + if (narg == 7) tb->cut = utils::numeric(FLERR,arg[6],false,lmp); else if (tb->rflag) tb->cut = tb->rhi; else tb->cut = tb->rfile[tb->ninput-1]; diff --git a/src/USER-DRUDE/fix_langevin_drude.cpp b/src/USER-DRUDE/fix_langevin_drude.cpp index d413c31bd7..e865e9cd29 100644 --- a/src/USER-DRUDE/fix_langevin_drude.cpp +++ b/src/USER-DRUDE/fix_langevin_drude.cpp @@ -55,12 +55,12 @@ FixLangevinDrude::FixLangevinDrude(LAMMPS *lmp, int narg, char **arg) : strcpy(tstr_core,&arg[3][2]); tstyle_core = EQUAL; } else { - t_start_core = force->numeric(FLERR,arg[3]); + t_start_core = utils::numeric(FLERR,arg[3],false,lmp); t_target_core = t_start_core; tstyle_core = CONSTANT; } - t_period_core = force->numeric(FLERR,arg[4]); - int seed_core = force->inumeric(FLERR,arg[5]); + t_period_core = utils::numeric(FLERR,arg[4],false,lmp); + int seed_core = utils::inumeric(FLERR,arg[5],false,lmp); // drude temperature tstr_drude = NULL; @@ -70,12 +70,12 @@ FixLangevinDrude::FixLangevinDrude(LAMMPS *lmp, int narg, char **arg) : strcpy(tstr_drude,&arg[6][2]); tstyle_drude = EQUAL; } else { - t_start_drude = force->numeric(FLERR,arg[6]); + t_start_drude = utils::numeric(FLERR,arg[6],false,lmp); t_target_drude = t_start_drude; tstyle_drude = CONSTANT; } - t_period_drude = force->numeric(FLERR,arg[7]); - int seed_drude = force->inumeric(FLERR,arg[8]); + t_period_drude = utils::numeric(FLERR,arg[7],false,lmp); + int seed_drude = utils::inumeric(FLERR,arg[8],false,lmp); // error checks if (t_period_core <= 0.0) diff --git a/src/USER-DRUDE/pair_lj_cut_thole_long.cpp b/src/USER-DRUDE/pair_lj_cut_thole_long.cpp index 76980bf105..875b4a9cba 100644 --- a/src/USER-DRUDE/pair_lj_cut_thole_long.cpp +++ b/src/USER-DRUDE/pair_lj_cut_thole_long.cpp @@ -291,10 +291,10 @@ void PairLJCutTholeLong::settings(int narg, char **arg) { if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); - thole_global = force->numeric(FLERR,arg[0]); - cut_lj_global = force->numeric(FLERR,arg[1]); + thole_global = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj_global = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[2]); + else cut_coul = utils::numeric(FLERR,arg[2],false,lmp); // reset cutoffs that have been explicitly set @@ -323,14 +323,14 @@ void PairLJCutTholeLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double polar_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double polar_one = utils::numeric(FLERR,arg[4],false,lmp); double thole_one = thole_global; - if (narg >=6) thole_one = force->numeric(FLERR,arg[5]); + if (narg >=6) thole_one = utils::numeric(FLERR,arg[5],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 7) cut_lj_one = force->numeric(FLERR,arg[6]); + if (narg == 7) cut_lj_one = utils::numeric(FLERR,arg[6],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-DRUDE/pair_thole.cpp b/src/USER-DRUDE/pair_thole.cpp index df5fd1d92d..882fd047a9 100644 --- a/src/USER-DRUDE/pair_thole.cpp +++ b/src/USER-DRUDE/pair_thole.cpp @@ -192,8 +192,8 @@ void PairThole::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - thole_global = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + thole_global = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -222,11 +222,11 @@ void PairThole::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double polar_one = force->numeric(FLERR,arg[2]); + double polar_one = utils::numeric(FLERR,arg[2],false,lmp); double thole_one = thole_global; double cut_one = cut_global; - if (narg >=4) thole_one = force->numeric(FLERR,arg[3]); - if (narg == 5) cut_one = force->numeric(FLERR,arg[4]); + if (narg >=4) thole_one = utils::numeric(FLERR,arg[3],false,lmp); + if (narg == 5) cut_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-EFF/fix_temp_rescale_eff.cpp b/src/USER-EFF/fix_temp_rescale_eff.cpp index 4a8f4b0372..e2163990bd 100644 --- a/src/USER-EFF/fix_temp_rescale_eff.cpp +++ b/src/USER-EFF/fix_temp_rescale_eff.cpp @@ -40,17 +40,17 @@ FixTempRescaleEff::FixTempRescaleEff(LAMMPS *lmp, int narg, char **arg) : { if (narg < 8) error->all(FLERR,"Illegal fix temp/rescale/eff command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix temp/rescale/eff command"); scalar_flag = 1; global_freq = nevery; extscalar = 1; - t_start = force->numeric(FLERR,arg[4]); - t_stop = force->numeric(FLERR,arg[5]); - t_window = force->numeric(FLERR,arg[6]); - fraction = force->numeric(FLERR,arg[7]); + t_start = utils::numeric(FLERR,arg[4],false,lmp); + t_stop = utils::numeric(FLERR,arg[5],false,lmp); + t_window = utils::numeric(FLERR,arg[6],false,lmp); + fraction = utils::numeric(FLERR,arg[7],false,lmp); // create a new compute temp/eff // id = fix-ID + temp, compute group = fix group diff --git a/src/USER-EFF/pair_eff_cut.cpp b/src/USER-EFF/pair_eff_cut.cpp index a2346f0167..b9b442ed2a 100644 --- a/src/USER-EFF/pair_eff_cut.cpp +++ b/src/USER-EFF/pair_eff_cut.cpp @@ -795,7 +795,7 @@ void PairEffCut::settings(int narg, char **arg) PAULI_CORE_D[14] = 0.0; PAULI_CORE_E[14] = 0.0; - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); limit_eradius_flag = 0; pressure_with_evirials_flag = 0; @@ -815,7 +815,7 @@ void PairEffCut::settings(int narg, char **arg) else if (strcmp(arg[iarg],"ecp") == 0) { iarg += 1; while (iarg < narg) { - atype = force->inumeric(FLERR,arg[iarg]); + atype = utils::inumeric(FLERR,arg[iarg],false,lmp); if (strcmp(arg[iarg+1],"C") == 0) ecp_type[atype] = 6; else if (strcmp(arg[iarg+1],"N") == 0) ecp_type[atype] = 7; else if (strcmp(arg[iarg+1],"O") == 0) ecp_type[atype] = 8; @@ -907,7 +907,7 @@ void PairEffCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_one = cut_global; - if (narg == 3) cut_one = force->numeric(FLERR,arg[2]); + if (narg == 3) cut_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { @@ -920,19 +920,19 @@ void PairEffCut::coeff(int narg, char **arg) if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); } else { int ecp; - ecp = force->inumeric(FLERR,arg[0]); + ecp = utils::inumeric(FLERR,arg[0],false,lmp); if (strcmp(arg[1],"s") ==0) { - PAULI_CORE_A[ecp_type[ecp]] = force->numeric(FLERR,arg[2]); - PAULI_CORE_B[ecp_type[ecp]] = force->numeric(FLERR,arg[3]); - PAULI_CORE_C[ecp_type[ecp]] = force->numeric(FLERR,arg[4]); + PAULI_CORE_A[ecp_type[ecp]] = utils::numeric(FLERR,arg[2],false,lmp); + PAULI_CORE_B[ecp_type[ecp]] = utils::numeric(FLERR,arg[3],false,lmp); + PAULI_CORE_C[ecp_type[ecp]] = utils::numeric(FLERR,arg[4],false,lmp); PAULI_CORE_D[ecp_type[ecp]] = 0.0; PAULI_CORE_E[ecp_type[ecp]] = 0.0; } else if (strcmp(arg[1],"p") ==0) { - PAULI_CORE_A[ecp_type[ecp]] = force->numeric(FLERR,arg[2]); - PAULI_CORE_B[ecp_type[ecp]] = force->numeric(FLERR,arg[3]); - PAULI_CORE_C[ecp_type[ecp]] = force->numeric(FLERR,arg[4]); - PAULI_CORE_D[ecp_type[ecp]] = force->numeric(FLERR,arg[5]); - PAULI_CORE_E[ecp_type[ecp]] = force->numeric(FLERR,arg[6]); + PAULI_CORE_A[ecp_type[ecp]] = utils::numeric(FLERR,arg[2],false,lmp); + PAULI_CORE_B[ecp_type[ecp]] = utils::numeric(FLERR,arg[3],false,lmp); + PAULI_CORE_C[ecp_type[ecp]] = utils::numeric(FLERR,arg[4],false,lmp); + PAULI_CORE_D[ecp_type[ecp]] = utils::numeric(FLERR,arg[5],false,lmp); + PAULI_CORE_E[ecp_type[ecp]] = utils::numeric(FLERR,arg[6],false,lmp); } else error->all(FLERR,"Illegal pair_coeff command"); } } diff --git a/src/USER-FEP/compute_fep.cpp b/src/USER-FEP/compute_fep.cpp index 664750c7a7..488a85fc20 100644 --- a/src/USER-FEP/compute_fep.cpp +++ b/src/USER-FEP/compute_fep.cpp @@ -57,7 +57,7 @@ ComputeFEP::ComputeFEP(LAMMPS *lmp, int narg, char **arg) : fepinitflag = 0; // avoid init to run entirely when called by write_data - temp_fep = force->numeric(FLERR,arg[3]); + temp_fep = utils::numeric(FLERR,arg[3],false,lmp); // count # of perturbations diff --git a/src/USER-FEP/fix_adapt_fep.cpp b/src/USER-FEP/fix_adapt_fep.cpp index 5d5f510547..f88f2b6c40 100644 --- a/src/USER-FEP/fix_adapt_fep.cpp +++ b/src/USER-FEP/fix_adapt_fep.cpp @@ -47,7 +47,7 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { if (narg < 5) error->all(FLERR,"Illegal fix adapt/fep command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery < 0) error->all(FLERR,"Illegal fix adapt/fep command"); dynamic_group_allow = 1; diff --git a/src/USER-FEP/pair_coul_cut_soft.cpp b/src/USER-FEP/pair_coul_cut_soft.cpp index be771dc0de..fd5141525c 100644 --- a/src/USER-FEP/pair_coul_cut_soft.cpp +++ b/src/USER-FEP/pair_coul_cut_soft.cpp @@ -159,10 +159,10 @@ void PairCoulCutSoft::settings(int narg, char **arg) { if (narg != 3) error->all(FLERR,"Illegal pair_style command"); - nlambda = force->numeric(FLERR,arg[0]); - alphac = force->numeric(FLERR,arg[1]); + nlambda = utils::numeric(FLERR,arg[0],false,lmp); + alphac = utils::numeric(FLERR,arg[1],false,lmp); - cut_global = force->numeric(FLERR,arg[2]); + cut_global = utils::numeric(FLERR,arg[2],false,lmp); // reset cutoffs that have been explicitly set @@ -188,10 +188,10 @@ void PairCoulCutSoft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double lambda_one = force->numeric(FLERR,arg[2]); + double lambda_one = utils::numeric(FLERR,arg[2],false,lmp); double cut_one = cut_global; - if (narg == 4) cut_one = force->numeric(FLERR,arg[3]); + if (narg == 4) cut_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-FEP/pair_coul_long_soft.cpp b/src/USER-FEP/pair_coul_long_soft.cpp index a0273f9650..39e06ddd60 100644 --- a/src/USER-FEP/pair_coul_long_soft.cpp +++ b/src/USER-FEP/pair_coul_long_soft.cpp @@ -186,10 +186,10 @@ void PairCoulLongSoft::settings(int narg, char **arg) { if (narg != 3) error->all(FLERR,"Illegal pair_style command"); - nlambda = force->numeric(FLERR,arg[0]); - alphac = force->numeric(FLERR,arg[1]); + nlambda = utils::numeric(FLERR,arg[0],false,lmp); + alphac = utils::numeric(FLERR,arg[1],false,lmp); - cut_coul = force->numeric(FLERR,arg[2]); + cut_coul = utils::numeric(FLERR,arg[2],false,lmp); } /* ---------------------------------------------------------------------- @@ -206,7 +206,7 @@ void PairCoulLongSoft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double lambda_one = force->numeric(FLERR,arg[2]); + double lambda_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-FEP/pair_lj_charmm_coul_long_soft.cpp b/src/USER-FEP/pair_lj_charmm_coul_long_soft.cpp index eb9cedaa7b..f9149c8fb8 100644 --- a/src/USER-FEP/pair_lj_charmm_coul_long_soft.cpp +++ b/src/USER-FEP/pair_lj_charmm_coul_long_soft.cpp @@ -628,14 +628,14 @@ void PairLJCharmmCoulLongSoft::settings(int narg, char **arg) { if (narg != 5 && narg != 6) error->all(FLERR,"Illegal pair_style command"); - nlambda = force->numeric(FLERR,arg[0]); - alphalj = force->numeric(FLERR,arg[1]); - alphac = force->numeric(FLERR,arg[2]); + nlambda = utils::numeric(FLERR,arg[0],false,lmp); + alphalj = utils::numeric(FLERR,arg[1],false,lmp); + alphac = utils::numeric(FLERR,arg[2],false,lmp); - cut_lj_inner = force->numeric(FLERR,arg[3]); - cut_lj = force->numeric(FLERR,arg[4]); + cut_lj_inner = utils::numeric(FLERR,arg[3],false,lmp); + cut_lj = utils::numeric(FLERR,arg[4],false,lmp); if (narg == 5) cut_coul = cut_lj; - else cut_coul = force->numeric(FLERR,arg[5]); + else cut_coul = utils::numeric(FLERR,arg[5],false,lmp); } /* ---------------------------------------------------------------------- @@ -651,15 +651,15 @@ void PairLJCharmmCoulLongSoft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double lambda_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double lambda_one = utils::numeric(FLERR,arg[4],false,lmp); double eps14_one = epsilon_one; double sigma14_one = sigma_one; if (narg == 7) { - eps14_one = force->numeric(FLERR,arg[5]); - sigma14_one = force->numeric(FLERR,arg[6]); + eps14_one = utils::numeric(FLERR,arg[5],false,lmp); + sigma14_one = utils::numeric(FLERR,arg[6],false,lmp); } int count = 0; diff --git a/src/USER-FEP/pair_lj_class2_coul_cut_soft.cpp b/src/USER-FEP/pair_lj_class2_coul_cut_soft.cpp index 1c898033c5..f1aa99b416 100644 --- a/src/USER-FEP/pair_lj_class2_coul_cut_soft.cpp +++ b/src/USER-FEP/pair_lj_class2_coul_cut_soft.cpp @@ -198,13 +198,13 @@ void PairLJClass2CoulCutSoft::settings(int narg, char **arg) { if (narg < 4 || narg > 5) error->all(FLERR,"Illegal pair_style command"); - nlambda = force->numeric(FLERR,arg[0]); - alphalj = force->numeric(FLERR,arg[1]); - alphac = force->numeric(FLERR,arg[2]); + nlambda = utils::numeric(FLERR,arg[0],false,lmp); + alphalj = utils::numeric(FLERR,arg[1],false,lmp); + alphac = utils::numeric(FLERR,arg[2],false,lmp); - cut_lj_global = force->numeric(FLERR,arg[3]); + cut_lj_global = utils::numeric(FLERR,arg[3],false,lmp); if (narg == 4) cut_coul_global = cut_lj_global; - else cut_coul_global = force->numeric(FLERR,arg[4]); + else cut_coul_global = utils::numeric(FLERR,arg[4],false,lmp); // reset cutoffs that have been explicitly set @@ -232,16 +232,16 @@ void PairLJClass2CoulCutSoft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double lambda_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double lambda_one = utils::numeric(FLERR,arg[4],false,lmp); if (sigma_one <= 0.0) error->all(FLERR,"Incorrect args for pair coefficients"); double cut_lj_one = cut_lj_global; double cut_coul_one = cut_coul_global; - if (narg >= 6) cut_coul_one = cut_lj_one = force->numeric(FLERR,arg[5]); - if (narg == 7) cut_coul_one = force->numeric(FLERR,arg[6]); + if (narg >= 6) cut_coul_one = cut_lj_one = utils::numeric(FLERR,arg[5],false,lmp); + if (narg == 7) cut_coul_one = utils::numeric(FLERR,arg[6],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-FEP/pair_lj_class2_coul_long_soft.cpp b/src/USER-FEP/pair_lj_class2_coul_long_soft.cpp index 33b1b46c2c..19c41f04cb 100644 --- a/src/USER-FEP/pair_lj_class2_coul_long_soft.cpp +++ b/src/USER-FEP/pair_lj_class2_coul_long_soft.cpp @@ -213,13 +213,13 @@ void PairLJClass2CoulLongSoft::settings(int narg, char **arg) { if (narg < 4 || narg > 5) error->all(FLERR,"Illegal pair_style command"); - nlambda = force->numeric(FLERR,arg[0]); - alphalj = force->numeric(FLERR,arg[1]); - alphac = force->numeric(FLERR,arg[2]); + nlambda = utils::numeric(FLERR,arg[0],false,lmp); + alphalj = utils::numeric(FLERR,arg[1],false,lmp); + alphac = utils::numeric(FLERR,arg[2],false,lmp); - cut_lj_global = force->numeric(FLERR,arg[3]); + cut_lj_global = utils::numeric(FLERR,arg[3],false,lmp); if (narg == 4) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[4]); + else cut_coul = utils::numeric(FLERR,arg[4],false,lmp); // reset cutoffs that have been explicitly set @@ -245,14 +245,14 @@ void PairLJClass2CoulLongSoft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double lambda_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double lambda_one = utils::numeric(FLERR,arg[4],false,lmp); if (sigma_one <= 0.0) error->all(FLERR,"Incorrect args for pair coefficients"); double cut_lj_one = cut_lj_global; - if (narg == 6) cut_lj_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_lj_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-FEP/pair_lj_class2_soft.cpp b/src/USER-FEP/pair_lj_class2_soft.cpp index aa6d08afe1..3c1869da08 100644 --- a/src/USER-FEP/pair_lj_class2_soft.cpp +++ b/src/USER-FEP/pair_lj_class2_soft.cpp @@ -169,10 +169,10 @@ void PairLJClass2Soft::settings(int narg, char **arg) { if (narg != 3) error->all(FLERR,"Illegal pair_style command"); - nlambda = force->numeric(FLERR,arg[0]); - alphalj = force->numeric(FLERR,arg[1]); + nlambda = utils::numeric(FLERR,arg[0],false,lmp); + alphalj = utils::numeric(FLERR,arg[1],false,lmp); - cut_global = force->numeric(FLERR,arg[2]); + cut_global = utils::numeric(FLERR,arg[2],false,lmp); // reset cutoffs that have been explicitly set @@ -197,13 +197,13 @@ void PairLJClass2Soft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double lambda_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double lambda_one = utils::numeric(FLERR,arg[4],false,lmp); if (sigma_one <= 0.0) error->all(FLERR,"Incorrect args for pair coefficients"); double cut_one = cut_global; - if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-FEP/pair_lj_cut_coul_cut_soft.cpp b/src/USER-FEP/pair_lj_cut_coul_cut_soft.cpp index 7f62467f94..4a92a6fcef 100644 --- a/src/USER-FEP/pair_lj_cut_coul_cut_soft.cpp +++ b/src/USER-FEP/pair_lj_cut_coul_cut_soft.cpp @@ -198,13 +198,13 @@ void PairLJCutCoulCutSoft::settings(int narg, char **arg) { if (narg < 4 || narg > 5) error->all(FLERR,"Illegal pair_style command"); - nlambda = force->numeric(FLERR,arg[0]); - alphalj = force->numeric(FLERR,arg[1]); - alphac = force->numeric(FLERR,arg[2]); + nlambda = utils::numeric(FLERR,arg[0],false,lmp); + alphalj = utils::numeric(FLERR,arg[1],false,lmp); + alphac = utils::numeric(FLERR,arg[2],false,lmp); - cut_lj_global = force->numeric(FLERR,arg[3]); + cut_lj_global = utils::numeric(FLERR,arg[3],false,lmp); if (narg == 4) cut_coul_global = cut_lj_global; - else cut_coul_global = force->numeric(FLERR,arg[4]); + else cut_coul_global = utils::numeric(FLERR,arg[4],false,lmp); // reset cutoffs that have been explicitly set @@ -233,16 +233,16 @@ void PairLJCutCoulCutSoft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double lambda_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double lambda_one = utils::numeric(FLERR,arg[4],false,lmp); if (sigma_one <= 0.0) error->all(FLERR,"Incorrect args for pair coefficients"); double cut_lj_one = cut_lj_global; double cut_coul_one = cut_coul_global; - if (narg >= 6) cut_coul_one = cut_lj_one = force->numeric(FLERR,arg[5]); - if (narg == 7) cut_coul_one = force->numeric(FLERR,arg[6]); + if (narg >= 6) cut_coul_one = cut_lj_one = utils::numeric(FLERR,arg[5],false,lmp); + if (narg == 7) cut_coul_one = utils::numeric(FLERR,arg[6],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-FEP/pair_lj_cut_coul_long_soft.cpp b/src/USER-FEP/pair_lj_cut_coul_long_soft.cpp index c813c23bc2..56cf31b9d3 100644 --- a/src/USER-FEP/pair_lj_cut_coul_long_soft.cpp +++ b/src/USER-FEP/pair_lj_cut_coul_long_soft.cpp @@ -566,13 +566,13 @@ void PairLJCutCoulLongSoft::settings(int narg, char **arg) { if (narg < 4 || narg > 5) error->all(FLERR,"Illegal pair_style command"); - nlambda = force->numeric(FLERR,arg[0]); - alphalj = force->numeric(FLERR,arg[1]); - alphac = force->numeric(FLERR,arg[2]); + nlambda = utils::numeric(FLERR,arg[0],false,lmp); + alphalj = utils::numeric(FLERR,arg[1],false,lmp); + alphac = utils::numeric(FLERR,arg[2],false,lmp); - cut_lj_global = force->numeric(FLERR,arg[3]); + cut_lj_global = utils::numeric(FLERR,arg[3],false,lmp); if (narg == 4) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[4]); + else cut_coul = utils::numeric(FLERR,arg[4],false,lmp); // reset cutoffs that have been explicitly set @@ -598,14 +598,14 @@ void PairLJCutCoulLongSoft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double lambda_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double lambda_one = utils::numeric(FLERR,arg[4],false,lmp); if (sigma_one <= 0.0) error->all(FLERR,"Incorrect args for pair coefficients"); double cut_lj_one = cut_lj_global; - if (narg == 6) cut_lj_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_lj_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-FEP/pair_lj_cut_soft.cpp b/src/USER-FEP/pair_lj_cut_soft.cpp index 09ebd375a5..2ab677c454 100644 --- a/src/USER-FEP/pair_lj_cut_soft.cpp +++ b/src/USER-FEP/pair_lj_cut_soft.cpp @@ -450,10 +450,10 @@ void PairLJCutSoft::settings(int narg, char **arg) { if (narg != 3) error->all(FLERR,"Illegal pair_style command"); - nlambda = force->numeric(FLERR,arg[0]); - alphalj = force->numeric(FLERR,arg[1]); + nlambda = utils::numeric(FLERR,arg[0],false,lmp); + alphalj = utils::numeric(FLERR,arg[1],false,lmp); - cut_global = force->numeric(FLERR,arg[2]); + cut_global = utils::numeric(FLERR,arg[2],false,lmp); // reset cutoffs that have been explicitly set @@ -479,14 +479,14 @@ void PairLJCutSoft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double lambda_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double lambda_one = utils::numeric(FLERR,arg[4],false,lmp); if (sigma_one <= 0.0) error->all(FLERR,"Incorrect args for pair coefficients"); double cut_one = cut_global; - if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-FEP/pair_lj_cut_tip4p_long_soft.cpp b/src/USER-FEP/pair_lj_cut_tip4p_long_soft.cpp index 0601a641ac..35342f68d8 100644 --- a/src/USER-FEP/pair_lj_cut_tip4p_long_soft.cpp +++ b/src/USER-FEP/pair_lj_cut_tip4p_long_soft.cpp @@ -413,18 +413,18 @@ void PairLJCutTIP4PLongSoft::settings(int narg, char **arg) { if (narg < 9 || narg > 10) error->all(FLERR,"Illegal pair_style command"); - typeO = force->inumeric(FLERR,arg[0]); - typeH = force->inumeric(FLERR,arg[1]); - typeB = force->inumeric(FLERR,arg[2]); - typeA = force->inumeric(FLERR,arg[3]); - qdist = force->numeric(FLERR,arg[4]); - nlambda = force->numeric(FLERR,arg[5]); - alphalj = force->numeric(FLERR,arg[6]); - alphac = force->numeric(FLERR,arg[7]); - - cut_lj_global = force->numeric(FLERR,arg[8]); + typeO = utils::inumeric(FLERR,arg[0],false,lmp); + typeH = utils::inumeric(FLERR,arg[1],false,lmp); + typeB = utils::inumeric(FLERR,arg[2],false,lmp); + typeA = utils::inumeric(FLERR,arg[3],false,lmp); + qdist = utils::numeric(FLERR,arg[4],false,lmp); + nlambda = utils::numeric(FLERR,arg[5],false,lmp); + alphalj = utils::numeric(FLERR,arg[6],false,lmp); + alphac = utils::numeric(FLERR,arg[7],false,lmp); + + cut_lj_global = utils::numeric(FLERR,arg[8],false,lmp); if (narg == 9) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[9]); + else cut_coul = utils::numeric(FLERR,arg[9],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/USER-FEP/pair_morse_soft.cpp b/src/USER-FEP/pair_morse_soft.cpp index b1f514711f..904799e1d3 100644 --- a/src/USER-FEP/pair_morse_soft.cpp +++ b/src/USER-FEP/pair_morse_soft.cpp @@ -180,13 +180,13 @@ void PairMorseSoft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double d0_one = force->numeric(FLERR,arg[2]); - double alpha_one = force->numeric(FLERR,arg[3]); - double r0_one = force->numeric(FLERR,arg[4]); - double lambda_one = force->numeric(FLERR,arg[5]); + double d0_one = utils::numeric(FLERR,arg[2],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[3],false,lmp); + double r0_one = utils::numeric(FLERR,arg[4],false,lmp); + double lambda_one = utils::numeric(FLERR,arg[5],false,lmp); double cut_one = cut_global; - if (narg == 7) cut_one = force->numeric(FLERR,arg[6]); + if (narg == 7) cut_one = utils::numeric(FLERR,arg[6],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { @@ -212,9 +212,9 @@ void PairMorseSoft::settings(int narg, char **arg) { if (narg != 3) error->all(FLERR,"Illegal pair_style command"); - nlambda = force->inumeric(FLERR,arg[0]); - shift_range = force->numeric(FLERR,arg[1]); - cut_global = force->numeric(FLERR,arg[2]); + nlambda = utils::inumeric(FLERR,arg[0],false,lmp); + shift_range = utils::numeric(FLERR,arg[1],false,lmp); + cut_global = utils::numeric(FLERR,arg[2],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/USER-FEP/pair_tip4p_long_soft.cpp b/src/USER-FEP/pair_tip4p_long_soft.cpp index d5e1ae116c..fa130a9dc6 100644 --- a/src/USER-FEP/pair_tip4p_long_soft.cpp +++ b/src/USER-FEP/pair_tip4p_long_soft.cpp @@ -381,16 +381,16 @@ void PairTIP4PLongSoft::settings(int narg, char **arg) { if (narg != 8) error->all(FLERR,"Illegal pair_style command"); - typeO = force->inumeric(FLERR,arg[0]); - typeH = force->inumeric(FLERR,arg[1]); - typeB = force->inumeric(FLERR,arg[2]); - typeA = force->inumeric(FLERR,arg[3]); - qdist = force->numeric(FLERR,arg[4]); + typeO = utils::inumeric(FLERR,arg[0],false,lmp); + typeH = utils::inumeric(FLERR,arg[1],false,lmp); + typeB = utils::inumeric(FLERR,arg[2],false,lmp); + typeA = utils::inumeric(FLERR,arg[3],false,lmp); + qdist = utils::numeric(FLERR,arg[4],false,lmp); - nlambda = force->numeric(FLERR,arg[5]); - alphac = force->numeric(FLERR,arg[6]); + nlambda = utils::numeric(FLERR,arg[5],false,lmp); + alphac = utils::numeric(FLERR,arg[6],false,lmp); - cut_coul = force->numeric(FLERR,arg[7]); + cut_coul = utils::numeric(FLERR,arg[7],false,lmp); } /* ---------------------------------------------------------------------- diff --git a/src/USER-H5MD/dump_h5md.cpp b/src/USER-H5MD/dump_h5md.cpp index af77258780..0c07e844cb 100644 --- a/src/USER-H5MD/dump_h5md.cpp +++ b/src/USER-H5MD/dump_h5md.cpp @@ -74,7 +74,7 @@ DumpH5MD::DumpH5MD(LAMMPS *lmp, int narg, char **arg) : Dump(lmp, narg, arg) datafile_from_dump = -1; author_name=NULL; - every_dump = force->inumeric(FLERR,arg[3]); + every_dump = utils::inumeric(FLERR,arg[3],false,lmp); every_position = every_image = -1; every_velocity = every_force = every_species = -1; every_charge = -1; diff --git a/src/USER-INTEL/fix_intel.cpp b/src/USER-INTEL/fix_intel.cpp index 1f8b5175b8..7bd510b189 100644 --- a/src/USER-INTEL/fix_intel.cpp +++ b/src/USER-INTEL/fix_intel.cpp @@ -59,7 +59,7 @@ FixIntel::FixIntel(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { if (narg < 4) error->all(FLERR,"Illegal package intel command"); - int ncops = force->inumeric(FLERR,arg[3]); + int ncops = utils::inumeric(FLERR,arg[3],false,lmp); _nbor_pack_width = 1; _three_body_neighbor = 0; @@ -106,7 +106,7 @@ FixIntel::FixIntel(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) while (iarg < narg) { if (strcmp(arg[iarg],"omp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package intel command"); - nomp = force->inumeric(FLERR,arg[iarg+1]); + nomp = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"mode") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package intel command"); @@ -120,7 +120,7 @@ FixIntel::FixIntel(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) iarg += 2; } else if (strcmp(arg[iarg],"balance") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package intel command"); - _offload_balance = force->numeric(FLERR,arg[iarg+1]); + _offload_balance = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg], "ghost") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package intel command"); diff --git a/src/USER-MANIFOLD/fix_manifoldforce.cpp b/src/USER-MANIFOLD/fix_manifoldforce.cpp index 74a9a1833f..41074903bd 100644 --- a/src/USER-MANIFOLD/fix_manifoldforce.cpp +++ b/src/USER-MANIFOLD/fix_manifoldforce.cpp @@ -92,7 +92,7 @@ FixManifoldForce::FixManifoldForce(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Equal-style variables not allowed with fix manifoldforce"); // Use force->numeric to trigger an error if arg is not a number. - params[i] = force->numeric(FLERR,arg[i+4]); + params[i] = utils::numeric(FLERR,arg[i+4],false,lmp); } diff --git a/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp b/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp index 312db1c411..2baa2944ae 100644 --- a/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp +++ b/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp @@ -91,8 +91,8 @@ FixNVEManifoldRattle::FixNVEManifoldRattle( LAMMPS *lmp, int &narg, char **arg, next_output = 0; dtv = dtf = 0; - tolerance = force->numeric( FLERR, arg[3] ); - max_iter = force->numeric( FLERR, arg[4] ); + tolerance = utils::numeric( FLERR, arg[3] ,false,lmp); + max_iter = utils::numeric( FLERR, arg[4] ,false,lmp); ptr_m = create_manifold(arg[5], lmp, narg, arg); if (!ptr_m) { @@ -124,7 +124,7 @@ FixNVEManifoldRattle::FixNVEManifoldRattle( LAMMPS *lmp, int &narg, char **arg, is_var[i] = 1; offset = 2; } else { - force->numeric(FLERR,arg[i+6]); // Check if legal number. + utils::numeric(FLERR,arg[i+6],false,lmp); // Check if legal number. len = strlen( arg[i+6] ) + 1; // +1 for \0. is_var[i] = 0; } @@ -137,7 +137,7 @@ FixNVEManifoldRattle::FixNVEManifoldRattle( LAMMPS *lmp, int &narg, char **arg, if (!ptr_m->params ) error->all(FLERR,"Failed to allocate params!"); for( int i = 0; i < nvars; ++i ){ // If param i was variable type, it will be set later... - ptr_m->params[i] = is_var[i] ? 0.0 : force->numeric( FLERR, arg[i+6] ); + ptr_m->params[i] = is_var[i] ? 0.0 : utils::numeric( FLERR, arg[i+6] ,false,lmp); } ptr_m->post_param_init(); @@ -146,7 +146,7 @@ FixNVEManifoldRattle::FixNVEManifoldRattle( LAMMPS *lmp, int &narg, char **arg, int argi = 6 + nvars; while( argi < narg ){ if (strcmp(arg[argi], "every") == 0) { - nevery = force->inumeric(FLERR,arg[argi+1]); + nevery = utils::inumeric(FLERR,arg[argi+1],false,lmp); next_output = update->ntimestep + nevery; if (comm->me == 0) { fprintf(screen,"Outputting every %d steps, next is %d\n", diff --git a/src/USER-MANIFOLD/fix_nvt_manifold_rattle.cpp b/src/USER-MANIFOLD/fix_nvt_manifold_rattle.cpp index db3267db28..f07e414ac9 100644 --- a/src/USER-MANIFOLD/fix_nvt_manifold_rattle.cpp +++ b/src/USER-MANIFOLD/fix_nvt_manifold_rattle.cpp @@ -101,9 +101,9 @@ FixNVTManifoldRattle::FixNVTManifoldRattle(LAMMPS *lmp, int narg, char **arg, if (argi+3 >= narg) error->all(FLERR,"Keyword 'temp' needs 3 arguments"); - t_start = force->numeric(FLERR, arg[argi+1]); - t_stop = force->numeric(FLERR, arg[argi+2]); - t_period = force->numeric(FLERR, arg[argi+3]); + t_start = utils::numeric(FLERR, arg[argi+1],false,lmp); + t_stop = utils::numeric(FLERR, arg[argi+2],false,lmp); + t_period = utils::numeric(FLERR, arg[argi+3],false,lmp); t_target = t_start; got_temp = 1; @@ -112,7 +112,7 @@ FixNVTManifoldRattle::FixNVTManifoldRattle(LAMMPS *lmp, int narg, char **arg, if (argi+1 >= narg) error->all(FLERR,"Keyword 'tchain' needs 1 argument"); - mtchain = force->inumeric(FLERR, arg[argi+1]); + mtchain = utils::inumeric(FLERR, arg[argi+1],false,lmp); argi += 2; } else if (error_on_unknown_keyword) { char msg[2048]; diff --git a/src/USER-MESODPD/compute_tdpd_cc_atom.cpp b/src/USER-MESODPD/compute_tdpd_cc_atom.cpp index 6378ed5ef6..bc02c93e1a 100644 --- a/src/USER-MESODPD/compute_tdpd_cc_atom.cpp +++ b/src/USER-MESODPD/compute_tdpd_cc_atom.cpp @@ -31,7 +31,7 @@ ComputeTDPDCCAtom::ComputeTDPDCCAtom(LAMMPS *lmp, int narg, char **arg) : if (narg != 4) error->all(FLERR,"Number of arguments for compute tdpd/cc/atom command != 4"); if (atom->tdpd_flag != 1) error->all(FLERR,"compute tdpd/cc/atom command requires atom_style with concentration (e.g. tdpd)"); - index = force->inumeric(FLERR,arg[3]); + index = utils::inumeric(FLERR,arg[3],false,lmp); peratom_flag = 1; size_peratom_cols = 0; diff --git a/src/USER-MESODPD/fix_edpd_source.cpp b/src/USER-MESODPD/fix_edpd_source.cpp index e62d9a8a79..9d31e5f410 100644 --- a/src/USER-MESODPD/fix_edpd_source.cpp +++ b/src/USER-MESODPD/fix_edpd_source.cpp @@ -38,21 +38,21 @@ FixEDPDSource::FixEDPDSource(LAMMPS *lmp, int narg, char **arg) : if(option == 0){ if (narg != 9 ) error->all(FLERR,"Illegal fix edpd/source command (5 args for sphere)"); - center[0] = force->numeric(FLERR,arg[iarg++]); - center[1] = force->numeric(FLERR,arg[iarg++]); - center[2] = force->numeric(FLERR,arg[iarg++]); - radius = force->numeric(FLERR,arg[iarg++]); - value = force->numeric(FLERR,arg[iarg++]); + center[0] = utils::numeric(FLERR,arg[iarg++],false,lmp); + center[1] = utils::numeric(FLERR,arg[iarg++],false,lmp); + center[2] = utils::numeric(FLERR,arg[iarg++],false,lmp); + radius = utils::numeric(FLERR,arg[iarg++],false,lmp); + value = utils::numeric(FLERR,arg[iarg++],false,lmp); } else if(option == 1){ if (narg != 11 ) error->all(FLERR,"Illegal fix edpd/edpd command (7 args for cuboid)"); - center[0] = force->numeric(FLERR,arg[iarg++]); - center[1] = force->numeric(FLERR,arg[iarg++]); - center[2] = force->numeric(FLERR,arg[iarg++]); - dLx = force->numeric(FLERR,arg[iarg++]); - dLy = force->numeric(FLERR,arg[iarg++]); - dLz = force->numeric(FLERR,arg[iarg++]); - value = force->numeric(FLERR,arg[iarg++]); + center[0] = utils::numeric(FLERR,arg[iarg++],false,lmp); + center[1] = utils::numeric(FLERR,arg[iarg++],false,lmp); + center[2] = utils::numeric(FLERR,arg[iarg++],false,lmp); + dLx = utils::numeric(FLERR,arg[iarg++],false,lmp); + dLy = utils::numeric(FLERR,arg[iarg++],false,lmp); + dLz = utils::numeric(FLERR,arg[iarg++],false,lmp); + value = utils::numeric(FLERR,arg[iarg++],false,lmp); } else error->all(FLERR,"Illegal fix edpd/source command"); } diff --git a/src/USER-MESODPD/fix_mvv_dpd.cpp b/src/USER-MESODPD/fix_mvv_dpd.cpp index 116bbf506a..4e82085baa 100644 --- a/src/USER-MESODPD/fix_mvv_dpd.cpp +++ b/src/USER-MESODPD/fix_mvv_dpd.cpp @@ -39,7 +39,7 @@ FixMvvDPD::FixMvvDPD(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal fix mvv/dpd command"); verlet = 0.5; - if(narg > 3) verlet = force->numeric(FLERR,arg[3]); + if(narg > 3) verlet = utils::numeric(FLERR,arg[3],false,lmp); dynamic_group_allow = 1; time_integrate = 1; diff --git a/src/USER-MESODPD/fix_mvv_edpd.cpp b/src/USER-MESODPD/fix_mvv_edpd.cpp index 3294d8d682..a0a4bac0b7 100644 --- a/src/USER-MESODPD/fix_mvv_edpd.cpp +++ b/src/USER-MESODPD/fix_mvv_edpd.cpp @@ -48,7 +48,7 @@ FixMvvEDPD::FixMvvEDPD(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal fix mvv/edpd command"); verlet = 0.5; - if(narg > 3) verlet = force->numeric(FLERR,arg[3]); + if(narg > 3) verlet = utils::numeric(FLERR,arg[3],false,lmp); dynamic_group_allow = 1; time_integrate = 1; diff --git a/src/USER-MESODPD/fix_mvv_tdpd.cpp b/src/USER-MESODPD/fix_mvv_tdpd.cpp index b7fe37d7ee..87978eebe3 100644 --- a/src/USER-MESODPD/fix_mvv_tdpd.cpp +++ b/src/USER-MESODPD/fix_mvv_tdpd.cpp @@ -44,7 +44,7 @@ FixMvvTDPD::FixMvvTDPD(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal fix mvv/tdpd command"); verlet = 0.5; - if(narg > 3) verlet = force->numeric(FLERR,arg[3]); + if(narg > 3) verlet = utils::numeric(FLERR,arg[3],false,lmp); cc_species = atom->cc_species; diff --git a/src/USER-MESODPD/fix_tdpd_source.cpp b/src/USER-MESODPD/fix_tdpd_source.cpp index 990f6a5b78..7c19d78b1f 100644 --- a/src/USER-MESODPD/fix_tdpd_source.cpp +++ b/src/USER-MESODPD/fix_tdpd_source.cpp @@ -30,7 +30,7 @@ FixTDPDSource::FixTDPDSource(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal fix tdpd/source command"); int iarg = 3; - cc_index = force->inumeric(FLERR,arg[iarg++]); + cc_index = utils::inumeric(FLERR,arg[iarg++],false,lmp); if (strcmp(arg[iarg],"sphere") == 0) option = 0; else if (strcmp(arg[iarg],"cuboid") == 0) option = 1; @@ -39,21 +39,21 @@ FixTDPDSource::FixTDPDSource(LAMMPS *lmp, int narg, char **arg) : if(option == 0){ if (narg != 10 ) error->all(FLERR,"Illegal fix tdpd/source command (5 args for sphere)"); - center[0] = force->numeric(FLERR,arg[iarg++]); - center[1] = force->numeric(FLERR,arg[iarg++]); - center[2] = force->numeric(FLERR,arg[iarg++]); - radius = force->numeric(FLERR,arg[iarg++]); - value = force->numeric(FLERR,arg[iarg++]); + center[0] = utils::numeric(FLERR,arg[iarg++],false,lmp); + center[1] = utils::numeric(FLERR,arg[iarg++],false,lmp); + center[2] = utils::numeric(FLERR,arg[iarg++],false,lmp); + radius = utils::numeric(FLERR,arg[iarg++],false,lmp); + value = utils::numeric(FLERR,arg[iarg++],false,lmp); } else if(option == 1){ if (narg != 12 ) error->all(FLERR,"Illegal fix tdpd/edpd command (7 args for cuboid)"); - center[0] = force->numeric(FLERR,arg[iarg++]); - center[1] = force->numeric(FLERR,arg[iarg++]); - center[2] = force->numeric(FLERR,arg[iarg++]); - dLx = force->numeric(FLERR,arg[iarg++]); - dLy = force->numeric(FLERR,arg[iarg++]); - dLz = force->numeric(FLERR,arg[iarg++]); - value = force->numeric(FLERR,arg[iarg++]); + center[0] = utils::numeric(FLERR,arg[iarg++],false,lmp); + center[1] = utils::numeric(FLERR,arg[iarg++],false,lmp); + center[2] = utils::numeric(FLERR,arg[iarg++],false,lmp); + dLx = utils::numeric(FLERR,arg[iarg++],false,lmp); + dLy = utils::numeric(FLERR,arg[iarg++],false,lmp); + dLz = utils::numeric(FLERR,arg[iarg++],false,lmp); + value = utils::numeric(FLERR,arg[iarg++],false,lmp); } else error->all(FLERR,"Illegal fix tdpd/source command"); } diff --git a/src/USER-MESODPD/pair_edpd.cpp b/src/USER-MESODPD/pair_edpd.cpp index b4264985e4..60a437a47c 100644 --- a/src/USER-MESODPD/pair_edpd.cpp +++ b/src/USER-MESODPD/pair_edpd.cpp @@ -270,8 +270,8 @@ void PairEDPD::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); - seed = force->inumeric(FLERR,arg[1]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); + seed = utils::inumeric(FLERR,arg[1],false,lmp); // initialize Marsaglia RNG with processor-unique seed @@ -309,13 +309,13 @@ void PairEDPD::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a0_one = force->numeric(FLERR,arg[2]); - double gamma_one = force->numeric(FLERR,arg[3]); - double power_one = force->numeric(FLERR,arg[4]); - double cut_one = force->numeric(FLERR,arg[5]); - double kappa_one = force->numeric(FLERR,arg[6]); - double powerT_one= force->numeric(FLERR,arg[7]); - double cutT_one = force->numeric(FLERR,arg[8]); + double a0_one = utils::numeric(FLERR,arg[2],false,lmp); + double gamma_one = utils::numeric(FLERR,arg[3],false,lmp); + double power_one = utils::numeric(FLERR,arg[4],false,lmp); + double cut_one = utils::numeric(FLERR,arg[5],false,lmp); + double kappa_one = utils::numeric(FLERR,arg[6],false,lmp); + double powerT_one= utils::numeric(FLERR,arg[7],false,lmp); + double cutT_one = utils::numeric(FLERR,arg[8],false,lmp); int iarg = 9; power_flag = kappa_flag = 0; @@ -325,14 +325,14 @@ void PairEDPD::coeff(int narg, char **arg) if (strcmp(arg[iarg],"power") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal pair edpd coefficients"); for (int i = 0; i < 4; i++) - sc_one[i] = force->numeric(FLERR,arg[iarg+i+1]); + sc_one[i] = utils::numeric(FLERR,arg[iarg+i+1],false,lmp); iarg += 5; power_flag = 1; memory->create(sc,n+1,n+1,4,"pair:sc"); } else if (strcmp(arg[iarg],"kappa") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal pair edpd coefficients"); for (int i = 0; i < 4; i++) - kc_one[i] = force->numeric(FLERR,arg[iarg+i+1]); + kc_one[i] = utils::numeric(FLERR,arg[iarg+i+1],false,lmp); iarg += 5; kappa_flag = 1; memory->create(kc,n+1,n+1,4,"pair:kc"); diff --git a/src/USER-MESODPD/pair_mdpd.cpp b/src/USER-MESODPD/pair_mdpd.cpp index f46f88861b..755008f443 100644 --- a/src/USER-MESODPD/pair_mdpd.cpp +++ b/src/USER-MESODPD/pair_mdpd.cpp @@ -211,9 +211,9 @@ void PairMDPD::settings(int narg, char **arg) { if (narg != 3) error->all(FLERR,"Illegal pair_style command"); - temperature = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); - seed = force->inumeric(FLERR,arg[2]); + temperature = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); + seed = utils::inumeric(FLERR,arg[2],false,lmp); // initialize Marsaglia RNG with processor-unique seed @@ -248,11 +248,11 @@ void PairMDPD::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double A_one = force->numeric(FLERR,arg[2]); - double B_one = force->numeric(FLERR,arg[3]); - double gamma_one = force->numeric(FLERR,arg[4]); - double cut_one = force->numeric(FLERR,arg[5]); - double cut_two = force->numeric(FLERR,arg[6]); + double A_one = utils::numeric(FLERR,arg[2],false,lmp); + double B_one = utils::numeric(FLERR,arg[3],false,lmp); + double gamma_one = utils::numeric(FLERR,arg[4],false,lmp); + double cut_one = utils::numeric(FLERR,arg[5],false,lmp); + double cut_two = utils::numeric(FLERR,arg[6],false,lmp); if(cut_one < cut_two) error->all(FLERR,"Incorrect args for pair coefficients\n cutA should be larger than cutB."); diff --git a/src/USER-MESODPD/pair_mdpd_rhosum.cpp b/src/USER-MESODPD/pair_mdpd_rhosum.cpp index 6f60234af3..bfbc6f7c82 100644 --- a/src/USER-MESODPD/pair_mdpd_rhosum.cpp +++ b/src/USER-MESODPD/pair_mdpd_rhosum.cpp @@ -200,7 +200,7 @@ void PairMDPDRhoSum::coeff(int narg, char **arg) { utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); - double cut_one = force->numeric(FLERR,arg[2]); + double cut_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MESODPD/pair_tdpd.cpp b/src/USER-MESODPD/pair_tdpd.cpp index 0da187fd7b..face9221d9 100644 --- a/src/USER-MESODPD/pair_tdpd.cpp +++ b/src/USER-MESODPD/pair_tdpd.cpp @@ -233,9 +233,9 @@ void PairTDPD::settings(int narg, char **arg) { if (narg != 3) error->all(FLERR,"Illegal pair_style command"); - temperature = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); - seed = force->inumeric(FLERR,arg[2]); + temperature = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); + seed = utils::inumeric(FLERR,arg[2],false,lmp); // initialize Marsaglia RNG with processor-unique seed @@ -272,18 +272,18 @@ void PairTDPD::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a0_one = force->numeric(FLERR,arg[2]); - double gamma_one = force->numeric(FLERR,arg[3]); - double power_one = force->numeric(FLERR,arg[4]); - double cut_one = force->numeric(FLERR,arg[5]); - double cutcc_one = force->numeric(FLERR,arg[6]); + double a0_one = utils::numeric(FLERR,arg[2],false,lmp); + double gamma_one = utils::numeric(FLERR,arg[3],false,lmp); + double power_one = utils::numeric(FLERR,arg[4],false,lmp); + double cut_one = utils::numeric(FLERR,arg[5],false,lmp); + double cutcc_one = utils::numeric(FLERR,arg[6],false,lmp); double *kappa_one = new double[cc_species]; double *epsilon_one = new double[cc_species]; double *powercc_one = new double[cc_species]; for(int k=0; knumeric(FLERR,arg[7+3*k]); - epsilon_one[k] = force->numeric(FLERR,arg[8+3*k]); - powercc_one[k] = force->numeric(FLERR,arg[9+3*k]); + kappa_one[k] = utils::numeric(FLERR,arg[7+3*k],false,lmp); + epsilon_one[k] = utils::numeric(FLERR,arg[8+3*k],false,lmp); + powercc_one[k] = utils::numeric(FLERR,arg[9+3*k],false,lmp); } int count = 0; diff --git a/src/USER-MESONT/pair_mesont_tpm.cpp b/src/USER-MESONT/pair_mesont_tpm.cpp index 1f91b0e823..9fb0f604c8 100644 --- a/src/USER-MESONT/pair_mesont_tpm.cpp +++ b/src/USER-MESONT/pair_mesont_tpm.cpp @@ -586,7 +586,7 @@ void PairMESONTTPM::allocate(){ void PairMESONTTPM::settings(int narg, char **arg){ if ((narg == 0) || (narg > 4)) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set if (allocated) { @@ -604,12 +604,12 @@ void PairMESONTTPM::settings(int narg, char **arg){ mesont_lib_SetTablePath(tab_path, tab_path_length); if (narg > 2) { - BendingMode = force->numeric(FLERR,arg[2]); + BendingMode = utils::numeric(FLERR,arg[2],false,lmp); if ((BendingMode < 0) || (BendingMode > 1)) error->all(FLERR,"Incorrect BendingMode"); } if (narg > 3) { - TPMType = force->numeric(FLERR,arg[3]); + TPMType = utils::numeric(FLERR,arg[3],false,lmp); if ((TPMType < 0) || (TPMType > 1)) error->all(FLERR,"Incorrect TPMType"); } @@ -643,7 +643,7 @@ void PairMESONTTPM::coeff(int narg, char **arg){ utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_one = cut_global; - if (narg == 3) cut_one = force->numeric(FLERR,arg[2]); + if (narg == 3) cut_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/angle_cosine_shift.cpp b/src/USER-MISC/angle_cosine_shift.cpp index f2a3ddc54b..2ed1a85672 100644 --- a/src/USER-MISC/angle_cosine_shift.cpp +++ b/src/USER-MISC/angle_cosine_shift.cpp @@ -177,8 +177,8 @@ void AngleCosineShift::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double umin = force->numeric(FLERR,arg[1]); - double theta0 = force->numeric(FLERR,arg[2]); + double umin = utils::numeric(FLERR,arg[1],false,lmp); + double theta0 = utils::numeric(FLERR,arg[2],false,lmp); // k=Umin/2 diff --git a/src/USER-MISC/angle_cosine_shift_exp.cpp b/src/USER-MISC/angle_cosine_shift_exp.cpp index ec1a02bf30..fb1cc0a4e6 100644 --- a/src/USER-MISC/angle_cosine_shift_exp.cpp +++ b/src/USER-MISC/angle_cosine_shift_exp.cpp @@ -205,9 +205,9 @@ void AngleCosineShiftExp::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double umin_ = force->numeric(FLERR,arg[1]); - double theta0_ = force->numeric(FLERR,arg[2]); - double a_ = force->numeric(FLERR,arg[3]); + double umin_ = utils::numeric(FLERR,arg[1],false,lmp); + double theta0_ = utils::numeric(FLERR,arg[2],false,lmp); + double a_ = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/angle_dipole.cpp b/src/USER-MISC/angle_dipole.cpp index 1f959192a5..6e449fe472 100644 --- a/src/USER-MISC/angle_dipole.cpp +++ b/src/USER-MISC/angle_dipole.cpp @@ -162,8 +162,8 @@ void AngleDipole::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double gamma0_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double gamma0_one = utils::numeric(FLERR,arg[2],false,lmp); // convert gamma0 from degrees to radians diff --git a/src/USER-MISC/angle_fourier.cpp b/src/USER-MISC/angle_fourier.cpp index c1ddc0d640..5f34be8d65 100644 --- a/src/USER-MISC/angle_fourier.cpp +++ b/src/USER-MISC/angle_fourier.cpp @@ -181,10 +181,10 @@ void AngleFourier::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double C0_one = force->numeric(FLERR,arg[2]); - double C1_one = force->numeric(FLERR,arg[3]); - double C2_one = force->numeric(FLERR,arg[4]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double C0_one = utils::numeric(FLERR,arg[2],false,lmp); + double C1_one = utils::numeric(FLERR,arg[3],false,lmp); + double C2_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/angle_fourier_simple.cpp b/src/USER-MISC/angle_fourier_simple.cpp index 640922ceba..cddc07da90 100644 --- a/src/USER-MISC/angle_fourier_simple.cpp +++ b/src/USER-MISC/angle_fourier_simple.cpp @@ -195,9 +195,9 @@ void AngleFourierSimple::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double C_one = force->numeric(FLERR,arg[2]); - double N_one = force->numeric(FLERR,arg[3]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double C_one = utils::numeric(FLERR,arg[2],false,lmp); + double N_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/angle_quartic.cpp b/src/USER-MISC/angle_quartic.cpp index 7ad97cebd4..c84739ac91 100644 --- a/src/USER-MISC/angle_quartic.cpp +++ b/src/USER-MISC/angle_quartic.cpp @@ -185,10 +185,10 @@ void AngleQuartic::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double theta0_one = force->numeric(FLERR,arg[1]); - double k2_one = force->numeric(FLERR,arg[2]); - double k3_one = force->numeric(FLERR,arg[3]); - double k4_one = force->numeric(FLERR,arg[4]); + double theta0_one = utils::numeric(FLERR,arg[1],false,lmp); + double k2_one = utils::numeric(FLERR,arg[2],false,lmp); + double k3_one = utils::numeric(FLERR,arg[3],false,lmp); + double k4_one = utils::numeric(FLERR,arg[4],false,lmp); // convert theta0 from degrees to radians diff --git a/src/USER-MISC/bond_harmonic_shift.cpp b/src/USER-MISC/bond_harmonic_shift.cpp index 87e40ecc86..dd2c1a1524 100644 --- a/src/USER-MISC/bond_harmonic_shift.cpp +++ b/src/USER-MISC/bond_harmonic_shift.cpp @@ -130,9 +130,9 @@ void BondHarmonicShift::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double Umin = force->numeric(FLERR,arg[1]); // energy at minimum - double r0_one = force->numeric(FLERR,arg[2]); // position of minimum - double r1_one = force->numeric(FLERR,arg[3]); // position where energy = 0 + double Umin = utils::numeric(FLERR,arg[1],false,lmp); // energy at minimum + double r0_one = utils::numeric(FLERR,arg[2],false,lmp); // position of minimum + double r1_one = utils::numeric(FLERR,arg[3],false,lmp); // position where energy = 0 if (r0_one == r1_one) error->all(FLERR,"Bond harmonic/shift r0 and r1 must be different"); diff --git a/src/USER-MISC/bond_harmonic_shift_cut.cpp b/src/USER-MISC/bond_harmonic_shift_cut.cpp index abf01d9739..2cbfa01c0a 100644 --- a/src/USER-MISC/bond_harmonic_shift_cut.cpp +++ b/src/USER-MISC/bond_harmonic_shift_cut.cpp @@ -132,9 +132,9 @@ void BondHarmonicShiftCut::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double Umin = force->numeric(FLERR,arg[1]); // energy at minimum - double r0_one = force->numeric(FLERR,arg[2]); // position of minimum - double r1_one = force->numeric(FLERR,arg[3]); // position where energy = 0 = cutoff + double Umin = utils::numeric(FLERR,arg[1],false,lmp); // energy at minimum + double r0_one = utils::numeric(FLERR,arg[2],false,lmp); // position of minimum + double r1_one = utils::numeric(FLERR,arg[3],false,lmp); // position where energy = 0 = cutoff if (r0_one == r1_one) error->all(FLERR,"Bond harmonic/shift/cut r0 and r1 must be different"); diff --git a/src/USER-MISC/bond_special.cpp b/src/USER-MISC/bond_special.cpp index 87b3db95e8..ebbdcb1899 100644 --- a/src/USER-MISC/bond_special.cpp +++ b/src/USER-MISC/bond_special.cpp @@ -146,8 +146,8 @@ void BondSpecial::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double factor_lj_one = force->numeric(FLERR,arg[1]); - double factor_coul_one = force->numeric(FLERR,arg[2]); + double factor_lj_one = utils::numeric(FLERR,arg[1],false,lmp); + double factor_coul_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/compute_cnp_atom.cpp b/src/USER-MISC/compute_cnp_atom.cpp index 34882b0272..fdce944034 100644 --- a/src/USER-MISC/compute_cnp_atom.cpp +++ b/src/USER-MISC/compute_cnp_atom.cpp @@ -56,7 +56,7 @@ ComputeCNPAtom::ComputeCNPAtom(LAMMPS *lmp, int narg, char **arg) : peratom_flag = 1; size_peratom_cols = 0; - double cutoff = force->numeric(FLERR,arg[3]); + double cutoff = utils::numeric(FLERR,arg[3],false,lmp); if (cutoff < 0.0) error->all(FLERR,"Illegal compute cnp/atom command"); cutsq = cutoff*cutoff; diff --git a/src/USER-MISC/compute_entropy_atom.cpp b/src/USER-MISC/compute_entropy_atom.cpp index 2641ec9313..d539d51e99 100644 --- a/src/USER-MISC/compute_entropy_atom.cpp +++ b/src/USER-MISC/compute_entropy_atom.cpp @@ -55,10 +55,10 @@ ComputeEntropyAtom(LAMMPS *lmp, int narg, char **arg) : // local is optional and allows using the local density to normalize // the g(r) - sigma = force->numeric(FLERR,arg[3]); + sigma = utils::numeric(FLERR,arg[3],false,lmp); if (sigma <= 0.0) error->all(FLERR,"Illegal compute entropy/atom" " command; sigma must be positive"); - cutoff = force->numeric(FLERR,arg[4]); + cutoff = utils::numeric(FLERR,arg[4],false,lmp); if (cutoff <= 0.0) error->all(FLERR,"Illegal compute entropy/atom" " command; cutoff must be positive"); @@ -77,7 +77,7 @@ ComputeEntropyAtom(LAMMPS *lmp, int narg, char **arg) : else if (strcmp(arg[iarg+1],"no") == 0) avg_flag = 0; else error->all(FLERR,"Illegal compute entropy/atom;" " argument after avg should be yes or no"); - cutoff2 = force->numeric(FLERR,arg[iarg+2]); + cutoff2 = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (cutoff2 < 0.0) error->all(FLERR,"Illegal compute entropy/atom" " command; negative cutoff2"); cutsq2 = cutoff2*cutoff2; diff --git a/src/USER-MISC/compute_hma.cpp b/src/USER-MISC/compute_hma.cpp index d1f3e6b6f8..ccecf43aaf 100644 --- a/src/USER-MISC/compute_hma.cpp +++ b/src/USER-MISC/compute_hma.cpp @@ -145,7 +145,7 @@ ComputeHMA::ComputeHMA(LAMMPS *lmp, int narg, char **arg) : if (iarg+2 > narg) error->all(FLERR,"Illegal compute hma command"); if (computeP>-1) continue; computeP = size_vector; - deltaPcap = force->numeric(FLERR, arg[iarg+1]); + deltaPcap = utils::numeric(FLERR, arg[iarg+1],false,lmp); extlist[size_vector] = 0; size_vector++; iarg++; diff --git a/src/USER-MISC/compute_pressure_cylinder.cpp b/src/USER-MISC/compute_pressure_cylinder.cpp index 6d2509d685..8346bd3410 100644 --- a/src/USER-MISC/compute_pressure_cylinder.cpp +++ b/src/USER-MISC/compute_pressure_cylinder.cpp @@ -56,10 +56,10 @@ ComputePressureCyl::ComputePressureCyl(LAMMPS *lmp, int narg, char **arg) : if (lmp->citeme) lmp->citeme->add(cite_compute_pressure_cylinder); if (narg != 7) error->all(FLERR,"Illegal compute pressure/cylinder command"); - zlo=force->numeric(FLERR,arg[3]); - zhi=force->numeric(FLERR,arg[4]); - Rmax=force->numeric(FLERR,arg[5]); - bin_width=force->numeric(FLERR,arg[6]); + zlo=utils::numeric(FLERR,arg[3],false,lmp); + zhi=utils::numeric(FLERR,arg[4],false,lmp); + Rmax=utils::numeric(FLERR,arg[5],false,lmp); + bin_width=utils::numeric(FLERR,arg[6],false,lmp); if ((bin_width <= 0.0) || (bin_width > Rmax)) error->all(FLERR,"Illegal compute pressure/cylinder command"); diff --git a/src/USER-MISC/compute_stress_mop.cpp b/src/USER-MISC/compute_stress_mop.cpp index c403ed3247..1e42a9df02 100644 --- a/src/USER-MISC/compute_stress_mop.cpp +++ b/src/USER-MISC/compute_stress_mop.cpp @@ -65,7 +65,7 @@ ComputeStressMop::ComputeStressMop(LAMMPS *lmp, int narg, char **arg) : pos = domain->boxhi[dir]; } else if (strcmp(arg[4],"center")==0) { pos = 0.5*(domain->boxlo[dir]+domain->boxhi[dir]); - } else pos = force->numeric(FLERR,arg[4]); + } else pos = utils::numeric(FLERR,arg[4],false,lmp); if ( pos < (domain->boxlo[dir]+domain->prd_half[dir]) ) { pos1 = pos + domain->prd[dir]; diff --git a/src/USER-MISC/compute_stress_mop_profile.cpp b/src/USER-MISC/compute_stress_mop_profile.cpp index 9649a61090..022840166f 100644 --- a/src/USER-MISC/compute_stress_mop_profile.cpp +++ b/src/USER-MISC/compute_stress_mop_profile.cpp @@ -65,8 +65,8 @@ ComputeStressMopProfile::ComputeStressMopProfile(LAMMPS *lmp, int narg, char **a else if (strcmp(arg[4],"upper") == 0) originflag = UPPER; else originflag = COORD; if (originflag == COORD) - origin = force->numeric(FLERR,arg[4]); - delta = force->numeric(FLERR,arg[5]); + origin = utils::numeric(FLERR,arg[4],false,lmp); + delta = utils::numeric(FLERR,arg[5],false,lmp); invdelta = 1.0/delta; // parse values until one isn't recognized diff --git a/src/USER-MISC/dihedral_cosine_shift_exp.cpp b/src/USER-MISC/dihedral_cosine_shift_exp.cpp index 2098e713cc..1b3afb13eb 100644 --- a/src/USER-MISC/dihedral_cosine_shift_exp.cpp +++ b/src/USER-MISC/dihedral_cosine_shift_exp.cpp @@ -278,9 +278,9 @@ void DihedralCosineShiftExp::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); - double umin_ = force->numeric(FLERR,arg[1]); - double theta0_ = force->numeric(FLERR,arg[2]); - double a_ = force->numeric(FLERR,arg[3]); + double umin_ = utils::numeric(FLERR,arg[1],false,lmp); + double theta0_ = utils::numeric(FLERR,arg[2],false,lmp); + double a_ = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/dihedral_fourier.cpp b/src/USER-MISC/dihedral_fourier.cpp index aafef7d7d5..e897e58649 100644 --- a/src/USER-MISC/dihedral_fourier.cpp +++ b/src/USER-MISC/dihedral_fourier.cpp @@ -306,7 +306,7 @@ void DihedralFourier::coeff(int narg, char **arg) double k_one; int multiplicity_one; double shift_one; - int nterms_one = force->inumeric(FLERR,arg[1]); + int nterms_one = utils::inumeric(FLERR,arg[1],false,lmp); if (nterms_one < 1) error->all(FLERR,"Incorrect number of terms arg for dihedral coefficients"); @@ -324,9 +324,9 @@ void DihedralFourier::coeff(int narg, char **arg) sin_shift[i] = new double [nterms_one]; for (int j = 0; jnumeric(FLERR,arg[offset+1]); - multiplicity_one = force->inumeric(FLERR,arg[offset+2]); - shift_one = force->numeric(FLERR,arg[offset+3]); + k_one = utils::numeric(FLERR,arg[offset+1],false,lmp); + multiplicity_one = utils::inumeric(FLERR,arg[offset+2],false,lmp); + shift_one = utils::numeric(FLERR,arg[offset+3],false,lmp); k[i][j] = k_one; multiplicity[i][j] = multiplicity_one; shift[i][j] = shift_one; diff --git a/src/USER-MISC/dihedral_nharmonic.cpp b/src/USER-MISC/dihedral_nharmonic.cpp index 15ffb6914d..0ff62320e4 100644 --- a/src/USER-MISC/dihedral_nharmonic.cpp +++ b/src/USER-MISC/dihedral_nharmonic.cpp @@ -277,7 +277,7 @@ void DihedralNHarmonic::coeff(int narg, char **arg) { if (narg < 4 ) error->all(FLERR,"Incorrect args for dihedral coefficients"); - int n = force->inumeric(FLERR,arg[1]); + int n = utils::inumeric(FLERR,arg[1],false,lmp); if (narg != n + 2) error->all(FLERR,"Incorrect args for dihedral coefficients"); @@ -291,7 +291,7 @@ void DihedralNHarmonic::coeff(int narg, char **arg) a[i] = new double [n]; nterms[i] = n; for (int j = 0; j < n; j++ ) { - a[i][j] = force->numeric(FLERR,arg[2+j]); + a[i][j] = utils::numeric(FLERR,arg[2+j],false,lmp); setflag[i] = 1; } count++; diff --git a/src/USER-MISC/dihedral_quadratic.cpp b/src/USER-MISC/dihedral_quadratic.cpp index 30aeb34c0d..d91c237838 100644 --- a/src/USER-MISC/dihedral_quadratic.cpp +++ b/src/USER-MISC/dihedral_quadratic.cpp @@ -289,8 +289,8 @@ void DihedralQuadratic::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double phi0_one= force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double phi0_one= utils::numeric(FLERR,arg[2],false,lmp); // require k >= 0 if (k_one < 0.0) diff --git a/src/USER-MISC/dihedral_spherical.cpp b/src/USER-MISC/dihedral_spherical.cpp index 6a10b19523..1cfb756127 100644 --- a/src/USER-MISC/dihedral_spherical.cpp +++ b/src/USER-MISC/dihedral_spherical.cpp @@ -683,7 +683,7 @@ void DihedralSpherical::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); - int nterms_one = force->inumeric(FLERR,arg[1]); + int nterms_one = utils::inumeric(FLERR,arg[1],false,lmp); if (nterms_one < 1) error->all(FLERR,"Incorrect number of terms arg for dihedral coefficients"); @@ -706,16 +706,16 @@ void DihedralSpherical::coeff(int narg, char **arg) theta2_offset[i] = new double [nterms_one]; for (int j = 0; j < nterms_one; j++) { int offset = 1+10*j; - Ccoeff[i][j] = force->numeric(FLERR,arg[offset+1]); - phi_mult[i][j] = force->numeric(FLERR,arg[offset+2]); - phi_shift[i][j] = force->numeric(FLERR,arg[offset+3]) * MY_PI/180.0; - phi_offset[i][j] = force->numeric(FLERR,arg[offset+4]); - theta1_mult[i][j] = force->numeric(FLERR,arg[offset+5]); - theta1_shift[i][j] = force->numeric(FLERR,arg[offset+6]) * MY_PI/180.0; - theta1_offset[i][j] = force->numeric(FLERR,arg[offset+7]); - theta2_mult[i][j] = force->numeric(FLERR,arg[offset+8]); - theta2_shift[i][j] = force->numeric(FLERR,arg[offset+9]) * MY_PI/180.0; - theta2_offset[i][j] = force->numeric(FLERR,arg[offset+10]); + Ccoeff[i][j] = utils::numeric(FLERR,arg[offset+1],false,lmp); + phi_mult[i][j] = utils::numeric(FLERR,arg[offset+2],false,lmp); + phi_shift[i][j] = utils::numeric(FLERR,arg[offset+3],false,lmp) * MY_PI/180.0; + phi_offset[i][j] = utils::numeric(FLERR,arg[offset+4],false,lmp); + theta1_mult[i][j] = utils::numeric(FLERR,arg[offset+5],false,lmp); + theta1_shift[i][j] = utils::numeric(FLERR,arg[offset+6],false,lmp) * MY_PI/180.0; + theta1_offset[i][j] = utils::numeric(FLERR,arg[offset+7],false,lmp); + theta2_mult[i][j] = utils::numeric(FLERR,arg[offset+8],false,lmp); + theta2_shift[i][j] = utils::numeric(FLERR,arg[offset+9],false,lmp) * MY_PI/180.0; + theta2_offset[i][j] = utils::numeric(FLERR,arg[offset+10],false,lmp); } setflag[i] = 1; count++; diff --git a/src/USER-MISC/dihedral_table.cpp b/src/USER-MISC/dihedral_table.cpp index eb09472a39..37410ba085 100644 --- a/src/USER-MISC/dihedral_table.cpp +++ b/src/USER-MISC/dihedral_table.cpp @@ -782,7 +782,7 @@ void DihedralTable::settings(int narg, char **arg) else if (strcmp(arg[0],"spline") == 0) tabstyle = SPLINE; else error->all(FLERR,"Unknown table style in dihedral style table"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 3) error->all(FLERR,"Illegal number of dihedral table entries"); // delete old tables, since cannot just change settings diff --git a/src/USER-MISC/dihedral_table_cut.cpp b/src/USER-MISC/dihedral_table_cut.cpp index 239ae9a0a0..a734a8e998 100644 --- a/src/USER-MISC/dihedral_table_cut.cpp +++ b/src/USER-MISC/dihedral_table_cut.cpp @@ -764,7 +764,7 @@ void DihedralTableCut::settings(int narg, char **arg) else if (strcmp(arg[0],"spline") == 0) tabstyle = SPLINE; else error->all(FLERR,"Unknown table style in dihedral style table_cut"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 3) error->all(FLERR,"Illegal number of dihedral table entries"); // delete old tables, since cannot just change settings @@ -796,9 +796,9 @@ void DihedralTableCut::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[2]); - double theta0_1_one = force->numeric(FLERR,arg[3]); - double theta0_2_one = force->numeric(FLERR,arg[4]); + double k_one = utils::numeric(FLERR,arg[2],false,lmp); + double theta0_1_one = utils::numeric(FLERR,arg[3],false,lmp); + double theta0_2_one = utils::numeric(FLERR,arg[4],false,lmp); // convert theta0's from degrees to radians diff --git a/src/USER-MISC/fix_accelerate_cos.cpp b/src/USER-MISC/fix_accelerate_cos.cpp index 88e33023fd..17d6e9ad94 100644 --- a/src/USER-MISC/fix_accelerate_cos.cpp +++ b/src/USER-MISC/fix_accelerate_cos.cpp @@ -37,7 +37,7 @@ using namespace FixConst; FixAccelerateCos::FixAccelerateCos(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { if (narg < 4) error->all(FLERR, "Illegal fix accelerate/cos command"); - acceleration = force->numeric(FLERR, arg[3]); + acceleration = utils::numeric(FLERR, arg[3],false,lmp); if (domain->dimension == 2) error->all(FLERR,"Fix accelerate/cos cannot be used with 2d systems"); } diff --git a/src/USER-MISC/fix_addtorque.cpp b/src/USER-MISC/fix_addtorque.cpp index 665f1d4a60..4583d76e09 100644 --- a/src/USER-MISC/fix_addtorque.cpp +++ b/src/USER-MISC/fix_addtorque.cpp @@ -58,7 +58,7 @@ FixAddTorque::FixAddTorque(LAMMPS *lmp, int narg, char **arg) : xstr = new char[n]; strcpy(xstr,&arg[3][2]); } else { - xvalue = force->numeric(FLERR,arg[3]); + xvalue = utils::numeric(FLERR,arg[3],false,lmp); xstyle = CONSTANT; } if (strstr(arg[4],"v_") == arg[4]) { @@ -66,7 +66,7 @@ FixAddTorque::FixAddTorque(LAMMPS *lmp, int narg, char **arg) : ystr = new char[n]; strcpy(ystr,&arg[4][2]); } else { - yvalue = force->numeric(FLERR,arg[4]); + yvalue = utils::numeric(FLERR,arg[4],false,lmp); ystyle = CONSTANT; } if (strstr(arg[5],"v_") == arg[5]) { @@ -74,7 +74,7 @@ FixAddTorque::FixAddTorque(LAMMPS *lmp, int narg, char **arg) : zstr = new char[n]; strcpy(zstr,&arg[5][2]); } else { - zvalue = force->numeric(FLERR,arg[5]); + zvalue = utils::numeric(FLERR,arg[5],false,lmp); zstyle = CONSTANT; } diff --git a/src/USER-MISC/fix_ave_correlate_long.cpp b/src/USER-MISC/fix_ave_correlate_long.cpp index 4d548d585a..abfa751d15 100644 --- a/src/USER-MISC/fix_ave_correlate_long.cpp +++ b/src/USER-MISC/fix_ave_correlate_long.cpp @@ -70,8 +70,8 @@ FixAveCorrelateLong::FixAveCorrelateLong(LAMMPS * lmp, int narg, char **arg): MPI_Comm_rank(world,&me); - nevery = force->inumeric(FLERR,arg[3]); - nfreq = force->inumeric(FLERR,arg[4]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + nfreq = utils::inumeric(FLERR,arg[4],false,lmp); restart_global = 1; global_freq = nfreq; @@ -142,22 +142,22 @@ FixAveCorrelateLong::FixAveCorrelateLong(LAMMPS * lmp, int narg, char **arg): } else if (strcmp(arg[iarg],"start") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate/long command"); - startstep = force->inumeric(FLERR,arg[iarg+1]); + startstep = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"ncorr") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate/long command"); - numcorrelators = force->inumeric(FLERR,arg[iarg+1]); + numcorrelators = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"nlen") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate/long command"); - p = force->inumeric(FLERR,arg[iarg+1]); + p = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"ncount") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate/long command"); - m = force->inumeric(FLERR,arg[iarg+1]); + m = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"file") == 0) { if (iarg+2 > narg) diff --git a/src/USER-MISC/fix_electron_stopping.cpp b/src/USER-MISC/fix_electron_stopping.cpp index 2130f07420..5ef0a1cb2f 100644 --- a/src/USER-MISC/fix_electron_stopping.cpp +++ b/src/USER-MISC/fix_electron_stopping.cpp @@ -57,7 +57,7 @@ FixElectronStopping::FixElectronStopping(LAMMPS *lmp, int narg, char **arg) : if (narg < 5) error->all(FLERR, "Illegal fix electron/stopping command: too few arguments"); - Ecut = force->numeric(FLERR, arg[3]); + Ecut = utils::numeric(FLERR, arg[3],false,lmp); if (Ecut <= 0.0) error->all(FLERR, "Illegal fix electron/stopping command: Ecut <= 0"); @@ -83,7 +83,7 @@ FixElectronStopping::FixElectronStopping(LAMMPS *lmp, int narg, char **arg) : minneighflag = true; if (iarg+2 > narg) error->all(FLERR, "Illegal fix electron/stopping command: minneigh number missing"); - minneigh = force->inumeric(FLERR, arg[iarg+1]); + minneigh = utils::inumeric(FLERR, arg[iarg+1],false,lmp); if (minneigh < 0) error->all(FLERR, "Illegal fix electron/stopping command: minneigh < 0"); iarg += 2; @@ -261,7 +261,7 @@ void FixElectronStopping::read_table(const char *file) int i = 0; for ( ; i < ncol && pch != NULL; i++) { - elstop_ranges[i][l] = force->numeric(FLERR, pch); + elstop_ranges[i][l] = utils::numeric(FLERR, pch,false,lmp); pch = strtok(NULL, " \t\n\r"); } diff --git a/src/USER-MISC/fix_ffl.cpp b/src/USER-MISC/fix_ffl.cpp index a245b6b4e5..4460c55183 100644 --- a/src/USER-MISC/fix_ffl.cpp +++ b/src/USER-MISC/fix_ffl.cpp @@ -64,21 +64,22 @@ FixFFL::FixFFL(LAMMPS *lmp, int narg, char **arg) : time_integrate = 1; scalar_flag = 1; - //gamma = 1/ time constant(tau) - if (force->numeric(FLERR,arg[3]) <= 0) + //gamma = 1 / time constant(tau) + gamma = utils::numeric(FLERR,arg[3],false,lmp); + if (gamma <= 0.0) error->all(FLERR,"Illegal fix ffl tau value, should be greater than 0"); - gamma = 1.0/force->numeric(FLERR,arg[3]); + gamma = 1.0/gamma; ffl_every=1; ffl_step=0; // start temperature (t ramp) - t_start = force->numeric(FLERR,arg[4]); + t_start = utils::numeric(FLERR,arg[4],false,lmp); // final temperature (t ramp) - t_stop = force->numeric(FLERR,arg[5]); + t_stop = utils::numeric(FLERR,arg[5],false,lmp); // PRNG seed - int seed = force->inumeric(FLERR,arg[6]); + int seed = utils::inumeric(FLERR,arg[6],false,lmp); // Flip type used, uses rescale if no flip is given if (narg == 8) { diff --git a/src/USER-MISC/fix_filter_corotate.cpp b/src/USER-MISC/fix_filter_corotate.cpp index 52e979d32c..18fd784861 100644 --- a/src/USER-MISC/fix_filter_corotate.cpp +++ b/src/USER-MISC/fix_filter_corotate.cpp @@ -110,25 +110,25 @@ FixFilterCorotate::FixFilterCorotate(LAMMPS *lmp, int narg, char **arg) : // read numeric args of b,a,t,m else if (mode == 'b') { - int i = force->inumeric(FLERR,arg[next]); + int i = utils::inumeric(FLERR,arg[next],false,lmp); if (i < 1 || i > atom->nbondtypes) error->all(FLERR,"Invalid bond type index for fix filter/corotate"); bond_flag[i] = 1; } else if (mode == 'a') { - int i = force->inumeric(FLERR,arg[next]); + int i = utils::inumeric(FLERR,arg[next],false,lmp); if (i < 1 || i > atom->nangletypes) error->all(FLERR,"Invalid angle type index for fix filter/corotate"); angle_flag[i] = 1; } else if (mode == 't') { - int i = force->inumeric(FLERR,arg[next]); + int i = utils::inumeric(FLERR,arg[next],false,lmp); if (i < 1 || i > atom->ntypes) error->all(FLERR,"Invalid atom type index for fix filter/corotate"); type_flag[i] = 1; } else if (mode == 'm') { - double massone = force->numeric(FLERR,arg[next]); + double massone = utils::numeric(FLERR,arg[next],false,lmp); if (massone == 0.0) error->all(FLERR,"Invalid atom mass for fix filter/corotate"); if (nmass == atom->ntypes) diff --git a/src/USER-MISC/fix_flow_gauss.cpp b/src/USER-MISC/fix_flow_gauss.cpp index c7b7f86d37..2463e18b40 100644 --- a/src/USER-MISC/fix_flow_gauss.cpp +++ b/src/USER-MISC/fix_flow_gauss.cpp @@ -71,7 +71,7 @@ FixFlowGauss::FixFlowGauss(LAMMPS *lmp, int narg, char **arg) : int tmpFlag; for (int ii=0; ii<3; ii++) { - tmpFlag=force->inumeric(FLERR,arg[3+ii]); + tmpFlag=utils::inumeric(FLERR,arg[3+ii],false,lmp); if (tmpFlag==1 || tmpFlag==0) flow[ii]=tmpFlag; else diff --git a/src/USER-MISC/fix_gle.cpp b/src/USER-MISC/fix_gle.cpp index 87dbb19496..aa791679cb 100644 --- a/src/USER-MISC/fix_gle.cpp +++ b/src/USER-MISC/fix_gle.cpp @@ -197,7 +197,7 @@ FixGLE::FixGLE(LAMMPS *lmp, int narg, char **arg) : time_integrate = 1; // number of additional momenta - ns = force->inumeric(FLERR,arg[3]); + ns = utils::inumeric(FLERR,arg[3],false,lmp); ns1sq = (ns+1)*(ns+1); // allocate GLE matrices @@ -209,13 +209,13 @@ FixGLE::FixGLE(LAMMPS *lmp, int narg, char **arg) : ST = new double[ns1sq]; // start temperature (t ramp) - t_start = force->numeric(FLERR,arg[4]); + t_start = utils::numeric(FLERR,arg[4],false,lmp); // final temperature (t ramp) - t_stop = force->numeric(FLERR,arg[5]); + t_stop = utils::numeric(FLERR,arg[5],false,lmp); // PRNG seed - int seed = force->inumeric(FLERR,arg[6]); + int seed = utils::inumeric(FLERR,arg[6],false,lmp); // LOADING A matrix FILE *fgle = NULL; @@ -276,7 +276,7 @@ FixGLE::FixGLE(LAMMPS *lmp, int narg, char **arg) : if (iarg+2>narg) error->all(FLERR, "Did not specify interval for applying the GLE"); - gle_every=force->inumeric(FLERR,arg[iarg+1]); + gle_every=utils::inumeric(FLERR,arg[iarg+1],false,lmp); } } diff --git a/src/USER-MISC/fix_grem.cpp b/src/USER-MISC/fix_grem.cpp index 9600cce90e..b17c601f05 100644 --- a/src/USER-MISC/fix_grem.cpp +++ b/src/USER-MISC/fix_grem.cpp @@ -52,9 +52,9 @@ FixGrem::FixGrem(LAMMPS *lmp, int narg, char **arg) : // tbath - temp of bath, the same as defined in thermostat - lambda = force->numeric(FLERR,arg[3]); - eta = force->numeric(FLERR,arg[4]); - h0 = force->numeric(FLERR,arg[5]); + lambda = utils::numeric(FLERR,arg[3],false,lmp); + eta = utils::numeric(FLERR,arg[4],false,lmp); + h0 = utils::numeric(FLERR,arg[5],false,lmp); int n = strlen(arg[6])+1; id_nh = new char[n]; diff --git a/src/USER-MISC/fix_imd.cpp b/src/USER-MISC/fix_imd.cpp index 266142b529..af4a517269 100644 --- a/src/USER-MISC/fix_imd.cpp +++ b/src/USER-MISC/fix_imd.cpp @@ -446,7 +446,7 @@ FixIMD::FixIMD(LAMMPS *lmp, int narg, char **arg) : if (narg < 4) error->all(FLERR,"Illegal fix imd command"); - imd_port = force->inumeric(FLERR,arg[3]); + imd_port = utils::inumeric(FLERR,arg[3],false,lmp); if (imd_port < 1024) error->all(FLERR,"Illegal fix imd parameter: port < 1024"); @@ -473,9 +473,9 @@ FixIMD::FixIMD(LAMMPS *lmp, int narg, char **arg) : nowait_flag = 0; } } else if (0 == strcmp(arg[argsdone], "fscale")) { - imd_fscale = force->numeric(FLERR,arg[argsdone+1]); + imd_fscale = utils::numeric(FLERR,arg[argsdone+1],false,lmp); } else if (0 == strcmp(arg[argsdone], "trate")) { - imd_trate = force->inumeric(FLERR,arg[argsdone+1]); + imd_trate = utils::inumeric(FLERR,arg[argsdone+1],false,lmp); } else { error->all(FLERR,"Unknown fix imd parameter"); } diff --git a/src/USER-MISC/fix_ipi.cpp b/src/USER-MISC/fix_ipi.cpp index 74e757c2e9..b1d07eef41 100644 --- a/src/USER-MISC/fix_ipi.cpp +++ b/src/USER-MISC/fix_ipi.cpp @@ -185,7 +185,7 @@ FixIPI::FixIPI(LAMMPS *lmp, int narg, char **arg) : error->warning(FLERR,"Fix ipi always uses group all"); host = strdup(arg[3]); - port = force->inumeric(FLERR,arg[4]); + port = utils::inumeric(FLERR,arg[4],false,lmp); inet = ((narg > 5) && (strcmp(arg[5],"unix") == 0) ) ? 0 : 1; master = (comm->me==0) ? 1 : 0; diff --git a/src/USER-MISC/fix_momentum_chunk.cpp b/src/USER-MISC/fix_momentum_chunk.cpp index fe6c2f5bea..0ed5e1f877 100644 --- a/src/USER-MISC/fix_momentum_chunk.cpp +++ b/src/USER-MISC/fix_momentum_chunk.cpp @@ -41,7 +41,7 @@ FixMomentumChunk::FixMomentumChunk(LAMMPS *lmp, int narg, char **arg) : { if (narg < 5) error->all(FLERR,"Illegal fix momentum/chunk command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix momentum/chunk command"); id_chunk = arg[4]; @@ -60,9 +60,9 @@ FixMomentumChunk::FixMomentumChunk(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"linear") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix momentum command"); linear = 1; - xflag = force->inumeric(FLERR,arg[iarg+1]); - yflag = force->inumeric(FLERR,arg[iarg+2]); - zflag = force->inumeric(FLERR,arg[iarg+3]); + xflag = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + yflag = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + zflag = utils::inumeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"angular") == 0) { angular = 1; diff --git a/src/USER-MISC/fix_npt_cauchy.cpp b/src/USER-MISC/fix_npt_cauchy.cpp index 067bad47ef..221886d388 100644 --- a/src/USER-MISC/fix_npt_cauchy.cpp +++ b/src/USER-MISC/fix_npt_cauchy.cpp @@ -134,10 +134,10 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"temp") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); tstat_flag = 1; - t_start = force->numeric(FLERR,arg[iarg+1]); + t_start = utils::numeric(FLERR,arg[iarg+1],false,lmp); t_target = t_start; - t_stop = force->numeric(FLERR,arg[iarg+2]); - t_period = force->numeric(FLERR,arg[iarg+3]); + t_stop = utils::numeric(FLERR,arg[iarg+2],false,lmp); + t_period = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (t_start <= 0.0 || t_stop <= 0.0) error->all(FLERR, "Target temperature for fix npt/cauchy cannot be 0.0"); @@ -146,10 +146,10 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"iso") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); pcouple = XYZ; - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -159,10 +159,10 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"aniso") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); pcouple = NONE; - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -173,15 +173,15 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); pcouple = NONE; scalexy = scalexz = scaleyz = 0; - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; p_start[3] = p_start[4] = p_start[5] = 0.0; p_stop[3] = p_stop[4] = p_stop[5] = 0.0; p_period[3] = p_period[4] = p_period[5] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[3] = p_flag[4] = p_flag[5] = 1; if (dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -194,25 +194,25 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : iarg += 4; } else if (strcmp(arg[iarg],"x") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - p_start[0] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = force->numeric(FLERR,arg[iarg+2]); - p_period[0] = force->numeric(FLERR,arg[iarg+3]); + p_start[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[0] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = 1; deviatoric_flag = 1; iarg += 4; } else if (strcmp(arg[iarg],"y") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - p_start[1] = force->numeric(FLERR,arg[iarg+1]); - p_stop[1] = force->numeric(FLERR,arg[iarg+2]); - p_period[1] = force->numeric(FLERR,arg[iarg+3]); + p_start[1] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[1] = 1; deviatoric_flag = 1; iarg += 4; } else if (strcmp(arg[iarg],"z") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[2] = force->numeric(FLERR,arg[iarg+2]); - p_period[2] = force->numeric(FLERR,arg[iarg+3]); + p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[2] = 1; deviatoric_flag = 1; iarg += 4; @@ -221,9 +221,9 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"yz") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - p_start[3] = force->numeric(FLERR,arg[iarg+1]); - p_stop[3] = force->numeric(FLERR,arg[iarg+2]); - p_period[3] = force->numeric(FLERR,arg[iarg+3]); + p_start[3] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[3] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[3] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[3] = 1; deviatoric_flag = 1; scaleyz = 0; @@ -232,9 +232,9 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Invalid fix npt/cauchy command for a 2d simulation"); } else if (strcmp(arg[iarg],"xz") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - p_start[4] = force->numeric(FLERR,arg[iarg+1]); - p_stop[4] = force->numeric(FLERR,arg[iarg+2]); - p_period[4] = force->numeric(FLERR,arg[iarg+3]); + p_start[4] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[4] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[4] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[4] = 1; deviatoric_flag = 1; scalexz = 0; @@ -243,9 +243,9 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Invalid fix npt/cauchy command for a 2d simulation"); } else if (strcmp(arg[iarg],"xy") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - p_start[5] = force->numeric(FLERR,arg[iarg+1]); - p_stop[5] = force->numeric(FLERR,arg[iarg+2]); - p_period[5] = force->numeric(FLERR,arg[iarg+3]); + p_start[5] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[5] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[5] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[5] = 1; deviatoric_flag = 1; scalexy = 0; @@ -263,7 +263,7 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"drag") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - drag = force->numeric(FLERR,arg[iarg+1]); + drag = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (drag < 0.0) error->all(FLERR,"Illegal fix npt/cauchy command"); iarg += 2; } else if (strcmp(arg[iarg],"dilate") == 0) { @@ -283,14 +283,14 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"tchain") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - mtchain = force->inumeric(FLERR,arg[iarg+1]); + mtchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); // used by FixNVTSllod to preserve non-default value mtchain_default_flag = 0; if (mtchain < 1) error->all(FLERR,"Illegal fix npt/cauchy command"); iarg += 2; } else if (strcmp(arg[iarg],"pchain") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - mpchain = force->inumeric(FLERR,arg[iarg+1]); + mpchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (mpchain < 0) error->all(FLERR,"Illegal fix npt/cauchy command"); iarg += 2; } else if (strcmp(arg[iarg],"mtk") == 0) { @@ -301,17 +301,17 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"tloop") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - nc_tchain = force->inumeric(FLERR,arg[iarg+1]); + nc_tchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nc_tchain < 0) error->all(FLERR,"Illegal fix npt/cauchy command"); iarg += 2; } else if (strcmp(arg[iarg],"ploop") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - nc_pchain = force->inumeric(FLERR,arg[iarg+1]); + nc_pchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nc_pchain < 0) error->all(FLERR,"Illegal fix npt/cauchy command"); iarg += 2; } else if (strcmp(arg[iarg],"nreset") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - nreset_h0 = force->inumeric(FLERR,arg[iarg+1]); + nreset_h0 = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nreset_h0 < 0) error->all(FLERR,"Illegal fix npt/cauchy command"); iarg += 2; } else if (strcmp(arg[iarg],"scalexy") == 0) { @@ -347,7 +347,7 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : } else error->all(FLERR,"Illegal fix npt/cauchy command"); iarg += 2; } else if (strcmp(arg[iarg],"alpha") == 0) { - alpha = force->numeric(FLERR,arg[iarg+1]); + alpha = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"continue") == 0) { if (strcmp(arg[iarg+1],"yes") != 0 && strcmp(arg[iarg+1],"no") != 0) @@ -357,9 +357,9 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"fixedpoint") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix npt/cauchy command"); - fixedpoint[0] = force->numeric(FLERR,arg[iarg+1]); - fixedpoint[1] = force->numeric(FLERR,arg[iarg+2]); - fixedpoint[2] = force->numeric(FLERR,arg[iarg+3]); + fixedpoint[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + fixedpoint[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + fixedpoint[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; // disc keyword is also parsed in fix/nh/sphere diff --git a/src/USER-MISC/fix_orient_eco.cpp b/src/USER-MISC/fix_orient_eco.cpp index add32e7215..272ba1ca93 100644 --- a/src/USER-MISC/fix_orient_eco.cpp +++ b/src/USER-MISC/fix_orient_eco.cpp @@ -82,10 +82,10 @@ FixOrientECO::FixOrientECO(LAMMPS *lmp, int narg, char **arg) : peratom_freq = 1; // // parse input parameters - u_0 = force->numeric(FLERR, arg[3]); + u_0 = utils::numeric(FLERR, arg[3],false,lmp); sign = (u_0 >= 0.0 ? 1 : -1); - eta = force->numeric(FLERR, arg[4]); - r_cut = force->numeric(FLERR, arg[5]); + eta = utils::numeric(FLERR, arg[4],false,lmp); + r_cut = utils::numeric(FLERR, arg[5],false,lmp); // read reference orientations from file // work on rank 0 only diff --git a/src/USER-MISC/fix_propel_self.cpp b/src/USER-MISC/fix_propel_self.cpp index 921ce9b9ef..0a40177993 100644 --- a/src/USER-MISC/fix_propel_self.cpp +++ b/src/USER-MISC/fix_propel_self.cpp @@ -82,7 +82,7 @@ FixPropelSelf::FixPropelSelf( LAMMPS *lmp, int narg, char **argv ) error->all(FLERR, msg); } - magnitude = force->numeric( FLERR, argv[4] ); + magnitude = utils::numeric( FLERR, argv[4] ,false,lmp); // Handle rest of args: @@ -100,7 +100,7 @@ FixPropelSelf::FixPropelSelf( LAMMPS *lmp, int narg, char **argv ) int flag=0; while (iarg < narg) { if (isdigit(argv[iarg][0])) { - int thistype = force->inumeric(FLERR,argv[iarg]); + int thistype = utils::inumeric(FLERR,argv[iarg],false,lmp); if ((thistype < 1) || (thistype > atom->ntypes)) error->all(FLERR,"Illegal atom type to types keyword"); apply_to_type[thistype] = 1; diff --git a/src/USER-MISC/fix_rhok.cpp b/src/USER-MISC/fix_rhok.cpp index fb041b05cd..612352aae1 100644 --- a/src/USER-MISC/fix_rhok.cpp +++ b/src/USER-MISC/fix_rhok.cpp @@ -68,16 +68,16 @@ FixRhok::FixRhok( LAMMPS* inLMP, int inArgc, char** inArgv ) // Parse fix options int n[3]; - n[0] = force->inumeric(FLERR,inArgv[3]); - n[1] = force->inumeric(FLERR,inArgv[4]); - n[2] = force->inumeric(FLERR,inArgv[5]); + n[0] = utils::inumeric(FLERR,inArgv[3],false,lmp); + n[1] = utils::inumeric(FLERR,inArgv[4],false,lmp); + n[2] = utils::inumeric(FLERR,inArgv[5],false,lmp); mK[0] = n[0]*(2*MY_PI / (domain->boxhi[0] - domain->boxlo[0])); mK[1] = n[1]*(2*MY_PI / (domain->boxhi[1] - domain->boxlo[1])); mK[2] = n[2]*(2*MY_PI / (domain->boxhi[2] - domain->boxlo[2])); - mKappa = force->numeric(FLERR,inArgv[6]); - mRhoK0 = force->numeric(FLERR,inArgv[7]); + mKappa = utils::numeric(FLERR,inArgv[6],false,lmp); + mRhoK0 = utils::numeric(FLERR,inArgv[7],false,lmp); } // Methods that this fix implements diff --git a/src/USER-MISC/fix_smd.cpp b/src/USER-MISC/fix_smd.cpp index 32c040c2b4..d110637b3c 100644 --- a/src/USER-MISC/fix_smd.cpp +++ b/src/USER-MISC/fix_smd.cpp @@ -64,13 +64,13 @@ FixSMD::FixSMD(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[argoffs],"cvel") == 0) { if (narg < argoffs+3) error->all(FLERR,"Illegal fix smd command"); styleflag |= SMD_CVEL; - k_smd = force->numeric(FLERR,arg[argoffs+1]); - v_smd = force->numeric(FLERR,arg[argoffs+2]); // to be multiplied by update->dt when used. + k_smd = utils::numeric(FLERR,arg[argoffs+1],false,lmp); + v_smd = utils::numeric(FLERR,arg[argoffs+2],false,lmp); // to be multiplied by update->dt when used. argoffs += 3; } else if (strcmp(arg[argoffs],"cfor") == 0) { if (narg < argoffs+2) error->all(FLERR,"Illegal fix smd command"); styleflag |= SMD_CFOR; - f_smd = force->numeric(FLERR,arg[argoffs+1]); + f_smd = utils::numeric(FLERR,arg[argoffs+1],false,lmp); argoffs += 2; } else error->all(FLERR,"Illegal fix smd command"); @@ -78,12 +78,12 @@ FixSMD::FixSMD(LAMMPS *lmp, int narg, char **arg) : if (narg < argoffs+5) error->all(FLERR,"Illegal fix smd command"); styleflag |= SMD_TETHER; if (strcmp(arg[argoffs+1],"NULL") == 0) xflag = 0; - else xc = force->numeric(FLERR,arg[argoffs+1]); + else xc = utils::numeric(FLERR,arg[argoffs+1],false,lmp); if (strcmp(arg[argoffs+2],"NULL") == 0) yflag = 0; - else yc = force->numeric(FLERR,arg[argoffs+2]); + else yc = utils::numeric(FLERR,arg[argoffs+2],false,lmp); if (strcmp(arg[argoffs+3],"NULL") == 0) zflag = 0; - else zc = force->numeric(FLERR,arg[argoffs+3]); - r0 = force->numeric(FLERR,arg[argoffs+4]); + else zc = utils::numeric(FLERR,arg[argoffs+3],false,lmp); + r0 = utils::numeric(FLERR,arg[argoffs+4],false,lmp); if (r0 < 0) error->all(FLERR,"R0 < 0 for fix smd command"); argoffs += 5; } else if (strcmp(arg[argoffs],"couple") == 0) { @@ -98,15 +98,15 @@ FixSMD::FixSMD(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[argoffs+2],"NULL") == 0) xflag = 0; else if (strcmp(arg[argoffs+2],"auto") == 0) styleflag |= SMD_AUTOX; - else xc = force->numeric(FLERR,arg[argoffs+2]); + else xc = utils::numeric(FLERR,arg[argoffs+2],false,lmp); if (strcmp(arg[argoffs+3],"NULL") == 0) yflag = 0; else if (strcmp(arg[argoffs+3],"auto") == 0) styleflag |= SMD_AUTOY; - else yc = force->numeric(FLERR,arg[argoffs+3]); + else yc = utils::numeric(FLERR,arg[argoffs+3],false,lmp); if (strcmp(arg[argoffs+4],"NULL") == 0) zflag = 0; else if (strcmp(arg[argoffs+4],"auto") == 0) styleflag |= SMD_AUTOZ; - else zc = force->numeric(FLERR,arg[argoffs+4]); + else zc = utils::numeric(FLERR,arg[argoffs+4],false,lmp); - r0 = force->numeric(FLERR,arg[argoffs+5]); + r0 = utils::numeric(FLERR,arg[argoffs+5],false,lmp); if (r0 < 0) error->all(FLERR,"R0 < 0 for fix smd command"); argoffs +=6; } else error->all(FLERR,"Illegal fix smd command"); diff --git a/src/USER-MISC/fix_srp.cpp b/src/USER-MISC/fix_srp.cpp index e72ea61b01..d61e7f1ee1 100644 --- a/src/USER-MISC/fix_srp.cpp +++ b/src/USER-MISC/fix_srp.cpp @@ -642,11 +642,11 @@ void FixSRP::restart(char *buf) int FixSRP::modify_param(int /*narg*/, char **arg) { if (strcmp(arg[0],"btype") == 0) { - btype = force->inumeric(FLERR,arg[1]); + btype = utils::inumeric(FLERR,arg[1],false,lmp); return 2; } if (strcmp(arg[0],"bptype") == 0) { - bptype = force->inumeric(FLERR,arg[1]); + bptype = utils::inumeric(FLERR,arg[1],false,lmp); return 2; } return 0; diff --git a/src/USER-MISC/fix_ti_spring.cpp b/src/USER-MISC/fix_ti_spring.cpp index 1f7c84b746..ef7c4c0296 100644 --- a/src/USER-MISC/fix_ti_spring.cpp +++ b/src/USER-MISC/fix_ti_spring.cpp @@ -69,7 +69,7 @@ FixTISpring::FixTISpring(LAMMPS *lmp, int narg, char **arg) : time_depend = 1; // Spring constant. - k = force->numeric(FLERR,arg[3]); + k = utils::numeric(FLERR,arg[3],false,lmp); if (k <= 0.0) error->all(FLERR,"Illegal fix ti/spring command"); // Perform initial allocation of atom-based array @@ -93,15 +93,15 @@ FixTISpring::FixTISpring(LAMMPS *lmp, int narg, char **arg) : // Time variables. t0 = update->ntimestep; // timestep of original/starting coordinates - t_switch = force->bnumeric(FLERR,arg[4]); // Number of steps for switching - t_equil = force->bnumeric(FLERR,arg[5]); // Number of steps for equilibration + t_switch = utils::bnumeric(FLERR,arg[4],false,lmp); // Number of steps for switching + t_equil = utils::bnumeric(FLERR,arg[5],false,lmp); // Number of steps for equilibration if ((t_switch <= 0) || (t_equil < 0)) error->all(FLERR,"Illegal fix ti/spring command"); // Coupling parameter initialization sf = 1; if (narg > 6) { - if (strcmp(arg[6], "function") == 0) sf = force->inumeric(FLERR,arg[7]); + if (strcmp(arg[6], "function") == 0) sf = utils::inumeric(FLERR,arg[7],false,lmp); else error->all(FLERR,"Illegal fix ti/spring switching function"); if ((sf!=1) && (sf!=2)) error->all(FLERR,"Illegal fix ti/spring switching function"); diff --git a/src/USER-MISC/fix_ttm_mod.cpp b/src/USER-MISC/fix_ttm_mod.cpp index aaeab5989a..8c37b19e8b 100644 --- a/src/USER-MISC/fix_ttm_mod.cpp +++ b/src/USER-MISC/fix_ttm_mod.cpp @@ -84,13 +84,13 @@ FixTTMMod::FixTTMMod(LAMMPS *lmp, int narg, char **arg) : restart_peratom = 1; restart_global = 1; - seed = force->inumeric(FLERR,arg[3]); + seed = utils::inumeric(FLERR,arg[3],false,lmp); if (seed <= 0) error->all(FLERR,"Invalid random number seed in fix ttm/mod command"); - nxnodes = force->inumeric(FLERR,arg[5]); - nynodes = force->inumeric(FLERR,arg[6]); - nznodes = force->inumeric(FLERR,arg[7]); + nxnodes = utils::inumeric(FLERR,arg[5],false,lmp); + nynodes = utils::inumeric(FLERR,arg[6],false,lmp); + nznodes = utils::inumeric(FLERR,arg[7],false,lmp); if (nxnodes <= 0 || nynodes <= 0 || nznodes <= 0) error->all(FLERR,"Fix ttm/mod number of nodes must be > 0"); @@ -98,7 +98,7 @@ FixTTMMod::FixTTMMod(LAMMPS *lmp, int narg, char **arg) : if (total_nnodes > MAXSMALLINT) error->all(FLERR,"Too many nodes in fix ttm/mod"); - nfileevery = force->inumeric(FLERR,arg[9]); + nfileevery = utils::inumeric(FLERR,arg[9],false,lmp); if (nfileevery > 0) { if (narg != 11) error->all(FLERR,"Illegal fix ttm/mod command"); if (comm->me == 0) { diff --git a/src/USER-MISC/fix_wall_reflect_stochastic.cpp b/src/USER-MISC/fix_wall_reflect_stochastic.cpp index 18bb7ec011..8afc506804 100644 --- a/src/USER-MISC/fix_wall_reflect_stochastic.cpp +++ b/src/USER-MISC/fix_wall_reflect_stochastic.cpp @@ -70,7 +70,7 @@ FixWallReflectStochastic(LAMMPS *lmp, int narg, char **arg) : } else error->all(FLERR,"Illegal fix wall/reflect/stochastic command"); - seedfix = force->inumeric(FLERR,arg[4]); + seedfix = utils::inumeric(FLERR,arg[4],false,lmp); if (seedfix <= 0) error->all(FLERR,"Random seed must be a positive number"); int iarg = 5; @@ -103,13 +103,13 @@ FixWallReflectStochastic(LAMMPS *lmp, int narg, char **arg) : else coord0[nwall] = domain->boxhi[dim]; } else { wallstyle[nwall] = CONSTANT; - coord0[nwall] = force->numeric(FLERR,arg[iarg+1]); + coord0[nwall] = utils::numeric(FLERR,arg[iarg+1],false,lmp); } - walltemp[nwall]= force->numeric(FLERR,arg[iarg+2]); + walltemp[nwall]= utils::numeric(FLERR,arg[iarg+2],false,lmp); for (int dir = 0; dir < 3; dir++) { - wallvel[nwall][dir]= force->numeric(FLERR,arg[iarg+dir+3]); + wallvel[nwall][dir]= utils::numeric(FLERR,arg[iarg+dir+3],false,lmp); int dim = wallwhich[nwall] / 2; if ((wallvel[nwall][dir] !=0) & (dir == dim)) error->all(FLERR,"The wall velocity must be tangential"); @@ -119,9 +119,9 @@ FixWallReflectStochastic(LAMMPS *lmp, int narg, char **arg) : // CCL = one for each dimension if (rstyle == CCL) - wallaccom[nwall][dir]= force->numeric(FLERR,arg[iarg+dir+6]); + wallaccom[nwall][dir]= utils::numeric(FLERR,arg[iarg+dir+6],false,lmp); else if (rstyle == MAXWELL) - wallaccom[nwall][dir]= force->numeric(FLERR,arg[iarg+6]); + wallaccom[nwall][dir]= utils::numeric(FLERR,arg[iarg+6],false,lmp); } nwall++; diff --git a/src/USER-MISC/fix_wall_region_ees.cpp b/src/USER-MISC/fix_wall_region_ees.cpp index 5c6bb1874b..3a8323d58d 100644 --- a/src/USER-MISC/fix_wall_region_ees.cpp +++ b/src/USER-MISC/fix_wall_region_ees.cpp @@ -54,9 +54,9 @@ FixWallRegionEES::FixWallRegionEES(LAMMPS *lmp, int narg, char **arg) : idregion = new char[n]; strcpy(idregion,arg[3]); - epsilon = force->numeric(FLERR,arg[4]); - sigma = force->numeric(FLERR,arg[5]); - cutoff = force->numeric(FLERR,arg[6]); + epsilon = utils::numeric(FLERR,arg[4],false,lmp); + sigma = utils::numeric(FLERR,arg[5],false,lmp); + cutoff = utils::numeric(FLERR,arg[6],false,lmp); if (cutoff <= 0.0) error->all(FLERR,"Fix wall/region/ees cutoff <= 0.0"); diff --git a/src/USER-MISC/improper_cossq.cpp b/src/USER-MISC/improper_cossq.cpp index babd63fb70..09cf7cf2c6 100644 --- a/src/USER-MISC/improper_cossq.cpp +++ b/src/USER-MISC/improper_cossq.cpp @@ -271,8 +271,8 @@ void ImproperCossq::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double chi_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double chi_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/improper_distance.cpp b/src/USER-MISC/improper_distance.cpp index 640e175ea7..8ea58b23b3 100644 --- a/src/USER-MISC/improper_distance.cpp +++ b/src/USER-MISC/improper_distance.cpp @@ -213,8 +213,8 @@ void ImproperDistance::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double chi_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double chi_one = utils::numeric(FLERR,arg[2],false,lmp); // convert chi from degrees to radians diff --git a/src/USER-MISC/improper_fourier.cpp b/src/USER-MISC/improper_fourier.cpp index 63f4104053..3bdbc7bc68 100644 --- a/src/USER-MISC/improper_fourier.cpp +++ b/src/USER-MISC/improper_fourier.cpp @@ -281,12 +281,12 @@ void ImproperFourier::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double C0_one = force->numeric(FLERR,arg[2]); - double C1_one = force->numeric(FLERR,arg[3]); - double C2_one = force->numeric(FLERR,arg[4]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double C0_one = utils::numeric(FLERR,arg[2],false,lmp); + double C1_one = utils::numeric(FLERR,arg[3],false,lmp); + double C2_one = utils::numeric(FLERR,arg[4],false,lmp); int all_one = 1; - if ( narg == 6 ) all_one = force->inumeric(FLERR,arg[5]); + if ( narg == 6 ) all_one = utils::inumeric(FLERR,arg[5],false,lmp); // convert w0 from degrees to radians diff --git a/src/USER-MISC/improper_ring.cpp b/src/USER-MISC/improper_ring.cpp index 9c94a4d719..4102a250dd 100644 --- a/src/USER-MISC/improper_ring.cpp +++ b/src/USER-MISC/improper_ring.cpp @@ -290,8 +290,8 @@ void ImproperRing ::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double chi_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double chi_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/pair_buck_mdf.cpp b/src/USER-MISC/pair_buck_mdf.cpp index 51d2f671b5..6a4575c6e4 100644 --- a/src/USER-MISC/pair_buck_mdf.cpp +++ b/src/USER-MISC/pair_buck_mdf.cpp @@ -184,8 +184,8 @@ void PairBuckMDF::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - cut_inner_global = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + cut_inner_global = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -211,16 +211,16 @@ void PairBuckMDF::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a_one = force->numeric(FLERR,arg[2]); - double rho_one = force->numeric(FLERR,arg[3]); + double a_one = utils::numeric(FLERR,arg[2],false,lmp); + double rho_one = utils::numeric(FLERR,arg[3],false,lmp); if (rho_one <= 0) error->all(FLERR,"Incorrect args for pair coefficients"); - double c_one = force->numeric(FLERR,arg[4]); + double c_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_inner_one = cut_inner_global; double cut_one = cut_global; if (narg == 7) { - cut_inner_one = force->numeric(FLERR,arg[5]); - cut_one = force->numeric(FLERR,arg[6]); + cut_inner_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_one = utils::numeric(FLERR,arg[6],false,lmp); } if (cut_inner_global <= 0.0 || cut_inner_global > cut_global) error->all(FLERR,"Illegal pair_style command"); diff --git a/src/USER-MISC/pair_cosine_squared.cpp b/src/USER-MISC/pair_cosine_squared.cpp index becba54b2e..8e400d23ed 100644 --- a/src/USER-MISC/pair_cosine_squared.cpp +++ b/src/USER-MISC/pair_cosine_squared.cpp @@ -103,7 +103,7 @@ void PairCosineSquared::settings(int narg, char **arg) error->all(FLERR, "Illegal pair_style command (wrong number of params)"); } - cut_global = force->numeric(FLERR, arg[0]); + cut_global = utils::numeric(FLERR, arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -133,13 +133,13 @@ void PairCosineSquared::coeff(int narg, char **arg) utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); - double epsilon_one = force->numeric(FLERR, arg[2]); - double sigma_one = force->numeric(FLERR, arg[3]); + double epsilon_one = utils::numeric(FLERR, arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR, arg[3],false,lmp); double cut_one = cut_global; double wca_one = 0; if (narg == 6) { - cut_one = force->numeric(FLERR, arg[4]); + cut_one = utils::numeric(FLERR, arg[4],false,lmp); if (strcmp(arg[5], "wca") == 0) { wca_one = 1; } else { @@ -149,7 +149,7 @@ void PairCosineSquared::coeff(int narg, char **arg) if (strcmp(arg[4], "wca") == 0) { wca_one = 1; } else { - cut_one = force->numeric(FLERR, arg[4]); + cut_one = utils::numeric(FLERR, arg[4],false,lmp); } } diff --git a/src/USER-MISC/pair_coul_diel.cpp b/src/USER-MISC/pair_coul_diel.cpp index f5a94bd0e1..14fbd374b6 100644 --- a/src/USER-MISC/pair_coul_diel.cpp +++ b/src/USER-MISC/pair_coul_diel.cpp @@ -159,7 +159,7 @@ void PairCoulDiel::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -184,12 +184,12 @@ void PairCoulDiel::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - eps_s = force->numeric(FLERR,arg[2]); - double rme_one =force->numeric(FLERR,arg[3]); - double sigmae_one = force->numeric(FLERR,arg[4]); + eps_s = utils::numeric(FLERR,arg[2],false,lmp); + double rme_one =utils::numeric(FLERR,arg[3],false,lmp); + double sigmae_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_one = cut_global; - if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/pair_coul_shield.cpp b/src/USER-MISC/pair_coul_shield.cpp index 3dad7a1a1f..883796de1b 100644 --- a/src/USER-MISC/pair_coul_shield.cpp +++ b/src/USER-MISC/pair_coul_shield.cpp @@ -175,8 +175,8 @@ void PairCoulShield::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); - if (narg == 2) tap_flag = force->numeric(FLERR,arg[1]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); + if (narg == 2) tap_flag = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -201,10 +201,10 @@ void PairCoulShield::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double sigmae_one = force->numeric(FLERR,arg[2]); + double sigmae_one = utils::numeric(FLERR,arg[2],false,lmp); double cut_one = cut_global; - if (narg == 4) cut_one = force->numeric(FLERR,arg[3]); + if (narg == 4) cut_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/pair_coul_slater_cut.cpp b/src/USER-MISC/pair_coul_slater_cut.cpp index 33363b869a..194ff664b3 100644 --- a/src/USER-MISC/pair_coul_slater_cut.cpp +++ b/src/USER-MISC/pair_coul_slater_cut.cpp @@ -123,8 +123,8 @@ void PairCoulSlaterCut::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - lamda = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + lamda = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/USER-MISC/pair_coul_slater_long.cpp b/src/USER-MISC/pair_coul_slater_long.cpp index 28be30c340..d801d0342f 100644 --- a/src/USER-MISC/pair_coul_slater_long.cpp +++ b/src/USER-MISC/pair_coul_slater_long.cpp @@ -210,8 +210,8 @@ void PairCoulSlaterLong::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - lamda = force->numeric(FLERR,arg[0]); - cut_coul = force->numeric(FLERR,arg[1]); + lamda = utils::numeric(FLERR,arg[0],false,lmp); + cut_coul = utils::numeric(FLERR,arg[1],false,lmp); } /* ---------------------------------------------------------------------- diff --git a/src/USER-MISC/pair_e3b.cpp b/src/USER-MISC/pair_e3b.cpp index 420e2135bd..2b58e4b1f8 100644 --- a/src/USER-MISC/pair_e3b.cpp +++ b/src/USER-MISC/pair_e3b.cpp @@ -381,7 +381,7 @@ void PairE3B::allocateE3B() void PairE3B::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - typeO=force->inumeric(FLERR,arg[0]); + typeO=utils::inumeric(FLERR,arg[0],false,lmp); } /* ---------------------------------------------------------------------- @@ -421,29 +421,29 @@ void PairE3B::coeff(int narg, char **arg) while(iarg < narg) { char *keyword = arg[iarg++]; if (checkKeyword(keyword,"Ea",1,narg-iarg)) - ea=force->numeric(FLERR,arg[iarg++]); + ea=utils::numeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"Eb",1,narg-iarg)) - eb=force->numeric(FLERR,arg[iarg++]); + eb=utils::numeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"Ec",1,narg-iarg)) - ec=force->numeric(FLERR,arg[iarg++]); + ec=utils::numeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"K3",1,narg-iarg)) - k3=force->numeric(FLERR,arg[iarg++]); + k3=utils::numeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"Rs",1,narg-iarg)) - rs=force->numeric(FLERR,arg[iarg++]); + rs=utils::numeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"Rc3",1,narg-iarg)) - rc3=force->numeric(FLERR,arg[iarg++]); + rc3=utils::numeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"Rc2",1,narg-iarg)) - rc2=force->numeric(FLERR,arg[iarg++]); + rc2=utils::numeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"bondL",1,narg-iarg)) - bondL=force->numeric(FLERR,arg[iarg++]); + bondL=utils::numeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"E2",1,narg-iarg)) - e2=force->numeric(FLERR,arg[iarg++]); + e2=utils::numeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"K2",1,narg-iarg)) - k2=force->numeric(FLERR,arg[iarg++]); + k2=utils::numeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"neigh",1,narg-iarg)) - pairPerAtom=force->inumeric(FLERR,arg[iarg++]); + pairPerAtom=utils::inumeric(FLERR,arg[iarg++],false,lmp); else if (checkKeyword(keyword,"preset",1,narg-iarg)) { - presetFlag=force->inumeric(FLERR,arg[iarg++]); + presetFlag=utils::inumeric(FLERR,arg[iarg++],false,lmp); presetParam(presetFlag,repeatFlag,bondL); } else { char str[256]; diff --git a/src/USER-MISC/pair_gauss_cut.cpp b/src/USER-MISC/pair_gauss_cut.cpp index ed34f91b8b..38d4c4d4c2 100644 --- a/src/USER-MISC/pair_gauss_cut.cpp +++ b/src/USER-MISC/pair_gauss_cut.cpp @@ -163,7 +163,7 @@ void PairGaussCut::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -188,15 +188,15 @@ void PairGaussCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double hgauss_one = force->numeric(FLERR,arg[2]); - double rmh_one = force->numeric(FLERR,arg[3]); - double sigmah_one = force->numeric(FLERR,arg[4]); + double hgauss_one = utils::numeric(FLERR,arg[2],false,lmp); + double rmh_one = utils::numeric(FLERR,arg[3],false,lmp); + double sigmah_one = utils::numeric(FLERR,arg[4],false,lmp); if (sigmah_one <= 0.0) error->all(FLERR,"Incorrect args for pair coefficients"); double cut_one = cut_global; - if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/pair_ilp_graphene_hbn.cpp b/src/USER-MISC/pair_ilp_graphene_hbn.cpp index 106d02dd48..e7689acda5 100644 --- a/src/USER-MISC/pair_ilp_graphene_hbn.cpp +++ b/src/USER-MISC/pair_ilp_graphene_hbn.cpp @@ -136,8 +136,8 @@ void PairILPGrapheneHBN::settings(int narg, char **arg) if (strcmp(force->pair_style,"hybrid/overlay")!=0) error->all(FLERR,"ERROR: requires hybrid/overlay pair_style"); - cut_global = force->numeric(FLERR,arg[0]); - if (narg == 2) tap_flag = force->numeric(FLERR,arg[1]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); + if (narg == 2) tap_flag = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/USER-MISC/pair_kolmogorov_crespi_full.cpp b/src/USER-MISC/pair_kolmogorov_crespi_full.cpp index 9627cbc08a..ee3eec3869 100644 --- a/src/USER-MISC/pair_kolmogorov_crespi_full.cpp +++ b/src/USER-MISC/pair_kolmogorov_crespi_full.cpp @@ -137,8 +137,8 @@ void PairKolmogorovCrespiFull::settings(int narg, char **arg) if (strcmp(force->pair_style,"hybrid/overlay")!=0) error->all(FLERR,"ERROR: requires hybrid/overlay pair_style"); - cut_global = force->numeric(FLERR,arg[0]); - if (narg == 2) tap_flag = force->numeric(FLERR,arg[1]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); + if (narg == 2) tap_flag = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/USER-MISC/pair_kolmogorov_crespi_z.cpp b/src/USER-MISC/pair_kolmogorov_crespi_z.cpp index 2a932b840f..bf88bac6e2 100644 --- a/src/USER-MISC/pair_kolmogorov_crespi_z.cpp +++ b/src/USER-MISC/pair_kolmogorov_crespi_z.cpp @@ -203,7 +203,7 @@ void PairKolmogorovCrespiZ::settings(int narg, char **arg) if (strcmp(force->pair_style,"hybrid/overlay")!=0) error->all(FLERR,"ERROR: requires hybrid/overlay pair_style"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/USER-MISC/pair_lebedeva_z.cpp b/src/USER-MISC/pair_lebedeva_z.cpp index 82dc265ef9..27e21a12e3 100644 --- a/src/USER-MISC/pair_lebedeva_z.cpp +++ b/src/USER-MISC/pair_lebedeva_z.cpp @@ -199,7 +199,7 @@ void PairLebedevaZ::settings(int narg, char **arg) if (strcmp(force->pair_style,"hybrid/overlay")!=0) error->all(FLERR,"ERROR: requires hybrid/overlay pair_style"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/USER-MISC/pair_lennard_mdf.cpp b/src/USER-MISC/pair_lennard_mdf.cpp index e1647f5220..6faa599d2c 100644 --- a/src/USER-MISC/pair_lennard_mdf.cpp +++ b/src/USER-MISC/pair_lennard_mdf.cpp @@ -184,8 +184,8 @@ void PairLennardMDF::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - cut_inner_global = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + cut_inner_global = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); if (cut_inner_global <= 0.0 || cut_inner_global > cut_global) error->all(FLERR,"Illegal pair_style command"); @@ -217,14 +217,14 @@ void PairLennardMDF::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double aparm_one = force->numeric(FLERR,arg[2]); - double bparm_one = force->numeric(FLERR,arg[3]); + double aparm_one = utils::numeric(FLERR,arg[2],false,lmp); + double bparm_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_inner_one = cut_inner_global; double cut_one = cut_global; if (narg == 6) { - cut_inner_one = force->numeric(FLERR,arg[4]); - cut_one = force->numeric(FLERR,arg[5]); + cut_inner_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_one = utils::numeric(FLERR,arg[5],false,lmp); } if (cut_inner_one <= 0.0 || cut_inner_one > cut_one) error->all(FLERR,"Illegal pair_coeff command"); diff --git a/src/USER-MISC/pair_list.cpp b/src/USER-MISC/pair_list.cpp index fe21dd6560..44811316a8 100644 --- a/src/USER-MISC/pair_list.cpp +++ b/src/USER-MISC/pair_list.cpp @@ -203,7 +203,7 @@ void PairList::settings(int narg, char **arg) if (narg < 2) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[1]); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); if (narg > 2) { if (strcmp(arg[2],"nocheck") == 0) check_flag = 0; if (strcmp(arg[2],"check") == 0) check_flag = 1; @@ -260,12 +260,12 @@ void PairList::settings(int narg, char **arg) ptr = strtok(NULL," \t\n\r\f"); if ((ptr == NULL) || (*ptr == '#')) error->all(FLERR,"Incorrectly formatted harmonic pair parameters"); - par.parm.harm.k = force->numeric(FLERR,ptr); + par.parm.harm.k = utils::numeric(FLERR,ptr,false,lmp); ptr = strtok(NULL," \t\n\r\f"); if ((ptr == NULL) || (*ptr == '#')) error->all(FLERR,"Incorrectly formatted harmonic pair parameters"); - par.parm.harm.r0 = force->numeric(FLERR,ptr); + par.parm.harm.r0 = utils::numeric(FLERR,ptr,false,lmp); ++nharm; @@ -276,17 +276,17 @@ void PairList::settings(int narg, char **arg) ptr = strtok(NULL," \t\n\r\f"); if (!ptr) error->all(FLERR,"Incorrectly formatted morse pair parameters"); - par.parm.morse.d0 = force->numeric(FLERR,ptr); + par.parm.morse.d0 = utils::numeric(FLERR,ptr,false,lmp); ptr = strtok(NULL," \t\n\r\f"); if (!ptr) error->all(FLERR,"Incorrectly formatted morse pair parameters"); - par.parm.morse.alpha = force->numeric(FLERR,ptr); + par.parm.morse.alpha = utils::numeric(FLERR,ptr,false,lmp); ptr = strtok(NULL," \t\n\r\f"); if (!ptr) error->all(FLERR,"Incorrectly formatted morse pair parameters"); - par.parm.morse.r0 = force->numeric(FLERR,ptr); + par.parm.morse.r0 = utils::numeric(FLERR,ptr,false,lmp); ++nmorse; @@ -297,12 +297,12 @@ void PairList::settings(int narg, char **arg) ptr = strtok(NULL," \t\n\r\f"); if (!ptr) error->all(FLERR,"Incorrectly formatted 12-6 LJ pair parameters"); - par.parm.lj126.epsilon = force->numeric(FLERR,ptr); + par.parm.lj126.epsilon = utils::numeric(FLERR,ptr,false,lmp); ptr = strtok(NULL," \t\n\r\f"); if (!ptr) error->all(FLERR,"Incorrectly formatted 12-6 LJ pair parameters"); - par.parm.lj126.sigma = force->numeric(FLERR,ptr); + par.parm.lj126.sigma = utils::numeric(FLERR,ptr,false,lmp); ++nlj126; @@ -313,7 +313,7 @@ void PairList::settings(int narg, char **arg) // optional cutoff parameter. if not specified use global value ptr = strtok(NULL," \t\n\r\f"); if ((ptr != NULL) && (*ptr != '#')) { - double cut = force->numeric(FLERR,ptr); + double cut = utils::numeric(FLERR,ptr,false,lmp); par.cutsq = cut*cut; } else { par.cutsq = cut_global*cut_global; diff --git a/src/USER-MISC/pair_lj_expand_coul_long.cpp b/src/USER-MISC/pair_lj_expand_coul_long.cpp index 033d1c3ccd..20081fa1e1 100644 --- a/src/USER-MISC/pair_lj_expand_coul_long.cpp +++ b/src/USER-MISC/pair_lj_expand_coul_long.cpp @@ -626,9 +626,9 @@ void PairLJExpandCoulLong::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[1]); + else cut_coul = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -654,12 +654,12 @@ void PairLJExpandCoulLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double shift_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double shift_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 6) cut_lj_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_lj_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/pair_lj_mdf.cpp b/src/USER-MISC/pair_lj_mdf.cpp index d1d8221bcc..22f20a690e 100644 --- a/src/USER-MISC/pair_lj_mdf.cpp +++ b/src/USER-MISC/pair_lj_mdf.cpp @@ -186,8 +186,8 @@ void PairLJMDF::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - cut_inner_global = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + cut_inner_global = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); if (cut_inner_global <= 0.0 || cut_inner_global > cut_global) error->all(FLERR,"Illegal pair_style command"); @@ -219,14 +219,14 @@ void PairLJMDF::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_inner_one = cut_inner_global; double cut_one = cut_global; if (narg == 6) { - cut_inner_one = force->numeric(FLERR,arg[4]); - cut_one = force->numeric(FLERR,arg[5]); + cut_inner_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_one = utils::numeric(FLERR,arg[5],false,lmp); } if (cut_inner_global <= 0.0 || cut_inner_global > cut_global) error->all(FLERR,"Illegal pair_style command"); diff --git a/src/USER-MISC/pair_lj_sf_dipole_sf.cpp b/src/USER-MISC/pair_lj_sf_dipole_sf.cpp index 570c8f4eab..6a92602683 100644 --- a/src/USER-MISC/pair_lj_sf_dipole_sf.cpp +++ b/src/USER-MISC/pair_lj_sf_dipole_sf.cpp @@ -333,9 +333,9 @@ void PairLJSFDipoleSF::settings(int narg, char **arg) if (strcmp(update->unit_style,"electron") == 0) error->all(FLERR,"Cannot (yet) use 'electron' units with dipoles"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul_global = cut_lj_global; - else cut_coul_global = force->numeric(FLERR,arg[1]); + else cut_coul_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -364,8 +364,8 @@ void PairLJSFDipoleSF::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; double cut_coul_one = cut_coul_global; @@ -373,16 +373,16 @@ void PairLJSFDipoleSF::coeff(int narg, char **arg) int iarg = 4; if ((narg > iarg) && (strcmp(arg[iarg],"scale") != 0)) { - cut_coul_one = cut_lj_one = force->numeric(FLERR,arg[iarg]); + cut_coul_one = cut_lj_one = utils::numeric(FLERR,arg[iarg],false,lmp); ++iarg; } if ((narg > iarg) && (strcmp(arg[iarg],"scale") != 0)) { - cut_coul_one = force->numeric(FLERR,arg[iarg]); + cut_coul_one = utils::numeric(FLERR,arg[iarg],false,lmp); ++iarg; } if (narg > iarg) { if (strcmp(arg[iarg],"scale") == 0) { - scale_one = force->numeric(FLERR,arg[iarg+1]); + scale_one = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else error->all(FLERR,"Incorrect args for pair coefficients"); } diff --git a/src/USER-MISC/pair_momb.cpp b/src/USER-MISC/pair_momb.cpp index e98832c6d7..534f4acff5 100644 --- a/src/USER-MISC/pair_momb.cpp +++ b/src/USER-MISC/pair_momb.cpp @@ -189,9 +189,9 @@ void PairMomb::settings(int narg, char **arg) { if (narg != 3) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); - sscale = force->numeric(FLERR,arg[1]); - dscale = force->numeric(FLERR,arg[2]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); + sscale = utils::numeric(FLERR,arg[1],false,lmp); + dscale = utils::numeric(FLERR,arg[2],false,lmp); // reset cutoffs that have been explicitly set @@ -218,14 +218,14 @@ void PairMomb::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double d0_one = force->numeric(FLERR,arg[2]); - double alpha_one = force->numeric(FLERR,arg[3]); - double r0_one = force->numeric(FLERR,arg[4]); - double c_one = force->numeric(FLERR,arg[5]); - double rr_one = force->numeric(FLERR,arg[6]); + double d0_one = utils::numeric(FLERR,arg[2],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[3],false,lmp); + double r0_one = utils::numeric(FLERR,arg[4],false,lmp); + double c_one = utils::numeric(FLERR,arg[5],false,lmp); + double rr_one = utils::numeric(FLERR,arg[6],false,lmp); double cut_one = cut_global; - if (narg == 8) cut_one = force->numeric(FLERR,arg[7]); + if (narg == 8) cut_one = utils::numeric(FLERR,arg[7],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/pair_morse_smooth_linear.cpp b/src/USER-MISC/pair_morse_smooth_linear.cpp index 64549114a9..399723e0c5 100644 --- a/src/USER-MISC/pair_morse_smooth_linear.cpp +++ b/src/USER-MISC/pair_morse_smooth_linear.cpp @@ -162,7 +162,7 @@ void PairMorseSmoothLinear::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -187,12 +187,12 @@ void PairMorseSmoothLinear::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double d0_one = force->numeric(FLERR,arg[2]); - double alpha_one = force->numeric(FLERR,arg[3]); - double r0_one = force->numeric(FLERR,arg[4]); + double d0_one = utils::numeric(FLERR,arg[2],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[3],false,lmp); + double r0_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_one = cut_global; - if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MISC/pair_srp.cpp b/src/USER-MISC/pair_srp.cpp index 3a53334b31..9926318597 100644 --- a/src/USER-MISC/pair_srp.cpp +++ b/src/USER-MISC/pair_srp.cpp @@ -362,12 +362,12 @@ void PairSRP::settings(int narg, char **arg) if (atom->tag_enable == 0) error->all(FLERR,"Pair_style srp requires atom IDs"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // wildcard if (strcmp(arg[1],"*") == 0) { btype = 0; } else { - btype = force->inumeric(FLERR,arg[1]); + btype = utils::inumeric(FLERR,arg[1],false,lmp); if ((btype > atom->nbondtypes) || (btype <= 0)) error->all(FLERR,"Illegal pair_style command"); } @@ -401,7 +401,7 @@ void PairSRP::settings(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"bptype") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal pair srp command"); - bptype = force->inumeric(FLERR,arg[iarg+1]); + bptype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if ((bptype < 1) || (bptype > atom->ntypes)) error->all(FLERR,"Illegal bond particle type for srp"); iarg += 2; @@ -432,9 +432,9 @@ void PairSRP::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0], 1, bptype, ilo, ihi, error); utils::bounds(FLERR,arg[1], 1, bptype, jlo, jhi, error); - double a0_one = force->numeric(FLERR,arg[2]); + double a0_one = utils::numeric(FLERR,arg[2],false,lmp); double cut_one = cut_global; - if (narg == 4) cut_one = force->numeric(FLERR,arg[3]); + if (narg == 4) cut_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) diff --git a/src/USER-MISC/temper_grem.cpp b/src/USER-MISC/temper_grem.cpp index 866f923fb9..8d7a4ee2c9 100644 --- a/src/USER-MISC/temper_grem.cpp +++ b/src/USER-MISC/temper_grem.cpp @@ -67,9 +67,9 @@ void TemperGrem::command(int narg, char **arg) if (narg != 7 && narg != 8) error->universe_all(FLERR,"Illegal temper command"); - int nsteps = force->inumeric(FLERR,arg[0]); - nevery = force->inumeric(FLERR,arg[1]); - double lambda = force->numeric(FLERR,arg[2]); + int nsteps = utils::inumeric(FLERR,arg[0],false,lmp); + nevery = utils::inumeric(FLERR,arg[1],false,lmp); + double lambda = utils::numeric(FLERR,arg[2],false,lmp); // ignore temper command, if walltime limit was already reached if (timer->is_timeout()) return; @@ -106,11 +106,11 @@ void TemperGrem::command(int narg, char **arg) pressref = p_start[0]; } - seed_swap = force->inumeric(FLERR,arg[5]); - seed_boltz = force->inumeric(FLERR,arg[6]); + seed_swap = utils::inumeric(FLERR,arg[5],false,lmp); + seed_boltz = utils::inumeric(FLERR,arg[6],false,lmp); my_set_lambda = universe->iworld; - if (narg == 8) my_set_lambda = force->inumeric(FLERR,arg[7]); + if (narg == 8) my_set_lambda = utils::inumeric(FLERR,arg[7],false,lmp); if ((my_set_lambda < 0) || (my_set_lambda >= universe->nworlds)) error->universe_one(FLERR,"Illegal temperature index"); diff --git a/src/USER-MISC/temper_npt.cpp b/src/USER-MISC/temper_npt.cpp index d0a14d8e4d..e4cab277c1 100644 --- a/src/USER-MISC/temper_npt.cpp +++ b/src/USER-MISC/temper_npt.cpp @@ -69,10 +69,10 @@ void TemperNPT::command(int narg, char **arg) if (narg != 7 && narg != 8) error->universe_all(FLERR,"Illegal temper/npt command"); - int nsteps = force->inumeric(FLERR,arg[0]); - nevery = force->inumeric(FLERR,arg[1]); - double temp = force->numeric(FLERR,arg[2]); - double press_set = force->numeric(FLERR,arg[6]); + int nsteps = utils::inumeric(FLERR,arg[0],false,lmp); + nevery = utils::inumeric(FLERR,arg[1],false,lmp); + double temp = utils::numeric(FLERR,arg[2],false,lmp); + double press_set = utils::numeric(FLERR,arg[6],false,lmp); // ignore temper command, if walltime limit was already reached @@ -83,11 +83,11 @@ void TemperNPT::command(int narg, char **arg) if (whichfix == modify->nfix) error->universe_all(FLERR,"Tempering fix ID is not defined"); - seed_swap = force->inumeric(FLERR,arg[4]); - seed_boltz = force->inumeric(FLERR,arg[5]); + seed_swap = utils::inumeric(FLERR,arg[4],false,lmp); + seed_boltz = utils::inumeric(FLERR,arg[5],false,lmp); my_set_temp = universe->iworld; - if (narg == 8) my_set_temp = force->inumeric(FLERR,arg[6]); + if (narg == 8) my_set_temp = utils::inumeric(FLERR,arg[6],false,lmp); // swap frequency must evenly divide total # of timesteps diff --git a/src/USER-MOFFF/angle_class2_p6.cpp b/src/USER-MOFFF/angle_class2_p6.cpp index 5a913af379..aa56ababe1 100644 --- a/src/USER-MOFFF/angle_class2_p6.cpp +++ b/src/USER-MOFFF/angle_class2_p6.cpp @@ -287,9 +287,9 @@ void AngleClass2P6::coeff(int narg, char **arg) if (strcmp(arg[1],"bb") == 0) { if (narg != 5) error->all(FLERR,"Incorrect args for angle coefficients"); - double bb_k_one = force->numeric(FLERR,arg[2]); - double bb_r1_one = force->numeric(FLERR,arg[3]); - double bb_r2_one = force->numeric(FLERR,arg[4]); + double bb_k_one = utils::numeric(FLERR,arg[2],false,lmp); + double bb_r1_one = utils::numeric(FLERR,arg[3],false,lmp); + double bb_r2_one = utils::numeric(FLERR,arg[4],false,lmp); for (int i = ilo; i <= ihi; i++) { bb_k[i] = bb_k_one; @@ -302,10 +302,10 @@ void AngleClass2P6::coeff(int narg, char **arg) } else if (strcmp(arg[1],"ba") == 0) { if (narg != 6) error->all(FLERR,"Incorrect args for angle coefficients"); - double ba_k1_one = force->numeric(FLERR,arg[2]); - double ba_k2_one = force->numeric(FLERR,arg[3]); - double ba_r1_one = force->numeric(FLERR,arg[4]); - double ba_r2_one = force->numeric(FLERR,arg[5]); + double ba_k1_one = utils::numeric(FLERR,arg[2],false,lmp); + double ba_k2_one = utils::numeric(FLERR,arg[3],false,lmp); + double ba_r1_one = utils::numeric(FLERR,arg[4],false,lmp); + double ba_r2_one = utils::numeric(FLERR,arg[5],false,lmp); for (int i = ilo; i <= ihi; i++) { ba_k1[i] = ba_k1_one; @@ -319,12 +319,12 @@ void AngleClass2P6::coeff(int narg, char **arg) } else { if (narg != 7) error->all(FLERR,"Incorrect args for angle coefficients"); - double theta0_one = force->numeric(FLERR,arg[1]); - double k2_one = force->numeric(FLERR,arg[2]); - double k3_one = force->numeric(FLERR,arg[3]); - double k4_one = force->numeric(FLERR,arg[4]); - double k5_one = force->numeric(FLERR,arg[5]); - double k6_one = force->numeric(FLERR,arg[6]); + double theta0_one = utils::numeric(FLERR,arg[1],false,lmp); + double k2_one = utils::numeric(FLERR,arg[2],false,lmp); + double k3_one = utils::numeric(FLERR,arg[3],false,lmp); + double k4_one = utils::numeric(FLERR,arg[4],false,lmp); + double k5_one = utils::numeric(FLERR,arg[5],false,lmp); + double k6_one = utils::numeric(FLERR,arg[6],false,lmp); // convert theta0 from degrees to radians diff --git a/src/USER-MOFFF/angle_cosine_buck6d.cpp b/src/USER-MOFFF/angle_cosine_buck6d.cpp index 838aa1ad70..0f49882e83 100644 --- a/src/USER-MOFFF/angle_cosine_buck6d.cpp +++ b/src/USER-MOFFF/angle_cosine_buck6d.cpp @@ -253,9 +253,9 @@ void AngleCosineBuck6d::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); - double c_one = force->numeric(FLERR,arg[1]); - int n_one = force->inumeric(FLERR,arg[2]); - int th0_one = force->numeric(FLERR,arg[3]); + double c_one = utils::numeric(FLERR,arg[1],false,lmp); + int n_one = utils::inumeric(FLERR,arg[2],false,lmp); + int th0_one = utils::numeric(FLERR,arg[3],false,lmp); if (n_one <= 0) error->all(FLERR,"Incorrect args for angle coefficients"); diff --git a/src/USER-MOFFF/improper_inversion_harmonic.cpp b/src/USER-MOFFF/improper_inversion_harmonic.cpp index ac2e06d364..0ecc60ecc1 100644 --- a/src/USER-MOFFF/improper_inversion_harmonic.cpp +++ b/src/USER-MOFFF/improper_inversion_harmonic.cpp @@ -278,8 +278,8 @@ void ImproperInversionHarmonic::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double w_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double w_one = utils::numeric(FLERR,arg[2],false,lmp); // convert w0 from degrees to radians diff --git a/src/USER-MOFFF/pair_buck6d_coul_gauss_dsf.cpp b/src/USER-MOFFF/pair_buck6d_coul_gauss_dsf.cpp index 8ad6b55598..28fc955448 100644 --- a/src/USER-MOFFF/pair_buck6d_coul_gauss_dsf.cpp +++ b/src/USER-MOFFF/pair_buck6d_coul_gauss_dsf.cpp @@ -247,11 +247,11 @@ void PairBuck6dCoulGaussDSF::settings(int narg, char **arg) { if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); - vdwl_smooth = force->numeric(FLERR,arg[0]); + vdwl_smooth = utils::numeric(FLERR,arg[0],false,lmp); - cut_lj_global = force->numeric(FLERR,arg[1]); + cut_lj_global = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[2]); + else cut_coul = utils::numeric(FLERR,arg[2],false,lmp); // reset cutoffs that have been explicitly set @@ -278,14 +278,14 @@ void PairBuck6dCoulGaussDSF::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double buck6d1_one = force->numeric(FLERR,arg[2]); - double buck6d2_one = force->numeric(FLERR,arg[3]); - double buck6d3_one = force->numeric(FLERR,arg[4]); - double buck6d4_one = force->numeric(FLERR,arg[5]); - double alpha_one = force->numeric(FLERR,arg[6]); + double buck6d1_one = utils::numeric(FLERR,arg[2],false,lmp); + double buck6d2_one = utils::numeric(FLERR,arg[3],false,lmp); + double buck6d3_one = utils::numeric(FLERR,arg[4],false,lmp); + double buck6d4_one = utils::numeric(FLERR,arg[5],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[6],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 8) cut_lj_one = force->numeric(FLERR,arg[7]); + if (narg == 8) cut_lj_one = utils::numeric(FLERR,arg[7],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-MOFFF/pair_buck6d_coul_gauss_long.cpp b/src/USER-MOFFF/pair_buck6d_coul_gauss_long.cpp index 848cafd882..20bf7fa049 100644 --- a/src/USER-MOFFF/pair_buck6d_coul_gauss_long.cpp +++ b/src/USER-MOFFF/pair_buck6d_coul_gauss_long.cpp @@ -262,12 +262,12 @@ void PairBuck6dCoulGaussLong::settings(int narg, char **arg) { if (narg < 3 || narg > 4) error->all(FLERR,"Illegal pair_style command"); - vdwl_smooth = force->numeric(FLERR,arg[0]); - coul_smooth = force->numeric(FLERR,arg[1]); + vdwl_smooth = utils::numeric(FLERR,arg[0],false,lmp); + coul_smooth = utils::numeric(FLERR,arg[1],false,lmp); - cut_lj_global = force->numeric(FLERR,arg[2]); + cut_lj_global = utils::numeric(FLERR,arg[2],false,lmp); if (narg == 3) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[3]); + else cut_coul = utils::numeric(FLERR,arg[3],false,lmp); // reset cutoffs that have been explicitly set @@ -294,14 +294,14 @@ void PairBuck6dCoulGaussLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double buck6d1_one = force->numeric(FLERR,arg[2]); - double buck6d2_one = force->numeric(FLERR,arg[3]); - double buck6d3_one = force->numeric(FLERR,arg[4]); - double buck6d4_one = force->numeric(FLERR,arg[5]); - double alpha_one = force->numeric(FLERR,arg[6]); + double buck6d1_one = utils::numeric(FLERR,arg[2],false,lmp); + double buck6d2_one = utils::numeric(FLERR,arg[3],false,lmp); + double buck6d3_one = utils::numeric(FLERR,arg[4],false,lmp); + double buck6d4_one = utils::numeric(FLERR,arg[5],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[6],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 8) cut_lj_one = force->numeric(FLERR,arg[7]); + if (narg == 8) cut_lj_one = utils::numeric(FLERR,arg[7],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-NETCDF/dump_netcdf.cpp b/src/USER-NETCDF/dump_netcdf.cpp index f297ef45eb..bb85dfb784 100644 --- a/src/USER-NETCDF/dump_netcdf.cpp +++ b/src/USER-NETCDF/dump_netcdf.cpp @@ -990,7 +990,7 @@ int DumpNetCDF::modify_param(int narg, char **arg) iarg++; if (iarg >= narg) error->all(FLERR,"expected additional arg after 'at' keyword."); - framei = force->inumeric(FLERR,arg[iarg]); + framei = utils::inumeric(FLERR,arg[iarg],false,lmp); if (framei == 0) error->all(FLERR,"frame 0 not allowed for 'at' keyword."); else if (framei < 0) framei--; iarg++; diff --git a/src/USER-NETCDF/dump_netcdf_mpiio.cpp b/src/USER-NETCDF/dump_netcdf_mpiio.cpp index 026a6eaa3a..8747bbea25 100644 --- a/src/USER-NETCDF/dump_netcdf_mpiio.cpp +++ b/src/USER-NETCDF/dump_netcdf_mpiio.cpp @@ -1003,7 +1003,7 @@ int DumpNetCDFMPIIO::modify_param(int narg, char **arg) iarg++; if (iarg >= narg) error->all(FLERR,"expected additional arg after 'at' keyword."); - framei = force->inumeric(FLERR,arg[iarg]); + framei = utils::inumeric(FLERR,arg[iarg],false,lmp); if (framei == 0) error->all(FLERR,"frame 0 not allowed for 'at' keyword."); else if (framei < 0) framei--; iarg++; diff --git a/src/USER-OMP/fix_omp.cpp b/src/USER-OMP/fix_omp.cpp index 51e65d24ed..47757c4ec3 100644 --- a/src/USER-OMP/fix_omp.cpp +++ b/src/USER-OMP/fix_omp.cpp @@ -75,7 +75,7 @@ FixOMP::FixOMP(LAMMPS *lmp, int narg, char **arg) #pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(nthreads) nthreads = omp_get_num_threads(); else - nthreads = force->inumeric(FLERR,arg[3]); + nthreads = utils::inumeric(FLERR,arg[3],false,lmp); #endif } diff --git a/src/USER-OMP/msm_cg_omp.cpp b/src/USER-OMP/msm_cg_omp.cpp index 95f9cdb3e8..524850eb63 100644 --- a/src/USER-OMP/msm_cg_omp.cpp +++ b/src/USER-OMP/msm_cg_omp.cpp @@ -62,7 +62,7 @@ void MSMCGOMP::settings(int narg, char **arg) MSMOMP::settings(narg,arg); - if (narg == 2) smallq = fabs(force->numeric(FLERR,arg[1])); + if (narg == 2) smallq = fabs(utils::numeric(FLERR,arg[1],false,Pointers::lmp)); else smallq = SMALLQ; } diff --git a/src/USER-PHONON/dynamical_matrix.cpp b/src/USER-PHONON/dynamical_matrix.cpp index d03a8d3ab0..adfcf6adb5 100644 --- a/src/USER-PHONON/dynamical_matrix.cpp +++ b/src/USER-PHONON/dynamical_matrix.cpp @@ -117,7 +117,7 @@ void DynamicalMatrix::command(int narg, char **arg) if (strcmp(arg[1],"regular") == 0) style = REGULAR; else if (strcmp(arg[1],"eskm") == 0) style = ESKM; else error->all(FLERR,"Illegal Dynamical Matrix command"); - del = force->numeric(FLERR, arg[2]); + del = utils::numeric(FLERR, arg[2],false,lmp); // set option defaults diff --git a/src/USER-PHONON/fix_phonon.cpp b/src/USER-PHONON/fix_phonon.cpp index 9b663ce383..17325b062a 100644 --- a/src/USER-PHONON/fix_phonon.cpp +++ b/src/USER-PHONON/fix_phonon.cpp @@ -68,13 +68,13 @@ FixPhonon::FixPhonon(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) if (narg < 8) error->all(FLERR,"Illegal fix phonon command: number of arguments < 8"); - nevery = force->inumeric(FLERR, arg[3]); // Calculate this fix every n steps! + nevery = utils::inumeric(FLERR, arg[3],false,lmp); // Calculate this fix every n steps! if (nevery < 1) error->all(FLERR,"Illegal fix phonon command"); - nfreq = force->inumeric(FLERR, arg[4]); // frequency to output result + nfreq = utils::inumeric(FLERR, arg[4],false,lmp); // frequency to output result if (nfreq < 1) error->all(FLERR,"Illegal fix phonon command"); - waitsteps = force->bnumeric(FLERR,arg[5]); // Wait this many timesteps before actually measuring + waitsteps = utils::bnumeric(FLERR,arg[5],false,lmp); // Wait this many timesteps before actually measuring if (waitsteps < 0) error->all(FLERR,"Illegal fix phonon command: waitsteps < 0 !"); int n = strlen(arg[6]) + 1; // map file @@ -95,12 +95,12 @@ FixPhonon::FixPhonon(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) while (iarg < narg){ if (strcmp(arg[iarg],"sysdim") == 0){ if (++iarg >= narg) error->all(FLERR,"Illegal fix phonon command: incomplete command line options."); - sdim = force->inumeric(FLERR, arg[iarg]); + sdim = utils::inumeric(FLERR, arg[iarg],false,lmp); if (sdim < 1) error->all(FLERR,"Illegal fix phonon command: sysdim should not be less than 1."); } else if (strcmp(arg[iarg],"nasr") == 0){ if (++iarg >= narg) error->all(FLERR,"Illegal fix phonon command: incomplete command line options."); - nasr = force->inumeric(FLERR, arg[iarg]); + nasr = utils::inumeric(FLERR, arg[iarg],false,lmp); } else { error->all(FLERR,"Illegal fix phonon command: unknown option read!"); @@ -570,10 +570,10 @@ void FixPhonon::readmap() if (fgets(line,MAXLINE,fp) == NULL) error->all(FLERR,"Error while reading header of mapping file!"); - nx = force->inumeric(FLERR, strtok(line, " \n\t\r\f")); - ny = force->inumeric(FLERR, strtok(NULL, " \n\t\r\f")); - nz = force->inumeric(FLERR, strtok(NULL, " \n\t\r\f")); - nucell = force->inumeric(FLERR, strtok(NULL, " \n\t\r\f")); + nx = utils::inumeric(FLERR, strtok(line, " \n\t\r\f"),false,lmp); + ny = utils::inumeric(FLERR, strtok(NULL, " \n\t\r\f"),false,lmp); + nz = utils::inumeric(FLERR, strtok(NULL, " \n\t\r\f"),false,lmp); + nucell = utils::inumeric(FLERR, strtok(NULL, " \n\t\r\f"),false,lmp); ntotal = nx*ny*nz; if (ntotal*nucell != ngroup) error->all(FLERR,"FFT mesh and number of atoms in group mismatch!"); @@ -586,11 +586,11 @@ void FixPhonon::readmap() // the remaining lines carry the mapping info for (int i = 0; i < ngroup; ++i){ if (fgets(line,MAXLINE,fp) == NULL) {info = 1; break;} - ix = force->inumeric(FLERR, strtok(line, " \n\t\r\f")); - iy = force->inumeric(FLERR, strtok(NULL, " \n\t\r\f")); - iz = force->inumeric(FLERR, strtok(NULL, " \n\t\r\f")); - iu = force->inumeric(FLERR, strtok(NULL, " \n\t\r\f")); - itag = force->inumeric(FLERR, strtok(NULL, " \n\t\r\f")); + ix = utils::inumeric(FLERR, strtok(line, " \n\t\r\f"),false,lmp); + iy = utils::inumeric(FLERR, strtok(NULL, " \n\t\r\f"),false,lmp); + iz = utils::inumeric(FLERR, strtok(NULL, " \n\t\r\f"),false,lmp); + iu = utils::inumeric(FLERR, strtok(NULL, " \n\t\r\f"),false,lmp); + itag = utils::inumeric(FLERR, strtok(NULL, " \n\t\r\f"),false,lmp); // check if index is in correct range if (ix < 0 || ix >= nx || iy < 0 || iy >= ny || diff --git a/src/USER-PHONON/third_order.cpp b/src/USER-PHONON/third_order.cpp index 7764287337..6e09710833 100644 --- a/src/USER-PHONON/third_order.cpp +++ b/src/USER-PHONON/third_order.cpp @@ -132,7 +132,7 @@ void ThirdOrder::command(int narg, char **arg) if (style == REGULAR) options(narg-3,&arg[3]); //COME BACK else if (style == BALLISTICO) options(narg-3,&arg[3]); //COME BACK else if (comm->me == 0 && screen) fprintf(screen,"Illegal Dynamical Matrix command\n"); - del = force->numeric(FLERR, arg[2]); + del = utils::numeric(FLERR, arg[2],false,lmp); if (atom->map_style == 0) error->all(FLERR,"third_order command requires an atom map, see atom_modify"); diff --git a/src/USER-PTM/compute_ptm_atom.cpp b/src/USER-PTM/compute_ptm_atom.cpp index df6a01e6c6..309dd75c19 100644 --- a/src/USER-PTM/compute_ptm_atom.cpp +++ b/src/USER-PTM/compute_ptm_atom.cpp @@ -115,7 +115,7 @@ ComputePTMAtom::ComputePTMAtom(LAMMPS *lmp, int narg, char **arg) ptr++; } - double threshold = force->numeric(FLERR, arg[4]); + double threshold = utils::numeric(FLERR, arg[4],false,lmp); if (threshold < 0.0) error->all(FLERR, "Illegal compute ptm/atom command (threshold is negative)"); diff --git a/src/USER-QTB/fix_qbmsst.cpp b/src/USER-QTB/fix_qbmsst.cpp index d58c917308..b590e1ae9a 100644 --- a/src/USER-QTB/fix_qbmsst.cpp +++ b/src/USER-QTB/fix_qbmsst.cpp @@ -100,70 +100,70 @@ FixQBMSST::FixQBMSST(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"q") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - qmass = force->numeric(FLERR,arg[iarg+1]); + qmass = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (qmass < 0.0) error->all(FLERR,"Fix qbmsst qmass must be >= 0.0"); iarg += 2; } else if (strcmp(arg[iarg],"mu") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - mu = force->numeric(FLERR,arg[iarg+1]); + mu = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (mu < 0.0) error->all(FLERR,"Fix qbmsst mu must be >= 0.0"); iarg += 2; } else if (strcmp(arg[iarg],"p0") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - p0 = force->numeric(FLERR,arg[iarg+1]); + p0 = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (p0 < 0.0) error->all(FLERR,"Fix qbmsst p0 must be >= 0.0"); p0_set = 1; iarg += 2; } else if (strcmp(arg[iarg],"v0") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - v0 = force->numeric(FLERR,arg[iarg+1]); + v0 = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (v0 < 0.0) error->all(FLERR,"Fix qbmsst v0 must be >= 0.0"); v0_set = 1; iarg += 2; } else if (strcmp(arg[iarg],"e0") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - e0 = force->numeric(FLERR,arg[iarg+1]); + e0 = utils::numeric(FLERR,arg[iarg+1],false,lmp); e0_set = 1; iarg += 2; } else if (strcmp(arg[iarg],"tscale") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - tscale = force->numeric(FLERR,arg[iarg+1]); + tscale = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (tscale < 0.0 || tscale > 1.0) error->all(FLERR,"Fix qbmsst tscale must satisfy 0 <= tscale < 1"); iarg += 2; } else if (strcmp(arg[iarg],"damp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - t_period = force->numeric(FLERR,arg[iarg+1]); + t_period = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (t_period <= 0.0) error->all(FLERR,"Fix qbmsst damp must be > 0.0"); fric_coef = 1/t_period; iarg += 2; } else if (strcmp(arg[iarg],"seed") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - seed = force->inumeric(FLERR,arg[iarg+1]); + seed = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (seed <= 0) error->all(FLERR,"Fix qbmsst seed must be a positive integer"); iarg += 2; } else if (strcmp(arg[iarg],"f_max") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - f_max = force->numeric(FLERR,arg[iarg+1]); + f_max = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (f_max <= 0) error->all(FLERR,"Fix qbmsst f_max must be > 0.0"); iarg += 2; } else if (strcmp(arg[iarg],"N_f") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - N_f = force->inumeric(FLERR,arg[iarg+1]); + N_f = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (N_f <= 0) error->all(FLERR,"Fix qbmsst N_f must be a positive integer"); iarg += 2; } else if (strcmp(arg[iarg],"eta") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - eta = force->numeric(FLERR,arg[iarg+1]); + eta = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (eta <= 0) error->all(FLERR,"Fix qbmsst eta must be >= 0.0"); iarg += 2; } else if (strcmp(arg[iarg],"beta") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - beta = force->inumeric(FLERR,arg[iarg+1]); + beta = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (beta <= 0) error->all(FLERR,"Fix qbmsst beta must be a positive integer"); iarg += 2; } else if (strcmp(arg[iarg],"T_init") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qbmsst command"); - t_init = force->numeric(FLERR,arg[iarg+1]); + t_init = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (t_init <= 0) error->all(FLERR,"Fix qbmsst T_init must be >= 0.0"); iarg += 2; } else error->all(FLERR,"Illegal fix qbmsst command"); diff --git a/src/USER-QTB/fix_qtb.cpp b/src/USER-QTB/fix_qtb.cpp index a29dbc70a1..80c0efddab 100644 --- a/src/USER-QTB/fix_qtb.cpp +++ b/src/USER-QTB/fix_qtb.cpp @@ -64,28 +64,28 @@ FixQTB::FixQTB(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"temp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qtb command"); - t_target = force->numeric(FLERR,arg[iarg+1]); + t_target = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (t_target < 0.0) error->all(FLERR,"Fix qtb temp must be >= 0.0"); iarg += 2; } else if (strcmp(arg[iarg],"damp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qtb command"); - t_period = force->numeric(FLERR,arg[iarg+1]); + t_period = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (t_period <= 0.0) error->all(FLERR,"Fix qtb damp must be > 0.0"); fric_coef = 1/t_period; iarg += 2; } else if (strcmp(arg[iarg],"seed") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qtb command"); - seed = force->inumeric(FLERR,arg[iarg+1]); + seed = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (seed <= 0) error->all(FLERR,"Illegal fix qtb command"); iarg += 2; } else if (strcmp(arg[iarg],"f_max") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qtb command"); - f_max = force->numeric(FLERR,arg[iarg+1]); + f_max = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (f_max <= 0) error->all(FLERR,"Illegal fix qtb command"); iarg += 2; } else if (strcmp(arg[iarg],"N_f") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix qtb command"); - N_f = force->inumeric(FLERR,arg[iarg+1]); + N_f = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (N_f <= 0) error->all(FLERR,"Illegal fix qtb command"); iarg += 2; } else error->all(FLERR,"Illegal fix qtb command"); diff --git a/src/USER-QUIP/pair_quip.cpp b/src/USER-QUIP/pair_quip.cpp index 7c762208b7..64c56cb0e6 100644 --- a/src/USER-QUIP/pair_quip.cpp +++ b/src/USER-QUIP/pair_quip.cpp @@ -275,7 +275,7 @@ void PairQUIP::coeff(int narg, char **arg) if (strcmp(arg[i],"NULL") == 0) map[i-3] = -1; else - map[i-3] = force->inumeric(FLERR,arg[i]); + map[i-3] = utils::inumeric(FLERR,arg[i],false,lmp); } // clear setflag since coeff() called once with I,J = * * diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 0b0e41581d..4a34dd50cb 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -263,7 +263,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : var_flag[NEVERY][rxn] = 1; delete [] str; } else { - nevery[rxn] = force->inumeric(FLERR,arg[iarg]); + nevery[rxn] = utils::inumeric(FLERR,arg[iarg],false,lmp); if (nevery[rxn] <= 0) error->all(FLERR,"Illegal fix bond/react command: " "'Nevery' must be a positive integer"); } @@ -283,7 +283,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : var_flag[RMIN][rxn] = 1; delete [] str; } else { - double cutoff = force->numeric(FLERR,arg[iarg]); + double cutoff = utils::numeric(FLERR,arg[iarg],false,lmp); if (cutoff < 0.0) error->all(FLERR,"Illegal fix bond/react command: " "'Rmin' cannot be negative"); cutsq[rxn][0] = cutoff*cutoff; @@ -304,7 +304,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : var_flag[RMAX][rxn] = 1; delete [] str; } else { - double cutoff = force->numeric(FLERR,arg[iarg]); + double cutoff = utils::numeric(FLERR,arg[iarg],false,lmp); if (cutoff < 0.0) error->all(FLERR,"Illegal fix bond/react command:" "'Rmax' cannot be negative"); cutsq[rxn][1] = cutoff*cutoff; @@ -342,9 +342,9 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : delete [] str; } else { // otherwise probability should be a number - fraction[rxn] = force->numeric(FLERR,arg[iarg+1]); + fraction[rxn] = utils::numeric(FLERR,arg[iarg+1],false,lmp); } - seed[rxn] = force->inumeric(FLERR,arg[iarg+2]); + seed[rxn] = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (fraction[rxn] < 0.0 || fraction[rxn] > 1.0) error->all(FLERR,"Illegal fix bond/react command: " "probability fraction must between 0 and 1, inclusive"); @@ -354,7 +354,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"max_rxn") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " "'max_rxn' has too few arguments"); - max_rxn[rxn] = force->inumeric(FLERR,arg[iarg+1]); + max_rxn[rxn] = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (max_rxn[rxn] < 0) error->all(FLERR,"Illegal fix bond/react command: " "'max_rxn' cannot be negative"); iarg += 2; @@ -363,7 +363,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : "used without stabilization keyword"); if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " "'stabilize_steps' has too few arguments"); - limit_duration[rxn] = force->numeric(FLERR,arg[iarg+1]); + limit_duration[rxn] = utils::numeric(FLERR,arg[iarg+1],false,lmp); stabilize_steps_flag[rxn] = 1; iarg += 2; } else if (strcmp(arg[iarg],"update_edges") == 0) { diff --git a/src/USER-REAXC/fix_qeq_reax.cpp b/src/USER-REAXC/fix_qeq_reax.cpp index b9cff75d65..433fd82bcd 100644 --- a/src/USER-REAXC/fix_qeq_reax.cpp +++ b/src/USER-REAXC/fix_qeq_reax.cpp @@ -66,12 +66,12 @@ FixQEqReax::FixQEqReax(LAMMPS *lmp, int narg, char **arg) : if (narg<8 || narg>9) error->all(FLERR,"Illegal fix qeq/reax command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix qeq/reax command"); - swa = force->numeric(FLERR,arg[4]); - swb = force->numeric(FLERR,arg[5]); - tolerance = force->numeric(FLERR,arg[6]); + swa = utils::numeric(FLERR,arg[4],false,lmp); + swb = utils::numeric(FLERR,arg[5],false,lmp); + tolerance = utils::numeric(FLERR,arg[6],false,lmp); int len = strlen(arg[7]) + 1; pertype_option = new char[len]; strcpy(pertype_option,arg[7]); diff --git a/src/USER-REAXC/fix_reaxc_bonds.cpp b/src/USER-REAXC/fix_reaxc_bonds.cpp index f7ad7ed6d4..5c57fed261 100644 --- a/src/USER-REAXC/fix_reaxc_bonds.cpp +++ b/src/USER-REAXC/fix_reaxc_bonds.cpp @@ -44,7 +44,7 @@ FixReaxCBonds::FixReaxCBonds(LAMMPS *lmp, int narg, char **arg) : ntypes = atom->ntypes; nmax = atom->nmax; - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0 ) error->all(FLERR,"Illegal fix reax/c/bonds command"); diff --git a/src/USER-REAXC/pair_reaxc.cpp b/src/USER-REAXC/pair_reaxc.cpp index c89ac5ba77..0262ffc14d 100644 --- a/src/USER-REAXC/pair_reaxc.cpp +++ b/src/USER-REAXC/pair_reaxc.cpp @@ -274,20 +274,20 @@ void PairReaxC::settings(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"safezone") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal pair_style reax/c command"); - system->safezone = force->numeric(FLERR,arg[iarg+1]); + system->safezone = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (system->safezone < 0.0) error->all(FLERR,"Illegal pair_style reax/c safezone command"); system->saferzone = system->safezone*1.2 + 0.2; iarg += 2; } else if (strcmp(arg[iarg],"mincap") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal pair_style reax/c command"); - system->mincap = force->inumeric(FLERR,arg[iarg+1]); + system->mincap = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (system->mincap < 0) error->all(FLERR,"Illegal pair_style reax/c mincap command"); iarg += 2; } else if (strcmp(arg[iarg],"minhbonds") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal pair_style reax/c command"); - system->minhbonds = force->inumeric(FLERR,arg[iarg+1]); + system->minhbonds = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (system->minhbonds < 0) error->all(FLERR,"Illegal pair_style reax/c minhbonds command"); iarg += 2; diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 497442fbe8..c49f99a5a0 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -57,7 +57,7 @@ void Scafacos::settings(int narg, char **arg) int n = strlen(arg[0]) + 1; method = new char[n]; strcpy(method,arg[0]); - tolerance = force->numeric(FLERR,arg[1]); + tolerance = utils::numeric(FLERR,arg[1],false,lmp); // optional ScaFaCoS library setting defaults // choose the correct default tolerance type for chosen method diff --git a/src/USER-SDPD/fix_meso_move.cpp b/src/USER-SDPD/fix_meso_move.cpp index 6db2aaa478..c39d142a6e 100644 --- a/src/USER-SDPD/fix_meso_move.cpp +++ b/src/USER-SDPD/fix_meso_move.cpp @@ -74,17 +74,17 @@ FixMesoMove::FixMesoMove (LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[4],"NULL") == 0) vxflag = 0; else { vxflag = 1; - vx = force->numeric(FLERR,arg[4]); + vx = utils::numeric(FLERR,arg[4],false,lmp); } if (strcmp(arg[5],"NULL") == 0) vyflag = 0; else { vyflag = 1; - vy = force->numeric(FLERR,arg[5]); + vy = utils::numeric(FLERR,arg[5],false,lmp); } if (strcmp(arg[6],"NULL") == 0) vzflag = 0; else { vzflag = 1; - vz = force->numeric(FLERR,arg[6]); + vz = utils::numeric(FLERR,arg[6],false,lmp); } } else if (strcmp(arg[3],"wiggle") == 0) { @@ -94,32 +94,32 @@ FixMesoMove::FixMesoMove (LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[4],"NULL") == 0) axflag = 0; else { axflag = 1; - ax = force->numeric(FLERR,arg[4]); + ax = utils::numeric(FLERR,arg[4],false,lmp); } if (strcmp(arg[5],"NULL") == 0) ayflag = 0; else { ayflag = 1; - ay = force->numeric(FLERR,arg[5]); + ay = utils::numeric(FLERR,arg[5],false,lmp); } if (strcmp(arg[6],"NULL") == 0) azflag = 0; else { azflag = 1; - az = force->numeric(FLERR,arg[6]); + az = utils::numeric(FLERR,arg[6],false,lmp); } - period = force->numeric(FLERR,arg[7]); + period = utils::numeric(FLERR,arg[7],false,lmp); if (period <= 0.0) error->all(FLERR,"Illegal fix meso/move command"); } else if (strcmp(arg[3],"rotate") == 0) { if (narg < 11) error->all(FLERR,"Illegal fix meso/move command"); iarg = 11; mstyle = ROTATE; - point[0] = force->numeric(FLERR,arg[4]); - point[1] = force->numeric(FLERR,arg[5]); - point[2] = force->numeric(FLERR,arg[6]); - axis[0] = force->numeric(FLERR,arg[7]); - axis[1] = force->numeric(FLERR,arg[8]); - axis[2] = force->numeric(FLERR,arg[9]); - period = force->numeric(FLERR,arg[10]); + point[0] = utils::numeric(FLERR,arg[4],false,lmp); + point[1] = utils::numeric(FLERR,arg[5],false,lmp); + point[2] = utils::numeric(FLERR,arg[6],false,lmp); + axis[0] = utils::numeric(FLERR,arg[7],false,lmp); + axis[1] = utils::numeric(FLERR,arg[8],false,lmp); + axis[2] = utils::numeric(FLERR,arg[9],false,lmp); + period = utils::numeric(FLERR,arg[10],false,lmp); if (period <= 0.0) error->all(FLERR,"Illegal fix meso/move command"); } else if (strcmp(arg[3],"variable") == 0) { diff --git a/src/USER-SDPD/pair_sdpd_taitwater_isothermal.cpp b/src/USER-SDPD/pair_sdpd_taitwater_isothermal.cpp index befcdb8d34..b215e8d278 100644 --- a/src/USER-SDPD/pair_sdpd_taitwater_isothermal.cpp +++ b/src/USER-SDPD/pair_sdpd_taitwater_isothermal.cpp @@ -243,15 +243,15 @@ void PairSDPDTaitwaterIsothermal::settings (int narg, char **arg) { error->all (FLERR, "Illegal number of arguments for " "pair_style sdpd/taitwater/isothermal"); - temperature = force->numeric (FLERR, arg[0]); - viscosity = force->numeric (FLERR, arg[1]); + temperature = utils::numeric(FLERR, arg[0], false, lmp); + viscosity = utils::numeric(FLERR, arg[1], false, lmp); if (temperature <= 0) error->all (FLERR, "Temperature must be positive"); if (viscosity <= 0) error->all (FLERR, "Viscosity must be positive"); // seed is immune to underflow/overflow because it is unsigned seed = comm->nprocs + comm->me + atom->nlocal; - if (narg == 3) seed += force->inumeric (FLERR, arg[2]); + if (narg == 3) seed += utils::inumeric(FLERR, arg[2], false, lmp); #ifdef USE_ZEST generator.seed (seed); #else @@ -274,9 +274,9 @@ void PairSDPDTaitwaterIsothermal::coeff (int narg, char **arg) { utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); - double rho0_one = force->numeric (FLERR,arg[2]); - double soundspeed_one = force->numeric (FLERR,arg[3]); - double cut_one = force->numeric (FLERR,arg[4]); + double rho0_one = utils::numeric(FLERR,arg[2], false, lmp); + double soundspeed_one = utils::numeric(FLERR,arg[3], false, lmp); + double cut_one = utils::numeric(FLERR,arg[4], false, lmp); double B_one = soundspeed_one * soundspeed_one * rho0_one / 7.0; if (rho0_one <= 0) error->all (FLERR, "Density must be positive"); diff --git a/src/USER-SMD/fix_smd_integrate_tlsph.cpp b/src/USER-SMD/fix_smd_integrate_tlsph.cpp index ed039d39d4..7d5e89f895 100644 --- a/src/USER-SMD/fix_smd_integrate_tlsph.cpp +++ b/src/USER-SMD/fix_smd_integrate_tlsph.cpp @@ -74,7 +74,7 @@ FixSMDIntegrateTlsph::FixSMDIntegrateTlsph(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR, "expected number following limit_velocity"); } - vlimit = force->numeric(FLERR, arg[iarg]); + vlimit = utils::numeric(FLERR, arg[iarg],false,lmp); if (comm->me == 0) { printf("... will limit velocities to <= %g\n", vlimit); } diff --git a/src/USER-SMD/fix_smd_integrate_ulsph.cpp b/src/USER-SMD/fix_smd_integrate_ulsph.cpp index 4978416e66..215759331e 100644 --- a/src/USER-SMD/fix_smd_integrate_ulsph.cpp +++ b/src/USER-SMD/fix_smd_integrate_ulsph.cpp @@ -77,21 +77,21 @@ FixSMDIntegrateUlsph::FixSMDIntegrateUlsph(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR, "expected three numbers following adjust_radius: factor, min, max"); } - adjust_radius_factor = force->numeric(FLERR, arg[iarg]); + adjust_radius_factor = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected three numbers following adjust_radius: factor, min, max"); } - min_nn = force->inumeric(FLERR, arg[iarg]); + min_nn = utils::inumeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected three numbers following adjust_radius: factor, min, max"); } - max_nn = force->inumeric(FLERR, arg[iarg]); + max_nn = utils::inumeric(FLERR, arg[iarg],false,lmp); if (comm->me == 0) { printf("... will adjust smoothing length dynamically with factor %g to achieve %d to %d neighbors per particle.\n ", @@ -103,7 +103,7 @@ FixSMDIntegrateUlsph::FixSMDIntegrateUlsph(LAMMPS *lmp, int narg, char **arg) : if (iarg == narg) { error->all(FLERR, "expected number following limit_velocity"); } - vlimit = force->numeric(FLERR, arg[iarg]); + vlimit = utils::numeric(FLERR, arg[iarg],false,lmp); if (comm->me == 0) { printf("... will limit velocities to <= %g\n", vlimit); diff --git a/src/USER-SMD/fix_smd_move_triangulated_surface.cpp b/src/USER-SMD/fix_smd_move_triangulated_surface.cpp index cbaad9ac4c..2aa6f980ed 100644 --- a/src/USER-SMD/fix_smd_move_triangulated_surface.cpp +++ b/src/USER-SMD/fix_smd_move_triangulated_surface.cpp @@ -77,19 +77,19 @@ FixSMDMoveTriSurf::FixSMDMoveTriSurf(LAMMPS *lmp, int narg, char **arg) : if (iarg == narg) { error->all(FLERR, "expected three floats for velocity following *LINEAR"); } - vx = force->numeric(FLERR, arg[iarg]); + vx = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected three floats for velocity following *LINEAR"); } - vy = force->numeric(FLERR, arg[iarg]); + vy = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected three floats for velocity following *LINEAR"); } - vz = force->numeric(FLERR, arg[iarg]); + vz = utils::numeric(FLERR, arg[iarg],false,lmp); } else if (strcmp(arg[iarg], "*WIGGLE") == 0) { wiggleFlag = true; @@ -101,25 +101,25 @@ FixSMDMoveTriSurf::FixSMDMoveTriSurf(LAMMPS *lmp, int narg, char **arg) : if (iarg == narg) { error->all(FLERR, "expected 4 floats following *WIGGLE : vx vy vz max_travel"); } - vx = force->numeric(FLERR, arg[iarg]); + vx = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected 4 floats following *WIGGLE : vx vy vz max_travel"); } - vy = force->numeric(FLERR, arg[iarg]); + vy = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected 4 floats following *WIGGLE : vx vy vz max_travel"); } - vz = force->numeric(FLERR, arg[iarg]); + vz = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected 4 floats following *WIGGLE : vx vy vz max_travel"); } - wiggle_max_travel = force->numeric(FLERR, arg[iarg]); + wiggle_max_travel = utils::numeric(FLERR, arg[iarg],false,lmp); } else if (strcmp(arg[iarg], "*ROTATE") == 0) { rotateFlag = true; @@ -128,43 +128,43 @@ FixSMDMoveTriSurf::FixSMDMoveTriSurf(LAMMPS *lmp, int narg, char **arg) : if (iarg == narg) { error->all(FLERR, "expected 7 floats following *ROTATE: origin, rotation axis, and rotation period"); } - origin(0) = force->numeric(FLERR, arg[iarg]); + origin(0) = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected 7 floats following *ROTATE: origin, rotation axis, and rotation period"); } - origin(1) = force->numeric(FLERR, arg[iarg]); + origin(1) = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected 7 floats following *ROTATE: origin, rotation axis, and rotation period"); } - origin(2) = force->numeric(FLERR, arg[iarg]); + origin(2) = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected 7 floats following *ROTATE: origin, rotation axis, and rotation period"); } - rotation_axis(0) = force->numeric(FLERR, arg[iarg]); + rotation_axis(0) = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected 7 floats following *ROTATE: origin, rotation axis, and rotation period"); } - rotation_axis(1) = force->numeric(FLERR, arg[iarg]); + rotation_axis(1) = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected 7 floats following *ROTATE: origin, rotation axis, and rotation period"); } - rotation_axis(2) = force->numeric(FLERR, arg[iarg]); + rotation_axis(2) = utils::numeric(FLERR, arg[iarg],false,lmp); iarg++; if (iarg == narg) { error->all(FLERR, "expected 7 floats following *ROTATE: origin, rotation axis, and rotation period"); } - rotation_period = force->numeric(FLERR, arg[iarg]); + rotation_period = utils::numeric(FLERR, arg[iarg],false,lmp); /* * construct rotation matrix diff --git a/src/USER-SMD/fix_smd_setvel.cpp b/src/USER-SMD/fix_smd_setvel.cpp index 2964ded544..895e5b1a25 100644 --- a/src/USER-SMD/fix_smd_setvel.cpp +++ b/src/USER-SMD/fix_smd_setvel.cpp @@ -66,7 +66,7 @@ FixSMDSetVel::FixSMDSetVel(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[3], "NULL") == 0) { xstyle = NONE; } else { - xvalue = force->numeric(FLERR, arg[3]); + xvalue = utils::numeric(FLERR, arg[3],false,lmp); xstyle = CONSTANT; } if (strstr(arg[4], "v_") == arg[4]) { @@ -76,7 +76,7 @@ FixSMDSetVel::FixSMDSetVel(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[4], "NULL") == 0) { ystyle = NONE; } else { - yvalue = force->numeric(FLERR, arg[4]); + yvalue = utils::numeric(FLERR, arg[4],false,lmp); ystyle = CONSTANT; } if (strstr(arg[5], "v_") == arg[5]) { @@ -86,7 +86,7 @@ FixSMDSetVel::FixSMDSetVel(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[5], "NULL") == 0) { zstyle = NONE; } else { - zvalue = force->numeric(FLERR, arg[5]); + zvalue = utils::numeric(FLERR, arg[5],false,lmp); zstyle = CONSTANT; } diff --git a/src/USER-SMD/fix_smd_wall_surface.cpp b/src/USER-SMD/fix_smd_wall_surface.cpp index 9183bcd9ea..ba3a324d56 100644 --- a/src/USER-SMD/fix_smd_wall_surface.cpp +++ b/src/USER-SMD/fix_smd_wall_surface.cpp @@ -51,8 +51,8 @@ FixSMDWallSurface::FixSMDWallSurface(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR, "Illegal number of arguments for fix smd/wall_surface"); filename = strdup(arg[3]); - wall_particle_type = force->inumeric(FLERR, arg[4]); - wall_molecule_id = force->inumeric(FLERR, arg[5]); + wall_particle_type = utils::inumeric(FLERR,arg[4],false,lmp); + wall_molecule_id = utils::inumeric(FLERR,arg[5],false,lmp); if (wall_molecule_id < 65535) { error->one(FLERR, "wall molcule id must be >= 65535\n"); } @@ -310,7 +310,9 @@ void FixSMDWallSurface::read_triangles(int pass) { error->all(FLERR, "Incorrect atom format in data file"); } - normal << force->numeric(FLERR, values[2]), force->numeric(FLERR, values[3]), force->numeric(FLERR, values[4]); + normal << utils::numeric(FLERR, values[2], false, lmp), + utils::numeric(FLERR, values[3], false, lmp), + utils::numeric(FLERR, values[4], false, lmp); //cout << "normal is " << normal << endl; delete[] values; @@ -349,7 +351,9 @@ void FixSMDWallSurface::read_triangles(int pass) { error->all(FLERR, "Incorrect vertex line"); } - vert[k] << force->numeric(FLERR, values[1]), force->numeric(FLERR, values[2]), force->numeric(FLERR, values[3]); + vert[k] << utils::numeric(FLERR, values[1], false, lmp), + utils::numeric(FLERR, values[2], false, lmp), + utils::numeric(FLERR, values[3], false, lmp); //cout << "vertex is " << vert[k] << endl; //printf("%s %s %s\n", values[1], values[2], values[3]); delete[] values; diff --git a/src/USER-SMD/pair_smd_hertz.cpp b/src/USER-SMD/pair_smd_hertz.cpp index b4af7ca955..67fda5f18d 100644 --- a/src/USER-SMD/pair_smd_hertz.cpp +++ b/src/USER-SMD/pair_smd_hertz.cpp @@ -240,7 +240,7 @@ void PairHertz::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR, "Illegal number of args for pair_style hertz"); - scale = force->numeric(FLERR, arg[0]); + scale = utils::numeric(FLERR, arg[0],false,lmp); if (comm->me == 0) { printf("\n>>========>>========>>========>>========>>========>>========>>========>>========\n"); printf("SMD/HERTZ CONTACT SETTINGS:\n"); diff --git a/src/USER-SMD/pair_smd_tlsph.cpp b/src/USER-SMD/pair_smd_tlsph.cpp index c932086a32..1ba4b37520 100644 --- a/src/USER-SMD/pair_smd_tlsph.cpp +++ b/src/USER-SMD/pair_smd_tlsph.cpp @@ -935,7 +935,7 @@ void PairTlsph::settings(int narg, char **arg) { } update_method = UPDATE_CONSTANT_THRESHOLD; - update_threshold = force->numeric(FLERR, arg[iarg]); + update_threshold = utils::numeric(FLERR, arg[iarg],false,lmp); } else if (strcmp(arg[iarg], "*UPDATE_PAIRWISE") == 0) { iarg++; @@ -944,7 +944,7 @@ void PairTlsph::settings(int narg, char **arg) { } update_method = UPDATE_PAIRWISE_RATIO; - update_threshold = force->numeric(FLERR, arg[iarg]); + update_threshold = utils::numeric(FLERR, arg[iarg],false,lmp); } else { char msg[128]; @@ -1002,11 +1002,11 @@ void PairTlsph::coeff(int narg, char **arg) { /* * check that TLSPH parameters are given only in i,i form */ - if (force->inumeric(FLERR, arg[0]) != force->inumeric(FLERR, arg[1])) { + if (utils::inumeric(FLERR, arg[0], false, lmp) != utils::inumeric(FLERR, arg[1], false, lmp)) { sprintf(str, "TLSPH coefficients can only be specified between particles of same type!"); error->all(FLERR, str); } - itype = force->inumeric(FLERR, arg[0]); + itype = utils::inumeric(FLERR, arg[0],false,lmp); // set all eos, strength and failure models to inactive by default eos[itype] = EOS_NONE; @@ -1050,13 +1050,13 @@ void PairTlsph::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[REFERENCE_DENSITY][itype] = force->numeric(FLERR, arg[ioffset + 1]); - Lookup[YOUNGS_MODULUS][itype] = force->numeric(FLERR, arg[ioffset + 2]); - Lookup[POISSON_RATIO][itype] = force->numeric(FLERR, arg[ioffset + 3]); - Lookup[VISCOSITY_Q1][itype] = force->numeric(FLERR, arg[ioffset + 4]); - Lookup[VISCOSITY_Q2][itype] = force->numeric(FLERR, arg[ioffset + 5]); - Lookup[HOURGLASS_CONTROL_AMPLITUDE][itype] = force->numeric(FLERR, arg[ioffset + 6]); - Lookup[HEAT_CAPACITY][itype] = force->numeric(FLERR, arg[ioffset + 7]); + Lookup[REFERENCE_DENSITY][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); + Lookup[YOUNGS_MODULUS][itype] = utils::numeric(FLERR, arg[ioffset + 2],false,lmp); + Lookup[POISSON_RATIO][itype] = utils::numeric(FLERR, arg[ioffset + 3],false,lmp); + Lookup[VISCOSITY_Q1][itype] = utils::numeric(FLERR, arg[ioffset + 4],false,lmp); + Lookup[VISCOSITY_Q2][itype] = utils::numeric(FLERR, arg[ioffset + 5],false,lmp); + Lookup[HOURGLASS_CONTROL_AMPLITUDE][itype] = utils::numeric(FLERR, arg[ioffset + 6],false,lmp); + Lookup[HEAT_CAPACITY][itype] = utils::numeric(FLERR, arg[ioffset + 7],false,lmp); Lookup[LAME_LAMBDA][itype] = Lookup[YOUNGS_MODULUS][itype] * Lookup[POISSON_RATIO][itype] / ((1.0 + Lookup[POISSON_RATIO][itype]) * (1.0 - 2.0 * Lookup[POISSON_RATIO][itype])); @@ -1201,8 +1201,8 @@ void PairTlsph::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[YIELD_STRESS][itype] = force->numeric(FLERR, arg[ioffset + 1]); - Lookup[HARDENING_PARAMETER][itype] = force->numeric(FLERR, arg[ioffset + 2]); + Lookup[YIELD_STRESS][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); + Lookup[HARDENING_PARAMETER][itype] = utils::numeric(FLERR, arg[ioffset + 2],false,lmp); if (comm->me == 0) { printf("%60s\n", "Linear elastic / perfectly plastic strength based on strain rate"); @@ -1245,14 +1245,14 @@ void PairTlsph::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[JC_A][itype] = force->numeric(FLERR, arg[ioffset + 1]); - Lookup[JC_B][itype] = force->numeric(FLERR, arg[ioffset + 2]); - Lookup[JC_a][itype] = force->numeric(FLERR, arg[ioffset + 3]); - Lookup[JC_C][itype] = force->numeric(FLERR, arg[ioffset + 4]); - Lookup[JC_epdot0][itype] = force->numeric(FLERR, arg[ioffset + 5]); - Lookup[JC_T0][itype] = force->numeric(FLERR, arg[ioffset + 6]); - Lookup[JC_Tmelt][itype] = force->numeric(FLERR, arg[ioffset + 7]); - Lookup[JC_M][itype] = force->numeric(FLERR, arg[ioffset + 8]); + Lookup[JC_A][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); + Lookup[JC_B][itype] = utils::numeric(FLERR, arg[ioffset + 2],false,lmp); + Lookup[JC_a][itype] = utils::numeric(FLERR, arg[ioffset + 3],false,lmp); + Lookup[JC_C][itype] = utils::numeric(FLERR, arg[ioffset + 4],false,lmp); + Lookup[JC_epdot0][itype] = utils::numeric(FLERR, arg[ioffset + 5],false,lmp); + Lookup[JC_T0][itype] = utils::numeric(FLERR, arg[ioffset + 6],false,lmp); + Lookup[JC_Tmelt][itype] = utils::numeric(FLERR, arg[ioffset + 7],false,lmp); + Lookup[JC_M][itype] = utils::numeric(FLERR, arg[ioffset + 8],false,lmp); if (comm->me == 0) { printf("%60s\n", "Johnson Cook material strength model"); @@ -1370,9 +1370,9 @@ void PairTlsph::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[EOS_SHOCK_C0][itype] = force->numeric(FLERR, arg[ioffset + 1]); - Lookup[EOS_SHOCK_S][itype] = force->numeric(FLERR, arg[ioffset + 2]); - Lookup[EOS_SHOCK_GAMMA][itype] = force->numeric(FLERR, arg[ioffset + 3]); + Lookup[EOS_SHOCK_C0][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); + Lookup[EOS_SHOCK_S][itype] = utils::numeric(FLERR, arg[ioffset + 2],false,lmp); + Lookup[EOS_SHOCK_GAMMA][itype] = utils::numeric(FLERR, arg[ioffset + 3],false,lmp); if (comm->me == 0) { printf("\n%60s\n", "shock EOS based on strain rate"); printf("%60s : %g\n", "reference speed of sound", Lookup[EOS_SHOCK_C0][itype]); @@ -1411,13 +1411,13 @@ void PairTlsph::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[EOS_POLYNOMIAL_C0][itype] = force->numeric(FLERR, arg[ioffset + 1]); - Lookup[EOS_POLYNOMIAL_C1][itype] = force->numeric(FLERR, arg[ioffset + 2]); - Lookup[EOS_POLYNOMIAL_C2][itype] = force->numeric(FLERR, arg[ioffset + 3]); - Lookup[EOS_POLYNOMIAL_C3][itype] = force->numeric(FLERR, arg[ioffset + 4]); - Lookup[EOS_POLYNOMIAL_C4][itype] = force->numeric(FLERR, arg[ioffset + 5]); - Lookup[EOS_POLYNOMIAL_C5][itype] = force->numeric(FLERR, arg[ioffset + 6]); - Lookup[EOS_POLYNOMIAL_C6][itype] = force->numeric(FLERR, arg[ioffset + 7]); + Lookup[EOS_POLYNOMIAL_C0][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); + Lookup[EOS_POLYNOMIAL_C1][itype] = utils::numeric(FLERR, arg[ioffset + 2],false,lmp); + Lookup[EOS_POLYNOMIAL_C2][itype] = utils::numeric(FLERR, arg[ioffset + 3],false,lmp); + Lookup[EOS_POLYNOMIAL_C3][itype] = utils::numeric(FLERR, arg[ioffset + 4],false,lmp); + Lookup[EOS_POLYNOMIAL_C4][itype] = utils::numeric(FLERR, arg[ioffset + 5],false,lmp); + Lookup[EOS_POLYNOMIAL_C5][itype] = utils::numeric(FLERR, arg[ioffset + 6],false,lmp); + Lookup[EOS_POLYNOMIAL_C6][itype] = utils::numeric(FLERR, arg[ioffset + 7],false,lmp); if (comm->me == 0) { printf("\n%60s\n", "polynomial EOS based on strain rate"); printf("%60s : %g\n", "parameter c0", Lookup[EOS_POLYNOMIAL_C0][itype]); @@ -1462,7 +1462,7 @@ void PairTlsph::coeff(int narg, char **arg) { failureModel[itype].failure_max_plastic_strain = true; failureModel[itype].integration_point_wise = true; - Lookup[FAILURE_MAX_PLASTIC_STRAIN_THRESHOLD][itype] = force->numeric(FLERR, arg[ioffset + 1]); + Lookup[FAILURE_MAX_PLASTIC_STRAIN_THRESHOLD][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf("\n%60s\n", "maximum plastic strain failure criterion"); @@ -1506,7 +1506,7 @@ void PairTlsph::coeff(int narg, char **arg) { failureModel[itype].failure_max_pairwise_strain = true; failureModel[itype].integration_point_wise = true; - Lookup[FAILURE_MAX_PAIRWISE_STRAIN_THRESHOLD][itype] = force->numeric(FLERR, arg[ioffset + 1]); + Lookup[FAILURE_MAX_PAIRWISE_STRAIN_THRESHOLD][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf("\n%60s\n", "maximum pairwise strain failure criterion"); @@ -1546,7 +1546,7 @@ void PairTlsph::coeff(int narg, char **arg) { failureModel[itype].failure_max_principal_strain = true; failureModel[itype].integration_point_wise = true; - Lookup[FAILURE_MAX_PRINCIPAL_STRAIN_THRESHOLD][itype] = force->numeric(FLERR, arg[ioffset + 1]); + Lookup[FAILURE_MAX_PRINCIPAL_STRAIN_THRESHOLD][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf("\n%60s\n", "maximum principal strain failure criterion"); @@ -1583,11 +1583,11 @@ void PairTlsph::coeff(int narg, char **arg) { failureModel[itype].failure_johnson_cook = true; failureModel[itype].integration_point_wise = true; - Lookup[FAILURE_JC_D1][itype] = force->numeric(FLERR, arg[ioffset + 1]); - Lookup[FAILURE_JC_D2][itype] = force->numeric(FLERR, arg[ioffset + 2]); - Lookup[FAILURE_JC_D3][itype] = force->numeric(FLERR, arg[ioffset + 3]); - Lookup[FAILURE_JC_D4][itype] = force->numeric(FLERR, arg[ioffset + 4]); - Lookup[FAILURE_JC_EPDOT0][itype] = force->numeric(FLERR, arg[ioffset + 5]); + Lookup[FAILURE_JC_D1][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); + Lookup[FAILURE_JC_D2][itype] = utils::numeric(FLERR, arg[ioffset + 2],false,lmp); + Lookup[FAILURE_JC_D3][itype] = utils::numeric(FLERR, arg[ioffset + 3],false,lmp); + Lookup[FAILURE_JC_D4][itype] = utils::numeric(FLERR, arg[ioffset + 4],false,lmp); + Lookup[FAILURE_JC_EPDOT0][itype] = utils::numeric(FLERR, arg[ioffset + 5],false,lmp); if (comm->me == 0) { printf("\n%60s\n", "Johnson-Cook failure criterion"); @@ -1631,7 +1631,7 @@ void PairTlsph::coeff(int narg, char **arg) { failureModel[itype].failure_max_principal_stress = true; failureModel[itype].integration_point_wise = true; - Lookup[FAILURE_MAX_PRINCIPAL_STRESS_THRESHOLD][itype] = force->numeric(FLERR, arg[ioffset + 1]); + Lookup[FAILURE_MAX_PRINCIPAL_STRESS_THRESHOLD][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf("\n%60s\n", "maximum principal stress failure criterion"); @@ -1666,7 +1666,7 @@ void PairTlsph::coeff(int narg, char **arg) { } failureModel[itype].failure_energy_release_rate = true; - Lookup[CRITICAL_ENERGY_RELEASE_RATE][itype] = force->numeric(FLERR, arg[ioffset + 1]); + Lookup[CRITICAL_ENERGY_RELEASE_RATE][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf("\n%60s\n", "critical energy release rate failure criterion"); diff --git a/src/USER-SMD/pair_smd_triangulated_surface.cpp b/src/USER-SMD/pair_smd_triangulated_surface.cpp index b09fd38d09..9243883719 100644 --- a/src/USER-SMD/pair_smd_triangulated_surface.cpp +++ b/src/USER-SMD/pair_smd_triangulated_surface.cpp @@ -322,7 +322,7 @@ void PairTriSurf::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR, "Illegal number of args for pair_style smd/tri_surface"); - scale = force->numeric(FLERR, arg[0]); + scale = utils::numeric(FLERR, arg[0],false,lmp); if (comm->me == 0) { printf("\n>>========>>========>>========>>========>>========>>========>>========>>========\n"); printf("SMD/TRI_SURFACE CONTACT SETTINGS:\n"); diff --git a/src/USER-SMD/pair_smd_ulsph.cpp b/src/USER-SMD/pair_smd_ulsph.cpp index 8c8da7b2bc..ecd0d5f4ec 100644 --- a/src/USER-SMD/pair_smd_ulsph.cpp +++ b/src/USER-SMD/pair_smd_ulsph.cpp @@ -949,9 +949,9 @@ void PairULSPH::coeff(int narg, char **arg) { * if parameters are give in i,i form, i.e., no a cross interaction, set material parameters */ - if (force->inumeric(FLERR, arg[0]) == force->inumeric(FLERR, arg[1])) { + if (utils::inumeric(FLERR, arg[0], false, lmp) == utils::inumeric(FLERR, arg[1], false, lmp)) { - itype = force->inumeric(FLERR, arg[0]); + itype = utils::inumeric(FLERR, arg[0],false,lmp); eos[itype] = viscosity[itype] = strength[itype] = NONE; if (comm->me == 0) { @@ -992,11 +992,11 @@ void PairULSPH::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[REFERENCE_DENSITY][itype] = force->numeric(FLERR, arg[ioffset + 1]); - Lookup[REFERENCE_SOUNDSPEED][itype] = force->numeric(FLERR, arg[ioffset + 2]); - Q1[itype] = force->numeric(FLERR, arg[ioffset + 3]); - Lookup[HEAT_CAPACITY][itype] = force->numeric(FLERR, arg[ioffset + 4]); - Lookup[HOURGLASS_CONTROL_AMPLITUDE][itype] = force->numeric(FLERR, arg[ioffset + 5]); + Lookup[REFERENCE_DENSITY][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); + Lookup[REFERENCE_SOUNDSPEED][itype] = utils::numeric(FLERR, arg[ioffset + 2],false,lmp); + Q1[itype] = utils::numeric(FLERR, arg[ioffset + 3],false,lmp); + Lookup[HEAT_CAPACITY][itype] = utils::numeric(FLERR, arg[ioffset + 4],false,lmp); + Lookup[HOURGLASS_CONTROL_AMPLITUDE][itype] = utils::numeric(FLERR, arg[ioffset + 5],false,lmp); Lookup[BULK_MODULUS][itype] = Lookup[REFERENCE_SOUNDSPEED][itype] * Lookup[REFERENCE_SOUNDSPEED][itype] * Lookup[REFERENCE_DENSITY][itype]; @@ -1057,7 +1057,7 @@ void PairULSPH::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[EOS_TAIT_EXPONENT][itype] = force->numeric(FLERR, arg[ioffset + 1]); + Lookup[EOS_TAIT_EXPONENT][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf(FORMAT2, "Tait EOS"); @@ -1094,7 +1094,7 @@ void PairULSPH::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[EOS_PERFECT_GAS_GAMMA][itype] = force->numeric(FLERR, arg[ioffset + 1]); + Lookup[EOS_PERFECT_GAS_GAMMA][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf(FORMAT2, "Perfect Gas EOS"); @@ -1168,9 +1168,9 @@ void PairULSPH::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[SHEAR_MODULUS][itype] = force->numeric(FLERR, arg[ioffset + 1]); - Lookup[YIELD_STRENGTH][itype] = force->numeric(FLERR, arg[ioffset + 2]); - Lookup[HARDENING_PARAMETER][itype] = force->numeric(FLERR, arg[ioffset + 3]); + Lookup[SHEAR_MODULUS][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); + Lookup[YIELD_STRENGTH][itype] = utils::numeric(FLERR, arg[ioffset + 2],false,lmp); + Lookup[HARDENING_PARAMETER][itype] = utils::numeric(FLERR, arg[ioffset + 3],false,lmp); if (comm->me == 0) { printf(FORMAT2, "linear elastic / ideal plastic material mode"); @@ -1210,7 +1210,7 @@ void PairULSPH::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[SHEAR_MODULUS][itype] = force->numeric(FLERR, arg[ioffset + 1]); + Lookup[SHEAR_MODULUS][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf(FORMAT2, "linear elastic strength model"); @@ -1248,7 +1248,7 @@ void PairULSPH::coeff(int narg, char **arg) { error->all(FLERR, str); } - Lookup[VISCOSITY_MU][itype] = force->numeric(FLERR, arg[ioffset + 1]); + Lookup[VISCOSITY_MU][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf(FORMAT2, "Newton viscosity model"); @@ -1282,7 +1282,7 @@ void PairULSPH::coeff(int narg, char **arg) { error->all(FLERR, str); } - artificial_pressure[itype][itype] = force->numeric(FLERR, arg[ioffset + 1]); + artificial_pressure[itype][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf(FORMAT2, "Artificial Pressure is enabled."); @@ -1316,7 +1316,7 @@ void PairULSPH::coeff(int narg, char **arg) { error->all(FLERR, str); } - artificial_stress[itype][itype] = force->numeric(FLERR, arg[ioffset + 1]); + artificial_stress[itype][itype] = utils::numeric(FLERR, arg[ioffset + 1],false,lmp); if (comm->me == 0) { printf(FORMAT2, "Artificial Stress is enabled."); @@ -1358,8 +1358,8 @@ void PairULSPH::coeff(int narg, char **arg) { * we are reading a cross-interaction line for particle types i, j */ - itype = force->inumeric(FLERR, arg[0]); - jtype = force->inumeric(FLERR, arg[1]); + itype = utils::inumeric(FLERR, arg[0],false,lmp); + jtype = utils::inumeric(FLERR, arg[1],false,lmp); if (strcmp(arg[2], "*CROSS") != 0) { sprintf(str, "ulsph cross interaction between particle type %d and %d requested, however, *CROSS keyword is missing", diff --git a/src/USER-SPH/pair_sph_heatconduction.cpp b/src/USER-SPH/pair_sph_heatconduction.cpp index 2305bcf240..7bb06c14d9 100644 --- a/src/USER-SPH/pair_sph_heatconduction.cpp +++ b/src/USER-SPH/pair_sph_heatconduction.cpp @@ -171,8 +171,8 @@ void PairSPHHeatConduction::coeff(int narg, char **arg) { utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); - double alpha_one = force->numeric(FLERR,arg[2]); - double cut_one = force->numeric(FLERR,arg[3]); + double alpha_one = utils::numeric(FLERR,arg[2],false,lmp); + double cut_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-SPH/pair_sph_idealgas.cpp b/src/USER-SPH/pair_sph_idealgas.cpp index 16d5f173ca..c80e2b4725 100644 --- a/src/USER-SPH/pair_sph_idealgas.cpp +++ b/src/USER-SPH/pair_sph_idealgas.cpp @@ -213,8 +213,8 @@ void PairSPHIdealGas::coeff(int narg, char **arg) { utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); - double viscosity_one = force->numeric(FLERR,arg[2]); - double cut_one = force->numeric(FLERR,arg[3]); + double viscosity_one = utils::numeric(FLERR,arg[2],false,lmp); + double cut_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-SPH/pair_sph_lj.cpp b/src/USER-SPH/pair_sph_lj.cpp index c4d62bff38..4004e41574 100644 --- a/src/USER-SPH/pair_sph_lj.cpp +++ b/src/USER-SPH/pair_sph_lj.cpp @@ -221,8 +221,8 @@ void PairSPHLJ::coeff(int narg, char **arg) { utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); - double viscosity_one = force->numeric(FLERR,arg[2]); - double cut_one = force->numeric(FLERR,arg[3]); + double viscosity_one = utils::numeric(FLERR,arg[2],false,lmp); + double cut_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-SPH/pair_sph_rhosum.cpp b/src/USER-SPH/pair_sph_rhosum.cpp index 5b68e157fd..c70cc7cd83 100644 --- a/src/USER-SPH/pair_sph_rhosum.cpp +++ b/src/USER-SPH/pair_sph_rhosum.cpp @@ -225,7 +225,7 @@ void PairSPHRhoSum::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR, "Illegal number of arguments for pair_style sph/rhosum"); - nstep = force->inumeric(FLERR,arg[0]); + nstep = utils::inumeric(FLERR,arg[0],false,lmp); } /* ---------------------------------------------------------------------- @@ -242,7 +242,7 @@ void PairSPHRhoSum::coeff(int narg, char **arg) { utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); - double cut_one = force->numeric(FLERR,arg[2]); + double cut_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-SPH/pair_sph_taitwater.cpp b/src/USER-SPH/pair_sph_taitwater.cpp index d49840ed5b..6455c1e8be 100644 --- a/src/USER-SPH/pair_sph_taitwater.cpp +++ b/src/USER-SPH/pair_sph_taitwater.cpp @@ -243,10 +243,10 @@ void PairSPHTaitwater::coeff(int narg, char **arg) { utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); - double rho0_one = force->numeric(FLERR,arg[2]); - double soundspeed_one = force->numeric(FLERR,arg[3]); - double viscosity_one = force->numeric(FLERR,arg[4]); - double cut_one = force->numeric(FLERR,arg[5]); + double rho0_one = utils::numeric(FLERR,arg[2],false,lmp); + double soundspeed_one = utils::numeric(FLERR,arg[3],false,lmp); + double viscosity_one = utils::numeric(FLERR,arg[4],false,lmp); + double cut_one = utils::numeric(FLERR,arg[5],false,lmp); double B_one = soundspeed_one * soundspeed_one * rho0_one / 7.0; int count = 0; diff --git a/src/USER-SPH/pair_sph_taitwater_morris.cpp b/src/USER-SPH/pair_sph_taitwater_morris.cpp index f513cb36a2..7a6188da69 100644 --- a/src/USER-SPH/pair_sph_taitwater_morris.cpp +++ b/src/USER-SPH/pair_sph_taitwater_morris.cpp @@ -244,10 +244,10 @@ void PairSPHTaitwaterMorris::coeff(int narg, char **arg) { utils::bounds(FLERR,arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR,arg[1], 1, atom->ntypes, jlo, jhi, error); - double rho0_one = force->numeric(FLERR,arg[2]); - double soundspeed_one = force->numeric(FLERR,arg[3]); - double viscosity_one = force->numeric(FLERR,arg[4]); - double cut_one = force->numeric(FLERR,arg[5]); + double rho0_one = utils::numeric(FLERR,arg[2],false,lmp); + double soundspeed_one = utils::numeric(FLERR,arg[3],false,lmp); + double viscosity_one = utils::numeric(FLERR,arg[4],false,lmp); + double cut_one = utils::numeric(FLERR,arg[5],false,lmp); double B_one = soundspeed_one * soundspeed_one * rho0_one / 7.0; int count = 0; diff --git a/src/USER-UEF/fix_nh_uef.cpp b/src/USER-UEF/fix_nh_uef.cpp index 80866bbd56..f910caac59 100644 --- a/src/USER-UEF/fix_nh_uef.cpp +++ b/src/USER-UEF/fix_nh_uef.cpp @@ -82,14 +82,14 @@ FixNHUef::FixNHUef(LAMMPS *lmp, int narg, char **arg) : while (iarg narg) error->all(FLERR,"Illegal fix nvt/npt/uef command"); - erate[0] = force->numeric(FLERR,arg[iarg+1]); - erate[1] = force->numeric(FLERR,arg[iarg+2]); + erate[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + erate[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); erate_flag = true; iarg += 3; } else if (strcmp(arg[iarg],"strain")==0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix nvt/npt/uef command"); - strain[0] = force->numeric(FLERR,arg[iarg+1]); - strain[1] = force->numeric(FLERR,arg[iarg+2]); + strain[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + strain[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"ext")==0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/uef command"); diff --git a/src/USER-VTK/dump_vtk.cpp b/src/USER-VTK/dump_vtk.cpp index 7f1443c654..72ed2640d8 100644 --- a/src/USER-VTK/dump_vtk.cpp +++ b/src/USER-VTK/dump_vtk.cpp @@ -2296,7 +2296,7 @@ int DumpVTK::modify_param(int narg, char **arg) // set threshold value - thresh_value[nthresh] = force->numeric(FLERR,arg[3]); + thresh_value[nthresh] = utils::numeric(FLERR,arg[3],false,lmp); nthresh++; return 4; diff --git a/src/USER-YAFF/angle_cross.cpp b/src/USER-YAFF/angle_cross.cpp index e60563401a..9c925d2365 100644 --- a/src/USER-YAFF/angle_cross.cpp +++ b/src/USER-YAFF/angle_cross.cpp @@ -227,12 +227,12 @@ void AngleCross::coeff(int narg, char **arg) int count = 0; - double kss_one = force->numeric(FLERR,arg[1]); - double kbs0_one = force->numeric(FLERR,arg[2]); - double kbs1_one = force->numeric(FLERR,arg[3]); - double r0_one = force->numeric(FLERR,arg[4]); - double r1_one = force->numeric(FLERR,arg[5]); - double theta0_one = force->numeric(FLERR,arg[6]); + double kss_one = utils::numeric(FLERR,arg[1],false,lmp); + double kbs0_one = utils::numeric(FLERR,arg[2],false,lmp); + double kbs1_one = utils::numeric(FLERR,arg[3],false,lmp); + double r0_one = utils::numeric(FLERR,arg[4],false,lmp); + double r1_one = utils::numeric(FLERR,arg[5],false,lmp); + double theta0_one = utils::numeric(FLERR,arg[6],false,lmp); for (int i = ilo; i <= ihi; i++) { kss[i] = kss_one; diff --git a/src/USER-YAFF/angle_mm3.cpp b/src/USER-YAFF/angle_mm3.cpp index 0ebb92d933..38a2cea3aa 100644 --- a/src/USER-YAFF/angle_mm3.cpp +++ b/src/USER-YAFF/angle_mm3.cpp @@ -184,8 +184,8 @@ void AngleMM3::coeff(int narg, char **arg) int count = 0; - double k2_one = force->numeric(FLERR,arg[1]); - double theta0_one = force->numeric(FLERR,arg[2]); + double k2_one = utils::numeric(FLERR,arg[1],false,lmp); + double theta0_one = utils::numeric(FLERR,arg[2],false,lmp); // convert theta0 from degrees to radians diff --git a/src/USER-YAFF/bond_mm3.cpp b/src/USER-YAFF/bond_mm3.cpp index 4009f64448..39f238f1ab 100644 --- a/src/USER-YAFF/bond_mm3.cpp +++ b/src/USER-YAFF/bond_mm3.cpp @@ -137,8 +137,8 @@ void BondMM3::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error); - double k2_one = force->numeric(FLERR,arg[1]); - double r0_one = force->numeric(FLERR,arg[2]); + double k2_one = utils::numeric(FLERR,arg[1],false,lmp); + double r0_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-YAFF/improper_distharm.cpp b/src/USER-YAFF/improper_distharm.cpp index 8486809813..e9b454bdb9 100644 --- a/src/USER-YAFF/improper_distharm.cpp +++ b/src/USER-YAFF/improper_distharm.cpp @@ -221,8 +221,8 @@ void ImproperDistHarm::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double chi_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double chi_one = utils::numeric(FLERR,arg[2],false,lmp); // convert chi from degrees to radians diff --git a/src/USER-YAFF/improper_sqdistharm.cpp b/src/USER-YAFF/improper_sqdistharm.cpp index 9bd07e51e0..af5086917a 100644 --- a/src/USER-YAFF/improper_sqdistharm.cpp +++ b/src/USER-YAFF/improper_sqdistharm.cpp @@ -221,8 +221,8 @@ void ImproperSQDistHarm::coeff(int narg, char **arg) int ilo,ihi; utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); - double k_one = force->numeric(FLERR,arg[1]); - double chi_one = force->numeric(FLERR,arg[2]); + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + double chi_one = utils::numeric(FLERR,arg[2],false,lmp); // convert chi from degrees to radians diff --git a/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp b/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp index fa0f3f4b05..2cbf01f7b7 100644 --- a/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp +++ b/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp @@ -267,14 +267,14 @@ void PairLJSwitch3CoulGaussLong::settings(int narg, char **arg) { if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 2) { cut_coul = cut_lj_global; - truncw = force->numeric(FLERR,arg[1]); + truncw = utils::numeric(FLERR,arg[1],false,lmp); } else { - cut_coul = force->numeric(FLERR,arg[1]); - truncw = force->numeric(FLERR,arg[2]); + cut_coul = utils::numeric(FLERR,arg[1],false,lmp); + truncw = utils::numeric(FLERR,arg[2],false,lmp); } if (truncw>0.0) truncwi = 1.0/truncw; else truncwi = 0.0; @@ -302,12 +302,12 @@ void PairLJSwitch3CoulGaussLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double gamma_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double gamma_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 6) cut_lj_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_lj_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp b/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp index 7b31aca039..52bcf20b9b 100644 --- a/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp +++ b/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp @@ -269,14 +269,14 @@ void PairMM3Switch3CoulGaussLong::settings(int narg, char **arg) { if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 2) { cut_coul = cut_lj_global; - truncw = force->numeric(FLERR,arg[1]); + truncw = utils::numeric(FLERR,arg[1],false,lmp); } else { - cut_coul = force->numeric(FLERR,arg[1]); - truncw = force->numeric(FLERR,arg[2]); + cut_coul = utils::numeric(FLERR,arg[1],false,lmp); + truncw = utils::numeric(FLERR,arg[2],false,lmp); } if (truncw>0.0) truncwi = 1.0/truncw; else truncwi = 0.0; @@ -304,12 +304,12 @@ void PairMM3Switch3CoulGaussLong::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double gamma_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double gamma_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 6) cut_lj_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_lj_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/VORONOI/compute_voronoi_atom.cpp b/src/VORONOI/compute_voronoi_atom.cpp index c9b0617f5e..bda4299a68 100644 --- a/src/VORONOI/compute_voronoi_atom.cpp +++ b/src/VORONOI/compute_voronoi_atom.cpp @@ -100,15 +100,15 @@ ComputeVoronoi::ComputeVoronoi(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg], "edge_histo") == 0) { if (iarg + 2 > narg) error->all(FLERR,"Illegal compute voronoi/atom command"); - maxedge = force->inumeric(FLERR,arg[iarg+1]); + maxedge = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg], "face_threshold") == 0) { if (iarg + 2 > narg) error->all(FLERR,"Illegal compute voronoi/atom command"); - fthresh = force->numeric(FLERR,arg[iarg+1]); + fthresh = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg], "edge_threshold") == 0) { if (iarg + 2 > narg) error->all(FLERR,"Illegal compute voronoi/atom command"); - ethresh = force->numeric(FLERR,arg[iarg+1]); + ethresh = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg], "neighbors") == 0) { if (iarg + 2 > narg) error->all(FLERR,"Illegal compute voronoi/atom command"); diff --git a/src/angle_zero.cpp b/src/angle_zero.cpp index 90359fbb53..eb9cbf1ea2 100644 --- a/src/angle_zero.cpp +++ b/src/angle_zero.cpp @@ -91,7 +91,7 @@ void AngleZero::coeff(int narg, char **arg) double theta0_one = 0.0; if (coeffflag && (narg == 2)) - theta0_one = force->numeric(FLERR,arg[1]); + theta0_one = utils::numeric(FLERR,arg[1],false,lmp); // convert theta0 from degrees to radians diff --git a/src/atom.cpp b/src/atom.cpp index e930a0255e..f4c93db459 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -795,8 +795,8 @@ void Atom::modify_params(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"sort") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal atom_modify command"); - sortfreq = force->inumeric(FLERR,arg[iarg+1]); - userbinsize = force->numeric(FLERR,arg[iarg+2]); + sortfreq = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + userbinsize = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (sortfreq < 0 || userbinsize < 0.0) error->all(FLERR,"Illegal atom_modify command"); if (sortfreq >= 0 && firstgroupname) @@ -1576,8 +1576,8 @@ void Atom::data_bodies(int n, char *buf, AtomVec *avec_body, tagint id_offset) else error->one(FLERR,"Duplicate atom ID in Bodies section of data file"); - ninteger = force->inumeric(FLERR,strtok(NULL," \t\n\r\f")); - ndouble = force->inumeric(FLERR,strtok(NULL," \t\n\r\f")); + ninteger = utils::inumeric(FLERR,strtok(NULL," \t\n\r\f"),false,lmp); + ndouble = utils::inumeric(FLERR,strtok(NULL," \t\n\r\f"),false,lmp); if ((m = map(tagdata)) >= 0) { if (ninteger > maxint) { @@ -1592,9 +1592,9 @@ void Atom::data_bodies(int n, char *buf, AtomVec *avec_body, tagint id_offset) } for (j = 0; j < ninteger; j++) - ivalues[j] = force->inumeric(FLERR,strtok(NULL," \t\n\r\f")); + ivalues[j] = utils::inumeric(FLERR,strtok(NULL," \t\n\r\f"),false,lmp); for (j = 0; j < ndouble; j++) - dvalues[j] = force->numeric(FLERR,strtok(NULL," \t\n\r\f")); + dvalues[j] = utils::numeric(FLERR,strtok(NULL," \t\n\r\f"),false,lmp); avec_body->data_body(m,ninteger,ndouble,ivalues,dvalues); @@ -1702,7 +1702,7 @@ void Atom::set_mass(const char *file, int line, int /*narg*/, char **arg) if (mass == NULL) error->all(file,line,"Cannot set mass for this atom style"); int lo,hi; - force->bounds(file,line,arg[0],ntypes,lo,hi); + utils::bounds(file,line,arg[0],1,ntypes,lo,hi,error); if (lo < 1 || hi > ntypes) error->all(file,line,"Invalid type for mass set"); for (int itype = lo; itype <= hi; itype++) { diff --git a/src/balance.cpp b/src/balance.cpp index d5032d8923..168d7f59a4 100644 --- a/src/balance.cpp +++ b/src/balance.cpp @@ -119,7 +119,7 @@ void Balance::command(int narg, char **arg) if (narg < 2) error->all(FLERR,"Illegal balance command"); - thresh = force->numeric(FLERR,arg[0]); + thresh = utils::numeric(FLERR,arg[0],false,lmp); int dimension = domain->dimension; int *procgrid = comm->procgrid; @@ -145,7 +145,7 @@ void Balance::command(int narg, char **arg) user_xsplit[0] = 0.0; iarg++; for (int i = 1; i < procgrid[0]; i++) - user_xsplit[i] = force->numeric(FLERR,arg[iarg++]); + user_xsplit[i] = utils::numeric(FLERR,arg[iarg++],false,lmp); user_xsplit[procgrid[0]] = 1.0; } } else if (strcmp(arg[iarg],"y") == 0) { @@ -165,7 +165,7 @@ void Balance::command(int narg, char **arg) user_ysplit[0] = 0.0; iarg++; for (int i = 1; i < procgrid[1]; i++) - user_ysplit[i] = force->numeric(FLERR,arg[iarg++]); + user_ysplit[i] = utils::numeric(FLERR,arg[iarg++],false,lmp); user_ysplit[procgrid[1]] = 1.0; } } else if (strcmp(arg[iarg],"z") == 0) { @@ -185,7 +185,7 @@ void Balance::command(int narg, char **arg) user_zsplit[0] = 0.0; iarg++; for (int i = 1; i < procgrid[2]; i++) - user_zsplit[i] = force->numeric(FLERR,arg[iarg++]); + user_zsplit[i] = utils::numeric(FLERR,arg[iarg++],false,lmp); user_zsplit[procgrid[2]] = 1.0; } @@ -195,9 +195,9 @@ void Balance::command(int narg, char **arg) style = SHIFT; if (strlen(arg[iarg+1]) > 3) error->all(FLERR,"Illegal balance command"); strcpy(bstr,arg[iarg+1]); - nitermax = force->inumeric(FLERR,arg[iarg+2]); + nitermax = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (nitermax <= 0) error->all(FLERR,"Illegal balance command"); - stopthresh = force->numeric(FLERR,arg[iarg+3]); + stopthresh = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (stopthresh < 1.0) error->all(FLERR,"Illegal balance command"); iarg += 4; diff --git a/src/bond.cpp b/src/bond.cpp index 0fb42da98a..12659fd8aa 100644 --- a/src/bond.cpp +++ b/src/bond.cpp @@ -236,16 +236,16 @@ void Bond::write_file(int narg, char **arg) int itype = 0; int jtype = 0; if (narg == 8) { - itype = force->inumeric(FLERR,arg[6]); - jtype = force->inumeric(FLERR,arg[7]); + itype = utils::inumeric(FLERR,arg[6],false,lmp); + jtype = utils::inumeric(FLERR,arg[7],false,lmp); if (itype < 1 || itype > atom->ntypes || jtype < 1 || jtype > atom->ntypes) error->all(FLERR,"Invalid atom types in bond_write command"); } - int btype = force->inumeric(FLERR,arg[0]); - int n = force->inumeric(FLERR,arg[1]); - double inner = force->numeric(FLERR,arg[2]); - double outer = force->numeric(FLERR,arg[3]); + int btype = utils::inumeric(FLERR,arg[0],false,lmp); + int n = utils::inumeric(FLERR,arg[1],false,lmp); + double inner = utils::numeric(FLERR,arg[2],false,lmp); + double outer = utils::numeric(FLERR,arg[3],false,lmp); if (inner <= 0.0 || inner >= outer) error->all(FLERR,"Invalid rlo/rhi values in bond_write command"); diff --git a/src/bond_zero.cpp b/src/bond_zero.cpp index abc497d5d5..8053c5531d 100644 --- a/src/bond_zero.cpp +++ b/src/bond_zero.cpp @@ -89,7 +89,7 @@ void BondZero::coeff(int narg, char **arg) double r0_one = 0.0; if (coeffflag && (narg == 2)) - r0_one = force->numeric(FLERR,arg[1]); + r0_one = utils::numeric(FLERR,arg[1],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/change_box.cpp b/src/change_box.cpp index ff7658a01f..5fe4eb8a06 100644 --- a/src/change_box.cpp +++ b/src/change_box.cpp @@ -83,23 +83,23 @@ void ChangeBox::command(int narg, char **arg) if (strcmp(arg[iarg+1],"final") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal change_box command"); ops[nops].flavor = FINAL; - ops[nops].flo = force->numeric(FLERR,arg[iarg+2]); - ops[nops].fhi = force->numeric(FLERR,arg[iarg+3]); + ops[nops].flo = utils::numeric(FLERR,arg[iarg+2],false,lmp); + ops[nops].fhi = utils::numeric(FLERR,arg[iarg+3],false,lmp); ops[nops].vdim1 = ops[nops].vdim2 = -1; nops++; iarg += 4; } else if (strcmp(arg[iarg+1],"delta") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal change_box command"); ops[nops].flavor = DELTA; - ops[nops].dlo = force->numeric(FLERR,arg[iarg+2]); - ops[nops].dhi = force->numeric(FLERR,arg[iarg+3]); + ops[nops].dlo = utils::numeric(FLERR,arg[iarg+2],false,lmp); + ops[nops].dhi = utils::numeric(FLERR,arg[iarg+3],false,lmp); ops[nops].vdim1 = ops[nops].vdim2 = -1; nops++; iarg += 4; } else if (strcmp(arg[iarg+1],"scale") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal change_box command"); ops[nops].flavor = SCALE; - ops[nops].scale = force->numeric(FLERR,arg[iarg+2]); + ops[nops].scale = utils::numeric(FLERR,arg[iarg+2],false,lmp); ops[nops].vdim1 = ops[nops].vdim2 = -1; nops++; iarg += 3; @@ -129,13 +129,13 @@ void ChangeBox::command(int narg, char **arg) if (strcmp(arg[iarg+1],"final") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal change_box command"); ops[nops].flavor = FINAL; - ops[nops].ftilt = force->numeric(FLERR,arg[iarg+2]); + ops[nops].ftilt = utils::numeric(FLERR,arg[iarg+2],false,lmp); nops++; iarg += 3; } else if (strcmp(arg[iarg+1],"delta") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal change_box command"); ops[nops].flavor = DELTA; - ops[nops].dtilt = force->numeric(FLERR,arg[iarg+2]); + ops[nops].dtilt = utils::numeric(FLERR,arg[iarg+2],false,lmp); nops++; iarg += 3; } else error->all(FLERR,"Illegal change_box command"); diff --git a/src/comm.cpp b/src/comm.cpp index c9a517340c..7e603f2104 100644 --- a/src/comm.cpp +++ b/src/comm.cpp @@ -300,7 +300,7 @@ void Comm::modify_params(int narg, char **arg) if (mode == Comm::MULTI) error->all(FLERR, "Use cutoff/multi keyword to set cutoff in multi mode"); - cutghostuser = force->numeric(FLERR,arg[iarg+1]); + cutghostuser = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (cutghostuser < 0.0) error->all(FLERR,"Invalid cutoff in comm_modify command"); iarg += 2; @@ -321,7 +321,7 @@ void Comm::modify_params(int narg, char **arg) cutusermulti[i] = -1.0; } utils::bounds(FLERR,arg[iarg+1],1,ntypes,nlo,nhi,error); - cut = force->numeric(FLERR,arg[iarg+2]); + cut = utils::numeric(FLERR,arg[iarg+2],false,lmp); cutghostuser = MAX(cutghostuser,cut); if (cut < 0.0) error->all(FLERR,"Invalid cutoff in comm_modify command"); @@ -348,11 +348,11 @@ void Comm::set_processors(int narg, char **arg) if (narg < 3) error->all(FLERR,"Illegal processors command"); if (strcmp(arg[0],"*") == 0) user_procgrid[0] = 0; - else user_procgrid[0] = force->inumeric(FLERR,arg[0]); + else user_procgrid[0] = utils::inumeric(FLERR,arg[0],false,lmp); if (strcmp(arg[1],"*") == 0) user_procgrid[1] = 0; - else user_procgrid[1] = force->inumeric(FLERR,arg[1]); + else user_procgrid[1] = utils::inumeric(FLERR,arg[1],false,lmp); if (strcmp(arg[2],"*") == 0) user_procgrid[2] = 0; - else user_procgrid[2] = force->inumeric(FLERR,arg[2]); + else user_procgrid[2] = utils::inumeric(FLERR,arg[2],false,lmp); if (user_procgrid[0] < 0 || user_procgrid[1] < 0 || user_procgrid[2] < 0) error->all(FLERR,"Illegal processors command"); @@ -373,13 +373,13 @@ void Comm::set_processors(int narg, char **arg) if (iarg+6 > narg) error->all(FLERR,"Illegal processors command"); gridflag = TWOLEVEL; - ncores = force->inumeric(FLERR,arg[iarg+2]); + ncores = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (strcmp(arg[iarg+3],"*") == 0) user_coregrid[0] = 0; - else user_coregrid[0] = force->inumeric(FLERR,arg[iarg+3]); + else user_coregrid[0] = utils::inumeric(FLERR,arg[iarg+3],false,lmp); if (strcmp(arg[iarg+4],"*") == 0) user_coregrid[1] = 0; - else user_coregrid[1] = force->inumeric(FLERR,arg[iarg+4]); + else user_coregrid[1] = utils::inumeric(FLERR,arg[iarg+4],false,lmp); if (strcmp(arg[iarg+5],"*") == 0) user_coregrid[2] = 0; - else user_coregrid[2] = force->inumeric(FLERR,arg[iarg+5]); + else user_coregrid[2] = utils::inumeric(FLERR,arg[iarg+5],false,lmp); if (ncores <= 0 || user_coregrid[0] < 0 || user_coregrid[1] < 0 || user_coregrid[2] < 0) @@ -422,8 +422,8 @@ void Comm::set_processors(int narg, char **arg) error->all(FLERR, "Cannot use processors part command " "without using partitions"); - int isend = force->inumeric(FLERR,arg[iarg+1]); - int irecv = force->inumeric(FLERR,arg[iarg+2]); + int isend = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + int irecv = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (isend < 1 || isend > universe->nworlds || irecv < 1 || irecv > universe->nworlds || isend == irecv) error->all(FLERR,"Invalid partitions in processors part command"); diff --git a/src/compute.cpp b/src/compute.cpp index 4009396eb0..208b93730e 100644 --- a/src/compute.cpp +++ b/src/compute.cpp @@ -129,7 +129,7 @@ void Compute::modify_params(int narg, char **arg) if (strcmp(arg[iarg],"extra") == 0 || strcmp(arg[iarg],"extra/dof") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute_modify command"); - extra_dof = force->numeric(FLERR,arg[iarg+1]); + extra_dof = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"dynamic") == 0 || strcmp(arg[iarg],"dynamic/dof") == 0) { diff --git a/src/compute_adf.cpp b/src/compute_adf.cpp index e525d0250b..0bd329079a 100644 --- a/src/compute_adf.cpp +++ b/src/compute_adf.cpp @@ -68,7 +68,7 @@ ComputeADF::ComputeADF(LAMMPS *lmp, int narg, char **arg) : ordinate_style = DEGREE; cutflag = 0; - nbin = force->inumeric(FLERR,arg[3]); + nbin = utils::inumeric(FLERR,arg[3],false,lmp); if (nbin < 1) error->all(FLERR,"Illegal compute adf command"); // optional args @@ -142,12 +142,12 @@ ComputeADF::ComputeADF(LAMMPS *lmp, int narg, char **arg) : jlo[m] > jhi[m] || klo[m] > khi[m]) error->all(FLERR,"Illegal compute adf command"); - rcutinnerj[m] = force->numeric(FLERR,arg[iarg+3]); - rcutouterj[m] = force->numeric(FLERR,arg[iarg+4]); + rcutinnerj[m] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + rcutouterj[m] = utils::numeric(FLERR,arg[iarg+4],false,lmp); if (rcutinnerj[m] < 0.0 || rcutinnerj[m] >= rcutouterj[m]) error->all(FLERR,"Illegal compute adf command"); - rcutinnerk[m] = force->numeric(FLERR,arg[iarg+5]); - rcutouterk[m] = force->numeric(FLERR,arg[iarg+6]); + rcutinnerk[m] = utils::numeric(FLERR,arg[iarg+5],false,lmp); + rcutouterk[m] = utils::numeric(FLERR,arg[iarg+6],false,lmp); if (rcutinnerk[m] < 0.0 || rcutinnerk[m] >= rcutouterk[m]) error->all(FLERR,"Illegal compute adf command"); iarg += nargsperadf; diff --git a/src/compute_aggregate_atom.cpp b/src/compute_aggregate_atom.cpp index e495ac6899..6e28a94388 100644 --- a/src/compute_aggregate_atom.cpp +++ b/src/compute_aggregate_atom.cpp @@ -44,7 +44,7 @@ ComputeAggregateAtom::ComputeAggregateAtom(LAMMPS *lmp, int narg, char **arg) : { if (narg != 4) error->all(FLERR,"Illegal compute aggregate/atom command"); - double cutoff = force->numeric(FLERR,arg[3]); + double cutoff = utils::numeric(FLERR,arg[3],false,lmp); cutsq = cutoff*cutoff; if (atom->avec->bonds_allow == 0) diff --git a/src/compute_centro_atom.cpp b/src/compute_centro_atom.cpp index 18fc31390f..f88dea9ebe 100644 --- a/src/compute_centro_atom.cpp +++ b/src/compute_centro_atom.cpp @@ -43,7 +43,7 @@ ComputeCentroAtom::ComputeCentroAtom(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[3],"fcc") == 0) nnn = 12; else if (strcmp(arg[3],"bcc") == 0) nnn = 8; - else nnn = force->inumeric(FLERR,arg[3]); + else nnn = utils::inumeric(FLERR,arg[3],false,lmp); // default values diff --git a/src/compute_chunk_atom.cpp b/src/compute_chunk_atom.cpp index c8e4269b56..ae041c1997 100644 --- a/src/compute_chunk_atom.cpp +++ b/src/compute_chunk_atom.cpp @@ -108,12 +108,12 @@ ComputeChunkAtom::ComputeChunkAtom(LAMMPS *lmp, int narg, char **arg) : ncoord = 1; iarg = 4; if (iarg+6 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); - sorigin_user[0] = force->numeric(FLERR,arg[iarg]); - sorigin_user[1] = force->numeric(FLERR,arg[iarg+1]); - sorigin_user[2] = force->numeric(FLERR,arg[iarg+2]); - sradmin_user = force->numeric(FLERR,arg[iarg+3]); - sradmax_user = force->numeric(FLERR,arg[iarg+4]); - nsbin = force->inumeric(FLERR,arg[iarg+5]); + sorigin_user[0] = utils::numeric(FLERR,arg[iarg],false,lmp); + sorigin_user[1] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + sorigin_user[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + sradmin_user = utils::numeric(FLERR,arg[iarg+3],false,lmp); + sradmax_user = utils::numeric(FLERR,arg[iarg+4],false,lmp); + nsbin = utils::inumeric(FLERR,arg[iarg+5],false,lmp); iarg += 6; } else if (strcmp(arg[3],"bin/cylinder") == 0) { binflag = 1; @@ -134,12 +134,12 @@ ComputeChunkAtom::ComputeChunkAtom(LAMMPS *lmp, int narg, char **arg) : } if (iarg+5 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); corigin_user[dim[0]] = 0.0; - corigin_user[cdim1] = force->numeric(FLERR,arg[iarg]); - corigin_user[cdim2] = force->numeric(FLERR,arg[iarg+1]); - cradmin_user = force->numeric(FLERR,arg[iarg+2]); - cradmax_user = force->numeric(FLERR,arg[iarg+3]); + corigin_user[cdim1] = utils::numeric(FLERR,arg[iarg],false,lmp); + corigin_user[cdim2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + cradmin_user = utils::numeric(FLERR,arg[iarg+2],false,lmp); + cradmax_user = utils::numeric(FLERR,arg[iarg+3],false,lmp); - ncbin = force->inumeric(FLERR,arg[iarg+4]); + ncbin = utils::inumeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else if (strcmp(arg[3],"type") == 0) { @@ -218,7 +218,7 @@ ComputeChunkAtom::ComputeChunkAtom(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"limit") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); - limit = force->inumeric(FLERR,arg[iarg+1]); + limit = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (limit < 0) error->all(FLERR,"Illegal compute chunk/atom command"); if (limit && !compress) limitfirst = 1; iarg += 2; @@ -261,11 +261,11 @@ ComputeChunkAtom::ComputeChunkAtom(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg+2],"lower") == 0) minflag[idim] = LOWER; else minflag[idim] = COORD; if (minflag[idim] == COORD) - minvalue[idim] = force->numeric(FLERR,arg[iarg+2]); + minvalue[idim] = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strcmp(arg[iarg+3],"upper") == 0) maxflag[idim] = UPPER; else maxflag[idim] = COORD; if (maxflag[idim] == COORD) - maxvalue[idim] = force->numeric(FLERR,arg[iarg+3]); + maxvalue[idim] = utils::numeric(FLERR,arg[iarg+3],false,lmp); else error->all(FLERR,"Illegal compute chunk/atom command"); iarg += 4; } else if (strcmp(arg[iarg],"units") == 0) { @@ -1983,9 +1983,9 @@ void ComputeChunkAtom::readdim(int narg, char **arg, int iarg, int idim) else if (strcmp(arg[iarg+1],"upper") == 0) originflag[idim] = UPPER; else originflag[idim] = COORD; if (originflag[idim] == COORD) - origin[idim] = force->numeric(FLERR,arg[iarg+1]); + origin[idim] = utils::numeric(FLERR,arg[iarg+1],false,lmp); - delta[idim] = force->numeric(FLERR,arg[iarg+2]); + delta[idim] = utils::numeric(FLERR,arg[iarg+2],false,lmp); } /* ---------------------------------------------------------------------- diff --git a/src/compute_cluster_atom.cpp b/src/compute_cluster_atom.cpp index ff227b3590..021665a647 100644 --- a/src/compute_cluster_atom.cpp +++ b/src/compute_cluster_atom.cpp @@ -41,7 +41,7 @@ ComputeClusterAtom::ComputeClusterAtom(LAMMPS *lmp, int narg, char **arg) : { if (narg != 4) error->all(FLERR,"Illegal compute cluster/atom command"); - double cutoff = force->numeric(FLERR,arg[3]); + double cutoff = utils::numeric(FLERR,arg[3],false,lmp); cutsq = cutoff*cutoff; peratom_flag = 1; diff --git a/src/compute_cna_atom.cpp b/src/compute_cna_atom.cpp index 7ab9e8adf2..8bbe2c15d0 100644 --- a/src/compute_cna_atom.cpp +++ b/src/compute_cna_atom.cpp @@ -51,7 +51,7 @@ ComputeCNAAtom::ComputeCNAAtom(LAMMPS *lmp, int narg, char **arg) : peratom_flag = 1; size_peratom_cols = 0; - double cutoff = force->numeric(FLERR,arg[3]); + double cutoff = utils::numeric(FLERR,arg[3],false,lmp); if (cutoff < 0.0) error->all(FLERR,"Illegal compute cna/atom command"); cutsq = cutoff*cutoff; diff --git a/src/compute_coord_atom.cpp b/src/compute_coord_atom.cpp index 7bf3d017a9..be2f9c39bd 100644 --- a/src/compute_coord_atom.cpp +++ b/src/compute_coord_atom.cpp @@ -48,7 +48,7 @@ ComputeCoordAtom::ComputeCoordAtom(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[3],"cutoff") == 0) { cstyle = CUTOFF; - double cutoff = force->numeric(FLERR,arg[4]); + double cutoff = utils::numeric(FLERR,arg[4],false,lmp); cutsq = cutoff*cutoff; int iarg = 5; @@ -97,7 +97,7 @@ ComputeCoordAtom::ComputeCoordAtom(LAMMPS *lmp, int narg, char **arg) : if (!utils::strmatch(modify->compute[iorientorder]->style,"^orientorder/atom")) error->all(FLERR,"Compute coord/atom compute ID is not orientorder/atom"); - threshold = force->numeric(FLERR,arg[5]); + threshold = utils::numeric(FLERR,arg[5],false,lmp); if (threshold <= -1.0 || threshold >= 1.0) error->all(FLERR,"Compute coord/atom threshold not between -1 and 1"); diff --git a/src/compute_hexorder_atom.cpp b/src/compute_hexorder_atom.cpp index b4ffd91b43..00f81dc845 100644 --- a/src/compute_hexorder_atom.cpp +++ b/src/compute_hexorder_atom.cpp @@ -59,7 +59,7 @@ ComputeHexOrderAtom::ComputeHexOrderAtom(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"degree") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute hexorder/atom command"); - ndegree = force->numeric(FLERR,arg[iarg+1]); + ndegree = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (ndegree < 0) error->all(FLERR,"Illegal compute hexorder/atom command"); iarg += 2; @@ -68,14 +68,14 @@ ComputeHexOrderAtom::ComputeHexOrderAtom(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg+1],"NULL") == 0) nnn = 0; else { - nnn = force->numeric(FLERR,arg[iarg+1]); + nnn = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (nnn < 0) error->all(FLERR,"Illegal compute hexorder/atom command"); } iarg += 2; } else if (strcmp(arg[iarg],"cutoff") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute hexorder/atom command"); - double cutoff = force->numeric(FLERR,arg[iarg+1]); + double cutoff = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (cutoff <= 0.0) error->all(FLERR,"Illegal compute hexorder/atom command"); cutsq = cutoff*cutoff; diff --git a/src/compute_orientorder_atom.cpp b/src/compute_orientorder_atom.cpp index c278ccc520..ade9f7615e 100644 --- a/src/compute_orientorder_atom.cpp +++ b/src/compute_orientorder_atom.cpp @@ -85,7 +85,7 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg if (strcmp(arg[iarg+1],"NULL") == 0) { nnn = 0; } else { - nnn = force->numeric(FLERR,arg[iarg+1]); + nnn = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (nnn <= 0) error->all(FLERR,"Illegal compute orientorder/atom command"); } @@ -93,7 +93,7 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg } else if (strcmp(arg[iarg],"degrees") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute orientorder/atom command"); - nqlist = force->numeric(FLERR,arg[iarg+1]); + nqlist = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (nqlist <= 0) error->all(FLERR,"Illegal compute orientorder/atom command"); memory->destroy(qlist); @@ -103,7 +103,7 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg error->all(FLERR,"Illegal compute orientorder/atom command"); qmax = 0; for (int il = 0; il < nqlist; il++) { - qlist[il] = force->numeric(FLERR,arg[iarg+il]); + qlist[il] = utils::numeric(FLERR,arg[iarg+il],false,lmp); if (qlist[il] < 0) error->all(FLERR,"Illegal compute orientorder/atom command"); if (qlist[il] > qmax) qmax = qlist[il]; @@ -127,7 +127,7 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg qlcompflag = 1; if (iarg+2 > narg) error->all(FLERR,"Illegal compute orientorder/atom command"); - qlcomp = force->numeric(FLERR,arg[iarg+1]); + qlcomp = utils::numeric(FLERR,arg[iarg+1],false,lmp); iqlcomp = -1; for (int il = 0; il < nqlist; il++) if (qlcomp == qlist[il]) { @@ -140,7 +140,7 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg } else if (strcmp(arg[iarg],"cutoff") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute orientorder/atom command"); - double cutoff = force->numeric(FLERR,arg[iarg+1]); + double cutoff = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (cutoff <= 0.0) error->all(FLERR,"Illegal compute orientorder/atom command"); cutsq = cutoff*cutoff; @@ -148,7 +148,7 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg } else if (strcmp(arg[iarg],"chunksize") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute orientorder/atom command"); - chunksize = force->numeric(FLERR,arg[iarg+1]); + chunksize = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (chunksize <= 0) error->all(FLERR,"Illegal compute orientorder/atom command"); iarg += 2; diff --git a/src/compute_pair.cpp b/src/compute_pair.cpp index e9a3faf723..054a50bed4 100644 --- a/src/compute_pair.cpp +++ b/src/compute_pair.cpp @@ -48,7 +48,7 @@ ComputePair::ComputePair(LAMMPS *lmp, int narg, char **arg) : if (narg > iarg) { if (isdigit(arg[iarg][0])) { - nsub = force->inumeric(FLERR,arg[iarg]); + nsub = utils::inumeric(FLERR,arg[iarg],false,lmp); ++iarg; if (nsub <= 0) error->all(FLERR,"Illegal compute pair command"); diff --git a/src/compute_pressure.cpp b/src/compute_pressure.cpp index cb0743a7d6..4712c83461 100644 --- a/src/compute_pressure.cpp +++ b/src/compute_pressure.cpp @@ -90,7 +90,7 @@ ComputePressure::ComputePressure(LAMMPS *lmp, int narg, char **arg) : if (narg > iarg) { if (isdigit(arg[iarg][0])) { - nsub = force->inumeric(FLERR,arg[iarg]); + nsub = utils::inumeric(FLERR,arg[iarg],false,lmp); ++iarg; if (nsub <= 0) error->all(FLERR,"Illegal compute pressure command"); diff --git a/src/compute_rdf.cpp b/src/compute_rdf.cpp index 5ceddd4578..920228e056 100644 --- a/src/compute_rdf.cpp +++ b/src/compute_rdf.cpp @@ -50,7 +50,7 @@ ComputeRDF::ComputeRDF(LAMMPS *lmp, int narg, char **arg) : array_flag = 1; extarray = 0; - nbin = force->inumeric(FLERR,arg[3]); + nbin = utils::inumeric(FLERR,arg[3],false,lmp); if (nbin < 1) error->all(FLERR,"Illegal compute rdf command"); // optional args @@ -67,7 +67,7 @@ ComputeRDF::ComputeRDF(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"cutoff") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute rdf command"); - cutoff_user = force->numeric(FLERR,arg[iarg+1]); + cutoff_user = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (cutoff_user <= 0.0) cutflag = 0; else cutflag = 1; iarg += 2; diff --git a/src/compute_slice.cpp b/src/compute_slice.cpp index 67b60882f6..6ff462258f 100644 --- a/src/compute_slice.cpp +++ b/src/compute_slice.cpp @@ -41,9 +41,9 @@ ComputeSlice::ComputeSlice(LAMMPS *lmp, int narg, char **arg) : MPI_Comm_rank(world,&me); - nstart = force->inumeric(FLERR,arg[3]); - nstop = force->inumeric(FLERR,arg[4]); - nskip = force->inumeric(FLERR,arg[5]); + nstart = utils::inumeric(FLERR,arg[3],false,lmp); + nstop = utils::inumeric(FLERR,arg[4],false,lmp); + nskip = utils::inumeric(FLERR,arg[5],false,lmp); if (nstart < 1 || nstop < nstart || nskip < 1) error->all(FLERR,"Illegal compute slice command"); diff --git a/src/compute_temp_chunk.cpp b/src/compute_temp_chunk.cpp index 0fa5bbbb8a..6274ac4292 100644 --- a/src/compute_temp_chunk.cpp +++ b/src/compute_temp_chunk.cpp @@ -94,12 +94,12 @@ ComputeTempChunk::ComputeTempChunk(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"adof") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/chunk command"); - adof = force->numeric(FLERR,arg[iarg+1]); + adof = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"cdof") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/chunk command"); - cdof = force->numeric(FLERR,arg[iarg+1]); + cdof = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else error->all(FLERR,"Illegal compute temp/chunk command"); } diff --git a/src/compute_temp_partial.cpp b/src/compute_temp_partial.cpp index f5f29d9dc0..c78e830c95 100644 --- a/src/compute_temp_partial.cpp +++ b/src/compute_temp_partial.cpp @@ -37,9 +37,9 @@ ComputeTempPartial::ComputeTempPartial(LAMMPS *lmp, int narg, char **arg) : tempflag = 1; tempbias = 1; - xflag = force->inumeric(FLERR,arg[3]); - yflag = force->inumeric(FLERR,arg[4]); - zflag = force->inumeric(FLERR,arg[5]); + xflag = utils::inumeric(FLERR,arg[3],false,lmp); + yflag = utils::inumeric(FLERR,arg[4],false,lmp); + zflag = utils::inumeric(FLERR,arg[5],false,lmp); if ((xflag != 0 && xflag != 1) || (yflag != 0 && yflag != 1) || (zflag != 0 && zflag != 1)) error->all(FLERR,"Illegal compute temp/partial command"); diff --git a/src/compute_temp_profile.cpp b/src/compute_temp_profile.cpp index fce145848e..c2ef1d5c11 100644 --- a/src/compute_temp_profile.cpp +++ b/src/compute_temp_profile.cpp @@ -39,9 +39,9 @@ ComputeTempProfile::ComputeTempProfile(LAMMPS *lmp, int narg, char **arg) : tempflag = 1; tempbias = 1; - xflag = force->inumeric(FLERR,arg[3]); - yflag = force->inumeric(FLERR,arg[4]); - zflag = force->inumeric(FLERR,arg[5]); + xflag = utils::inumeric(FLERR,arg[3],false,lmp); + yflag = utils::inumeric(FLERR,arg[4],false,lmp); + zflag = utils::inumeric(FLERR,arg[5],false,lmp); if (zflag && domain->dimension == 2) error->all(FLERR,"Compute temp/profile cannot use vz for 2d systemx"); @@ -57,44 +57,44 @@ ComputeTempProfile::ComputeTempProfile(LAMMPS *lmp, int narg, char **arg) : int iarg = 6; if (strcmp(arg[iarg],"x") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/profile command"); - nbinx = force->inumeric(FLERR,arg[iarg+1]); + nbinx = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"y") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/profile command"); - nbiny = force->inumeric(FLERR,arg[iarg+1]); + nbiny = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"z") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/profile command"); if (domain->dimension == 2) error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); - nbinz = force->inumeric(FLERR,arg[iarg+1]); + nbinz = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"xy") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal compute temp/profile command"); - nbinx = force->inumeric(FLERR,arg[iarg+1]); - nbiny = force->inumeric(FLERR,arg[iarg+2]); + nbinx = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + nbiny = utils::inumeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"yz") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal compute temp/profile command"); if (domain->dimension == 2) error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); - nbiny = force->inumeric(FLERR,arg[iarg+1]); - nbinz = force->inumeric(FLERR,arg[iarg+2]); + nbiny = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + nbinz = utils::inumeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"xz") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal compute temp/profile command"); if (domain->dimension == 2) error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); - nbinx = force->inumeric(FLERR,arg[iarg+1]); - nbinz = force->inumeric(FLERR,arg[iarg+2]); + nbinx = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + nbinz = utils::inumeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"xyz") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal compute temp/profile command"); if (domain->dimension == 2) error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); - nbinx = force->inumeric(FLERR,arg[iarg+1]); - nbiny = force->inumeric(FLERR,arg[iarg+2]); - nbinz = force->inumeric(FLERR,arg[iarg+3]); + nbinx = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + nbiny = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + nbinz = utils::inumeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else error->all(FLERR,"Illegal compute temp/profile command"); diff --git a/src/compute_temp_ramp.cpp b/src/compute_temp_ramp.cpp index 30f6701fcd..187ea2454c 100644 --- a/src/compute_temp_ramp.cpp +++ b/src/compute_temp_ramp.cpp @@ -71,14 +71,14 @@ ComputeTempRamp::ComputeTempRamp(LAMMPS *lmp, int narg, char **arg) : else error->all(FLERR,"Illegal compute temp/ramp command"); if (v_dim == 0) { - v_lo = xscale*force->numeric(FLERR,arg[4]); - v_hi = xscale*force->numeric(FLERR,arg[5]); + v_lo = xscale*utils::numeric(FLERR,arg[4],false,lmp); + v_hi = xscale*utils::numeric(FLERR,arg[5],false,lmp); } else if (v_dim == 1) { - v_lo = yscale*force->numeric(FLERR,arg[4]); - v_hi = yscale*force->numeric(FLERR,arg[5]); + v_lo = yscale*utils::numeric(FLERR,arg[4],false,lmp); + v_hi = yscale*utils::numeric(FLERR,arg[5],false,lmp); } else if (v_dim == 2) { - v_lo = zscale*force->numeric(FLERR,arg[4]); - v_hi = zscale*force->numeric(FLERR,arg[5]); + v_lo = zscale*utils::numeric(FLERR,arg[4],false,lmp); + v_hi = zscale*utils::numeric(FLERR,arg[5],false,lmp); } if (strcmp(arg[6],"x") == 0) coord_dim = 0; @@ -87,14 +87,14 @@ ComputeTempRamp::ComputeTempRamp(LAMMPS *lmp, int narg, char **arg) : else error->all(FLERR,"Illegal compute temp/ramp command"); if (coord_dim == 0) { - coord_lo = xscale*force->numeric(FLERR,arg[7]); - coord_hi = xscale*force->numeric(FLERR,arg[8]); + coord_lo = xscale*utils::numeric(FLERR,arg[7],false,lmp); + coord_hi = xscale*utils::numeric(FLERR,arg[8],false,lmp); } else if (coord_dim == 1) { - coord_lo = yscale*force->numeric(FLERR,arg[7]); - coord_hi = yscale*force->numeric(FLERR,arg[8]); + coord_lo = yscale*utils::numeric(FLERR,arg[7],false,lmp); + coord_hi = yscale*utils::numeric(FLERR,arg[8],false,lmp); } else if (coord_dim == 2) { - coord_lo = zscale*force->numeric(FLERR,arg[7]); - coord_hi = zscale*force->numeric(FLERR,arg[8]); + coord_lo = zscale*utils::numeric(FLERR,arg[7],false,lmp); + coord_hi = zscale*utils::numeric(FLERR,arg[8],false,lmp); } maxbias = 0; diff --git a/src/create_atoms.cpp b/src/create_atoms.cpp index de20e15698..b121edb5b2 100644 --- a/src/create_atoms.cpp +++ b/src/create_atoms.cpp @@ -88,7 +88,7 @@ void CreateAtoms::command(int narg, char **arg) // parse arguments if (narg < 2) error->all(FLERR,"Illegal create_atoms command"); - ntype = force->inumeric(FLERR,arg[0]); + ntype = utils::inumeric(FLERR,arg[0],false,lmp); int iarg; if (strcmp(arg[1],"box") == 0) { @@ -107,15 +107,15 @@ void CreateAtoms::command(int narg, char **arg) } else if (strcmp(arg[1],"single") == 0) { style = SINGLE; if (narg < 5) error->all(FLERR,"Illegal create_atoms command"); - xone[0] = force->numeric(FLERR,arg[2]); - xone[1] = force->numeric(FLERR,arg[3]); - xone[2] = force->numeric(FLERR,arg[4]); + xone[0] = utils::numeric(FLERR,arg[2],false,lmp); + xone[1] = utils::numeric(FLERR,arg[3],false,lmp); + xone[2] = utils::numeric(FLERR,arg[4],false,lmp); iarg = 5; } else if (strcmp(arg[1],"random") == 0) { style = RANDOM; if (narg < 5) error->all(FLERR,"Illegal create_atoms command"); - nrandom = force->inumeric(FLERR,arg[2]); - seed = force->inumeric(FLERR,arg[3]); + nrandom = utils::inumeric(FLERR,arg[2],false,lmp); + seed = utils::inumeric(FLERR,arg[3],false,lmp); if (strcmp(arg[4],"NULL") == 0) nregion = -1; else { nregion = domain->find_region(arg[4]); @@ -146,8 +146,8 @@ void CreateAtoms::command(int narg, char **arg) while (iarg < narg) { if (strcmp(arg[iarg],"basis") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal create_atoms command"); - int ibasis = force->inumeric(FLERR,arg[iarg+1]); - int itype = force->inumeric(FLERR,arg[iarg+2]); + int ibasis = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + int itype = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (ibasis <= 0 || ibasis > nbasis || itype <= 0 || itype > atom->ntypes) error->all(FLERR,"Invalid basis setting in create_atoms command"); basistype[ibasis-1] = itype; @@ -168,7 +168,7 @@ void CreateAtoms::command(int narg, char **arg) "create_atoms has multiple molecules"); mode = MOLECULE; onemol = atom->molecules[imol]; - molseed = force->inumeric(FLERR,arg[iarg+2]); + molseed = utils::inumeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"units") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal create_atoms command"); @@ -207,10 +207,10 @@ void CreateAtoms::command(int narg, char **arg) if (iarg+5 > narg) error->all(FLERR,"Illegal create_atoms command"); double thetaone; double axisone[3]; - thetaone = force->numeric(FLERR,arg[iarg+1]) / 180.0 * MY_PI;; - axisone[0] = force->numeric(FLERR,arg[iarg+2]); - axisone[1] = force->numeric(FLERR,arg[iarg+3]); - axisone[2] = force->numeric(FLERR,arg[iarg+4]); + thetaone = utils::numeric(FLERR,arg[iarg+1],false,lmp) / 180.0 * MY_PI;; + axisone[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + axisone[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + axisone[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); if (axisone[0] == 0.0 && axisone[1] == 0.0 && axisone[2] == 0.0) error->all(FLERR,"Illegal create_atoms command"); if (domain->dimension == 2 && (axisone[0] != 0.0 || axisone[1] != 0.0)) @@ -221,16 +221,16 @@ void CreateAtoms::command(int narg, char **arg) } else if (strcmp(arg[iarg],"ratio") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal create_atoms command"); subsetflag = RATIO; - subsetfrac = force->numeric(FLERR,arg[iarg+1]); - subsetseed = force->inumeric(FLERR,arg[iarg+2]); + subsetfrac = utils::numeric(FLERR,arg[iarg+1],false,lmp); + subsetseed = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (subsetfrac <= 0.0 || subsetfrac > 1.0 || subsetseed <= 0) error->all(FLERR,"Illegal create_atoms command"); iarg += 3; } else if (strcmp(arg[iarg],"subset") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal create_atoms command"); subsetflag = SUBSET; - nsubset = force->bnumeric(FLERR,arg[iarg+1]); - subsetseed = force->inumeric(FLERR,arg[iarg+2]); + nsubset = utils::bnumeric(FLERR,arg[iarg+1],false,lmp); + subsetseed = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (nsubset <= 0 || subsetseed <= 0) error->all(FLERR,"Illegal create_atoms command"); iarg += 3; diff --git a/src/create_bonds.cpp b/src/create_bonds.cpp index e210a5e061..4261d9f766 100644 --- a/src/create_bonds.cpp +++ b/src/create_bonds.cpp @@ -69,38 +69,38 @@ void CreateBonds::command(int narg, char **arg) igroup = group->find(arg[2]); if (igroup == -1) error->all(FLERR,"Cannot find create_bonds group ID"); group2bit = group->bitmask[igroup]; - btype = force->inumeric(FLERR,arg[3]); - rmin = force->numeric(FLERR,arg[4]); - rmax = force->numeric(FLERR,arg[5]); + btype = utils::inumeric(FLERR,arg[3],false,lmp); + rmin = utils::numeric(FLERR,arg[4],false,lmp); + rmax = utils::numeric(FLERR,arg[5],false,lmp); if (rmin > rmax) error->all(FLERR,"Illegal create_bonds command"); iarg = 6; } else if (strcmp(arg[0],"single/bond") == 0) { style = SBOND; if (narg < 4) error->all(FLERR,"Illegal create_bonds command"); - btype = force->inumeric(FLERR,arg[1]); - batom1 = force->tnumeric(FLERR,arg[2]); - batom2 = force->tnumeric(FLERR,arg[3]); + btype = utils::inumeric(FLERR,arg[1],false,lmp); + batom1 = utils::tnumeric(FLERR,arg[2],false,lmp); + batom2 = utils::tnumeric(FLERR,arg[3],false,lmp); if (batom1 == batom2) error->all(FLERR,"Illegal create_bonds command"); iarg = 4; } else if (strcmp(arg[0],"single/angle") == 0) { style = SANGLE; if (narg < 5) error->all(FLERR,"Illegal create_bonds command"); - atype = force->inumeric(FLERR,arg[1]); - aatom1 = force->tnumeric(FLERR,arg[2]); - aatom2 = force->tnumeric(FLERR,arg[3]); - aatom3 = force->tnumeric(FLERR,arg[4]); + atype = utils::inumeric(FLERR,arg[1],false,lmp); + aatom1 = utils::tnumeric(FLERR,arg[2],false,lmp); + aatom2 = utils::tnumeric(FLERR,arg[3],false,lmp); + aatom3 = utils::tnumeric(FLERR,arg[4],false,lmp); if ((aatom1 == aatom2) || (aatom1 == aatom3) || (aatom2 == aatom3)) error->all(FLERR,"Illegal create_bonds command"); iarg = 5; } else if (strcmp(arg[0],"single/dihedral") == 0) { style = SDIHEDRAL; if (narg < 6) error->all(FLERR,"Illegal create_bonds command"); - dtype = force->inumeric(FLERR,arg[1]); - datom1 = force->tnumeric(FLERR,arg[2]); - datom2 = force->tnumeric(FLERR,arg[3]); - datom3 = force->tnumeric(FLERR,arg[4]); - datom4 = force->tnumeric(FLERR,arg[5]); + dtype = utils::inumeric(FLERR,arg[1],false,lmp); + datom1 = utils::tnumeric(FLERR,arg[2],false,lmp); + datom2 = utils::tnumeric(FLERR,arg[3],false,lmp); + datom3 = utils::tnumeric(FLERR,arg[4],false,lmp); + datom4 = utils::tnumeric(FLERR,arg[5],false,lmp); if ((datom1 == datom2) || (datom1 == datom3) || (datom1 == datom4) || (datom2 == datom3) || (datom2 == datom4) || (datom3 == datom4)) error->all(FLERR,"Illegal create_bonds command"); @@ -108,11 +108,11 @@ void CreateBonds::command(int narg, char **arg) } else if (strcmp(arg[0],"single/improper") == 0) { style = SIMPROPER; if (narg < 6) error->all(FLERR,"Illegal create_bonds command"); - dtype = force->inumeric(FLERR,arg[1]); - datom1 = force->tnumeric(FLERR,arg[2]); - datom2 = force->tnumeric(FLERR,arg[3]); - datom3 = force->tnumeric(FLERR,arg[4]); - datom4 = force->tnumeric(FLERR,arg[5]); + dtype = utils::inumeric(FLERR,arg[1],false,lmp); + datom1 = utils::tnumeric(FLERR,arg[2],false,lmp); + datom2 = utils::tnumeric(FLERR,arg[3],false,lmp); + datom3 = utils::tnumeric(FLERR,arg[4],false,lmp); + datom4 = utils::tnumeric(FLERR,arg[5],false,lmp); if ((datom1 == datom2) || (datom1 == datom3) || (datom1 == datom4) || (datom2 == datom3) || (datom2 == datom4) || (datom3 == datom4)) error->all(FLERR,"Illegal create_bonds command"); diff --git a/src/create_box.cpp b/src/create_box.cpp index 4a826cb691..f5d9edb844 100644 --- a/src/create_box.cpp +++ b/src/create_box.cpp @@ -96,7 +96,7 @@ void CreateBox::command(int narg, char **arg) // set atom and topology type quantities - atom->ntypes = force->inumeric(FLERR,arg[0]); + atom->ntypes = utils::inumeric(FLERR,arg[0],false,lmp); atom->nbondtypes = 0; atom->nangletypes = 0; atom->ndihedraltypes = 0; @@ -110,53 +110,53 @@ void CreateBox::command(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal create_box command"); if (!atom->avec->bonds_allow) error->all(FLERR,"No bonds allowed with this atom style"); - atom->nbondtypes = force->inumeric(FLERR,arg[iarg+1]); + atom->nbondtypes = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"angle/types") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal create_box command"); if (!atom->avec->angles_allow) error->all(FLERR,"No angles allowed with this atom style"); - atom->nangletypes = force->inumeric(FLERR,arg[iarg+1]); + atom->nangletypes = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"dihedral/types") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal create_box command"); if (!atom->avec->dihedrals_allow) error->all(FLERR,"No dihedrals allowed with this atom style"); - atom->ndihedraltypes = force->inumeric(FLERR,arg[iarg+1]); + atom->ndihedraltypes = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"improper/types") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal create_box command"); if (!atom->avec->impropers_allow) error->all(FLERR,"No impropers allowed with this atom style"); - atom->nimpropertypes = force->inumeric(FLERR,arg[iarg+1]); + atom->nimpropertypes = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"extra/bond/per/atom") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal create_box command"); if (!atom->avec->bonds_allow) error->all(FLERR,"No bonds allowed with this atom style"); - atom->bond_per_atom = force->inumeric(FLERR,arg[iarg+1]); + atom->bond_per_atom = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"extra/angle/per/atom") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal create_box command"); if (!atom->avec->angles_allow) error->all(FLERR,"No angles allowed with this atom style"); - atom->angle_per_atom = force->inumeric(FLERR,arg[iarg+1]); + atom->angle_per_atom = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"extra/dihedral/per/atom") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal create_box command"); if (!atom->avec->dihedrals_allow) error->all(FLERR,"No dihedrals allowed with this atom style"); - atom->dihedral_per_atom = force->inumeric(FLERR,arg[iarg+1]); + atom->dihedral_per_atom = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"extra/improper/per/atom") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal create_box command"); if (!atom->avec->impropers_allow) error->all(FLERR,"No impropers allowed with this atom style"); - atom->improper_per_atom = force->inumeric(FLERR,arg[iarg+1]); + atom->improper_per_atom = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"extra/special/per/atom") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal create_box command"); - force->special_extra = force->inumeric(FLERR,arg[iarg+1]); + force->special_extra = utils::inumeric(FLERR,arg[iarg+1],false,lmp); atom->maxspecial += force->special_extra; iarg += 2; } else error->all(FLERR,"Illegal create_box command"); diff --git a/src/delete_atoms.cpp b/src/delete_atoms.cpp index 03d5d2f65d..7dcc4748e9 100644 --- a/src/delete_atoms.cpp +++ b/src/delete_atoms.cpp @@ -270,7 +270,7 @@ void DeleteAtoms::delete_overlap(int narg, char **arg) // read args - double cut = force->numeric(FLERR,arg[1]); + double cut = utils::numeric(FLERR,arg[1],false,lmp); double cutsq = cut*cut; int igroup1 = group->find(arg[2]); @@ -430,8 +430,8 @@ void DeleteAtoms::delete_porosity(int narg, char **arg) if (iregion == -1) error->all(FLERR,"Could not find delete_atoms region ID"); domain->regions[iregion]->prematch(); - double porosity_fraction = force->numeric(FLERR,arg[2]); - int seed = force->inumeric(FLERR,arg[3]); + double porosity_fraction = utils::numeric(FLERR,arg[2],false,lmp); + int seed = utils::inumeric(FLERR,arg[3],false,lmp); options(narg-4,&arg[4]); RanMars *random = new RanMars(lmp,seed + comm->me); diff --git a/src/displace_atoms.cpp b/src/displace_atoms.cpp index 82b7bf9492..a30ac2c2b2 100644 --- a/src/displace_atoms.cpp +++ b/src/displace_atoms.cpp @@ -128,14 +128,14 @@ void DisplaceAtoms::command(int narg, char **arg) double d_lo,d_hi; if (d_dim == 0) { - d_lo = xscale*force->numeric(FLERR,arg[3]); - d_hi = xscale*force->numeric(FLERR,arg[4]); + d_lo = xscale*utils::numeric(FLERR,arg[3],false,lmp); + d_hi = xscale*utils::numeric(FLERR,arg[4],false,lmp); } else if (d_dim == 1) { - d_lo = yscale*force->numeric(FLERR,arg[3]); - d_hi = yscale*force->numeric(FLERR,arg[4]); + d_lo = yscale*utils::numeric(FLERR,arg[3],false,lmp); + d_hi = yscale*utils::numeric(FLERR,arg[4],false,lmp); } else if (d_dim == 2) { - d_lo = zscale*force->numeric(FLERR,arg[3]); - d_hi = zscale*force->numeric(FLERR,arg[4]); + d_lo = zscale*utils::numeric(FLERR,arg[3],false,lmp); + d_hi = zscale*utils::numeric(FLERR,arg[4],false,lmp); } int coord_dim = 0; @@ -146,14 +146,14 @@ void DisplaceAtoms::command(int narg, char **arg) double coord_lo,coord_hi; if (coord_dim == 0) { - coord_lo = xscale*force->numeric(FLERR,arg[6]); - coord_hi = xscale*force->numeric(FLERR,arg[7]); + coord_lo = xscale*utils::numeric(FLERR,arg[6],false,lmp); + coord_hi = xscale*utils::numeric(FLERR,arg[7],false,lmp); } else if (coord_dim == 1) { - coord_lo = yscale*force->numeric(FLERR,arg[6]); - coord_hi = yscale*force->numeric(FLERR,arg[7]); + coord_lo = yscale*utils::numeric(FLERR,arg[6],false,lmp); + coord_hi = yscale*utils::numeric(FLERR,arg[7],false,lmp); } else if (coord_dim == 2) { - coord_lo = zscale*force->numeric(FLERR,arg[6]); - coord_hi = zscale*force->numeric(FLERR,arg[7]); + coord_lo = zscale*utils::numeric(FLERR,arg[6],false,lmp); + coord_hi = zscale*utils::numeric(FLERR,arg[7],false,lmp); } double **x = atom->x; @@ -179,10 +179,10 @@ void DisplaceAtoms::command(int narg, char **arg) if (style == RANDOM) { RanPark *random = new RanPark(lmp,1); - double dx = xscale*force->numeric(FLERR,arg[2]); - double dy = yscale*force->numeric(FLERR,arg[3]); - double dz = zscale*force->numeric(FLERR,arg[4]); - int seed = force->inumeric(FLERR,arg[5]); + double dx = xscale*utils::numeric(FLERR,arg[2],false,lmp); + double dy = yscale*utils::numeric(FLERR,arg[3],false,lmp); + double dz = zscale*utils::numeric(FLERR,arg[4],false,lmp); + int seed = utils::inumeric(FLERR,arg[5],false,lmp); if (seed <= 0) error->all(FLERR,"Illegal displace_atoms random command"); double **x = atom->x; @@ -219,13 +219,13 @@ void DisplaceAtoms::command(int narg, char **arg) double *quat; int dim = domain->dimension; - point[0] = xscale*force->numeric(FLERR,arg[2]); - point[1] = yscale*force->numeric(FLERR,arg[3]); - point[2] = zscale*force->numeric(FLERR,arg[4]); - axis[0] = force->numeric(FLERR,arg[5]); - axis[1] = force->numeric(FLERR,arg[6]); - axis[2] = force->numeric(FLERR,arg[7]); - double theta = force->numeric(FLERR,arg[8]); + point[0] = xscale*utils::numeric(FLERR,arg[2],false,lmp); + point[1] = yscale*utils::numeric(FLERR,arg[3],false,lmp); + point[2] = zscale*utils::numeric(FLERR,arg[4],false,lmp); + axis[0] = utils::numeric(FLERR,arg[5],false,lmp); + axis[1] = utils::numeric(FLERR,arg[6],false,lmp); + axis[2] = utils::numeric(FLERR,arg[7],false,lmp); + double theta = utils::numeric(FLERR,arg[8],false,lmp); if (dim == 2 && (axis[0] != 0.0 || axis[1] != 0.0)) error->all(FLERR,"Invalid displace_atoms rotate axis for 2d"); @@ -372,7 +372,7 @@ void DisplaceAtoms::move(int idim, char *arg, double scale) int nlocal = atom->nlocal; if (strstr(arg,"v_") != arg) { - double delta = scale*force->numeric(FLERR,arg); + double delta = scale*utils::numeric(FLERR,arg,false,lmp); for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) x[i][idim] += delta; diff --git a/src/dump.cpp b/src/dump.cpp index 83b74f1bbc..f876126df9 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -938,7 +938,7 @@ void Dump::modify_params(int narg, char **arg) } else if (strcmp(arg[iarg],"delay") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal dump_modify command"); - delaystep = force->bnumeric(FLERR,arg[iarg+1]); + delaystep = utils::bnumeric(FLERR,arg[iarg+1],false,lmp); if (delaystep >= 0) delay_flag = 1; else delay_flag = 0; iarg += 2; @@ -956,7 +956,7 @@ void Dump::modify_params(int narg, char **arg) strcpy(output->var_dump[idump],&arg[iarg+1][2]); n = 0; } else { - n = force->inumeric(FLERR,arg[iarg+1]); + n = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (n <= 0) error->all(FLERR,"Illegal dump_modify command"); } output->every_dump[idump] = n; @@ -967,7 +967,7 @@ void Dump::modify_params(int narg, char **arg) if (!multiproc) error->all(FLERR,"Cannot use dump_modify fileper " "without % in dump file name"); - int nper = force->inumeric(FLERR,arg[iarg+1]); + int nper = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nper <= 0) error->all(FLERR,"Illegal dump_modify command"); multiproc = nprocs/nper; @@ -1048,7 +1048,7 @@ void Dump::modify_params(int narg, char **arg) delete[] nameslist[idx]; delete[] nameslist; } - maxfiles = force->inumeric(FLERR,arg[iarg+1]); + maxfiles = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (maxfiles == 0) error->all(FLERR,"Illegal dump_modify command"); if (maxfiles > 0) { nameslist = new char*[maxfiles]; @@ -1063,7 +1063,7 @@ void Dump::modify_params(int narg, char **arg) if (!multiproc) error->all(FLERR,"Cannot use dump_modify nfile " "without % in dump file name"); - int nfile = force->inumeric(FLERR,arg[iarg+1]); + int nfile = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nfile <= 0) error->all(FLERR,"Illegal dump_modify command"); nfile = MIN(nfile,nprocs); @@ -1093,7 +1093,7 @@ void Dump::modify_params(int narg, char **arg) } else if (strcmp(arg[iarg],"pad") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal dump_modify command"); - padflag = force->inumeric(FLERR,arg[iarg+1]); + padflag = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (padflag < 0) error->all(FLERR,"Illegal dump_modify command"); iarg += 2; @@ -1113,7 +1113,7 @@ void Dump::modify_params(int narg, char **arg) sortorder = ASCEND; } else { sort_flag = 1; - sortcol = force->inumeric(FLERR,arg[iarg+1]); + sortcol = utils::inumeric(FLERR,arg[iarg+1],false,lmp); sortorder = ASCEND; if (sortcol == 0) error->all(FLERR,"Illegal dump_modify command"); if (sortcol < 0) { diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 33b7c4603b..3b0594a2cb 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -68,7 +68,7 @@ DumpCustom::DumpCustom(LAMMPS *lmp, int narg, char **arg) : clearstep = 1; - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal dump custom command"); // expand args if any have wildcard character "*" @@ -1748,7 +1748,7 @@ int DumpCustom::modify_param(int narg, char **arg) strcpy(format_float_user,arg[2]); } else { - int i = force->inumeric(FLERR,arg[1]) - 1; + int i = utils::inumeric(FLERR,arg[1],false,lmp) - 1; if (i < 0 || i >= size_one) error->all(FLERR,"Illegal dump_modify command"); if (format_column_user[i]) delete [] format_column_user[i]; @@ -2060,7 +2060,7 @@ int DumpCustom::modify_param(int narg, char **arg) // id = dump-ID + nthreshlast + DUMP_STORE, fix group = dump group if (strcmp(arg[3],"LAST") != 0) { - thresh_value[nthresh] = force->numeric(FLERR,arg[3]); + thresh_value[nthresh] = utils::numeric(FLERR,arg[3],false,lmp); thresh_last[nthresh] = -1; } else { thresh_fix = (FixStore **) diff --git a/src/dump_image.cpp b/src/dump_image.cpp index 73252e94f2..ea9fb612cb 100644 --- a/src/dump_image.cpp +++ b/src/dump_image.cpp @@ -153,7 +153,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"adiam") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal dump image command"); adiam = NUMERIC; - adiamvalue = force->numeric(FLERR,arg[iarg+1]); + adiamvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (adiamvalue <= 0.0) error->all(FLERR,"Illegal dump image command"); iarg += 2; @@ -168,7 +168,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : else error->all(FLERR,"Illegal dump image command"); if (!islower(arg[iarg+2][0])) { bdiam = NUMERIC; - bdiamvalue = force->numeric(FLERR,arg[iarg+2]); + bdiamvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (bdiamvalue <= 0.0) error->all(FLERR,"Illegal dump image command"); } else if (strcmp(arg[iarg+2],"atom") == 0) bdiam = ATOM; else if (strcmp(arg[iarg+2],"type") == 0) bdiam = TYPE; @@ -183,7 +183,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg+1],"type") == 0) lcolor = TYPE; else error->all(FLERR,"Illegal dump image command"); ldiam = NUMERIC; - ldiamvalue = force->numeric(FLERR,arg[iarg+2]); + ldiamvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg],"tri") == 0) { @@ -191,8 +191,8 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : triflag = YES; if (strcmp(arg[iarg+1],"type") == 0) tcolor = TYPE; else error->all(FLERR,"Illegal dump image command"); - tstyle = force->inumeric(FLERR,arg[iarg+2]); - tdiamvalue = force->numeric(FLERR,arg[iarg+3]); + tstyle = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + tdiamvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"body") == 0) { @@ -200,8 +200,8 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : bodyflag = YES; if (strcmp(arg[iarg+1],"type") == 0) bodycolor = TYPE; else error->all(FLERR,"Illegal dump image command"); - bodyflag1 = force->numeric(FLERR,arg[iarg+2]); - bodyflag2 = force->numeric(FLERR,arg[iarg+3]); + bodyflag1 = utils::numeric(FLERR,arg[iarg+2],false,lmp); + bodyflag2 = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"fix") == 0) { @@ -210,14 +210,14 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : fixID = arg[iarg+1]; if (strcmp(arg[iarg+2],"type") == 0) fixcolor = TYPE; else error->all(FLERR,"Illegal dump image command"); - fixflag1 = force->numeric(FLERR,arg[iarg+3]); - fixflag2 = force->numeric(FLERR,arg[iarg+4]); + fixflag1 = utils::numeric(FLERR,arg[iarg+3],false,lmp); + fixflag2 = utils::numeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else if (strcmp(arg[iarg],"size") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal dump image command"); - int width = force->inumeric(FLERR,arg[iarg+1]); - int height = force->inumeric(FLERR,arg[iarg+2]); + int width = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + int height = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (width <= 0 || height <= 0) error->all(FLERR,"Illegal dump image command"); image->width = width; @@ -231,7 +231,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : thetastr = new char[n]; strcpy(thetastr,&arg[iarg+1][2]); } else { - double theta = force->numeric(FLERR,arg[iarg+1]); + double theta = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (theta < 0.0 || theta > 180.0) error->all(FLERR,"Invalid dump image theta value"); theta *= MY_PI/180.0; @@ -242,7 +242,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : phistr = new char[n]; strcpy(phistr,&arg[iarg+2][2]); } else { - double phi = force->numeric(FLERR,arg[iarg+2]); + double phi = utils::numeric(FLERR,arg[iarg+2],false,lmp); phi *= MY_PI/180.0; image->phi = phi; } @@ -258,19 +258,19 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : cxstr = new char[n]; strcpy(cxstr,&arg[iarg+2][2]); cflag = DYNAMIC; - } else cx = force->numeric(FLERR,arg[iarg+2]); + } else cx = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) { int n = strlen(&arg[iarg+3][2]) + 1; cystr = new char[n]; strcpy(cystr,&arg[iarg+3][2]); cflag = DYNAMIC; - } else cy = force->numeric(FLERR,arg[iarg+3]); + } else cy = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (strstr(arg[iarg+4],"v_") == arg[iarg+4]) { int n = strlen(&arg[iarg+4][2]) + 1; czstr = new char[n]; strcpy(czstr,&arg[iarg+4][2]); cflag = DYNAMIC; - } else cz = force->numeric(FLERR,arg[iarg+4]); + } else cz = utils::numeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else if (strcmp(arg[iarg],"up") == 0) { @@ -279,17 +279,17 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : int n = strlen(&arg[iarg+1][2]) + 1; upxstr = new char[n]; strcpy(upxstr,&arg[iarg+1][2]); - } else image->up[0] = force->numeric(FLERR,arg[iarg+1]); + } else image->up[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) { int n = strlen(&arg[iarg+2][2]) + 1; upystr = new char[n]; strcpy(upystr,&arg[iarg+2][2]); - } else image->up[1] = force->numeric(FLERR,arg[iarg+2]); + } else image->up[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) { int n = strlen(&arg[iarg+3][2]) + 1; upzstr = new char[n]; strcpy(upzstr,&arg[iarg+3][2]); - } else image->up[2] = force->numeric(FLERR,arg[iarg+3]); + } else image->up[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"zoom") == 0) { @@ -299,7 +299,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : zoomstr = new char[n]; strcpy(zoomstr,&arg[iarg+1][2]); } else { - double zoom = force->numeric(FLERR,arg[iarg+1]); + double zoom = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (zoom <= 0.0) error->all(FLERR,"Illegal dump image command"); image->zoom = zoom; } @@ -313,7 +313,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : perspstr = new char[n]; strcpy(perspstr,&arg[iarg+1][2]); } else { - double persp = force->numeric(FLERR,arg[iarg+1]); + double persp = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (persp < 0.0) error->all(FLERR,"Illegal dump image command"); image->persp = persp; } @@ -324,7 +324,7 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg+1],"yes") == 0) boxflag = YES; else if (strcmp(arg[iarg+1],"no") == 0) boxflag = NO; else error->all(FLERR,"Illegal dump image command"); - boxdiam = force->numeric(FLERR,arg[iarg+2]); + boxdiam = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (boxdiam < 0.0) error->all(FLERR,"Illegal dump image command"); iarg += 3; @@ -333,8 +333,8 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg+1],"yes") == 0) axesflag = YES; else if (strcmp(arg[iarg+1],"no") == 0) axesflag = NO; else error->all(FLERR,"Illegal dump image command"); - axeslen = force->numeric(FLERR,arg[iarg+2]); - axesdiam = force->numeric(FLERR,arg[iarg+3]); + axeslen = utils::numeric(FLERR,arg[iarg+2],false,lmp); + axesdiam = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (axeslen < 0.0 || axesdiam < 0.0) error->all(FLERR,"Illegal dump image command"); iarg += 4; @@ -344,13 +344,13 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg+1],"yes") == 0) subboxflag = YES; else if (strcmp(arg[iarg+1],"no") == 0) subboxflag = NO; else error->all(FLERR,"Illegal dump image command"); - subboxdiam = force->numeric(FLERR,arg[iarg+2]); + subboxdiam = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (subboxdiam < 0.0) error->all(FLERR,"Illegal dump image command"); iarg += 3; } else if (strcmp(arg[iarg],"shiny") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal dump image command"); - double shiny = force->numeric(FLERR,arg[iarg+1]); + double shiny = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (shiny < 0.0 || shiny > 1.0) error->all(FLERR,"Illegal dump image command"); image->shiny = shiny; @@ -361,10 +361,10 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg+1],"yes") == 0) image->ssao = YES; else if (strcmp(arg[iarg+1],"no") == 0) image->ssao = NO; else error->all(FLERR,"Illegal dump image command"); - int seed = force->inumeric(FLERR,arg[iarg+2]); + int seed = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (seed <= 0) error->all(FLERR,"Illegal dump image command"); image->seed = seed; - double ssaoint = force->numeric(FLERR,arg[iarg+3]); + double ssaoint = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (ssaoint < 0.0 || ssaoint > 1.0) error->all(FLERR,"Illegal dump image command"); image->ssaoint = ssaoint; @@ -1282,7 +1282,7 @@ int DumpImage::modify_param(int narg, char **arg) if (narg < 3) error->all(FLERR,"Illegal dump_modify command"); int nlo,nhi; utils::bounds(FLERR,arg[1],1,atom->ntypes,nlo,nhi,error); - double diam = force->numeric(FLERR,arg[2]); + double diam = utils::numeric(FLERR,arg[2],false,lmp); if (diam <= 0.0) error->all(FLERR,"Illegal dump_modify command"); for (int i = nlo; i <= nhi; i++) diamtype[i] = diam; return 3; @@ -1296,7 +1296,7 @@ int DumpImage::modify_param(int narg, char **arg) else if (arg[3][0] == 'c') factor = 2; else if (arg[3][0] == 'd') factor = 3; else error->all(FLERR,"Illegal dump_modify command"); - int nentry = force->inumeric(FLERR,arg[5]); + int nentry = utils::inumeric(FLERR,arg[5],false,lmp); if (nentry < 1) error->all(FLERR,"Illegal dump_modify command"); int n = 6 + factor*nentry; if (narg < n) error->all(FLERR,"Illegal dump_modify command"); @@ -1347,7 +1347,7 @@ int DumpImage::modify_param(int narg, char **arg) error->all(FLERR,"Dump modify bdiam not allowed with no bond types"); int nlo,nhi; utils::bounds(FLERR,arg[1],1,atom->nbondtypes,nlo,nhi,error); - double diam = force->numeric(FLERR,arg[2]); + double diam = utils::numeric(FLERR,arg[2],false,lmp); if (diam <= 0.0) error->all(FLERR,"Illegal dump_modify command"); for (int i = nlo; i <= nhi; i++) bdiamtype[i] = diam; return 3; @@ -1373,7 +1373,9 @@ int DumpImage::modify_param(int narg, char **arg) if (strcmp(arg[0],"color") == 0) { if (narg < 5) error->all(FLERR,"Illegal dump_modify command"); - int flag = image->addcolor(arg[1],force->numeric(FLERR,arg[2]),force->numeric(FLERR,arg[3]),force->numeric(FLERR,arg[4])); + int flag = image->addcolor(arg[1],utils::numeric(FLERR,arg[2],false,lmp), + utils::numeric(FLERR,arg[3],false,lmp), + utils::numeric(FLERR,arg[4],false,lmp)); if (flag) error->all(FLERR,"Illegal dump_modify command"); return 5; } diff --git a/src/dump_local.cpp b/src/dump_local.cpp index 85fb5dff14..5914d2ac1c 100644 --- a/src/dump_local.cpp +++ b/src/dump_local.cpp @@ -46,7 +46,7 @@ DumpLocal::DumpLocal(LAMMPS *lmp, int narg, char **arg) : clearstep = 1; - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal dump local command"); if (binary) diff --git a/src/dump_movie.cpp b/src/dump_movie.cpp index 68a77c8f63..4966310470 100644 --- a/src/dump_movie.cpp +++ b/src/dump_movie.cpp @@ -84,14 +84,14 @@ int DumpMovie::modify_param(int narg, char **arg) if (strcmp(arg[0],"bitrate") == 0) { if (narg < 2) error->all(FLERR,"Illegal dump_modify command"); - bitrate = force->inumeric(FLERR,arg[1]); + bitrate = utils::inumeric(FLERR,arg[1],false,lmp); if (bitrate <= 0.0) error->all(FLERR,"Illegal dump_modify command"); return 2; } if (strcmp(arg[0],"framerate") == 0) { if (narg < 2) error->all(FLERR,"Illegal dump_modify command"); - framerate = force->numeric(FLERR,arg[1]); + framerate = utils::numeric(FLERR,arg[1],false,lmp); if ((framerate <= 0.1) || (framerate > 24.0)) error->all(FLERR,"Illegal dump_modify framerate command"); return 2; diff --git a/src/fix.cpp b/src/fix.cpp index c15f5638e2..549208a0ce 100644 --- a/src/fix.cpp +++ b/src/fix.cpp @@ -163,7 +163,7 @@ void Fix::modify_params(int narg, char **arg) } else if (strcmp(arg[iarg],"respa") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix_modify command"); if (!respa_level_support) error->all(FLERR,"Illegal fix_modify command"); - int lvl = force->inumeric(FLERR,arg[iarg+1]); + int lvl = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (lvl < 0) error->all(FLERR,"Illegal fix_modify command"); respa_level = lvl-1; iarg += 2; diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index f8b8092c0d..c07b225f9d 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -46,7 +46,7 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), nadapt(0), id_fix_diam(NULL), id_fix_chg(NULL), adapt(NULL) { if (narg < 5) error->all(FLERR,"Illegal fix adapt command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery < 0) error->all(FLERR,"Illegal fix adapt command"); dynamic_group_allow = 1; @@ -354,7 +354,7 @@ void FixAdapt::init() int nsub = 0; if ((cptr = strchr(pstyle,':'))) { *cptr = '\0'; - nsub = force->inumeric(FLERR,cptr+1); + nsub = utils::inumeric(FLERR,cptr+1,false,lmp); } if (lmp->suffix_enable) { diff --git a/src/fix_addforce.cpp b/src/fix_addforce.cpp index 275ec2c846..d5c1bbef29 100644 --- a/src/fix_addforce.cpp +++ b/src/fix_addforce.cpp @@ -60,7 +60,7 @@ FixAddForce::FixAddForce(LAMMPS *lmp, int narg, char **arg) : xstr = new char[n]; strcpy(xstr,&arg[3][2]); } else { - xvalue = force->numeric(FLERR,arg[3]); + xvalue = utils::numeric(FLERR,arg[3],false,lmp); xstyle = CONSTANT; } if (strstr(arg[4],"v_") == arg[4]) { @@ -68,7 +68,7 @@ FixAddForce::FixAddForce(LAMMPS *lmp, int narg, char **arg) : ystr = new char[n]; strcpy(ystr,&arg[4][2]); } else { - yvalue = force->numeric(FLERR,arg[4]); + yvalue = utils::numeric(FLERR,arg[4],false,lmp); ystyle = CONSTANT; } if (strstr(arg[5],"v_") == arg[5]) { @@ -76,7 +76,7 @@ FixAddForce::FixAddForce(LAMMPS *lmp, int narg, char **arg) : zstr = new char[n]; strcpy(zstr,&arg[5][2]); } else { - zvalue = force->numeric(FLERR,arg[5]); + zvalue = utils::numeric(FLERR,arg[5],false,lmp); zstyle = CONSTANT; } diff --git a/src/fix_ave_atom.cpp b/src/fix_ave_atom.cpp index 710aec1ef8..a8d78f14e7 100644 --- a/src/fix_ave_atom.cpp +++ b/src/fix_ave_atom.cpp @@ -41,9 +41,9 @@ FixAveAtom::FixAveAtom(LAMMPS *lmp, int narg, char **arg) : { if (narg < 7) error->all(FLERR,"Illegal fix ave/atom command"); - nevery = force->inumeric(FLERR,arg[3]); - nrepeat = force->inumeric(FLERR,arg[4]); - peratom_freq = force->inumeric(FLERR,arg[5]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + nrepeat = utils::inumeric(FLERR,arg[4],false,lmp); + peratom_freq = utils::inumeric(FLERR,arg[5],false,lmp); nvalues = narg - 6; diff --git a/src/fix_ave_chunk.cpp b/src/fix_ave_chunk.cpp index a5730c6e60..dd753ddc2d 100644 --- a/src/fix_ave_chunk.cpp +++ b/src/fix_ave_chunk.cpp @@ -57,9 +57,9 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) : MPI_Comm_rank(world,&me); - nevery = force->inumeric(FLERR,arg[3]); - nrepeat = force->inumeric(FLERR,arg[4]); - nfreq = force->inumeric(FLERR,arg[5]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + nrepeat = utils::inumeric(FLERR,arg[4],false,lmp); + nfreq = utils::inumeric(FLERR,arg[5],false,lmp); int n = strlen(arg[6]) + 1; idchunk = new char[n]; @@ -196,7 +196,7 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) : else error->all(FLERR,"Illegal fix ave/chunk command"); if (ave == WINDOW) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); - nwindow = force->inumeric(FLERR,arg[iarg+2]); + nwindow = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (nwindow <= 0) error->all(FLERR,"Illegal fix ave/chunk command"); } iarg += 2; @@ -213,12 +213,12 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"adof") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); - adof = force->numeric(FLERR,arg[iarg+1]); + adof = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"cdof") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); - cdof = force->numeric(FLERR,arg[iarg+1]); + cdof = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"file") == 0) { diff --git a/src/fix_ave_correlate.cpp b/src/fix_ave_correlate.cpp index 510b7ca769..293b7fc296 100644 --- a/src/fix_ave_correlate.cpp +++ b/src/fix_ave_correlate.cpp @@ -55,9 +55,9 @@ FixAveCorrelate::FixAveCorrelate(LAMMPS * lmp, int narg, char **arg): MPI_Comm_rank(world,&me); - nevery = force->inumeric(FLERR,arg[3]); - nrepeat = force->inumeric(FLERR,arg[4]); - nfreq = force->inumeric(FLERR,arg[5]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + nrepeat = utils::inumeric(FLERR,arg[4],false,lmp); + nfreq = utils::inumeric(FLERR,arg[5],false,lmp); global_freq = nfreq; @@ -140,11 +140,11 @@ FixAveCorrelate::FixAveCorrelate(LAMMPS * lmp, int narg, char **arg): iarg += 2; } else if (strcmp(arg[iarg],"start") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); - startstep = force->inumeric(FLERR,arg[iarg+1]); + startstep = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"prefactor") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); - prefactor = force->numeric(FLERR,arg[iarg+1]); + prefactor = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"file") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); diff --git a/src/fix_ave_histo.cpp b/src/fix_ave_histo.cpp index a07da83ed9..091ec19fff 100644 --- a/src/fix_ave_histo.cpp +++ b/src/fix_ave_histo.cpp @@ -57,9 +57,9 @@ FixAveHisto::FixAveHisto(LAMMPS *lmp, int narg, char **arg) : MPI_Comm_rank(world,&me); - nevery = force->inumeric(FLERR,arg[3]); - nrepeat = force->inumeric(FLERR,arg[4]); - nfreq = force->inumeric(FLERR,arg[5]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + nrepeat = utils::inumeric(FLERR,arg[4],false,lmp); + nfreq = utils::inumeric(FLERR,arg[5],false,lmp); global_freq = nfreq; vector_flag = 1; @@ -70,9 +70,9 @@ FixAveHisto::FixAveHisto(LAMMPS *lmp, int narg, char **arg) : extarray = 0; dynamic_group_allow = 1; - lo = force->numeric(FLERR,arg[6]); - hi = force->numeric(FLERR,arg[7]); - nbins = force->inumeric(FLERR,arg[8]); + lo = utils::numeric(FLERR,arg[6],false,lmp); + hi = utils::numeric(FLERR,arg[7],false,lmp); + nbins = utils::inumeric(FLERR,arg[8],false,lmp); // scan values to count them // then read options so know mode = SCALAR/VECTOR before re-reading values @@ -985,14 +985,14 @@ void FixAveHisto::options(int iarg, int narg, char **arg) else error->all(FLERR,"Illegal fix ave/histo command"); if (ave == WINDOW) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix ave/histo command"); - nwindow = force->inumeric(FLERR,arg[iarg+2]); + nwindow = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (nwindow <= 0) error->all(FLERR,"Illegal fix ave/histo command"); } iarg += 2; if (ave == WINDOW) iarg++; } else if (strcmp(arg[iarg],"start") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); - startstep = force->inumeric(FLERR,arg[iarg+1]); + startstep = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"mode") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); diff --git a/src/fix_ave_time.cpp b/src/fix_ave_time.cpp index a2c18361f6..4cc8cc3d3d 100644 --- a/src/fix_ave_time.cpp +++ b/src/fix_ave_time.cpp @@ -56,9 +56,9 @@ FixAveTime::FixAveTime(LAMMPS *lmp, int narg, char **arg) : MPI_Comm_rank(world,&me); - nevery = force->inumeric(FLERR,arg[3]); - nrepeat = force->inumeric(FLERR,arg[4]); - nfreq = force->inumeric(FLERR,arg[5]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + nrepeat = utils::inumeric(FLERR,arg[4],false,lmp); + nfreq = utils::inumeric(FLERR,arg[5],false,lmp); global_freq = nfreq; @@ -1058,14 +1058,14 @@ void FixAveTime::options(int iarg, int narg, char **arg) else error->all(FLERR,"Illegal fix ave/time command"); if (ave == WINDOW) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix ave/time command"); - nwindow = force->inumeric(FLERR,arg[iarg+2]); + nwindow = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (nwindow <= 0) error->all(FLERR,"Illegal fix ave/time command"); } iarg += 2; if (ave == WINDOW) iarg++; } else if (strcmp(arg[iarg],"start") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); - startstep = force->inumeric(FLERR,arg[iarg+1]); + startstep = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"mode") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); @@ -1076,7 +1076,7 @@ void FixAveTime::options(int iarg, int narg, char **arg) } else if (strcmp(arg[iarg],"off") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); memory->grow(offlist,noff+1,"ave/time:offlist"); - offlist[noff++] = force->inumeric(FLERR,arg[iarg+1]); + offlist[noff++] = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"overwrite") == 0) { overwrite = 1; diff --git a/src/fix_aveforce.cpp b/src/fix_aveforce.cpp index 8ad07780a9..b5b2527e25 100644 --- a/src/fix_aveforce.cpp +++ b/src/fix_aveforce.cpp @@ -55,7 +55,7 @@ FixAveForce::FixAveForce(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[3],"NULL") == 0) { xstyle = NONE; } else { - xvalue = force->numeric(FLERR,arg[3]); + xvalue = utils::numeric(FLERR,arg[3],false,lmp); xstyle = CONSTANT; } if (strstr(arg[4],"v_") == arg[4]) { @@ -65,7 +65,7 @@ FixAveForce::FixAveForce(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[4],"NULL") == 0) { ystyle = NONE; } else { - yvalue = force->numeric(FLERR,arg[4]); + yvalue = utils::numeric(FLERR,arg[4],false,lmp); ystyle = CONSTANT; } if (strstr(arg[5],"v_") == arg[5]) { @@ -75,7 +75,7 @@ FixAveForce::FixAveForce(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[5],"NULL") == 0) { zstyle = NONE; } else { - zvalue = force->numeric(FLERR,arg[5]); + zvalue = utils::numeric(FLERR,arg[5],false,lmp); zstyle = CONSTANT; } diff --git a/src/fix_balance.cpp b/src/fix_balance.cpp index f374a7c5c5..7cee835375 100644 --- a/src/fix_balance.cpp +++ b/src/fix_balance.cpp @@ -52,9 +52,9 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) : int dimension = domain->dimension; - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery < 0) error->all(FLERR,"Illegal fix balance command"); - thresh = force->numeric(FLERR,arg[4]); + thresh = utils::numeric(FLERR,arg[4],false,lmp); if (strcmp(arg[5],"shift") == 0) lbstyle = SHIFT; else if (strcmp(arg[5],"rcb") == 0) lbstyle = BISECTION; @@ -66,9 +66,9 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) : if (strlen(arg[iarg+1]) > 3) error->all(FLERR,"Illegal fix balance command"); strcpy(bstr,arg[iarg+1]); - nitermax = force->inumeric(FLERR,arg[iarg+2]); + nitermax = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (nitermax <= 0) error->all(FLERR,"Illegal fix balance command"); - stopthresh = force->numeric(FLERR,arg[iarg+3]); + stopthresh = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (stopthresh < 1.0) error->all(FLERR,"Illegal fix balance command"); iarg += 4; } else if (lbstyle == BISECTION) { diff --git a/src/fix_box_relax.cpp b/src/fix_box_relax.cpp index 832799831e..39760e9479 100644 --- a/src/fix_box_relax.cpp +++ b/src/fix_box_relax.cpp @@ -90,7 +90,7 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"iso") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); pcouple = XYZ; - p_target[0] = p_target[1] = p_target[2] = force->numeric(FLERR,arg[iarg+1]); + p_target[0] = p_target[1] = p_target[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (dimension == 2) { p_target[2] = 0.0; @@ -100,7 +100,7 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"aniso") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); pcouple = NONE; - p_target[0] = p_target[1] = p_target[2] = force->numeric(FLERR,arg[iarg+1]); + p_target[0] = p_target[1] = p_target[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (dimension == 2) { p_target[2] = 0.0; @@ -111,7 +111,7 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) : if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); pcouple = NONE; scalexy = scalexz = scaleyz = 0; - p_target[0] = p_target[1] = p_target[2] = force->numeric(FLERR,arg[iarg+1]); + p_target[0] = p_target[1] = p_target[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; p_target[3] = p_target[4] = p_target[5] = 0.0; p_flag[3] = p_flag[4] = p_flag[5] = 1; @@ -123,19 +123,19 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"x") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); - p_target[0] = force->numeric(FLERR,arg[iarg+1]); + p_target[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); p_flag[0] = 1; deviatoric_flag = 1; iarg += 2; } else if (strcmp(arg[iarg],"y") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); - p_target[1] = force->numeric(FLERR,arg[iarg+1]); + p_target[1] = utils::numeric(FLERR,arg[iarg+1],false,lmp); p_flag[1] = 1; deviatoric_flag = 1; iarg += 2; } else if (strcmp(arg[iarg],"z") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); - p_target[2] = force->numeric(FLERR,arg[iarg+1]); + p_target[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); p_flag[2] = 1; deviatoric_flag = 1; iarg += 2; @@ -144,7 +144,7 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"yz") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); - p_target[3] = force->numeric(FLERR,arg[iarg+1]); + p_target[3] = utils::numeric(FLERR,arg[iarg+1],false,lmp); p_flag[3] = 1; deviatoric_flag = 1; scaleyz = 0; @@ -153,7 +153,7 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); } else if (strcmp(arg[iarg],"xz") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); - p_target[4] = force->numeric(FLERR,arg[iarg+1]); + p_target[4] = utils::numeric(FLERR,arg[iarg+1],false,lmp); p_flag[4] = 1; deviatoric_flag = 1; scalexz = 0; @@ -162,7 +162,7 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); } else if (strcmp(arg[iarg],"xy") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); - p_target[5] = force->numeric(FLERR,arg[iarg+1]); + p_target[5] = utils::numeric(FLERR,arg[iarg+1],false,lmp); p_flag[5] = 1; deviatoric_flag = 1; scalexy = 0; @@ -186,11 +186,11 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"vmax") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); - vmax = force->numeric(FLERR,arg[iarg+1]); + vmax = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"nreset") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); - nreset_h0 = force->inumeric(FLERR,arg[iarg+1]); + nreset_h0 = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nreset_h0 < 0) error->all(FLERR,"Illegal fix box/relax command"); iarg += 2; } else if (strcmp(arg[iarg],"scalexy") == 0) { @@ -213,9 +213,9 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"fixedpoint") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix box/relax command"); - fixedpoint[0] = force->numeric(FLERR,arg[iarg+1]); - fixedpoint[1] = force->numeric(FLERR,arg[iarg+2]); - fixedpoint[2] = force->numeric(FLERR,arg[iarg+3]); + fixedpoint[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + fixedpoint[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + fixedpoint[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else error->all(FLERR,"Illegal fix box/relax command"); } diff --git a/src/fix_controller.cpp b/src/fix_controller.cpp index f7012e5565..4b12c393cb 100644 --- a/src/fix_controller.cpp +++ b/src/fix_controller.cpp @@ -43,13 +43,13 @@ FixController::FixController(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extvector = 0; - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix controller command"); - alpha = force->numeric(FLERR,arg[4]); - kp = force->numeric(FLERR,arg[5]); - ki = force->numeric(FLERR,arg[6]); - kd = force->numeric(FLERR,arg[7]); + alpha = utils::numeric(FLERR,arg[4],false,lmp); + kp = utils::numeric(FLERR,arg[5],false,lmp); + ki = utils::numeric(FLERR,arg[6],false,lmp); + kd = utils::numeric(FLERR,arg[7],false,lmp); // process variable arg @@ -84,7 +84,7 @@ FixController::FixController(LAMMPS *lmp, int narg, char **arg) : // setpoint arg - setpoint = force->numeric(FLERR,arg[iarg]); + setpoint = utils::numeric(FLERR,arg[iarg],false,lmp); iarg++; // control variable arg diff --git a/src/fix_deform.cpp b/src/fix_deform.cpp index 2514f28fa5..b4c36ca43e 100644 --- a/src/fix_deform.cpp +++ b/src/fix_deform.cpp @@ -50,7 +50,7 @@ rfix(NULL), irregular(NULL), set(NULL) restart_global = 1; pre_exchange_migrate = 1; - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix deform command"); // set defaults @@ -77,34 +77,34 @@ rfix(NULL), irregular(NULL), set(NULL) if (strcmp(arg[iarg+1],"final") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = FINAL; - set[index].flo = force->numeric(FLERR,arg[iarg+2]); - set[index].fhi = force->numeric(FLERR,arg[iarg+3]); + set[index].flo = utils::numeric(FLERR,arg[iarg+2],false,lmp); + set[index].fhi = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg+1],"delta") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = DELTA; - set[index].dlo = force->numeric(FLERR,arg[iarg+2]); - set[index].dhi = force->numeric(FLERR,arg[iarg+3]); + set[index].dlo = utils::numeric(FLERR,arg[iarg+2],false,lmp); + set[index].dhi = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg+1],"scale") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = SCALE; - set[index].scale = force->numeric(FLERR,arg[iarg+2]); + set[index].scale = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg+1],"vel") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = VEL; - set[index].vel = force->numeric(FLERR,arg[iarg+2]); + set[index].vel = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg+1],"erate") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = ERATE; - set[index].rate = force->numeric(FLERR,arg[iarg+2]); + set[index].rate = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg+1],"trate") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = TRATE; - set[index].rate = force->numeric(FLERR,arg[iarg+2]); + set[index].rate = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg+1],"volume") == 0) { set[index].style = VOLUME; @@ -112,8 +112,8 @@ rfix(NULL), irregular(NULL), set(NULL) } else if (strcmp(arg[iarg+1],"wiggle") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = WIGGLE; - set[index].amplitude = force->numeric(FLERR,arg[iarg+2]); - set[index].tperiod = force->numeric(FLERR,arg[iarg+3]); + set[index].amplitude = utils::numeric(FLERR,arg[iarg+2],false,lmp); + set[index].tperiod = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (set[index].tperiod <= 0.0) error->all(FLERR,"Illegal fix deform command"); iarg += 4; @@ -149,33 +149,33 @@ rfix(NULL), irregular(NULL), set(NULL) if (strcmp(arg[iarg+1],"final") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = FINAL; - set[index].ftilt = force->numeric(FLERR,arg[iarg+2]); + set[index].ftilt = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg+1],"delta") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = DELTA; - set[index].dtilt = force->numeric(FLERR,arg[iarg+2]); + set[index].dtilt = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg+1],"vel") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = VEL; - set[index].vel = force->numeric(FLERR,arg[iarg+2]); + set[index].vel = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg+1],"erate") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = ERATE; - set[index].rate = force->numeric(FLERR,arg[iarg+2]); + set[index].rate = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg+1],"trate") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = TRATE; - set[index].rate = force->numeric(FLERR,arg[iarg+2]); + set[index].rate = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; } else if (strcmp(arg[iarg+1],"wiggle") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix deform command"); set[index].style = WIGGLE; - set[index].amplitude = force->numeric(FLERR,arg[iarg+2]); - set[index].tperiod = force->numeric(FLERR,arg[iarg+3]); + set[index].amplitude = utils::numeric(FLERR,arg[iarg+2],false,lmp); + set[index].tperiod = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (set[index].tperiod <= 0.0) error->all(FLERR,"Illegal fix deform command"); iarg += 4; diff --git a/src/fix_drag.cpp b/src/fix_drag.cpp index 9af5a37675..5b74b75fcd 100644 --- a/src/fix_drag.cpp +++ b/src/fix_drag.cpp @@ -42,14 +42,14 @@ FixDrag::FixDrag(LAMMPS *lmp, int narg, char **arg) : xflag = yflag = zflag = 1; if (strcmp(arg[3],"NULL") == 0) xflag = 0; - else xc = force->numeric(FLERR,arg[3]); + else xc = utils::numeric(FLERR,arg[3],false,lmp); if (strcmp(arg[4],"NULL") == 0) yflag = 0; - else yc = force->numeric(FLERR,arg[4]); + else yc = utils::numeric(FLERR,arg[4],false,lmp); if (strcmp(arg[5],"NULL") == 0) zflag = 0; - else zc = force->numeric(FLERR,arg[5]); + else zc = utils::numeric(FLERR,arg[5],false,lmp); - f_mag = force->numeric(FLERR,arg[6]); - delta = force->numeric(FLERR,arg[7]); + f_mag = utils::numeric(FLERR,arg[6],false,lmp); + delta = utils::numeric(FLERR,arg[7],false,lmp); force_flag = 0; ftotal[0] = ftotal[1] = ftotal[2] = 0.0; diff --git a/src/fix_dt_reset.cpp b/src/fix_dt_reset.cpp index da4bdad827..8fb4f0cdfc 100644 --- a/src/fix_dt_reset.cpp +++ b/src/fix_dt_reset.cpp @@ -50,16 +50,16 @@ FixDtReset::FixDtReset(LAMMPS *lmp, int narg, char **arg) : extvector = 0; dynamic_group_allow = 1; - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix dt/reset command"); minbound = maxbound = 1; tmin = tmax = 0.0; if (strcmp(arg[4],"NULL") == 0) minbound = 0; - else tmin = force->numeric(FLERR,arg[4]); + else tmin = utils::numeric(FLERR,arg[4],false,lmp); if (strcmp(arg[5],"NULL") == 0) maxbound = 0; - else tmax = force->numeric(FLERR,arg[5]); - xmax = force->numeric(FLERR,arg[6]); + else tmax = utils::numeric(FLERR,arg[5],false,lmp); + xmax = utils::numeric(FLERR,arg[6],false,lmp); if (minbound && tmin < 0.0) error->all(FLERR,"Illegal fix dt/reset command"); if (maxbound && tmax < 0.0) error->all(FLERR,"Illegal fix dt/reset command"); @@ -80,7 +80,7 @@ FixDtReset::FixDtReset(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"emax") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix dt/reset command"); - emax = force->numeric(FLERR,arg[iarg+1]); + emax = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (emax <= 0.0) error->all(FLERR,"Illegal fix dt/reset command"); iarg += 2; } else error->all(FLERR,"Illegal fix dt/reset command"); diff --git a/src/fix_external.cpp b/src/fix_external.cpp index afb420df93..5d810ff38b 100644 --- a/src/fix_external.cpp +++ b/src/fix_external.cpp @@ -41,14 +41,14 @@ FixExternal::FixExternal(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[3],"pf/callback") == 0) { if (narg != 6) error->all(FLERR,"Illegal fix external command"); mode = PF_CALLBACK; - ncall = force->inumeric(FLERR,arg[4]); - napply = force->inumeric(FLERR,arg[5]); + ncall = utils::inumeric(FLERR,arg[4],false,lmp); + napply = utils::inumeric(FLERR,arg[5],false,lmp); if (ncall <= 0 || napply <= 0) error->all(FLERR,"Illegal fix external command"); } else if (strcmp(arg[3],"pf/array") == 0) { if (narg != 5) error->all(FLERR,"Illegal fix external command"); mode = PF_ARRAY; - napply = force->inumeric(FLERR,arg[4]); + napply = utils::inumeric(FLERR,arg[4],false,lmp); if (napply <= 0) error->all(FLERR,"Illegal fix external command"); } else error->all(FLERR,"Illegal fix external command"); diff --git a/src/fix_gravity.cpp b/src/fix_gravity.cpp index 2c56181415..82b8311968 100644 --- a/src/fix_gravity.cpp +++ b/src/fix_gravity.cpp @@ -58,7 +58,7 @@ FixGravity::FixGravity(LAMMPS *lmp, int narg, char **arg) : strcpy(mstr,&arg[3][2]); mstyle = EQUAL; } else { - magnitude = force->numeric(FLERR,arg[3]); + magnitude = utils::numeric(FLERR,arg[3],false,lmp); mstyle = CONSTANT; } @@ -73,7 +73,7 @@ FixGravity::FixGravity(LAMMPS *lmp, int narg, char **arg) : strcpy(vstr,&arg[5][2]); vstyle = EQUAL; } else { - vert = force->numeric(FLERR,arg[5]); + vert = utils::numeric(FLERR,arg[5],false,lmp); vstyle = CONSTANT; } iarg = 6; @@ -87,7 +87,7 @@ FixGravity::FixGravity(LAMMPS *lmp, int narg, char **arg) : strcpy(pstr,&arg[5][2]); pstyle = EQUAL; } else { - phi = force->numeric(FLERR,arg[5]); + phi = utils::numeric(FLERR,arg[5],false,lmp); pstyle = CONSTANT; } if (strstr(arg[6],"v_") == arg[6]) { @@ -96,7 +96,7 @@ FixGravity::FixGravity(LAMMPS *lmp, int narg, char **arg) : strcpy(tstr,&arg[6][2]); tstyle = EQUAL; } else { - theta = force->numeric(FLERR,arg[6]); + theta = utils::numeric(FLERR,arg[6],false,lmp); tstyle = CONSTANT; } iarg = 7; @@ -110,7 +110,7 @@ FixGravity::FixGravity(LAMMPS *lmp, int narg, char **arg) : strcpy(xstr,&arg[5][2]); xstyle = EQUAL; } else { - xdir = force->numeric(FLERR,arg[5]); + xdir = utils::numeric(FLERR,arg[5],false,lmp); xstyle = CONSTANT; } if (strstr(arg[6],"v_") == arg[6]) { @@ -119,7 +119,7 @@ FixGravity::FixGravity(LAMMPS *lmp, int narg, char **arg) : strcpy(ystr,&arg[6][2]); ystyle = EQUAL; } else { - ydir = force->numeric(FLERR,arg[6]); + ydir = utils::numeric(FLERR,arg[6],false,lmp); ystyle = CONSTANT; } if (strstr(arg[7],"v_") == arg[7]) { @@ -128,7 +128,7 @@ FixGravity::FixGravity(LAMMPS *lmp, int narg, char **arg) : strcpy(zstr,&arg[7][2]); zstyle = EQUAL; } else { - zdir = force->numeric(FLERR,arg[7]); + zdir = utils::numeric(FLERR,arg[7],false,lmp); zstyle = CONSTANT; } iarg = 8; diff --git a/src/fix_group.cpp b/src/fix_group.cpp index d2eea9f781..5e2a12c988 100644 --- a/src/fix_group.cpp +++ b/src/fix_group.cpp @@ -86,7 +86,7 @@ idregion(NULL), idvar(NULL), idprop(NULL) iarg += 2; } else if (strcmp(arg[iarg],"every") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal group command"); - nevery = force->inumeric(FLERR,arg[iarg+1]); + nevery = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal group command"); iarg += 2; } else error->all(FLERR,"Illegal group command"); diff --git a/src/fix_halt.cpp b/src/fix_halt.cpp index c5960dfe13..cf39ba61e2 100644 --- a/src/fix_halt.cpp +++ b/src/fix_halt.cpp @@ -42,7 +42,7 @@ FixHalt::FixHalt(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), idvar(NULL), dlimit_path(NULL) { if (narg < 7) error->all(FLERR,"Illegal fix halt command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix halt command"); // comparison args @@ -80,7 +80,7 @@ FixHalt::FixHalt(LAMMPS *lmp, int narg, char **arg) : else error->all(FLERR,"Invalid fix halt operator"); ++iarg; - value = force->numeric(FLERR,arg[iarg]); + value = utils::numeric(FLERR,arg[iarg],false,lmp); // parse optional args diff --git a/src/fix_heat.cpp b/src/fix_heat.cpp index 65ca47c46d..7fbdd24b4c 100644 --- a/src/fix_heat.cpp +++ b/src/fix_heat.cpp @@ -47,7 +47,7 @@ idregion(NULL), hstr(NULL), vheat(NULL), vscale(NULL) global_freq = 1; extscalar = 0; - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix heat command"); hstr = NULL; @@ -57,7 +57,7 @@ idregion(NULL), hstr(NULL), vheat(NULL), vscale(NULL) hstr = new char[n]; strcpy(hstr,&arg[4][2]); } else { - heat_input = force->numeric(FLERR,arg[4]); + heat_input = utils::numeric(FLERR,arg[4],false,lmp); hstyle = CONSTANT; } diff --git a/src/fix_indent.cpp b/src/fix_indent.cpp index 04837ff39b..dcddad95b2 100644 --- a/src/fix_indent.cpp +++ b/src/fix_indent.cpp @@ -53,7 +53,7 @@ FixIndent::FixIndent(LAMMPS *lmp, int narg, char **arg) : respa_level_support = 1; ilevel_respa = 0; - k = force->numeric(FLERR,arg[3]); + k = utils::numeric(FLERR,arg[3],false,lmp); k3 = k/3.0; // read options from end of input line @@ -421,22 +421,22 @@ void FixIndent::options(int narg, char **arg) int n = strlen(&arg[iarg+1][2]) + 1; xstr = new char[n]; strcpy(xstr,&arg[iarg+1][2]); - } else xvalue = force->numeric(FLERR,arg[iarg+1]); + } else xvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) { int n = strlen(&arg[iarg+2][2]) + 1; ystr = new char[n]; strcpy(ystr,&arg[iarg+2][2]); - } else yvalue = force->numeric(FLERR,arg[iarg+2]); + } else yvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) { int n = strlen(&arg[iarg+3][2]) + 1; zstr = new char[n]; strcpy(zstr,&arg[iarg+3][2]); - } else zvalue = force->numeric(FLERR,arg[iarg+3]); + } else zvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (strstr(arg[iarg+4],"v_") == arg[iarg+4]) { int n = strlen(&arg[iarg+4][2]) + 1; rstr = new char[n]; strcpy(rstr,&arg[iarg+4][2]); - } else rvalue = force->numeric(FLERR,arg[iarg+4]); + } else rvalue = utils::numeric(FLERR,arg[iarg+4],false,lmp); istyle = SPHERE; iarg += 5; @@ -450,43 +450,43 @@ void FixIndent::options(int narg, char **arg) int n = strlen(&arg[iarg+2][2]) + 1; ystr = new char[n]; strcpy(ystr,&arg[iarg+2][2]); - } else yvalue = force->numeric(FLERR,arg[iarg+2]); + } else yvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) { int n = strlen(&arg[iarg+3][2]) + 1; zstr = new char[n]; strcpy(zstr,&arg[iarg+3][2]); - } else zvalue = force->numeric(FLERR,arg[iarg+3]); + } else zvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); } else if (strcmp(arg[iarg+1],"y") == 0) { cdim = 1; if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) { int n = strlen(&arg[iarg+2][2]) + 1; xstr = new char[n]; strcpy(xstr,&arg[iarg+2][2]); - } else xvalue = force->numeric(FLERR,arg[iarg+2]); + } else xvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) { int n = strlen(&arg[iarg+3][2]) + 1; zstr = new char[n]; strcpy(zstr,&arg[iarg+3][2]); - } else zvalue = force->numeric(FLERR,arg[iarg+3]); + } else zvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); } else if (strcmp(arg[iarg+1],"z") == 0) { cdim = 2; if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) { int n = strlen(&arg[iarg+2][2]) + 1; xstr = new char[n]; strcpy(xstr,&arg[iarg+2][2]); - } else xvalue = force->numeric(FLERR,arg[iarg+2]); + } else xvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) { int n = strlen(&arg[iarg+3][2]) + 1; ystr = new char[n]; strcpy(ystr,&arg[iarg+3][2]); - } else yvalue = force->numeric(FLERR,arg[iarg+3]); + } else yvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); } else error->all(FLERR,"Illegal fix indent command"); if (strstr(arg[iarg+4],"v_") == arg[iarg+4]) { int n = strlen(&arg[iarg+4][2]) + 1; rstr = new char[n]; strcpy(rstr,&arg[iarg+4][2]); - } else rvalue = force->numeric(FLERR,arg[iarg+4]); + } else rvalue = utils::numeric(FLERR,arg[iarg+4],false,lmp); istyle = CYLINDER; iarg += 5; @@ -502,7 +502,7 @@ void FixIndent::options(int narg, char **arg) int n = strlen(&arg[iarg+2][2]) + 1; pstr = new char[n]; strcpy(pstr,&arg[iarg+2][2]); - } else pvalue = force->numeric(FLERR,arg[iarg+2]); + } else pvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strcmp(arg[iarg+3],"lo") == 0) planeside = -1; else if (strcmp(arg[iarg+3],"hi") == 0) planeside = 1; diff --git a/src/fix_langevin.cpp b/src/fix_langevin.cpp index 4ec34a3631..81c186c703 100644 --- a/src/fix_langevin.cpp +++ b/src/fix_langevin.cpp @@ -69,14 +69,14 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) : tstr = new char[n]; strcpy(tstr,&arg[3][2]); } else { - t_start = force->numeric(FLERR,arg[3]); + t_start = utils::numeric(FLERR,arg[3],false,lmp); t_target = t_start; tstyle = CONSTANT; } - t_stop = force->numeric(FLERR,arg[4]); - t_period = force->numeric(FLERR,arg[5]); - seed = force->inumeric(FLERR,arg[6]); + t_stop = utils::numeric(FLERR,arg[4],false,lmp); + t_period = utils::numeric(FLERR,arg[5],false,lmp); + seed = utils::inumeric(FLERR,arg[6],false,lmp); if (t_period <= 0.0) error->all(FLERR,"Fix langevin period must be > 0.0"); if (seed <= 0) error->all(FLERR,"Illegal fix langevin command"); @@ -107,7 +107,7 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"angmom") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix langevin command"); if (strcmp(arg[iarg+1],"no") == 0) ascale = 0.0; - else ascale = force->numeric(FLERR,arg[iarg+1]); + else ascale = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"gjf") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix langevin command"); @@ -133,8 +133,8 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"scale") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix langevin command"); - int itype = force->inumeric(FLERR,arg[iarg+1]); - double scale = force->numeric(FLERR,arg[iarg+2]); + int itype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + double scale = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (itype <= 0 || itype > atom->ntypes) error->all(FLERR,"Illegal fix langevin command"); ratio[itype] = scale; diff --git a/src/fix_lineforce.cpp b/src/fix_lineforce.cpp index c153ee65dd..0287c8c0db 100644 --- a/src/fix_lineforce.cpp +++ b/src/fix_lineforce.cpp @@ -31,9 +31,9 @@ FixLineForce::FixLineForce(LAMMPS *lmp, int narg, char **arg) : dynamic_group_allow = 1; if (narg != 6) error->all(FLERR,"Illegal fix lineforce command"); - xdir = force->numeric(FLERR,arg[3]); - ydir = force->numeric(FLERR,arg[4]); - zdir = force->numeric(FLERR,arg[5]); + xdir = utils::numeric(FLERR,arg[3],false,lmp); + ydir = utils::numeric(FLERR,arg[4],false,lmp); + zdir = utils::numeric(FLERR,arg[5],false,lmp); double len = sqrt(xdir*xdir + ydir*ydir + zdir*zdir); if (len == 0.0) error->all(FLERR,"Illegal fix lineforce command"); diff --git a/src/fix_momentum.cpp b/src/fix_momentum.cpp index a363cb8eac..c1056d2b16 100644 --- a/src/fix_momentum.cpp +++ b/src/fix_momentum.cpp @@ -34,7 +34,7 @@ FixMomentum::FixMomentum(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { if (narg < 4) error->all(FLERR,"Illegal fix momentum command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix momentum command"); dynamic = linear = angular = rescale = 0; @@ -44,9 +44,9 @@ FixMomentum::FixMomentum(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"linear") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix momentum command"); linear = 1; - xflag = force->inumeric(FLERR,arg[iarg+1]); - yflag = force->inumeric(FLERR,arg[iarg+2]); - zflag = force->inumeric(FLERR,arg[iarg+3]); + xflag = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + yflag = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + zflag = utils::inumeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"angular") == 0) { angular = 1; diff --git a/src/fix_move.cpp b/src/fix_move.cpp index 8c58146c52..d6f61af091 100644 --- a/src/fix_move.cpp +++ b/src/fix_move.cpp @@ -75,17 +75,17 @@ FixMove::FixMove(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[4],"NULL") == 0) vxflag = 0; else { vxflag = 1; - vx = force->numeric(FLERR,arg[4]); + vx = utils::numeric(FLERR,arg[4],false,lmp); } if (strcmp(arg[5],"NULL") == 0) vyflag = 0; else { vyflag = 1; - vy = force->numeric(FLERR,arg[5]); + vy = utils::numeric(FLERR,arg[5],false,lmp); } if (strcmp(arg[6],"NULL") == 0) vzflag = 0; else { vzflag = 1; - vz = force->numeric(FLERR,arg[6]); + vz = utils::numeric(FLERR,arg[6],false,lmp); } } else if (strcmp(arg[3],"wiggle") == 0) { @@ -95,32 +95,32 @@ FixMove::FixMove(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[4],"NULL") == 0) axflag = 0; else { axflag = 1; - ax = force->numeric(FLERR,arg[4]); + ax = utils::numeric(FLERR,arg[4],false,lmp); } if (strcmp(arg[5],"NULL") == 0) ayflag = 0; else { ayflag = 1; - ay = force->numeric(FLERR,arg[5]); + ay = utils::numeric(FLERR,arg[5],false,lmp); } if (strcmp(arg[6],"NULL") == 0) azflag = 0; else { azflag = 1; - az = force->numeric(FLERR,arg[6]); + az = utils::numeric(FLERR,arg[6],false,lmp); } - period = force->numeric(FLERR,arg[7]); + period = utils::numeric(FLERR,arg[7],false,lmp); if (period <= 0.0) error->all(FLERR,"Illegal fix move command"); } else if (strcmp(arg[3],"rotate") == 0) { if (narg < 11) error->all(FLERR,"Illegal fix move command"); iarg = 11; mstyle = ROTATE; - point[0] = force->numeric(FLERR,arg[4]); - point[1] = force->numeric(FLERR,arg[5]); - point[2] = force->numeric(FLERR,arg[6]); - axis[0] = force->numeric(FLERR,arg[7]); - axis[1] = force->numeric(FLERR,arg[8]); - axis[2] = force->numeric(FLERR,arg[9]); - period = force->numeric(FLERR,arg[10]); + point[0] = utils::numeric(FLERR,arg[4],false,lmp); + point[1] = utils::numeric(FLERR,arg[5],false,lmp); + point[2] = utils::numeric(FLERR,arg[6],false,lmp); + axis[0] = utils::numeric(FLERR,arg[7],false,lmp); + axis[1] = utils::numeric(FLERR,arg[8],false,lmp); + axis[2] = utils::numeric(FLERR,arg[9],false,lmp); + period = utils::numeric(FLERR,arg[10],false,lmp); if (period <= 0.0) error->all(FLERR,"Illegal fix move command"); } else if (strcmp(arg[3],"variable") == 0) { diff --git a/src/fix_neigh_history.cpp b/src/fix_neigh_history.cpp index e3d0d2830a..d951a924fe 100644 --- a/src/fix_neigh_history.cpp +++ b/src/fix_neigh_history.cpp @@ -45,7 +45,7 @@ FixNeighHistory::FixNeighHistory(LAMMPS *lmp, int narg, char **arg) : newton_pair = force->newton_pair; - dnum = force->inumeric(FLERR,arg[3]); + dnum = utils::inumeric(FLERR,arg[3],false,lmp); dnumbytes = dnum * sizeof(double); zeroes = new double[dnum]; diff --git a/src/fix_nh.cpp b/src/fix_nh.cpp index 014a2b8855..0e3dc8931f 100644 --- a/src/fix_nh.cpp +++ b/src/fix_nh.cpp @@ -129,10 +129,10 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"temp") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); tstat_flag = 1; - t_start = force->numeric(FLERR,arg[iarg+1]); + t_start = utils::numeric(FLERR,arg[iarg+1],false,lmp); t_target = t_start; - t_stop = force->numeric(FLERR,arg[iarg+2]); - t_period = force->numeric(FLERR,arg[iarg+3]); + t_stop = utils::numeric(FLERR,arg[iarg+2],false,lmp); + t_period = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (t_start <= 0.0 || t_stop <= 0.0) error->all(FLERR, "Target temperature for fix nvt/npt/nph cannot be 0.0"); @@ -141,10 +141,10 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"iso") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); pcouple = XYZ; - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -154,10 +154,10 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"aniso") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); pcouple = NONE; - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -168,15 +168,15 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); pcouple = NONE; scalexy = scalexz = scaleyz = 0; - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); p_period[0] = p_period[1] = p_period[2] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; p_start[3] = p_start[4] = p_start[5] = 0.0; p_stop[3] = p_stop[4] = p_stop[5] = 0.0; p_period[3] = p_period[4] = p_period[5] = - force->numeric(FLERR,arg[iarg+3]); + utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[3] = p_flag[4] = p_flag[5] = 1; if (dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -189,25 +189,25 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : iarg += 4; } else if (strcmp(arg[iarg],"x") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - p_start[0] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = force->numeric(FLERR,arg[iarg+2]); - p_period[0] = force->numeric(FLERR,arg[iarg+3]); + p_start[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[0] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = 1; deviatoric_flag = 1; iarg += 4; } else if (strcmp(arg[iarg],"y") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - p_start[1] = force->numeric(FLERR,arg[iarg+1]); - p_stop[1] = force->numeric(FLERR,arg[iarg+2]); - p_period[1] = force->numeric(FLERR,arg[iarg+3]); + p_start[1] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[1] = 1; deviatoric_flag = 1; iarg += 4; } else if (strcmp(arg[iarg],"z") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[2] = force->numeric(FLERR,arg[iarg+2]); - p_period[2] = force->numeric(FLERR,arg[iarg+3]); + p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[2] = 1; deviatoric_flag = 1; iarg += 4; @@ -216,9 +216,9 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"yz") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - p_start[3] = force->numeric(FLERR,arg[iarg+1]); - p_stop[3] = force->numeric(FLERR,arg[iarg+2]); - p_period[3] = force->numeric(FLERR,arg[iarg+3]); + p_start[3] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[3] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[3] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[3] = 1; deviatoric_flag = 1; scaleyz = 0; @@ -227,9 +227,9 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); } else if (strcmp(arg[iarg],"xz") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - p_start[4] = force->numeric(FLERR,arg[iarg+1]); - p_stop[4] = force->numeric(FLERR,arg[iarg+2]); - p_period[4] = force->numeric(FLERR,arg[iarg+3]); + p_start[4] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[4] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[4] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[4] = 1; deviatoric_flag = 1; scalexz = 0; @@ -238,9 +238,9 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); } else if (strcmp(arg[iarg],"xy") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - p_start[5] = force->numeric(FLERR,arg[iarg+1]); - p_stop[5] = force->numeric(FLERR,arg[iarg+2]); - p_period[5] = force->numeric(FLERR,arg[iarg+3]); + p_start[5] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[5] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[5] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[5] = 1; deviatoric_flag = 1; scalexy = 0; @@ -258,12 +258,12 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"drag") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - drag = force->numeric(FLERR,arg[iarg+1]); + drag = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (drag < 0.0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); iarg += 2; } else if (strcmp(arg[iarg],"ptemp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - p_temp = force->numeric(FLERR,arg[iarg+1]); + p_temp = utils::numeric(FLERR,arg[iarg+1],false,lmp); p_temp_flag = 1; if (p_temp <= 0.0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); iarg += 2; @@ -284,14 +284,14 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"tchain") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - mtchain = force->inumeric(FLERR,arg[iarg+1]); + mtchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); // used by FixNVTSllod to preserve non-default value mtchain_default_flag = 0; if (mtchain < 1) error->all(FLERR,"Illegal fix nvt/npt/nph command"); iarg += 2; } else if (strcmp(arg[iarg],"pchain") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - mpchain = force->inumeric(FLERR,arg[iarg+1]); + mpchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (mpchain < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); iarg += 2; } else if (strcmp(arg[iarg],"mtk") == 0) { @@ -302,17 +302,17 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"tloop") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - nc_tchain = force->inumeric(FLERR,arg[iarg+1]); + nc_tchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nc_tchain < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); iarg += 2; } else if (strcmp(arg[iarg],"ploop") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - nc_pchain = force->inumeric(FLERR,arg[iarg+1]); + nc_pchain = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nc_pchain < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); iarg += 2; } else if (strcmp(arg[iarg],"nreset") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - nreset_h0 = force->inumeric(FLERR,arg[iarg+1]); + nreset_h0 = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nreset_h0 < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); iarg += 2; } else if (strcmp(arg[iarg],"scalexy") == 0) { @@ -349,9 +349,9 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : iarg += 2; } else if (strcmp(arg[iarg],"fixedpoint") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); - fixedpoint[0] = force->numeric(FLERR,arg[iarg+1]); - fixedpoint[1] = force->numeric(FLERR,arg[iarg+2]); - fixedpoint[2] = force->numeric(FLERR,arg[iarg+3]); + fixedpoint[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + fixedpoint[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + fixedpoint[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; // disc keyword is also parsed in fix/nh/sphere diff --git a/src/fix_numdiff.cpp b/src/fix_numdiff.cpp index a4ac86e0c5..f6d064b794 100644 --- a/src/fix_numdiff.cpp +++ b/src/fix_numdiff.cpp @@ -50,8 +50,8 @@ FixNumDiff::FixNumDiff(LAMMPS *lmp, int narg, char **arg) : size_peratom_cols = 3; respa_level_support = 1; - nevery = force->inumeric(FLERR,arg[3]); - delta = force->numeric(FLERR,arg[4]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); + delta = utils::numeric(FLERR,arg[4],false,lmp); if (nevery <= 0 || delta <= 0.0) error->all(FLERR,"Illegal fix numdiff command"); diff --git a/src/fix_nve_limit.cpp b/src/fix_nve_limit.cpp index d63c736e73..83a6af5d0c 100644 --- a/src/fix_nve_limit.cpp +++ b/src/fix_nve_limit.cpp @@ -40,7 +40,7 @@ FixNVELimit::FixNVELimit(LAMMPS *lmp, int narg, char **arg) : extscalar = 1; dynamic_group_allow = 1; - xlimit = force->numeric(FLERR,arg[3]); + xlimit = utils::numeric(FLERR,arg[3],false,lmp); ncount = 0; } diff --git a/src/fix_planeforce.cpp b/src/fix_planeforce.cpp index a3f27277bd..9434a4b348 100644 --- a/src/fix_planeforce.cpp +++ b/src/fix_planeforce.cpp @@ -31,9 +31,9 @@ FixPlaneForce::FixPlaneForce(LAMMPS *lmp, int narg, char **arg) : dynamic_group_allow = 1; if (narg != 6) error->all(FLERR,"Illegal fix planeforce command"); - xdir = force->numeric(FLERR,arg[3]); - ydir = force->numeric(FLERR,arg[4]); - zdir = force->numeric(FLERR,arg[5]); + xdir = utils::numeric(FLERR,arg[3],false,lmp); + ydir = utils::numeric(FLERR,arg[4],false,lmp); + zdir = utils::numeric(FLERR,arg[5],false,lmp); double len = sqrt(xdir*xdir + ydir*ydir + zdir*zdir); if (len == 0.0) error->all(FLERR,"Illegal fix planeforce command"); diff --git a/src/fix_press_berendsen.cpp b/src/fix_press_berendsen.cpp index db6d56799a..a430130fe4 100644 --- a/src/fix_press_berendsen.cpp +++ b/src/fix_press_berendsen.cpp @@ -68,9 +68,9 @@ FixPressBerendsen::FixPressBerendsen(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix press/berendsen command"); pcouple = XYZ; - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); - p_period[0] = p_period[1] = p_period[2] = force->numeric(FLERR,arg[iarg+3]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[0] = p_period[1] = p_period[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -81,9 +81,9 @@ FixPressBerendsen::FixPressBerendsen(LAMMPS *lmp, int narg, char **arg) : if (iarg+4 > narg) error->all(FLERR,"Illegal fix press/berendsen command"); pcouple = NONE; - p_start[0] = p_start[1] = p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = p_stop[1] = p_stop[2] = force->numeric(FLERR,arg[iarg+2]); - p_period[0] = p_period[1] = p_period[2] = force->numeric(FLERR,arg[iarg+3]); + p_start[0] = p_start[1] = p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = p_stop[1] = p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[0] = p_period[1] = p_period[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = p_flag[1] = p_flag[2] = 1; if (dimension == 2) { p_start[2] = p_stop[2] = p_period[2] = 0.0; @@ -94,25 +94,25 @@ FixPressBerendsen::FixPressBerendsen(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"x") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix press/berendsen command"); - p_start[0] = force->numeric(FLERR,arg[iarg+1]); - p_stop[0] = force->numeric(FLERR,arg[iarg+2]); - p_period[0] = force->numeric(FLERR,arg[iarg+3]); + p_start[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[0] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[0] = 1; iarg += 4; } else if (strcmp(arg[iarg],"y") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix press/berendsen command"); - p_start[1] = force->numeric(FLERR,arg[iarg+1]); - p_stop[1] = force->numeric(FLERR,arg[iarg+2]); - p_period[1] = force->numeric(FLERR,arg[iarg+3]); + p_start[1] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[1] = 1; iarg += 4; } else if (strcmp(arg[iarg],"z") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix press/berendsen command"); - p_start[2] = force->numeric(FLERR,arg[iarg+1]); - p_stop[2] = force->numeric(FLERR,arg[iarg+2]); - p_period[2] = force->numeric(FLERR,arg[iarg+3]); + p_start[2] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + p_stop[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + p_period[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); p_flag[2] = 1; iarg += 4; if (dimension == 2) @@ -132,7 +132,7 @@ FixPressBerendsen::FixPressBerendsen(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"modulus") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix press/berendsen command"); - bulkmodulus = force->numeric(FLERR,arg[iarg+1]); + bulkmodulus = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (bulkmodulus <= 0.0) error->all(FLERR,"Illegal fix press/berendsen command"); iarg += 2; diff --git a/src/fix_print.cpp b/src/fix_print.cpp index fac639ae63..8964a9ba82 100644 --- a/src/fix_print.cpp +++ b/src/fix_print.cpp @@ -40,7 +40,7 @@ FixPrint::FixPrint(LAMMPS *lmp, int narg, char **arg) : strcpy(var_print,&arg[3][2]); nevery = 1; } else { - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix print command"); } diff --git a/src/fix_read_restart.cpp b/src/fix_read_restart.cpp index afedf9c12c..c1c0150177 100644 --- a/src/fix_read_restart.cpp +++ b/src/fix_read_restart.cpp @@ -25,8 +25,8 @@ FixReadRestart::FixReadRestart(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), count(NULL), extra(NULL) { - nextra = force->inumeric(FLERR,arg[3]); - int nfix = force->inumeric(FLERR,arg[4]); + nextra = utils::inumeric(FLERR,arg[3],false,lmp); + int nfix = utils::inumeric(FLERR,arg[4],false,lmp); // perform initial allocation of atom-based array // register with Atom class diff --git a/src/fix_recenter.cpp b/src/fix_recenter.cpp index f461e0fa52..8997e4b805 100644 --- a/src/fix_recenter.cpp +++ b/src/fix_recenter.cpp @@ -56,13 +56,13 @@ FixRecenter::FixRecenter(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[3],"NULL") == 0) xflag = 0; else if (strcmp(arg[3],"INIT") == 0) xinitflag = 1; - else xcom = force->numeric(FLERR,arg[3]); + else xcom = utils::numeric(FLERR,arg[3],false,lmp); if (strcmp(arg[4],"NULL") == 0) yflag = 0; else if (strcmp(arg[4],"INIT") == 0) yinitflag = 1; - else ycom = force->numeric(FLERR,arg[4]); + else ycom = utils::numeric(FLERR,arg[4],false,lmp); if (strcmp(arg[5],"NULL") == 0) zflag = 0; else if (strcmp(arg[5],"INIT") == 0) zinitflag = 1; - else zcom = force->numeric(FLERR,arg[5]); + else zcom = utils::numeric(FLERR,arg[5],false,lmp); // optional args diff --git a/src/fix_respa.cpp b/src/fix_respa.cpp index 742dd5c58b..459b30c1b2 100644 --- a/src/fix_respa.cpp +++ b/src/fix_respa.cpp @@ -28,7 +28,7 @@ FixRespa::FixRespa(LAMMPS *lmp, int narg, char **arg) : { // nlevels = # of rRESPA levels - nlevels = force->inumeric(FLERR,arg[3]); + nlevels = utils::inumeric(FLERR,arg[3],false,lmp); // optional arguments store_torque = 0; diff --git a/src/fix_restrain.cpp b/src/fix_restrain.cpp index 07ff7dc13c..305ee0ea26 100644 --- a/src/fix_restrain.cpp +++ b/src/fix_restrain.cpp @@ -83,62 +83,62 @@ FixRestrain::FixRestrain(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"bond") == 0) { if (iarg+6 > narg) error->all(FLERR,"Illegal fix restrain command"); rstyle[nrestrain] = BOND; - ids[nrestrain][0] = force->tnumeric(FLERR,arg[iarg+1]); - ids[nrestrain][1] = force->tnumeric(FLERR,arg[iarg+2]); - kstart[nrestrain] = force->numeric(FLERR,arg[iarg+3]); - kstop[nrestrain] = force->numeric(FLERR,arg[iarg+4]); - deqstart[nrestrain] = force->numeric(FLERR,arg[iarg+5]); + ids[nrestrain][0] = utils::tnumeric(FLERR,arg[iarg+1],false,lmp); + ids[nrestrain][1] = utils::tnumeric(FLERR,arg[iarg+2],false,lmp); + kstart[nrestrain] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + kstop[nrestrain] = utils::numeric(FLERR,arg[iarg+4],false,lmp); + deqstart[nrestrain] = utils::numeric(FLERR,arg[iarg+5],false,lmp); if (iarg+6 == narg) { - deqstop[nrestrain] = force->numeric(FLERR,arg[iarg+5]); + deqstop[nrestrain] = utils::numeric(FLERR,arg[iarg+5],false,lmp); iarg += 6; } else { - deqstop[nrestrain] = force->numeric(FLERR,arg[iarg+6]); + deqstop[nrestrain] = utils::numeric(FLERR,arg[iarg+6],false,lmp); iarg += 7; } } else if (strcmp(arg[iarg],"lbound") == 0) { if (iarg+6 > narg) error->all(FLERR,"Illegal fix restrain command"); rstyle[nrestrain] = LBOUND; - ids[nrestrain][0] = force->tnumeric(FLERR,arg[iarg+1]); - ids[nrestrain][1] = force->tnumeric(FLERR,arg[iarg+2]); - kstart[nrestrain] = force->numeric(FLERR,arg[iarg+3]); - kstop[nrestrain] = force->numeric(FLERR,arg[iarg+4]); - deqstart[nrestrain] = force->numeric(FLERR,arg[iarg+5]); + ids[nrestrain][0] = utils::tnumeric(FLERR,arg[iarg+1],false,lmp); + ids[nrestrain][1] = utils::tnumeric(FLERR,arg[iarg+2],false,lmp); + kstart[nrestrain] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + kstop[nrestrain] = utils::numeric(FLERR,arg[iarg+4],false,lmp); + deqstart[nrestrain] = utils::numeric(FLERR,arg[iarg+5],false,lmp); if (iarg+6 == narg) { - deqstop[nrestrain] = force->numeric(FLERR,arg[iarg+5]); + deqstop[nrestrain] = utils::numeric(FLERR,arg[iarg+5],false,lmp); iarg += 6; } else { - deqstop[nrestrain] = force->numeric(FLERR,arg[iarg+6]); + deqstop[nrestrain] = utils::numeric(FLERR,arg[iarg+6],false,lmp); iarg += 7; } } else if (strcmp(arg[iarg],"angle") == 0) { if (iarg+7 > narg) error->all(FLERR,"Illegal fix restrain command"); rstyle[nrestrain] = ANGLE; - ids[nrestrain][0] = force->tnumeric(FLERR,arg[iarg+1]); - ids[nrestrain][1] = force->tnumeric(FLERR,arg[iarg+2]); - ids[nrestrain][2] = force->tnumeric(FLERR,arg[iarg+3]); - kstart[nrestrain] = force->numeric(FLERR,arg[iarg+4]); - kstop[nrestrain] = force->numeric(FLERR,arg[iarg+5]); - target[nrestrain] = force->numeric(FLERR,arg[iarg+6]); + ids[nrestrain][0] = utils::tnumeric(FLERR,arg[iarg+1],false,lmp); + ids[nrestrain][1] = utils::tnumeric(FLERR,arg[iarg+2],false,lmp); + ids[nrestrain][2] = utils::tnumeric(FLERR,arg[iarg+3],false,lmp); + kstart[nrestrain] = utils::numeric(FLERR,arg[iarg+4],false,lmp); + kstop[nrestrain] = utils::numeric(FLERR,arg[iarg+5],false,lmp); + target[nrestrain] = utils::numeric(FLERR,arg[iarg+6],false,lmp); target[nrestrain] *= MY_PI / 180.0; iarg += 7; } else if (strcmp(arg[iarg],"dihedral") == 0) { if (iarg+8 > narg) error->all(FLERR,"Illegal fix restrain command"); rstyle[nrestrain] = DIHEDRAL; mult[nrestrain] = 1; - ids[nrestrain][0] = force->tnumeric(FLERR,arg[iarg+1]); - ids[nrestrain][1] = force->tnumeric(FLERR,arg[iarg+2]); - ids[nrestrain][2] = force->tnumeric(FLERR,arg[iarg+3]); - ids[nrestrain][3] = force->tnumeric(FLERR,arg[iarg+4]); - kstart[nrestrain] = force->numeric(FLERR,arg[iarg+5]); - kstop[nrestrain] = force->numeric(FLERR,arg[iarg+6]); - target[nrestrain] = force->numeric(FLERR,arg[iarg+7]); + ids[nrestrain][0] = utils::tnumeric(FLERR,arg[iarg+1],false,lmp); + ids[nrestrain][1] = utils::tnumeric(FLERR,arg[iarg+2],false,lmp); + ids[nrestrain][2] = utils::tnumeric(FLERR,arg[iarg+3],false,lmp); + ids[nrestrain][3] = utils::tnumeric(FLERR,arg[iarg+4],false,lmp); + kstart[nrestrain] = utils::numeric(FLERR,arg[iarg+5],false,lmp); + kstop[nrestrain] = utils::numeric(FLERR,arg[iarg+6],false,lmp); + target[nrestrain] = utils::numeric(FLERR,arg[iarg+7],false,lmp); target[nrestrain] *= MY_PI / 180.0; cos_target[nrestrain] = cos(target[nrestrain]); sin_target[nrestrain] = sin(target[nrestrain]); iarg += 8; if ((iarg < narg) && (strcmp("mult",arg[iarg]) == 0)) { if (iarg+1 > narg) error->all(FLERR,"Illegal fix restrain command"); - mult[nrestrain] = force->inumeric(FLERR,arg[iarg+1]); + mult[nrestrain] = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (mult[nrestrain] < 0) error->all(FLERR,"Illegal fix restrain command"); iarg += 2; diff --git a/src/fix_setforce.cpp b/src/fix_setforce.cpp index 108d18afb6..1a3158ed4c 100644 --- a/src/fix_setforce.cpp +++ b/src/fix_setforce.cpp @@ -55,7 +55,7 @@ FixSetForce::FixSetForce(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[3],"NULL") == 0) { xstyle = NONE; } else { - xvalue = force->numeric(FLERR,arg[3]); + xvalue = utils::numeric(FLERR,arg[3],false,lmp); xstyle = CONSTANT; } if (strstr(arg[4],"v_") == arg[4]) { @@ -65,7 +65,7 @@ FixSetForce::FixSetForce(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[4],"NULL") == 0) { ystyle = NONE; } else { - yvalue = force->numeric(FLERR,arg[4]); + yvalue = utils::numeric(FLERR,arg[4],false,lmp); ystyle = CONSTANT; } if (strstr(arg[5],"v_") == arg[5]) { @@ -75,7 +75,7 @@ FixSetForce::FixSetForce(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[5],"NULL") == 0) { zstyle = NONE; } else { - zvalue = force->numeric(FLERR,arg[5]); + zvalue = utils::numeric(FLERR,arg[5],false,lmp); zstyle = CONSTANT; } diff --git a/src/fix_spring.cpp b/src/fix_spring.cpp index 510b194ab7..1bd76f5c55 100644 --- a/src/fix_spring.cpp +++ b/src/fix_spring.cpp @@ -53,15 +53,15 @@ FixSpring::FixSpring(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[3],"tether") == 0) { if (narg != 9) error->all(FLERR,"Illegal fix spring command"); styleflag = TETHER; - k_spring = force->numeric(FLERR,arg[4]); + k_spring = utils::numeric(FLERR,arg[4],false,lmp); xflag = yflag = zflag = 1; if (strcmp(arg[5],"NULL") == 0) xflag = 0; - else xc = force->numeric(FLERR,arg[5]); + else xc = utils::numeric(FLERR,arg[5],false,lmp); if (strcmp(arg[6],"NULL") == 0) yflag = 0; - else yc = force->numeric(FLERR,arg[6]); + else yc = utils::numeric(FLERR,arg[6],false,lmp); if (strcmp(arg[7],"NULL") == 0) zflag = 0; - else zc = force->numeric(FLERR,arg[7]); - r0 = force->numeric(FLERR,arg[8]); + else zc = utils::numeric(FLERR,arg[7],false,lmp); + r0 = utils::numeric(FLERR,arg[8],false,lmp); if (r0 < 0) error->all(FLERR,"R0 < 0 for fix spring command"); } else if (strcmp(arg[3],"couple") == 0) { @@ -78,15 +78,15 @@ FixSpring::FixSpring(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Two groups cannot be the same in fix spring couple"); group2bit = group->bitmask[igroup2]; - k_spring = force->numeric(FLERR,arg[5]); + k_spring = utils::numeric(FLERR,arg[5],false,lmp); xflag = yflag = zflag = 1; if (strcmp(arg[6],"NULL") == 0) xflag = 0; - else xc = force->numeric(FLERR,arg[6]); + else xc = utils::numeric(FLERR,arg[6],false,lmp); if (strcmp(arg[7],"NULL") == 0) yflag = 0; - else yc = force->numeric(FLERR,arg[7]); + else yc = utils::numeric(FLERR,arg[7],false,lmp); if (strcmp(arg[8],"NULL") == 0) zflag = 0; - else zc = force->numeric(FLERR,arg[8]); - r0 = force->numeric(FLERR,arg[9]); + else zc = utils::numeric(FLERR,arg[8],false,lmp); + r0 = utils::numeric(FLERR,arg[9],false,lmp); if (r0 < 0) error->all(FLERR,"R0 < 0 for fix spring command"); } else error->all(FLERR,"Illegal fix spring command"); diff --git a/src/fix_spring_chunk.cpp b/src/fix_spring_chunk.cpp index f9f36e11e9..778a6f0c43 100644 --- a/src/fix_spring_chunk.cpp +++ b/src/fix_spring_chunk.cpp @@ -45,7 +45,7 @@ FixSpringChunk::FixSpringChunk(LAMMPS *lmp, int narg, char **arg) : respa_level_support = 1; ilevel_respa = 0; - k_spring = force->numeric(FLERR,arg[3]); + k_spring = utils::numeric(FLERR,arg[3],false,lmp); int n = strlen(arg[4]) + 1; idchunk = new char[n]; diff --git a/src/fix_spring_rg.cpp b/src/fix_spring_rg.cpp index 1c65023169..e3ba935340 100644 --- a/src/fix_spring_rg.cpp +++ b/src/fix_spring_rg.cpp @@ -37,10 +37,10 @@ FixSpringRG::FixSpringRG(LAMMPS *lmp, int narg, char **arg) : { if (narg != 5) error->all(FLERR,"Illegal fix spring/rg command"); - k = force->numeric(FLERR,arg[3]); + k = utils::numeric(FLERR,arg[3],false,lmp); rg0_flag = 0; if (strcmp(arg[4],"NULL") == 0) rg0_flag = 1; - else rg0 = force->numeric(FLERR,arg[4]); + else rg0 = utils::numeric(FLERR,arg[4],false,lmp); restart_global = 1; scalar_flag = 1; diff --git a/src/fix_spring_self.cpp b/src/fix_spring_self.cpp index 4f8a03c8bd..fef7e2086c 100644 --- a/src/fix_spring_self.cpp +++ b/src/fix_spring_self.cpp @@ -44,7 +44,7 @@ FixSpringSelf::FixSpringSelf(LAMMPS *lmp, int narg, char **arg) : extscalar = 1; respa_level_support = 1; - k = force->numeric(FLERR,arg[3]); + k = utils::numeric(FLERR,arg[3],false,lmp); if (k <= 0.0) error->all(FLERR,"Illegal fix spring/self command"); xflag = yflag = zflag = 1; diff --git a/src/fix_store.cpp b/src/fix_store.cpp index 3cf3125be5..8ce94fb54a 100644 --- a/src/fix_store.cpp +++ b/src/fix_store.cpp @@ -52,16 +52,16 @@ vstore(NULL), astore(NULL), rbuf(NULL) if (flavor == GLOBAL) { restart_global = 1; - nrow = force->inumeric(FLERR,arg[4]); - ncol = force->inumeric(FLERR,arg[5]); + nrow = utils::inumeric(FLERR,arg[4],false,lmp); + ncol = utils::inumeric(FLERR,arg[5],false,lmp); if (nrow <= 0 || ncol <= 0) error->all(FLERR,"Illegal fix store command"); vecflag = 0; if (ncol == 1) vecflag = 1; } if (flavor == PERATOM) { - restart_peratom = force->inumeric(FLERR,arg[4]); - nvalues = force->inumeric(FLERR,arg[5]); + restart_peratom = utils::inumeric(FLERR,arg[4],false,lmp); + nvalues = utils::inumeric(FLERR,arg[5],false,lmp); if (restart_peratom < 0 or restart_peratom > 1 || nvalues <= 0) error->all(FLERR,"Illegal fix store command"); vecflag = 0; diff --git a/src/fix_store_state.cpp b/src/fix_store_state.cpp index e1e2aab663..60a1a70037 100644 --- a/src/fix_store_state.cpp +++ b/src/fix_store_state.cpp @@ -47,7 +47,7 @@ FixStoreState::FixStoreState(LAMMPS *lmp, int narg, char **arg) : restart_peratom = 1; peratom_freq = 1; - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery < 0) error->all(FLERR,"Illegal fix store/state command"); // parse values until one isn't recognized diff --git a/src/fix_temp_berendsen.cpp b/src/fix_temp_berendsen.cpp index 7a1d1d06fc..5016b8c343 100644 --- a/src/fix_temp_berendsen.cpp +++ b/src/fix_temp_berendsen.cpp @@ -57,13 +57,13 @@ FixTempBerendsen::FixTempBerendsen(LAMMPS *lmp, int narg, char **arg) : strcpy(tstr,&arg[3][2]); tstyle = EQUAL; } else { - t_start = force->numeric(FLERR,arg[3]); + t_start = utils::numeric(FLERR,arg[3],false,lmp); t_target = t_start; tstyle = CONSTANT; } - t_stop = force->numeric(FLERR,arg[4]); - t_period = force->numeric(FLERR,arg[5]); + t_stop = utils::numeric(FLERR,arg[4],false,lmp); + t_period = utils::numeric(FLERR,arg[5],false,lmp); // error checks diff --git a/src/fix_temp_csld.cpp b/src/fix_temp_csld.cpp index 89664d9913..5a7b9a04db 100644 --- a/src/fix_temp_csld.cpp +++ b/src/fix_temp_csld.cpp @@ -63,14 +63,14 @@ FixTempCSLD::FixTempCSLD(LAMMPS *lmp, int narg, char **arg) : strcpy(tstr,&arg[3][2]); tstyle = EQUAL; } else { - t_start = force->numeric(FLERR,arg[3]); + t_start = utils::numeric(FLERR,arg[3],false,lmp); t_target = t_start; tstyle = CONSTANT; } - t_stop = force->numeric(FLERR,arg[4]); - t_period = force->numeric(FLERR,arg[5]); - int seed = force->inumeric(FLERR,arg[6]); + t_stop = utils::numeric(FLERR,arg[4],false,lmp); + t_period = utils::numeric(FLERR,arg[5],false,lmp); + int seed = utils::inumeric(FLERR,arg[6],false,lmp); // error checks diff --git a/src/fix_temp_csvr.cpp b/src/fix_temp_csvr.cpp index 90200e2566..72e4dd635d 100644 --- a/src/fix_temp_csvr.cpp +++ b/src/fix_temp_csvr.cpp @@ -140,14 +140,14 @@ FixTempCSVR::FixTempCSVR(LAMMPS *lmp, int narg, char **arg) : strcpy(tstr,&arg[3][2]); tstyle = EQUAL; } else { - t_start = force->numeric(FLERR,arg[3]); + t_start = utils::numeric(FLERR,arg[3],false,lmp); t_target = t_start; tstyle = CONSTANT; } - t_stop = force->numeric(FLERR,arg[4]); - t_period = force->numeric(FLERR,arg[5]); - int seed = force->inumeric(FLERR,arg[6]); + t_stop = utils::numeric(FLERR,arg[4],false,lmp); + t_period = utils::numeric(FLERR,arg[5],false,lmp); + int seed = utils::inumeric(FLERR,arg[6],false,lmp); // error checks diff --git a/src/fix_temp_rescale.cpp b/src/fix_temp_rescale.cpp index 083f590c9a..e575d72f7f 100644 --- a/src/fix_temp_rescale.cpp +++ b/src/fix_temp_rescale.cpp @@ -41,7 +41,7 @@ FixTempRescale::FixTempRescale(LAMMPS *lmp, int narg, char **arg) : { if (narg < 8) error->all(FLERR,"Illegal fix temp/rescale command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix temp/rescale command"); restart_global = 1; @@ -57,14 +57,14 @@ FixTempRescale::FixTempRescale(LAMMPS *lmp, int narg, char **arg) : strcpy(tstr,&arg[4][2]); tstyle = EQUAL; } else { - t_start = force->numeric(FLERR,arg[4]); + t_start = utils::numeric(FLERR,arg[4],false,lmp); t_target = t_start; tstyle = CONSTANT; } - t_stop = force->numeric(FLERR,arg[5]); - t_window = force->numeric(FLERR,arg[6]); - fraction = force->numeric(FLERR,arg[7]); + t_stop = utils::numeric(FLERR,arg[5],false,lmp); + t_window = utils::numeric(FLERR,arg[6],false,lmp); + fraction = utils::numeric(FLERR,arg[7],false,lmp); // create a new compute temp // id = fix-ID + temp, compute group = fix group diff --git a/src/fix_tmd.cpp b/src/fix_tmd.cpp index 5db7bacbc6..98fb373075 100644 --- a/src/fix_tmd.cpp +++ b/src/fix_tmd.cpp @@ -45,8 +45,8 @@ nfileevery(0), fp(NULL), xf(NULL), xold(NULL) { if (narg < 6) error->all(FLERR,"Illegal fix tmd command"); - rho_stop = force->numeric(FLERR,arg[3]); - nfileevery = force->inumeric(FLERR,arg[5]); + rho_stop = utils::numeric(FLERR,arg[3],false,lmp); + nfileevery = utils::inumeric(FLERR,arg[5],false,lmp); if (rho_stop < 0 || nfileevery < 0) error->all(FLERR,"Illegal fix tmd command"); if (nfileevery && narg != 7) error->all(FLERR,"Illegal fix tmd command"); diff --git a/src/fix_vector.cpp b/src/fix_vector.cpp index 53093acbf6..48f14f5e2f 100644 --- a/src/fix_vector.cpp +++ b/src/fix_vector.cpp @@ -42,7 +42,7 @@ FixVector::FixVector(LAMMPS *lmp, int narg, char **arg) : { if (narg < 5) error->all(FLERR,"Illegal fix vector command"); - nevery = force->inumeric(FLERR,arg[3]); + nevery = utils::inumeric(FLERR,arg[3],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal fix vector command"); nvalues = narg-4; diff --git a/src/fix_viscous.cpp b/src/fix_viscous.cpp index bdd1e19976..7d532d832d 100644 --- a/src/fix_viscous.cpp +++ b/src/fix_viscous.cpp @@ -32,7 +32,7 @@ FixViscous::FixViscous(LAMMPS *lmp, int narg, char **arg) : if (narg < 4) error->all(FLERR,"Illegal fix viscous command"); - double gamma_one = force->numeric(FLERR,arg[3]); + double gamma_one = utils::numeric(FLERR,arg[3],false,lmp); gamma = new double[atom->ntypes+1]; for (int i = 1; i <= atom->ntypes; i++) gamma[i] = gamma_one; @@ -42,8 +42,8 @@ FixViscous::FixViscous(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"scale") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix viscous command"); - int itype = force->inumeric(FLERR,arg[iarg+1]); - double scale = force->numeric(FLERR,arg[iarg+2]); + int itype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + double scale = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (itype <= 0 || itype > atom->ntypes) error->all(FLERR,"Illegal fix viscous command"); gamma[itype] = gamma_one * scale; diff --git a/src/fix_wall.cpp b/src/fix_wall.cpp index a30b14c231..0c343938ab 100644 --- a/src/fix_wall.cpp +++ b/src/fix_wall.cpp @@ -87,7 +87,7 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) : strcpy(xstr[nwall],&arg[iarg+1][2]); } else { xstyle[nwall] = CONSTANT; - coord0[nwall] = force->numeric(FLERR,arg[iarg+1]); + coord0[nwall] = utils::numeric(FLERR,arg[iarg+1],false,lmp); } if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) { @@ -96,7 +96,7 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) : strcpy(estr[nwall],&arg[iarg+2][2]); estyle[nwall] = VARIABLE; } else { - epsilon[nwall] = force->numeric(FLERR,arg[iarg+2]); + epsilon[nwall] = utils::numeric(FLERR,arg[iarg+2],false,lmp); estyle[nwall] = CONSTANT; } @@ -107,7 +107,7 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) : strcpy(astr[nwall],&arg[iarg+3][2]); astyle[nwall] = VARIABLE; } else { - alpha[nwall] = force->numeric(FLERR,arg[iarg+3]); + alpha[nwall] = utils::numeric(FLERR,arg[iarg+3],false,lmp); astyle[nwall] = CONSTANT; } ++iarg; @@ -119,11 +119,11 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) : strcpy(sstr[nwall],&arg[iarg+3][2]); sstyle[nwall] = VARIABLE; } else { - sigma[nwall] = force->numeric(FLERR,arg[iarg+3]); + sigma[nwall] = utils::numeric(FLERR,arg[iarg+3],false,lmp); sstyle[nwall] = CONSTANT; } - cutoff[nwall] = force->numeric(FLERR,arg[iarg+4]); + cutoff[nwall] = utils::numeric(FLERR,arg[iarg+4],false,lmp); nwall++; iarg += 5; diff --git a/src/fix_wall_reflect.cpp b/src/fix_wall_reflect.cpp index 032a11e328..061083e55c 100644 --- a/src/fix_wall_reflect.cpp +++ b/src/fix_wall_reflect.cpp @@ -79,7 +79,7 @@ FixWallReflect::FixWallReflect(LAMMPS *lmp, int narg, char **arg) : strcpy(varstr[nwall],&arg[iarg+1][2]); } else { wallstyle[nwall] = CONSTANT; - coord0[nwall] = force->numeric(FLERR,arg[iarg+1]); + coord0[nwall] = utils::numeric(FLERR,arg[iarg+1],false,lmp); } nwall++; diff --git a/src/fix_wall_region.cpp b/src/fix_wall_region.cpp index 70bde90d2b..e60b3b4aad 100644 --- a/src/fix_wall_region.cpp +++ b/src/fix_wall_region.cpp @@ -71,18 +71,18 @@ FixWallRegion::FixWallRegion(LAMMPS *lmp, int narg, char **arg) : if (narg != 9) error->all(FLERR,"Illegal fix wall/region command"); - epsilon = force->numeric(FLERR,arg[5]); - alpha = force->numeric(FLERR,arg[6]); - sigma = force->numeric(FLERR,arg[7]); - cutoff = force->numeric(FLERR,arg[8]); + epsilon = utils::numeric(FLERR,arg[5],false,lmp); + alpha = utils::numeric(FLERR,arg[6],false,lmp); + sigma = utils::numeric(FLERR,arg[7],false,lmp); + cutoff = utils::numeric(FLERR,arg[8],false,lmp); } else { if (narg != 8) error->all(FLERR,"Illegal fix wall/region command"); - epsilon = force->numeric(FLERR,arg[5]); - sigma = force->numeric(FLERR,arg[6]); - cutoff = force->numeric(FLERR,arg[7]); + epsilon = utils::numeric(FLERR,arg[5],false,lmp); + sigma = utils::numeric(FLERR,arg[6],false,lmp); + cutoff = utils::numeric(FLERR,arg[7],false,lmp); } if (cutoff <= 0.0) error->all(FLERR,"Fix wall/region cutoff <= 0.0"); diff --git a/src/force.cpp b/src/force.cpp index 13b1971545..cb0e0ac5a8 100644 --- a/src/force.cpp +++ b/src/force.cpp @@ -799,21 +799,21 @@ void Force::set_special(int narg, char **arg) iarg += 1; } else if (strcmp(arg[iarg],"lj/coul") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal special_bonds command"); - special_lj[1] = special_coul[1] = numeric(FLERR,arg[iarg+1]); - special_lj[2] = special_coul[2] = numeric(FLERR,arg[iarg+2]); - special_lj[3] = special_coul[3] = numeric(FLERR,arg[iarg+3]); + special_lj[1] = special_coul[1] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + special_lj[2] = special_coul[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + special_lj[3] = special_coul[3] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"lj") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal special_bonds command"); - special_lj[1] = numeric(FLERR,arg[iarg+1]); - special_lj[2] = numeric(FLERR,arg[iarg+2]); - special_lj[3] = numeric(FLERR,arg[iarg+3]); + special_lj[1] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + special_lj[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + special_lj[3] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"coul") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal special_bonds command"); - special_coul[1] = numeric(FLERR,arg[iarg+1]); - special_coul[2] = numeric(FLERR,arg[iarg+2]); - special_coul[3] = numeric(FLERR,arg[iarg+3]); + special_coul[1] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + special_coul[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + special_coul[3] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"angle") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal special_bonds command"); @@ -836,104 +836,6 @@ void Force::set_special(int narg, char **arg) error->all(FLERR,"Illegal special_bonds command"); } -/* ---------------------------------------------------------------------- - read a floating point value from a string - generate an error if not a legitimate floating point value - called by various commands to check validity of their arguments -------------------------------------------------------------------------- */ - -double Force::numeric(const char *file, int line, char *str) -{ - int n = 0; - - if (str) n = strlen(str); - if (n == 0) - error->all(file,line,"Expected floating point parameter instead of" - " NULL or empty string in input script or data file"); - - for (int i = 0; i < n; i++) { - if (isdigit(str[i])) continue; - if (str[i] == '-' || str[i] == '+' || str[i] == '.') continue; - if (str[i] == 'e' || str[i] == 'E') continue; - error->all(file,line,fmt::format("Expected floating point parameter " - "instead of '{}' in input script or data file",str)); - } - - return atof(str); -} - -/* ---------------------------------------------------------------------- - read an integer value from a string - generate an error if not a legitimate integer value - called by various commands to check validity of their arguments -------------------------------------------------------------------------- */ - -int Force::inumeric(const char *file, int line, char *str) -{ - int n = 0; - - if (str) n = strlen(str); - if (n == 0) - error->all(file,line,"Expected integer parameter instead of " - "NULL or empty string in input script or data file"); - - for (int i = 0; i < n; i++) { - if (isdigit(str[i]) || str[i] == '-' || str[i] == '+') continue; - error->all(file,line,fmt::format("Expected integer parameter instead " - "of '{}' in input script or data file",str)); - } - - return atoi(str); -} - -/* ---------------------------------------------------------------------- - read a big integer value from a string - generate an error if not a legitimate integer value - called by various commands to check validity of their arguments -------------------------------------------------------------------------- */ - -bigint Force::bnumeric(const char *file, int line, char *str) -{ - int n = 0; - - if (str) n = strlen(str); - if (n == 0) - error->all(file,line,"Expected integer parameter instead of " - "NULL or empty string in input script or data file"); - - for (int i = 0; i < n; i++) { - if (isdigit(str[i]) || str[i] == '-' || str[i] == '+') continue; - error->all(file,line,fmt::format("Expected integer parameter instead " - "of '{}' in input script or data file",str)); - } - - return ATOBIGINT(str); -} - -/* ---------------------------------------------------------------------- - read a tag integer value from a string - generate an error if not a legitimate integer value - called by various commands to check validity of their arguments -------------------------------------------------------------------------- */ - -tagint Force::tnumeric(const char *file, int line, char *str) -{ - int n = 0; - - if (str) n = strlen(str); - if (n == 0) - error->all(file,line,"Expected integer parameter instead of " - "NULL or empty string in input script or data file"); - - for (int i = 0; i < n; i++) { - if (isdigit(str[i]) || str[i] == '-' || str[i] == '+') continue; - error->all(file,line,fmt::format("Expected integer parameter instead " - "of '{}' in input script or data file",str)); - } - - return ATOTAGINT(str); -} - /* ---------------------------------------------------------------------- open a potential file as specified by name if fails, search in dir specified by env variable LAMMPS_POTENTIALS diff --git a/src/force.h b/src/force.h index 929d29d8e5..8d3ae25294 100644 --- a/src/force.h +++ b/src/force.h @@ -128,10 +128,6 @@ class Force : protected Pointers { void store_style(char *&, const std::string &, int); void set_special(int, char **); - double numeric(const char *, int, char *); - int inumeric(const char *, int, char *); - bigint bnumeric(const char *, int, char *); - tagint tnumeric(const char *, int, char *); FILE *open_potential(const char *, int *auto_convert = nullptr); diff --git a/src/group.cpp b/src/group.cpp index 79405c9344..2377f028bd 100644 --- a/src/group.cpp +++ b/src/group.cpp @@ -229,12 +229,12 @@ void Group::assign(int narg, char **arg) else error->all(FLERR,"Illegal group command"); tagint bound1,bound2; - bound1 = force->tnumeric(FLERR,arg[3]); + bound1 = utils::tnumeric(FLERR,arg[3],false,lmp); bound2 = -1; if (condition == BETWEEN) { if (narg != 5) error->all(FLERR,"Illegal group command"); - bound2 = force->tnumeric(FLERR,arg[4]); + bound2 = utils::tnumeric(FLERR,arg[4],false,lmp); } else if (narg != 4) error->all(FLERR,"Illegal group command"); int *attribute = NULL; @@ -311,13 +311,13 @@ void Group::assign(int narg, char **arg) delta = 1; if (strchr(arg[iarg],':')) { ptr = strtok(arg[iarg],":"); - start = force->tnumeric(FLERR,ptr); + start = utils::tnumeric(FLERR,ptr,false,lmp); ptr = strtok(NULL,":"); - stop = force->tnumeric(FLERR,ptr); + stop = utils::tnumeric(FLERR,ptr,false,lmp); ptr = strtok(NULL,":"); - if (ptr) delta = force->tnumeric(FLERR,ptr); + if (ptr) delta = utils::tnumeric(FLERR,ptr,false,lmp); } else { - start = stop = force->tnumeric(FLERR,arg[iarg]); + start = stop = utils::tnumeric(FLERR,arg[iarg],false,lmp); } if (delta < 1) error->all(FLERR,"Illegal range increment value"); diff --git a/src/image.cpp b/src/image.cpp index e264ba3979..56d9bc301a 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -1708,13 +1708,13 @@ int ColorMap::reset(int narg, char **arg) { if (!islower(arg[0][0])) { mlo = NUMERIC; - mlovalue = force->numeric(FLERR,arg[0]); + mlovalue = utils::numeric(FLERR,arg[0],false,lmp); } else if (strcmp(arg[0],"min") == 0) mlo = MINVALUE; else return 1; if (!islower(arg[1][0])) { mhi = NUMERIC; - mhivalue = force->numeric(FLERR,arg[1]); + mhivalue = utils::numeric(FLERR,arg[1],false,lmp); } else if (strcmp(arg[1],"max") == 0) mhi = MAXVALUE; else return 1; @@ -1733,12 +1733,12 @@ int ColorMap::reset(int narg, char **arg) else return 1; if (mstyle == SEQUENTIAL) { - mbinsize = force->numeric(FLERR,arg[3]); + mbinsize = utils::numeric(FLERR,arg[3],false,lmp); if (mbinsize <= 0.0) return 1; mbinsizeinv = 1.0/mbinsize; } - nentry = force->inumeric(FLERR,arg[4]); + nentry = utils::inumeric(FLERR,arg[4],false,lmp); if (nentry < 1) return 1; delete [] mentry; mentry = new MapEntry[nentry]; @@ -1751,7 +1751,7 @@ int ColorMap::reset(int narg, char **arg) if (n+2 > narg) return 1; if (!islower(arg[n][0])) { mentry[i].single = NUMERIC; - mentry[i].svalue = force->numeric(FLERR,arg[n]); + mentry[i].svalue = utils::numeric(FLERR,arg[n],false,lmp); } else if (strcmp(arg[n],"min") == 0) mentry[i].single = MINVALUE; else if (strcmp(arg[n],"max") == 0) mentry[i].single = MAXVALUE; else return 1; @@ -1761,13 +1761,13 @@ int ColorMap::reset(int narg, char **arg) if (n+3 > narg) return 1; if (!islower(arg[n][0])) { mentry[i].lo = NUMERIC; - mentry[i].lvalue = force->numeric(FLERR,arg[n]); + mentry[i].lvalue = utils::numeric(FLERR,arg[n],false,lmp); } else if (strcmp(arg[n],"min") == 0) mentry[i].lo = MINVALUE; else if (strcmp(arg[n],"max") == 0) mentry[i].lo = MAXVALUE; else return 1; if (!islower(arg[n+1][0])) { mentry[i].hi = NUMERIC; - mentry[i].hvalue = force->numeric(FLERR,arg[n+1]); + mentry[i].hvalue = utils::numeric(FLERR,arg[n+1],false,lmp); } else if (strcmp(arg[n+1],"min") == 0) mentry[i].hi = MINVALUE; else if (strcmp(arg[n+1],"max") == 0) mentry[i].hi = MAXVALUE; else return 1; diff --git a/src/imbalance_group.cpp b/src/imbalance_group.cpp index dd3370ae92..72b1028791 100644 --- a/src/imbalance_group.cpp +++ b/src/imbalance_group.cpp @@ -40,7 +40,7 @@ int ImbalanceGroup::options(int narg, char **arg) { if (narg < 3) error->all(FLERR,"Illegal balance weight command"); - num = force->inumeric(FLERR,arg[0]); + num = utils::inumeric(FLERR,arg[0],false,lmp); if (num < 1) error->all(FLERR,"Illegal balance weight command"); if (2*num+1 > narg) error->all(FLERR,"Illegal balance weight command"); @@ -50,7 +50,7 @@ int ImbalanceGroup::options(int narg, char **arg) id[i] = group->find(arg[2*i+1]); if (id[i] < 0) error->all(FLERR,"Unknown group in balance weight command"); - factor[i] = force->numeric(FLERR,arg[2*i+2]); + factor[i] = utils::numeric(FLERR,arg[2*i+2],false,lmp); if (factor[i] <= 0.0) error->all(FLERR,"Illegal balance weight command"); } return 2*num+1; diff --git a/src/imbalance_neigh.cpp b/src/imbalance_neigh.cpp index c50b430c51..0beb62bdb4 100644 --- a/src/imbalance_neigh.cpp +++ b/src/imbalance_neigh.cpp @@ -38,7 +38,7 @@ ImbalanceNeigh::ImbalanceNeigh(LAMMPS *lmp) : Imbalance(lmp) int ImbalanceNeigh::options(int narg, char **arg) { if (narg < 1) error->all(FLERR,"Illegal balance weight command"); - factor = force->numeric(FLERR,arg[0]); + factor = utils::numeric(FLERR,arg[0],false,lmp); if (factor <= 0.0) error->all(FLERR,"Illegal balance weight command"); return 1; } diff --git a/src/imbalance_time.cpp b/src/imbalance_time.cpp index 898d3ceef0..99e549e90e 100644 --- a/src/imbalance_time.cpp +++ b/src/imbalance_time.cpp @@ -32,7 +32,7 @@ ImbalanceTime::ImbalanceTime(LAMMPS *lmp) : Imbalance(lmp) {} int ImbalanceTime::options(int narg, char **arg) { if (narg < 1) error->all(FLERR,"Illegal balance weight command"); - factor = force->numeric(FLERR,arg[0]); + factor = utils::numeric(FLERR,arg[0],false,lmp); if (factor <= 0.0) error->all(FLERR,"Illegal balance weight command"); return 1; } diff --git a/src/input.cpp b/src/input.cpp index a26bab5a0c..c74232648c 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -1100,7 +1100,7 @@ void Input::python() void Input::quit() { if (narg == 0) error->done(0); // 1 would be fully backwards compatible - if (narg == 1) error->done(force->inumeric(FLERR,arg[0])); + if (narg == 1) error->done(utils::inumeric(FLERR,arg[0],false,lmp)); error->all(FLERR,"Illegal quit command"); } @@ -1374,7 +1374,7 @@ void Input::compute_modify() void Input::dielectric() { if (narg != 1) error->all(FLERR,"Illegal dielectric command"); - force->dielectric = force->numeric(FLERR,arg[0]); + force->dielectric = utils::numeric(FLERR,arg[0],false,lmp); } /* ---------------------------------------------------------------------- */ @@ -1408,7 +1408,7 @@ void Input::dimension() if (narg != 1) error->all(FLERR,"Illegal dimension command"); if (domain->box_exist) error->all(FLERR,"Dimension command after simulation box is defined"); - domain->dimension = force->inumeric(FLERR,arg[0]); + domain->dimension = utils::inumeric(FLERR,arg[0],false,lmp); if (domain->dimension != 2 && domain->dimension != 3) error->all(FLERR,"Illegal dimension command"); @@ -1818,7 +1818,7 @@ void Input::timer_command() void Input::timestep() { if (narg != 1) error->all(FLERR,"Illegal timestep command"); - update->dt = force->numeric(FLERR,arg[0]); + update->dt = utils::numeric(FLERR,arg[0],false,lmp); } /* ---------------------------------------------------------------------- */ diff --git a/src/kspace.cpp b/src/kspace.cpp index 13be635794..2485db67b8 100644 --- a/src/kspace.cpp +++ b/src/kspace.cpp @@ -453,9 +453,9 @@ void KSpace::modify_params(int narg, char **arg) while (iarg < narg) { if (strcmp(arg[iarg],"mesh") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal kspace_modify command"); - nx_pppm = nx_msm_max = force->inumeric(FLERR,arg[iarg+1]); - ny_pppm = ny_msm_max = force->inumeric(FLERR,arg[iarg+2]); - nz_pppm = nz_msm_max = force->inumeric(FLERR,arg[iarg+3]); + nx_pppm = nx_msm_max = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + ny_pppm = ny_msm_max = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + nz_pppm = nz_msm_max = utils::inumeric(FLERR,arg[iarg+3],false,lmp); if (nx_pppm == 0 && ny_pppm == 0 && nz_pppm == 0) gridflag = 0; else if (nx_pppm <= 0 || ny_pppm <= 0 || nz_pppm <= 0) @@ -465,9 +465,9 @@ void KSpace::modify_params(int narg, char **arg) iarg += 4; } else if (strcmp(arg[iarg],"mesh/disp") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal kspace_modify command"); - nx_pppm_6 = force->inumeric(FLERR,arg[iarg+1]); - ny_pppm_6 = force->inumeric(FLERR,arg[iarg+2]); - nz_pppm_6 = force->inumeric(FLERR,arg[iarg+3]); + nx_pppm_6 = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + ny_pppm_6 = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + nz_pppm_6 = utils::inumeric(FLERR,arg[iarg+3],false,lmp); if (nx_pppm_6 == 0 && ny_pppm_6 == 0 && nz_pppm_6 == 0) gridflag_6 = 0; else if (nx_pppm_6 <= 0 || ny_pppm_6 <= 0 || nz_pppm_6 == 0) @@ -477,15 +477,15 @@ void KSpace::modify_params(int narg, char **arg) iarg += 4; } else if (strcmp(arg[iarg],"order") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal kspace_modify command"); - order = force->inumeric(FLERR,arg[iarg+1]); + order = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"order/disp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal kspace_modify command"); - order_6 = force->inumeric(FLERR,arg[iarg+1]); + order_6 = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"minorder") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal kspace_modify command"); - minorder = force->inumeric(FLERR,arg[iarg+1]); + minorder = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (minorder < 2) error->all(FLERR,"Illegal kspace_modify command"); iarg += 2; } else if (strcmp(arg[iarg],"overlap") == 0) { @@ -496,17 +496,17 @@ void KSpace::modify_params(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"force") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal kspace_modify command"); - accuracy_absolute = force->numeric(FLERR,arg[iarg+1]); + accuracy_absolute = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"gewald") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal kspace_modify command"); - g_ewald = force->numeric(FLERR,arg[iarg+1]); + g_ewald = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (g_ewald == 0.0) gewaldflag = 0; else gewaldflag = 1; iarg += 2; } else if (strcmp(arg[iarg],"gewald/disp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal kspace_modify command"); - g_ewald_6 = force->numeric(FLERR,arg[iarg+1]); + g_ewald_6 = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (g_ewald_6 == 0.0) gewaldflag_6 = 0; else gewaldflag_6 = 1; iarg += 2; @@ -516,7 +516,7 @@ void KSpace::modify_params(int narg, char **arg) slabflag = 2; } else { slabflag = 1; - slab_volfactor = force->numeric(FLERR,arg[iarg+1]); + slab_volfactor = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (slab_volfactor <= 1.0) error->all(FLERR,"Bad kspace_modify slab parameter"); if (slab_volfactor < 2.0 && comm->me == 0) diff --git a/src/lattice.cpp b/src/lattice.cpp index 8ecf9fed73..f41c32d239 100644 --- a/src/lattice.cpp +++ b/src/lattice.cpp @@ -58,7 +58,7 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) // before Force class is instantiated, just use atof() in that case if (force) - xlattice = ylattice = zlattice = force->numeric(FLERR,arg[1]); + xlattice = ylattice = zlattice = utils::numeric(FLERR,arg[1],false,lmp); else xlattice = ylattice = zlattice = atof(arg[1]); @@ -83,7 +83,7 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) // scale = conversion factor between lattice and box units if (narg < 2) error->all(FLERR,"Illegal lattice command"); - scale = force->numeric(FLERR,arg[1]); + scale = utils::numeric(FLERR,arg[1],false,lmp); if (scale <= 0.0) error->all(FLERR,"Illegal lattice command"); // set basis atoms for each style @@ -150,9 +150,9 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) while (iarg < narg) { if (strcmp(arg[iarg],"origin") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal lattice command"); - origin[0] = force->numeric(FLERR,arg[iarg+1]); - origin[1] = force->numeric(FLERR,arg[iarg+2]); - origin[2] = force->numeric(FLERR,arg[iarg+3]); + origin[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + origin[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + origin[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (origin[0] < 0.0 || origin[0] >= 1.0 || origin[1] < 0.0 || origin[1] >= 1.0 || origin[2] < 0.0 || origin[2] >= 1.0) @@ -170,17 +170,17 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) if (dim == 0) orient = orientx; else if (dim == 1) orient = orienty; else if (dim == 2) orient = orientz; - orient[0] = force->inumeric(FLERR,arg[iarg+2]); - orient[1] = force->inumeric(FLERR,arg[iarg+3]); - orient[2] = force->inumeric(FLERR,arg[iarg+4]); + orient[0] = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + orient[1] = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + orient[2] = utils::inumeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; } else if (strcmp(arg[iarg],"spacing") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal lattice command"); spaceflag = 1; - xlattice = force->numeric(FLERR,arg[iarg+1]); - ylattice = force->numeric(FLERR,arg[iarg+2]); - zlattice = force->numeric(FLERR,arg[iarg+3]); + xlattice = utils::numeric(FLERR,arg[iarg+1],false,lmp); + ylattice = utils::numeric(FLERR,arg[iarg+2],false,lmp); + zlattice = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"a1") == 0) { @@ -188,27 +188,27 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) if (style != CUSTOM) error->all(FLERR, "Invalid option in lattice command for non-custom style"); - a1[0] = force->numeric(FLERR,arg[iarg+1]); - a1[1] = force->numeric(FLERR,arg[iarg+2]); - a1[2] = force->numeric(FLERR,arg[iarg+3]); + a1[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + a1[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + a1[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"a2") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal lattice command"); if (style != CUSTOM) error->all(FLERR, "Invalid option in lattice command for non-custom style"); - a2[0] = force->numeric(FLERR,arg[iarg+1]); - a2[1] = force->numeric(FLERR,arg[iarg+2]); - a2[2] = force->numeric(FLERR,arg[iarg+3]); + a2[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + a2[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + a2[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"a3") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal lattice command"); if (style != CUSTOM) error->all(FLERR, "Invalid option in lattice command for non-custom style"); - a3[0] = force->numeric(FLERR,arg[iarg+1]); - a3[1] = force->numeric(FLERR,arg[iarg+2]); - a3[2] = force->numeric(FLERR,arg[iarg+3]); + a3[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + a3[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + a3[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"basis") == 0) { @@ -216,9 +216,9 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) if (style != CUSTOM) error->all(FLERR, "Invalid option in lattice command for non-custom style"); - double x = force->numeric(FLERR,arg[iarg+1]); - double y = force->numeric(FLERR,arg[iarg+2]); - double z = force->numeric(FLERR,arg[iarg+3]); + double x = utils::numeric(FLERR,arg[iarg+1],false,lmp); + double y = utils::numeric(FLERR,arg[iarg+2],false,lmp); + double z = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (x < 0.0 || x >= 1.0 || y < 0.0 || y >= 1.0 || z < 0.0 || z >= 1.0) error->all(FLERR,"Illegal lattice command"); add_basis(x,y,z); diff --git a/src/min.cpp b/src/min.cpp index b14137f689..0bf0445525 100644 --- a/src/min.cpp +++ b/src/min.cpp @@ -671,35 +671,35 @@ void Min::modify_params(int narg, char **arg) while (iarg < narg) { if (strcmp(arg[iarg],"dmax") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); - dmax = force->numeric(FLERR,arg[iarg+1]); + dmax = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"delaystep") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); - delaystep = force->numeric(FLERR,arg[iarg+1]); + delaystep = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"dtgrow") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); - dtgrow = force->numeric(FLERR,arg[iarg+1]); + dtgrow = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"dtshrink") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); - dtshrink = force->numeric(FLERR,arg[iarg+1]); + dtshrink = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"alpha0") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); - alpha0 = force->numeric(FLERR,arg[iarg+1]); + alpha0 = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"alphashrink") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); - alphashrink = force->numeric(FLERR,arg[iarg+1]); + alphashrink = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"tmax") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); - tmax = force->numeric(FLERR,arg[iarg+1]); + tmax = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"tmin") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); - tmin = force->numeric(FLERR,arg[iarg+1]); + tmin = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"halfstepback") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); @@ -715,7 +715,7 @@ void Min::modify_params(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"vdfmax") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); - max_vdotf_negatif = force->numeric(FLERR,arg[iarg+1]); + max_vdotf_negatif = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"integrator") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal min_modify command"); diff --git a/src/minimize.cpp b/src/minimize.cpp index 94fdcd8681..0146390763 100644 --- a/src/minimize.cpp +++ b/src/minimize.cpp @@ -38,10 +38,10 @@ void Minimize::command(int narg, char **arg) // ignore minimize command, if walltime limit was already reached if (timer->is_timeout()) return; - update->etol = force->numeric(FLERR,arg[0]); - update->ftol = force->numeric(FLERR,arg[1]); - update->nsteps = force->inumeric(FLERR,arg[2]); - update->max_eval = force->inumeric(FLERR,arg[3]); + update->etol = utils::numeric(FLERR,arg[0],false,lmp); + update->ftol = utils::numeric(FLERR,arg[1],false,lmp); + update->nsteps = utils::inumeric(FLERR,arg[2],false,lmp); + update->max_eval = utils::inumeric(FLERR,arg[3],false,lmp); if (update->etol < 0.0 || update->ftol < 0.0) error->all(FLERR,"Illegal minimize command"); diff --git a/src/molecule.cpp b/src/molecule.cpp index cf9d995e2b..18f5c38992 100644 --- a/src/molecule.cpp +++ b/src/molecule.cpp @@ -79,43 +79,43 @@ Molecule::Molecule(LAMMPS *lmp, int narg, char **arg, int &index) : while (iarg < narg) { if (strcmp(arg[iarg],"offset") == 0) { if (iarg+6 > narg) error->all(FLERR,"Illegal molecule command"); - toffset = force->inumeric(FLERR,arg[iarg+1]); - boffset = force->inumeric(FLERR,arg[iarg+2]); - aoffset = force->inumeric(FLERR,arg[iarg+3]); - doffset = force->inumeric(FLERR,arg[iarg+4]); - ioffset = force->inumeric(FLERR,arg[iarg+5]); + toffset = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + boffset = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + aoffset = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + doffset = utils::inumeric(FLERR,arg[iarg+4],false,lmp); + ioffset = utils::inumeric(FLERR,arg[iarg+5],false,lmp); if (toffset < 0 || boffset < 0 || aoffset < 0 || doffset < 0 || ioffset < 0) error->all(FLERR,"Illegal molecule command"); iarg += 6; } else if (strcmp(arg[iarg],"toff") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal molecule command"); - toffset = force->inumeric(FLERR,arg[iarg+1]); + toffset = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (toffset < 0) error->all(FLERR,"Illegal molecule command"); iarg += 2; } else if (strcmp(arg[iarg],"boff") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal molecule command"); - boffset = force->inumeric(FLERR,arg[iarg+1]); + boffset = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (boffset < 0) error->all(FLERR,"Illegal molecule command"); iarg += 2; } else if (strcmp(arg[iarg],"aoff") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal molecule command"); - aoffset = force->inumeric(FLERR,arg[iarg+1]); + aoffset = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (aoffset < 0) error->all(FLERR,"Illegal molecule command"); iarg += 2; } else if (strcmp(arg[iarg],"doff") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal molecule command"); - doffset = force->inumeric(FLERR,arg[iarg+1]); + doffset = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (doffset < 0) error->all(FLERR,"Illegal molecule command"); iarg += 2; } else if (strcmp(arg[iarg],"ioff") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal molecule command"); - ioffset = force->inumeric(FLERR,arg[iarg+1]); + ioffset = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (ioffset < 0) error->all(FLERR,"Illegal molecule command"); iarg += 2; } else if (strcmp(arg[iarg],"scale") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal molecule command"); - sizescale = force->numeric(FLERR,arg[iarg+1]); + sizescale = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (sizescale <= 0.0) error->all(FLERR,"Illegal molecule command"); iarg += 2; } else break; diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 70333461ba..c9b16f67a0 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -2194,7 +2194,7 @@ void Neighbor::set(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal neighbor command"); - skin = force->numeric(FLERR,arg[0]); + skin = utils::numeric(FLERR,arg[0],false,lmp); if (skin < 0.0) error->all(FLERR,"Illegal neighbor command"); if (strcmp(arg[1],"nsq") == 0) style = Neighbor::NSQ; @@ -2236,12 +2236,12 @@ void Neighbor::modify_params(int narg, char **arg) while (iarg < narg) { if (strcmp(arg[iarg],"every") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal neigh_modify command"); - every = force->inumeric(FLERR,arg[iarg+1]); + every = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (every <= 0) error->all(FLERR,"Illegal neigh_modify command"); iarg += 2; } else if (strcmp(arg[iarg],"delay") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal neigh_modify command"); - delay = force->inumeric(FLERR,arg[iarg+1]); + delay = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (delay < 0) error->all(FLERR,"Illegal neigh_modify command"); iarg += 2; } else if (strcmp(arg[iarg],"check") == 0) { @@ -2259,16 +2259,16 @@ void Neighbor::modify_params(int narg, char **arg) } else if (strcmp(arg[iarg],"page") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal neigh_modify command"); old_pgsize = pgsize; - pgsize = force->inumeric(FLERR,arg[iarg+1]); + pgsize = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"one") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal neigh_modify command"); old_oneatom = oneatom; - oneatom = force->inumeric(FLERR,arg[iarg+1]); + oneatom = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"binsize") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal neigh_modify command"); - binsize_user = force->numeric(FLERR,arg[iarg+1]); + binsize_user = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (binsize_user <= 0.0) binsizeflag = 0; else binsizeflag = 1; iarg += 2; @@ -2300,8 +2300,8 @@ void Neighbor::modify_params(int narg, char **arg) memory->grow(ex1_type,maxex_type,"neigh:ex1_type"); memory->grow(ex2_type,maxex_type,"neigh:ex2_type"); } - ex1_type[nex_type] = force->inumeric(FLERR,arg[iarg+2]); - ex2_type[nex_type] = force->inumeric(FLERR,arg[iarg+3]); + ex1_type[nex_type] = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + ex2_type[nex_type] = utils::inumeric(FLERR,arg[iarg+3],false,lmp); nex_type++; iarg += 4; diff --git a/src/output.cpp b/src/output.cpp index 6051e04055..16d2fa54a0 100644 --- a/src/output.cpp +++ b/src/output.cpp @@ -541,7 +541,7 @@ void Output::add_dump(int narg, char **arg) error->all(FLERR,"Reuse of dump ID"); int igroup = group->find(arg[1]); if (igroup == -1) error->all(FLERR,"Could not find dump group ID"); - if (force->inumeric(FLERR,arg[3]) <= 0) + if (utils::inumeric(FLERR,arg[3],false,lmp) <= 0) error->all(FLERR,"Invalid dump frequency"); // extend Dump list if necessary @@ -572,7 +572,7 @@ void Output::add_dump(int narg, char **arg) dump[ndump] = dump_creator(lmp, narg, arg); } else error->all(FLERR,utils::check_packages_for_style("dump",arg[2],lmp)); - every_dump[ndump] = force->inumeric(FLERR,arg[3]); + every_dump[ndump] = utils::inumeric(FLERR,arg[3],false,lmp); if (every_dump[ndump] <= 0) error->all(FLERR,"Illegal dump command"); last_dump[ndump] = -1; var_dump[ndump] = NULL; @@ -670,7 +670,7 @@ void Output::set_thermo(int narg, char **arg) var_thermo = new char[n]; strcpy(var_thermo,&arg[0][2]); } else { - thermo_every = force->inumeric(FLERR,arg[0]); + thermo_every = utils::inumeric(FLERR,arg[0],false,lmp); if (thermo_every < 0) error->all(FLERR,"Illegal thermo command"); } } @@ -714,7 +714,7 @@ void Output::create_restart(int narg, char **arg) int varflag = 0; if (strstr(arg[0],"v_") == arg[0]) varflag = 1; - else every = force->inumeric(FLERR,arg[0]); + else every = utils::inumeric(FLERR,arg[0],false,lmp); if (!varflag && every == 0) { if (narg != 1) error->all(FLERR,"Illegal restart command"); diff --git a/src/pair.cpp b/src/pair.cpp index db9792cdbc..e003ef740a 100644 --- a/src/pair.cpp +++ b/src/pair.cpp @@ -161,23 +161,23 @@ void Pair::modify_params(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"table") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); - ncoultablebits = force->inumeric(FLERR,arg[iarg+1]); + ncoultablebits = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (ncoultablebits > (int)sizeof(float)*CHAR_BIT) error->all(FLERR,"Too many total bits for bitmapped lookup table"); iarg += 2; } else if (strcmp(arg[iarg],"table/disp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); - ndisptablebits = force->inumeric(FLERR,arg[iarg+1]); + ndisptablebits = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (ndisptablebits > (int)sizeof(float)*CHAR_BIT) error->all(FLERR,"Too many total bits for bitmapped lookup table"); iarg += 2; } else if (strcmp(arg[iarg],"tabinner") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); - tabinner = force->numeric(FLERR,arg[iarg+1]); + tabinner = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"tabinner/disp") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); - tabinner_disp = force->numeric(FLERR,arg[iarg+1]); + tabinner_disp = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"tail") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); @@ -1622,12 +1622,12 @@ void Pair::write_file(int narg, char **arg) // parse arguments - int itype = force->inumeric(FLERR,arg[0]); - int jtype = force->inumeric(FLERR,arg[1]); + int itype = utils::inumeric(FLERR,arg[0],false,lmp); + int jtype = utils::inumeric(FLERR,arg[1],false,lmp); if (itype < 1 || itype > atom->ntypes || jtype < 1 || jtype > atom->ntypes) error->all(FLERR,"Invalid atom types in pair_write command"); - int n = force->inumeric(FLERR,arg[2]); + int n = utils::inumeric(FLERR,arg[2],false,lmp); int style = NONE; if (strcmp(arg[3],"r") == 0) style = RLINEAR; @@ -1635,8 +1635,8 @@ void Pair::write_file(int narg, char **arg) else if (strcmp(arg[3],"bitmap") == 0) style = BMP; else error->all(FLERR,"Invalid style in pair_write command"); - double inner = force->numeric(FLERR,arg[4]); - double outer = force->numeric(FLERR,arg[5]); + double inner = utils::numeric(FLERR,arg[4],false,lmp); + double outer = utils::numeric(FLERR,arg[5],false,lmp); if (inner <= 0.0 || inner >= outer) error->all(FLERR,"Invalid cutoffs in pair_write command"); @@ -1709,8 +1709,8 @@ void Pair::write_file(int narg, char **arg) double q[2]; q[0] = q[1] = 1.0; if (narg == 10) { - q[0] = force->numeric(FLERR,arg[8]); - q[1] = force->numeric(FLERR,arg[9]); + q[0] = utils::numeric(FLERR,arg[8],false,lmp); + q[1] = utils::numeric(FLERR,arg[9],false,lmp); } double *q_hold; diff --git a/src/pair_beck.cpp b/src/pair_beck.cpp index 0b300bc7f5..a858f87910 100644 --- a/src/pair_beck.cpp +++ b/src/pair_beck.cpp @@ -176,7 +176,7 @@ void PairBeck::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -202,14 +202,14 @@ void PairBeck::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double AA_one = force->numeric(FLERR,arg[2]); - double BB_one = force->numeric(FLERR,arg[3]); - double aa_one = force->numeric(FLERR,arg[4]); - double alpha_one = force->numeric(FLERR,arg[5]); - double beta_one = force->numeric(FLERR,arg[6]); + double AA_one = utils::numeric(FLERR,arg[2],false,lmp); + double BB_one = utils::numeric(FLERR,arg[3],false,lmp); + double aa_one = utils::numeric(FLERR,arg[4],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[5],false,lmp); + double beta_one = utils::numeric(FLERR,arg[6],false,lmp); double cut_one = cut_global; - if (narg == 8) cut_one = force->numeric(FLERR,arg[7]); + if (narg == 8) cut_one = utils::numeric(FLERR,arg[7],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_born.cpp b/src/pair_born.cpp index b2a5ee2f7b..ca0ab9a17b 100644 --- a/src/pair_born.cpp +++ b/src/pair_born.cpp @@ -177,7 +177,7 @@ void PairBorn::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -202,15 +202,15 @@ void PairBorn::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a_one = force->numeric(FLERR,arg[2]); - double rho_one = force->numeric(FLERR,arg[3]); - double sigma_one = force->numeric(FLERR,arg[4]); + double a_one = utils::numeric(FLERR,arg[2],false,lmp); + double rho_one = utils::numeric(FLERR,arg[3],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[4],false,lmp); if (rho_one <= 0) error->all(FLERR,"Incorrect args for pair coefficients"); - double c_one = force->numeric(FLERR,arg[5]); - double d_one = force->numeric(FLERR,arg[6]); + double c_one = utils::numeric(FLERR,arg[5],false,lmp); + double d_one = utils::numeric(FLERR,arg[6],false,lmp); double cut_one = cut_global; - if (narg == 8) cut_one = force->numeric(FLERR,arg[7]); + if (narg == 8) cut_one = utils::numeric(FLERR,arg[7],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_born_coul_dsf.cpp b/src/pair_born_coul_dsf.cpp index ced2c3ccf3..1a6b12a345 100644 --- a/src/pair_born_coul_dsf.cpp +++ b/src/pair_born_coul_dsf.cpp @@ -216,10 +216,10 @@ void PairBornCoulDSF::settings(int narg, char **arg) { if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); - alpha = force->numeric(FLERR,arg[0]); - cut_lj_global = force->numeric(FLERR,arg[1]); + alpha = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj_global = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[2]); + else cut_coul = utils::numeric(FLERR,arg[2],false,lmp); if (allocated) { int i,j; @@ -243,15 +243,15 @@ void PairBornCoulDSF::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a_one = force->numeric(FLERR,arg[2]); - double rho_one = force->numeric(FLERR,arg[3]); - double sigma_one = force->numeric(FLERR,arg[4]); + double a_one = utils::numeric(FLERR,arg[2],false,lmp); + double rho_one = utils::numeric(FLERR,arg[3],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[4],false,lmp); if (rho_one <= 0) error->all(FLERR,"Incorrect args for pair coefficients"); - double c_one = force->numeric(FLERR,arg[5]); - double d_one = force->numeric(FLERR,arg[6]); + double c_one = utils::numeric(FLERR,arg[5],false,lmp); + double d_one = utils::numeric(FLERR,arg[6],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 8) cut_lj_one = force->numeric(FLERR,arg[7]); + if (narg == 8) cut_lj_one = utils::numeric(FLERR,arg[7],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_born_coul_wolf.cpp b/src/pair_born_coul_wolf.cpp index 30275a05b1..4c51b0bb9f 100644 --- a/src/pair_born_coul_wolf.cpp +++ b/src/pair_born_coul_wolf.cpp @@ -219,10 +219,10 @@ void PairBornCoulWolf::settings(int narg, char **arg) { if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); - alf = force->numeric(FLERR,arg[0]); - cut_lj_global = force->numeric(FLERR,arg[1]); + alf = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj_global = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[2]); + else cut_coul = utils::numeric(FLERR,arg[2],false,lmp); if (allocated) { int i,j; @@ -246,15 +246,15 @@ void PairBornCoulWolf::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a_one = force->numeric(FLERR,arg[2]); - double rho_one = force->numeric(FLERR,arg[3]); - double sigma_one = force->numeric(FLERR,arg[4]); + double a_one = utils::numeric(FLERR,arg[2],false,lmp); + double rho_one = utils::numeric(FLERR,arg[3],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[4],false,lmp); if (rho_one <= 0) error->all(FLERR,"Incorrect args for pair coefficients"); - double c_one = force->numeric(FLERR,arg[5]); - double d_one = force->numeric(FLERR,arg[6]); + double c_one = utils::numeric(FLERR,arg[5],false,lmp); + double d_one = utils::numeric(FLERR,arg[6],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 8) cut_lj_one = force->numeric(FLERR,arg[7]); + if (narg == 8) cut_lj_one = utils::numeric(FLERR,arg[7],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_buck.cpp b/src/pair_buck.cpp index 982c400135..91071fccb1 100644 --- a/src/pair_buck.cpp +++ b/src/pair_buck.cpp @@ -169,7 +169,7 @@ void PairBuck::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -195,13 +195,13 @@ void PairBuck::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a_one = force->numeric(FLERR,arg[2]); - double rho_one = force->numeric(FLERR,arg[3]); + double a_one = utils::numeric(FLERR,arg[2],false,lmp); + double rho_one = utils::numeric(FLERR,arg[3],false,lmp); if (rho_one <= 0) error->all(FLERR,"Incorrect args for pair coefficients"); - double c_one = force->numeric(FLERR,arg[4]); + double c_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_one = cut_global; - if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_buck_coul_cut.cpp b/src/pair_buck_coul_cut.cpp index 76ff05729e..6141205db0 100644 --- a/src/pair_buck_coul_cut.cpp +++ b/src/pair_buck_coul_cut.cpp @@ -197,9 +197,9 @@ void PairBuckCoulCut::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul_global = cut_lj_global; - else cut_coul_global = force->numeric(FLERR,arg[1]); + else cut_coul_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -228,15 +228,15 @@ void PairBuckCoulCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a_one = force->numeric(FLERR,arg[2]); - double rho_one = force->numeric(FLERR,arg[3]); + double a_one = utils::numeric(FLERR,arg[2],false,lmp); + double rho_one = utils::numeric(FLERR,arg[3],false,lmp); if (rho_one <= 0) error->all(FLERR,"Incorrect args for pair coefficients"); - double c_one = force->numeric(FLERR,arg[4]); + double c_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_lj_one = cut_lj_global; double cut_coul_one = cut_coul_global; - if (narg >= 6) cut_coul_one = cut_lj_one = force->numeric(FLERR,arg[5]); - if (narg == 7) cut_coul_one = force->numeric(FLERR,arg[6]); + if (narg >= 6) cut_coul_one = cut_lj_one = utils::numeric(FLERR,arg[5],false,lmp); + if (narg == 7) cut_coul_one = utils::numeric(FLERR,arg[6],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_coul_cut.cpp b/src/pair_coul_cut.cpp index 2abc65f322..d19374b5d9 100644 --- a/src/pair_coul_cut.cpp +++ b/src/pair_coul_cut.cpp @@ -149,7 +149,7 @@ void PairCoulCut::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -176,7 +176,7 @@ void PairCoulCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_one = cut_global; - if (narg == 3) cut_one = force->numeric(FLERR,arg[2]); + if (narg == 3) cut_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_coul_debye.cpp b/src/pair_coul_debye.cpp index b45353837a..2a3def0d4f 100644 --- a/src/pair_coul_debye.cpp +++ b/src/pair_coul_debye.cpp @@ -114,8 +114,8 @@ void PairCoulDebye::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - kappa = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + kappa = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set diff --git a/src/pair_coul_dsf.cpp b/src/pair_coul_dsf.cpp index b1bea9edbb..2f1a834060 100644 --- a/src/pair_coul_dsf.cpp +++ b/src/pair_coul_dsf.cpp @@ -171,8 +171,8 @@ void PairCoulDSF::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - alpha = force->numeric(FLERR,arg[0]); - cut_coul = force->numeric(FLERR,arg[1]); + alpha = utils::numeric(FLERR,arg[0],false,lmp); + cut_coul = utils::numeric(FLERR,arg[1],false,lmp); } /* ---------------------------------------------------------------------- diff --git a/src/pair_coul_streitz.cpp b/src/pair_coul_streitz.cpp index 5b7d7ea08a..efe8d46017 100644 --- a/src/pair_coul_streitz.cpp +++ b/src/pair_coul_streitz.cpp @@ -112,11 +112,11 @@ void PairCoulStreitz::settings(int narg, char **arg) { if (narg < 2) error->all(FLERR,"Illegal pair_style command"); - cut_coul = force->numeric(FLERR,arg[0]); + cut_coul = utils::numeric(FLERR,arg[0],false,lmp); if (strcmp(arg[1],"wolf") == 0){ kspacetype = 1; - g_wolf = force->numeric(FLERR,arg[2]); + g_wolf = utils::numeric(FLERR,arg[2],false,lmp); } else if (strcmp(arg[1],"ewald") == 0){ ewaldflag = pppmflag = 1; kspacetype = 2; diff --git a/src/pair_coul_wolf.cpp b/src/pair_coul_wolf.cpp index 38220386c0..e94c4abb73 100644 --- a/src/pair_coul_wolf.cpp +++ b/src/pair_coul_wolf.cpp @@ -172,8 +172,8 @@ void PairCoulWolf::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - alf = force->numeric(FLERR,arg[0]); - cut_coul = force->numeric(FLERR,arg[1]); + alf = utils::numeric(FLERR,arg[0],false,lmp); + cut_coul = utils::numeric(FLERR,arg[1],false,lmp); } /* ---------------------------------------------------------------------- diff --git a/src/pair_dpd.cpp b/src/pair_dpd.cpp index d38e1f0655..613ad90cc3 100644 --- a/src/pair_dpd.cpp +++ b/src/pair_dpd.cpp @@ -190,9 +190,9 @@ void PairDPD::settings(int narg, char **arg) { if (narg != 3) error->all(FLERR,"Illegal pair_style command"); - temperature = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); - seed = force->inumeric(FLERR,arg[2]); + temperature = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); + seed = utils::inumeric(FLERR,arg[2],false,lmp); // initialize Marsaglia RNG with processor-unique seed @@ -224,11 +224,11 @@ void PairDPD::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a0_one = force->numeric(FLERR,arg[2]); - double gamma_one = force->numeric(FLERR,arg[3]); + double a0_one = utils::numeric(FLERR,arg[2],false,lmp); + double gamma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; - if (narg == 5) cut_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_dpd_tstat.cpp b/src/pair_dpd_tstat.cpp index fde8e2e2c3..3f3f05f7f5 100644 --- a/src/pair_dpd_tstat.cpp +++ b/src/pair_dpd_tstat.cpp @@ -142,10 +142,10 @@ void PairDPDTstat::settings(int narg, char **arg) { if (narg != 4) error->all(FLERR,"Illegal pair_style command"); - t_start = force->numeric(FLERR,arg[0]); - t_stop = force->numeric(FLERR,arg[1]); - cut_global = force->numeric(FLERR,arg[2]); - seed = force->inumeric(FLERR,arg[3]); + t_start = utils::numeric(FLERR,arg[0],false,lmp); + t_stop = utils::numeric(FLERR,arg[1],false,lmp); + cut_global = utils::numeric(FLERR,arg[2],false,lmp); + seed = utils::inumeric(FLERR,arg[3],false,lmp); temperature = t_start; @@ -180,10 +180,10 @@ void PairDPDTstat::coeff(int narg, char **arg) utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double a0_one = 0.0; - double gamma_one = force->numeric(FLERR,arg[2]); + double gamma_one = utils::numeric(FLERR,arg[2],false,lmp); double cut_one = cut_global; - if (narg == 4) cut_one = force->numeric(FLERR,arg[3]); + if (narg == 4) cut_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_gauss.cpp b/src/pair_gauss.cpp index fbf55b397a..d8b8e36b8c 100644 --- a/src/pair_gauss.cpp +++ b/src/pair_gauss.cpp @@ -164,7 +164,7 @@ void PairGauss::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -190,11 +190,11 @@ void PairGauss::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a_one = force->numeric(FLERR,arg[2]); - double b_one = force->numeric(FLERR,arg[3]); + double a_one = utils::numeric(FLERR,arg[2],false,lmp); + double b_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; - if (narg == 5) cut_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_hybrid.cpp b/src/pair_hybrid.cpp index baf3fd550f..693ed7fa24 100644 --- a/src/pair_hybrid.cpp +++ b/src/pair_hybrid.cpp @@ -456,7 +456,7 @@ void PairHybrid::coeff(int narg, char **arg) if (narg < 4) error->all(FLERR,"Incorrect args for pair coefficients"); if (!isdigit(arg[3][0])) error->all(FLERR,"Incorrect args for pair coefficients"); - int index = force->inumeric(FLERR,arg[3]); + int index = utils::inumeric(FLERR,arg[3],false,lmp); if (index == multiple[m]) break; else continue; } else break; @@ -864,7 +864,7 @@ void PairHybrid::modify_params(int narg, char **arg) if (multiple[m]) { if (narg < 3) error->all(FLERR,"Illegal pair_modify command"); - int multiflag = force->inumeric(FLERR,arg[2]); + int multiflag = utils::inumeric(FLERR,arg[2],false,lmp); for (m = 0; m < nstyles; m++) if (strcmp(arg[1],keywords[m]) == 0 && multiflag == multiple[m]) break; if (m == nstyles) @@ -934,9 +934,9 @@ void PairHybrid::modify_special(int m, int /*narg*/, char **arg) int i; special[0] = 1.0; - special[1] = force->numeric(FLERR,arg[1]); - special[2] = force->numeric(FLERR,arg[2]); - special[3] = force->numeric(FLERR,arg[3]); + special[1] = utils::numeric(FLERR,arg[1],false,lmp); + special[2] = utils::numeric(FLERR,arg[2],false,lmp); + special[3] = utils::numeric(FLERR,arg[3],false,lmp); // have to cast to PairHybrid to work around C++ access restriction diff --git a/src/pair_hybrid_overlay.cpp b/src/pair_hybrid_overlay.cpp index a0b233d5bc..dc8ac65dd4 100644 --- a/src/pair_hybrid_overlay.cpp +++ b/src/pair_hybrid_overlay.cpp @@ -53,7 +53,7 @@ void PairHybridOverlay::coeff(int narg, char **arg) if (narg < 4) error->all(FLERR,"Incorrect args for pair coefficients"); if (!isdigit(arg[3][0])) error->all(FLERR,"Incorrect args for pair coefficients"); - int index = force->inumeric(FLERR,arg[3]); + int index = utils::inumeric(FLERR,arg[3],false,lmp); if (index == multiple[m]) break; else continue; } else break; diff --git a/src/pair_lj96_cut.cpp b/src/pair_lj96_cut.cpp index de9ffcf486..c60908e8cf 100644 --- a/src/pair_lj96_cut.cpp +++ b/src/pair_lj96_cut.cpp @@ -433,7 +433,7 @@ void PairLJ96Cut::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -459,11 +459,11 @@ void PairLJ96Cut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; - if (narg == 5) cut_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_lj_cubic.cpp b/src/pair_lj_cubic.cpp index 2a2bd77599..833c954330 100644 --- a/src/pair_lj_cubic.cpp +++ b/src/pair_lj_cubic.cpp @@ -195,8 +195,8 @@ void PairLJCubic::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double rmin = sigma_one*RT6TWO; int count = 0; diff --git a/src/pair_lj_cut.cpp b/src/pair_lj_cut.cpp index e9f6bce50b..fedf029fb8 100644 --- a/src/pair_lj_cut.cpp +++ b/src/pair_lj_cut.cpp @@ -427,7 +427,7 @@ void PairLJCut::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -453,11 +453,11 @@ void PairLJCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; - if (narg == 5) cut_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_lj_cut_coul_cut.cpp b/src/pair_lj_cut_coul_cut.cpp index 8c1a52fa6c..a11de35c53 100644 --- a/src/pair_lj_cut_coul_cut.cpp +++ b/src/pair_lj_cut_coul_cut.cpp @@ -189,9 +189,9 @@ void PairLJCutCoulCut::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); - cut_lj_global = force->numeric(FLERR,arg[0]); + cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 1) cut_coul_global = cut_lj_global; - else cut_coul_global = force->numeric(FLERR,arg[1]); + else cut_coul_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -220,13 +220,13 @@ void PairLJCutCoulCut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; double cut_coul_one = cut_coul_global; - if (narg >= 5) cut_coul_one = cut_lj_one = force->numeric(FLERR,arg[4]); - if (narg == 6) cut_coul_one = force->numeric(FLERR,arg[5]); + if (narg >= 5) cut_coul_one = cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); + if (narg == 6) cut_coul_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_lj_cut_coul_debye.cpp b/src/pair_lj_cut_coul_debye.cpp index a65d7aa50f..2d4b0bbe98 100644 --- a/src/pair_lj_cut_coul_debye.cpp +++ b/src/pair_lj_cut_coul_debye.cpp @@ -133,10 +133,10 @@ void PairLJCutCoulDebye::settings(int narg, char **arg) { if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); - kappa = force->numeric(FLERR,arg[0]); - cut_lj_global = force->numeric(FLERR,arg[1]); + kappa = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj_global = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) cut_coul_global = cut_lj_global; - else cut_coul_global = force->numeric(FLERR,arg[2]); + else cut_coul_global = utils::numeric(FLERR,arg[2],false,lmp); // reset cutoffs that were previously set from data file diff --git a/src/pair_lj_cut_coul_dsf.cpp b/src/pair_lj_cut_coul_dsf.cpp index cb2a4079c1..2d9368a0ca 100644 --- a/src/pair_lj_cut_coul_dsf.cpp +++ b/src/pair_lj_cut_coul_dsf.cpp @@ -214,10 +214,10 @@ void PairLJCutCoulDSF::settings(int narg, char **arg) { if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); - alpha = force->numeric(FLERR,arg[0]); - cut_lj_global = force->numeric(FLERR,arg[1]); + alpha = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj_global = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) cut_coul = cut_lj_global; - else cut_coul = force->numeric(FLERR,arg[2]); + else cut_coul = utils::numeric(FLERR,arg[2],false,lmp); // reset cutoffs that have been explicitly set @@ -244,11 +244,11 @@ void PairLJCutCoulDSF::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 5) cut_lj_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_lj_cut_coul_wolf.cpp b/src/pair_lj_cut_coul_wolf.cpp index 40bdfc5ce4..c6fa33f03c 100644 --- a/src/pair_lj_cut_coul_wolf.cpp +++ b/src/pair_lj_cut_coul_wolf.cpp @@ -212,9 +212,9 @@ void PairLJCutCoulWolf::settings(int narg, char **arg) { if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); - alf = force->numeric(FLERR,arg[0]); - cut_lj_global = force->numeric(FLERR,arg[1]); - if (narg == 3) cut_coul = force->numeric(FLERR,arg[2]); + alf = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj_global = utils::numeric(FLERR,arg[1],false,lmp); + if (narg == 3) cut_coul = utils::numeric(FLERR,arg[2],false,lmp); else cut_coul = cut_lj_global; if (allocated) { @@ -239,11 +239,11 @@ void PairLJCutCoulWolf::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_lj_one = cut_lj_global; - if (narg == 5) cut_lj_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_lj_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_lj_expand.cpp b/src/pair_lj_expand.cpp index a0728319c8..1063d05672 100644 --- a/src/pair_lj_expand.cpp +++ b/src/pair_lj_expand.cpp @@ -172,7 +172,7 @@ void PairLJExpand::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -197,12 +197,12 @@ void PairLJExpand::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double shift_one = force->numeric(FLERR,arg[4]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double shift_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_one = cut_global; - if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_lj_gromacs.cpp b/src/pair_lj_gromacs.cpp index d7cb640f30..b7e3516ec3 100644 --- a/src/pair_lj_gromacs.cpp +++ b/src/pair_lj_gromacs.cpp @@ -190,8 +190,8 @@ void PairLJGromacs::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - cut_inner_global = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + cut_inner_global = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); if (cut_inner_global <= 0.0 || cut_inner_global > cut_global) error->all(FLERR,"Illegal pair_style command"); @@ -223,14 +223,14 @@ void PairLJGromacs::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_inner_one = cut_inner_global; double cut_one = cut_global; if (narg == 6) { - cut_inner_one = force->numeric(FLERR,arg[4]); - cut_one = force->numeric(FLERR,arg[5]); + cut_inner_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_one = utils::numeric(FLERR,arg[5],false,lmp); } if (cut_inner_one <= 0.0 || cut_inner_one > cut_one) diff --git a/src/pair_lj_gromacs_coul_gromacs.cpp b/src/pair_lj_gromacs_coul_gromacs.cpp index ab0e42e483..37837b695f 100644 --- a/src/pair_lj_gromacs_coul_gromacs.cpp +++ b/src/pair_lj_gromacs_coul_gromacs.cpp @@ -220,14 +220,14 @@ void PairLJGromacsCoulGromacs::settings(int narg, char **arg) if (narg != 2 && narg != 4) error->all(FLERR,"Illegal pair_style command"); - cut_lj_inner = force->numeric(FLERR,arg[0]); - cut_lj = force->numeric(FLERR,arg[1]); + cut_lj_inner = utils::numeric(FLERR,arg[0],false,lmp); + cut_lj = utils::numeric(FLERR,arg[1],false,lmp); if (narg == 2) { cut_coul_inner = cut_lj_inner; cut_coul = cut_lj; } else { - cut_coul_inner = force->numeric(FLERR,arg[2]); - cut_coul = force->numeric(FLERR,arg[3]); + cut_coul_inner = utils::numeric(FLERR,arg[2],false,lmp); + cut_coul = utils::numeric(FLERR,arg[3],false,lmp); } if (cut_lj_inner <= 0.0 || cut_coul_inner < 0.0) @@ -249,8 +249,8 @@ void PairLJGromacsCoulGromacs::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_lj_smooth.cpp b/src/pair_lj_smooth.cpp index 182738f547..5c6bc671f9 100644 --- a/src/pair_lj_smooth.cpp +++ b/src/pair_lj_smooth.cpp @@ -195,8 +195,8 @@ void PairLJSmooth::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - cut_inner_global = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + cut_inner_global = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); if (cut_inner_global <= 0.0 || cut_inner_global > cut_global) error->all(FLERR,"Illegal pair_style command"); @@ -228,14 +228,14 @@ void PairLJSmooth::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_inner_one = cut_inner_global; double cut_one = cut_global; if (narg == 6) { - cut_inner_one = force->numeric(FLERR,arg[4]); - cut_one = force->numeric(FLERR,arg[5]); + cut_inner_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_one = utils::numeric(FLERR,arg[5],false,lmp); } if (cut_inner_one <= 0.0 || cut_inner_one > cut_one) diff --git a/src/pair_lj_smooth_linear.cpp b/src/pair_lj_smooth_linear.cpp index e69fdc162b..14646f19f2 100644 --- a/src/pair_lj_smooth_linear.cpp +++ b/src/pair_lj_smooth_linear.cpp @@ -170,7 +170,7 @@ void PairLJSmoothLinear::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -197,12 +197,12 @@ void PairLJSmoothLinear::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; if (narg == 5) { - cut_one = force->numeric(FLERR,arg[4]); + cut_one = utils::numeric(FLERR,arg[4],false,lmp); } int count = 0; diff --git a/src/pair_mie_cut.cpp b/src/pair_mie_cut.cpp index 01f4ae98a4..f838d96145 100644 --- a/src/pair_mie_cut.cpp +++ b/src/pair_mie_cut.cpp @@ -438,7 +438,7 @@ void PairMIECut::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -464,13 +464,13 @@ void PairMIECut::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double gamR_one = force->numeric(FLERR,arg[4]); - double gamA_one = force->numeric(FLERR,arg[5]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + double gamR_one = utils::numeric(FLERR,arg[4],false,lmp); + double gamA_one = utils::numeric(FLERR,arg[5],false,lmp); double cut_one = cut_global; - if (narg == 7) cut_one = force->numeric(FLERR,arg[6]); + if (narg == 7) cut_one = utils::numeric(FLERR,arg[6],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_morse.cpp b/src/pair_morse.cpp index 52237555a0..cbfaccab2c 100644 --- a/src/pair_morse.cpp +++ b/src/pair_morse.cpp @@ -158,7 +158,7 @@ void PairMorse::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -184,12 +184,12 @@ void PairMorse::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double d0_one = force->numeric(FLERR,arg[2]); - double alpha_one = force->numeric(FLERR,arg[3]); - double r0_one = force->numeric(FLERR,arg[4]); + double d0_one = utils::numeric(FLERR,arg[2],false,lmp); + double alpha_one = utils::numeric(FLERR,arg[3],false,lmp); + double r0_one = utils::numeric(FLERR,arg[4],false,lmp); double cut_one = cut_global; - if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); + if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_soft.cpp b/src/pair_soft.cpp index dee10052f9..4d3702313e 100644 --- a/src/pair_soft.cpp +++ b/src/pair_soft.cpp @@ -149,7 +149,7 @@ void PairSoft::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -175,10 +175,10 @@ void PairSoft::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double prefactor_one = force->numeric(FLERR,arg[2]); + double prefactor_one = utils::numeric(FLERR,arg[2],false,lmp); double cut_one = cut_global; - if (narg == 4) cut_one = force->numeric(FLERR,arg[3]); + if (narg == 4) cut_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_table.cpp b/src/pair_table.cpp index 0d9769cab8..4aec954c38 100644 --- a/src/pair_table.cpp +++ b/src/pair_table.cpp @@ -216,7 +216,7 @@ void PairTable::settings(int narg, char **arg) else if (strcmp(arg[0],"bitmap") == 0) tabstyle = BITMAP; else error->all(FLERR,"Unknown table style in pair_style command"); - tablength = force->inumeric(FLERR,arg[1]); + tablength = utils::inumeric(FLERR,arg[1],false,lmp); if (tablength < 2) error->all(FLERR,"Illegal number of pair table entries"); // optional keywords @@ -273,7 +273,7 @@ void PairTable::coeff(int narg, char **arg) // set table cutoff - if (narg == 5) tb->cut = force->numeric(FLERR,arg[4]); + if (narg == 5) tb->cut = utils::numeric(FLERR,arg[4],false,lmp); else if (tb->rflag) tb->cut = tb->rhi; else tb->cut = tb->rfile[tb->ninput-1]; diff --git a/src/pair_ufm.cpp b/src/pair_ufm.cpp index 9f9f18dced..fd700e9886 100644 --- a/src/pair_ufm.cpp +++ b/src/pair_ufm.cpp @@ -164,7 +164,7 @@ void PairUFM::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); // reset cutoffs that have been explicitly set @@ -190,12 +190,12 @@ void PairUFM::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); double cut_one = cut_global; - if (narg == 5) cut_one = force->numeric(FLERR,arg[4]); + if (narg == 5) cut_one = utils::numeric(FLERR,arg[4],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_yukawa.cpp b/src/pair_yukawa.cpp index 5a3a589702..b746204892 100644 --- a/src/pair_yukawa.cpp +++ b/src/pair_yukawa.cpp @@ -153,8 +153,8 @@ void PairYukawa::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - kappa = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + kappa = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); // reset cutoffs that have been explicitly set @@ -180,10 +180,10 @@ void PairYukawa::coeff(int narg, char **arg) utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - double a_one = force->numeric(FLERR,arg[2]); + double a_one = utils::numeric(FLERR,arg[2],false,lmp); double cut_one = cut_global; - if (narg == 4) cut_one = force->numeric(FLERR,arg[3]); + if (narg == 4) cut_one = utils::numeric(FLERR,arg[3],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pair_zbl.cpp b/src/pair_zbl.cpp index 5655570351..d78c156935 100644 --- a/src/pair_zbl.cpp +++ b/src/pair_zbl.cpp @@ -183,8 +183,8 @@ void PairZBL::settings(int narg, char **arg) { if (narg != 2) error->all(FLERR,"Illegal pair_style command"); - cut_inner = force->numeric(FLERR,arg[0]); - cut_global = force->numeric(FLERR,arg[1]); + cut_inner = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); if (cut_inner <= 0.0 ) error->all(FLERR,"Illegal pair_style command"); @@ -211,8 +211,8 @@ void PairZBL::coeff(int narg, char **arg) int jlo,jhi; utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - z_one = force->numeric(FLERR,arg[2]); - z_two = force->numeric(FLERR,arg[3]); + z_one = utils::numeric(FLERR,arg[2],false,lmp); + z_two = utils::numeric(FLERR,arg[3],false,lmp); // set flag for each i-j pair // set z-parameter only for i-i pairs diff --git a/src/pair_zero.cpp b/src/pair_zero.cpp index be09647365..f08d919f83 100644 --- a/src/pair_zero.cpp +++ b/src/pair_zero.cpp @@ -89,7 +89,7 @@ void PairZero::settings(int narg, char **arg) if ((narg != 1) && (narg != 2)) error->all(FLERR,"Illegal pair_style command"); - cut_global = force->numeric(FLERR,arg[0]); + cut_global = utils::numeric(FLERR,arg[0],false,lmp); if (narg == 2) { if (strcmp("nocoeff",arg[1]) == 0) coeffflag=0; else error->all(FLERR,"Illegal pair_style command"); @@ -121,7 +121,7 @@ void PairZero::coeff(int narg, char **arg) utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); double cut_one = cut_global; - if (coeffflag && (narg == 3)) cut_one = force->numeric(FLERR,arg[2]); + if (coeffflag && (narg == 3)) cut_one = utils::numeric(FLERR,arg[2],false,lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { diff --git a/src/pointers.h b/src/pointers.h index 2d528db392..4b91e009ac 100644 --- a/src/pointers.h +++ b/src/pointers.h @@ -25,7 +25,9 @@ #include // IWYU pragma: export #include // IWYU pragme: export #include // IWYU pragma: export +#include // IWYU pragma: export #include "lammps.h" // IWYU pragma: export +#include "utils.h" // IWYU pragma: export namespace LAMMPS_NS { diff --git a/src/read_data.cpp b/src/read_data.cpp index 19e5c56b81..7224ac89ea 100644 --- a/src/read_data.cpp +++ b/src/read_data.cpp @@ -148,13 +148,13 @@ void ReadData::command(int narg, char **arg) if (atom->molecule_flag && (iarg+3 > narg)) error->all(FLERR,"Illegal read_data command"); addflag = VALUE; - bigint offset = force->bnumeric(FLERR,arg[iarg+1]); + bigint offset = utils::bnumeric(FLERR,arg[iarg+1],false,lmp); if (offset > MAXTAGINT) error->all(FLERR,"Read data add atomID offset is too big"); id_offset = offset; if (atom->molecule_flag) { - offset = force->bnumeric(FLERR,arg[iarg+2]); + offset = utils::bnumeric(FLERR,arg[iarg+2],false,lmp); if (offset > MAXTAGINT) error->all(FLERR,"Read data add molID offset is too big"); mol_offset = offset; @@ -165,11 +165,11 @@ void ReadData::command(int narg, char **arg) } else if (strcmp(arg[iarg],"offset") == 0) { if (iarg+6 > narg) error->all(FLERR,"Illegal read_data command"); offsetflag = 1; - toffset = force->inumeric(FLERR,arg[iarg+1]); - boffset = force->inumeric(FLERR,arg[iarg+2]); - aoffset = force->inumeric(FLERR,arg[iarg+3]); - doffset = force->inumeric(FLERR,arg[iarg+4]); - ioffset = force->inumeric(FLERR,arg[iarg+5]); + toffset = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + boffset = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + aoffset = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + doffset = utils::inumeric(FLERR,arg[iarg+4],false,lmp); + ioffset = utils::inumeric(FLERR,arg[iarg+5],false,lmp); if (toffset < 0 || boffset < 0 || aoffset < 0 || doffset < 0 || ioffset < 0) error->all(FLERR,"Illegal read_data command"); @@ -177,9 +177,9 @@ void ReadData::command(int narg, char **arg) } else if (strcmp(arg[iarg],"shift") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal read_data command"); shiftflag = 1; - shift[0] = force->numeric(FLERR,arg[iarg+1]); - shift[1] = force->numeric(FLERR,arg[iarg+2]); - shift[2] = force->numeric(FLERR,arg[iarg+3]); + shift[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + shift[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + shift[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (domain->dimension == 2 && shift[2] != 0.0) error->all(FLERR,"Non-zero read_data shift z value for 2d simulation"); iarg += 4; @@ -188,28 +188,28 @@ void ReadData::command(int narg, char **arg) iarg ++; } else if (strcmp(arg[iarg],"extra/atom/types") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command"); - extra_atom_types = force->inumeric(FLERR,arg[iarg+1]); + extra_atom_types = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (extra_atom_types < 0) error->all(FLERR,"Illegal read_data command"); iarg += 2; } else if (strcmp(arg[iarg],"extra/bond/types") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command"); if (!atom->avec->bonds_allow) error->all(FLERR,"No bonds allowed with this atom style"); - extra_bond_types = force->inumeric(FLERR,arg[iarg+1]); + extra_bond_types = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (extra_bond_types < 0) error->all(FLERR,"Illegal read_data command"); iarg += 2; } else if (strcmp(arg[iarg],"extra/angle/types") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command"); if (!atom->avec->angles_allow) error->all(FLERR,"No angles allowed with this atom style"); - extra_angle_types = force->inumeric(FLERR,arg[iarg+1]); + extra_angle_types = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (extra_angle_types < 0) error->all(FLERR,"Illegal read_data command"); iarg += 2; } else if (strcmp(arg[iarg],"extra/dihedral/types") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command"); if (!atom->avec->dihedrals_allow) error->all(FLERR,"No dihedrals allowed with this atom style"); - extra_dihedral_types = force->inumeric(FLERR,arg[iarg+1]); + extra_dihedral_types = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (extra_dihedral_types < 0) error->all(FLERR,"Illegal read_data command"); iarg += 2; @@ -217,7 +217,7 @@ void ReadData::command(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command"); if (!atom->avec->impropers_allow) error->all(FLERR,"No impropers allowed with this atom style"); - extra_improper_types = force->inumeric(FLERR,arg[iarg+1]); + extra_improper_types = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (extra_improper_types < 0) error->all(FLERR,"Illegal read_data command"); iarg += 2; @@ -225,7 +225,7 @@ void ReadData::command(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command"); if (! atom->molecular) error->all(FLERR,"No bonds allowed with this atom style"); - atom->extra_bond_per_atom = force->inumeric(FLERR,arg[iarg+1]); + atom->extra_bond_per_atom = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (atom->extra_bond_per_atom < 0) error->all(FLERR,"Illegal read_data command"); iarg += 2; @@ -233,7 +233,7 @@ void ReadData::command(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command"); if (! atom->molecular) error->all(FLERR,"No angles allowed with this atom style"); - atom->extra_angle_per_atom = force->inumeric(FLERR,arg[iarg+1]); + atom->extra_angle_per_atom = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (atom->extra_angle_per_atom < 0) error->all(FLERR,"Illegal read_data command"); iarg += 2; @@ -241,7 +241,7 @@ void ReadData::command(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command"); if (! atom->molecular) error->all(FLERR,"No dihedrals allowed with this atom style"); - atom->extra_dihedral_per_atom = force->inumeric(FLERR,arg[iarg+1]); + atom->extra_dihedral_per_atom = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (atom->extra_dihedral_per_atom < 0) error->all(FLERR,"Illegal read_data command"); iarg += 2; @@ -249,7 +249,7 @@ void ReadData::command(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command"); if (! atom->molecular) error->all(FLERR,"No impropers allowed with this atom style"); - atom->extra_improper_per_atom = force->inumeric(FLERR,arg[iarg+1]); + atom->extra_improper_per_atom = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (atom->extra_improper_per_atom < 0) error->all(FLERR,"Illegal read_data command"); iarg += 2; @@ -257,7 +257,7 @@ void ReadData::command(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command"); if (! atom->molecular) error->all(FLERR,"No bonded interactions allowed with this atom style"); - force->special_extra = force->inumeric(FLERR,arg[iarg+1]); + force->special_extra = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (force->special_extra < 0) error->all(FLERR,"Illegal read_data command"); iarg += 2; @@ -2075,11 +2075,11 @@ void ReadData::parse_coeffs(char *line, const char *addstr, if (narg == 0) return; if (noffset) { - int value = force->inumeric(FLERR,arg[0]); + int value = utils::inumeric(FLERR,arg[0],false,lmp); sprintf(argoffset1,"%d",value+offset); arg[0] = argoffset1; if (noffset == 2) { - value = force->inumeric(FLERR,arg[1]); + value = utils::inumeric(FLERR,arg[1],false,lmp); sprintf(argoffset2,"%d",value+offset); arg[1] = argoffset2; } diff --git a/src/read_dump.cpp b/src/read_dump.cpp index f47eda3262..fbafb4ca84 100644 --- a/src/read_dump.cpp +++ b/src/read_dump.cpp @@ -110,7 +110,7 @@ void ReadDump::command(int narg, char **arg) if (narg < 2) error->all(FLERR,"Illegal read_dump command"); store_files(1,&arg[0]); - bigint nstep = force->bnumeric(FLERR,arg[1]); + bigint nstep = utils::bnumeric(FLERR,arg[1],false,lmp); int nremain = narg - 2; if (nremain) nremain = fields_and_keywords(nremain,&arg[narg-nremain]); @@ -1217,7 +1217,7 @@ int ReadDump::fields_and_keywords(int narg, char **arg) while (iarg < narg) { if (strcmp(arg[iarg],"nfile") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal read_dump command"); - multiproc_nfile = force->inumeric(FLERR,arg[iarg+1]); + multiproc_nfile = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"box") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal read_dump command"); diff --git a/src/reader_xyz.cpp b/src/reader_xyz.cpp index a5209956b9..ad8cb0cc6e 100644 --- a/src/reader_xyz.cpp +++ b/src/reader_xyz.cpp @@ -65,7 +65,7 @@ int ReaderXYZ::read_time(bigint &ntimestep) break; } } - natoms = force->bnumeric(FLERR,line); + natoms = utils::bnumeric(FLERR,line,false,lmp); if (natoms < 1) error->one(FLERR,"Dump file is incorrectly formatted"); diff --git a/src/region.cpp b/src/region.cpp index 7a676de1af..8a6ec3305a 100644 --- a/src/region.cpp +++ b/src/region.cpp @@ -365,18 +365,18 @@ void Region::options(int narg, char **arg) int n = strlen(&arg[iarg+1][2]) + 1; tstr = new char[n]; strcpy(tstr,&arg[iarg+1][2]); - point[0] = force->numeric(FLERR,arg[iarg+2]); - point[1] = force->numeric(FLERR,arg[iarg+3]); - point[2] = force->numeric(FLERR,arg[iarg+4]); - axis[0] = force->numeric(FLERR,arg[iarg+5]); - axis[1] = force->numeric(FLERR,arg[iarg+6]); - axis[2] = force->numeric(FLERR,arg[iarg+7]); + point[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + point[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + point[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); + axis[0] = utils::numeric(FLERR,arg[iarg+5],false,lmp); + axis[1] = utils::numeric(FLERR,arg[iarg+6],false,lmp); + axis[2] = utils::numeric(FLERR,arg[iarg+7],false,lmp); rotateflag = 1; iarg += 8; } else if (strcmp(arg[iarg],"open") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal region command"); - int iface = force->inumeric(FLERR,arg[iarg+1]); + int iface = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (iface < 1 || iface > 6) error->all(FLERR,"Illegal region command"); // additional checks on valid face index are done by region classes open_faces[iface-1] = 1; diff --git a/src/region_block.cpp b/src/region_block.cpp index 8ea8b3f202..e06c05d1a7 100644 --- a/src/region_block.cpp +++ b/src/region_block.cpp @@ -34,7 +34,7 @@ RegBlock::RegBlock(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) if (strcmp(arg[2],"INF") == 0) xlo = -BIG; else if (domain->triclinic == 0) xlo = domain->boxlo[0]; else xlo = domain->boxlo_bound[0]; - } else xlo = xscale*force->numeric(FLERR,arg[2]); + } else xlo = xscale*utils::numeric(FLERR,arg[2],false,lmp); if (strcmp(arg[3],"INF") == 0 || strcmp(arg[3],"EDGE") == 0) { if (domain->box_exist == 0) @@ -42,7 +42,7 @@ RegBlock::RegBlock(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) if (strcmp(arg[3],"INF") == 0) xhi = BIG; else if (domain->triclinic == 0) xhi = domain->boxhi[0]; else xhi = domain->boxhi_bound[0]; - } else xhi = xscale*force->numeric(FLERR,arg[3]); + } else xhi = xscale*utils::numeric(FLERR,arg[3],false,lmp); if (strcmp(arg[4],"INF") == 0 || strcmp(arg[4],"EDGE") == 0) { if (domain->box_exist == 0) @@ -50,7 +50,7 @@ RegBlock::RegBlock(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) if (strcmp(arg[4],"INF") == 0) ylo = -BIG; else if (domain->triclinic == 0) ylo = domain->boxlo[1]; else ylo = domain->boxlo_bound[1]; - } else ylo = yscale*force->numeric(FLERR,arg[4]); + } else ylo = yscale*utils::numeric(FLERR,arg[4],false,lmp); if (strcmp(arg[5],"INF") == 0 || strcmp(arg[5],"EDGE") == 0) { if (domain->box_exist == 0) @@ -58,7 +58,7 @@ RegBlock::RegBlock(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) if (strcmp(arg[5],"INF") == 0) yhi = BIG; else if (domain->triclinic == 0) yhi = domain->boxhi[1]; else yhi = domain->boxhi_bound[1]; - } else yhi = yscale*force->numeric(FLERR,arg[5]); + } else yhi = yscale*utils::numeric(FLERR,arg[5],false,lmp); if (strcmp(arg[6],"INF") == 0 || strcmp(arg[6],"EDGE") == 0) { if (domain->box_exist == 0) @@ -66,7 +66,7 @@ RegBlock::RegBlock(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) if (strcmp(arg[6],"INF") == 0) zlo = -BIG; else if (domain->triclinic == 0) zlo = domain->boxlo[2]; else zlo = domain->boxlo_bound[2]; - } else zlo = zscale*force->numeric(FLERR,arg[6]); + } else zlo = zscale*utils::numeric(FLERR,arg[6],false,lmp); if (strcmp(arg[7],"INF") == 0 || strcmp(arg[7],"EDGE") == 0) { if (domain->box_exist == 0) @@ -74,7 +74,7 @@ RegBlock::RegBlock(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) if (strcmp(arg[7],"INF") == 0) zhi = BIG; else if (domain->triclinic == 0) zhi = domain->boxhi[2]; else zhi = domain->boxhi_bound[2]; - } else zhi = zscale*force->numeric(FLERR,arg[7]); + } else zhi = zscale*utils::numeric(FLERR,arg[7],false,lmp); // error check diff --git a/src/region_cone.cpp b/src/region_cone.cpp index 3c7d0a29d8..400fb07229 100644 --- a/src/region_cone.cpp +++ b/src/region_cone.cpp @@ -43,20 +43,20 @@ RegCone::RegCone(LAMMPS *lmp, int narg, char **arg) : axis = arg[2][0]; if (axis == 'x') { - c1 = yscale*force->numeric(FLERR,arg[3]); - c2 = zscale*force->numeric(FLERR,arg[4]); - radiuslo = yscale*force->numeric(FLERR,arg[5]); - radiushi = yscale*force->numeric(FLERR,arg[6]); + c1 = yscale*utils::numeric(FLERR,arg[3],false,lmp); + c2 = zscale*utils::numeric(FLERR,arg[4],false,lmp); + radiuslo = yscale*utils::numeric(FLERR,arg[5],false,lmp); + radiushi = yscale*utils::numeric(FLERR,arg[6],false,lmp); } else if (axis == 'y') { - c1 = xscale*force->numeric(FLERR,arg[3]); - c2 = zscale*force->numeric(FLERR,arg[4]); - radiuslo = xscale*force->numeric(FLERR,arg[5]); - radiushi = xscale*force->numeric(FLERR,arg[6]); + c1 = xscale*utils::numeric(FLERR,arg[3],false,lmp); + c2 = zscale*utils::numeric(FLERR,arg[4],false,lmp); + radiuslo = xscale*utils::numeric(FLERR,arg[5],false,lmp); + radiushi = xscale*utils::numeric(FLERR,arg[6],false,lmp); } else if (axis == 'z') { - c1 = xscale*force->numeric(FLERR,arg[3]); - c2 = yscale*force->numeric(FLERR,arg[4]); - radiuslo = xscale*force->numeric(FLERR,arg[5]); - radiushi = xscale*force->numeric(FLERR,arg[6]); + c1 = xscale*utils::numeric(FLERR,arg[3],false,lmp); + c2 = yscale*utils::numeric(FLERR,arg[4],false,lmp); + radiuslo = xscale*utils::numeric(FLERR,arg[5],false,lmp); + radiushi = xscale*utils::numeric(FLERR,arg[6],false,lmp); } if (strcmp(arg[7],"INF") == 0 || strcmp(arg[7],"EDGE") == 0) { @@ -78,9 +78,9 @@ RegCone::RegCone(LAMMPS *lmp, int narg, char **arg) : else lo = domain->boxlo_bound[2]; } } else { - if (axis == 'x') lo = xscale*force->numeric(FLERR,arg[7]); - if (axis == 'y') lo = yscale*force->numeric(FLERR,arg[7]); - if (axis == 'z') lo = zscale*force->numeric(FLERR,arg[7]); + if (axis == 'x') lo = xscale*utils::numeric(FLERR,arg[7],false,lmp); + if (axis == 'y') lo = yscale*utils::numeric(FLERR,arg[7],false,lmp); + if (axis == 'z') lo = zscale*utils::numeric(FLERR,arg[7],false,lmp); } if (strcmp(arg[8],"INF") == 0 || strcmp(arg[7],"EDGE") == 0) { @@ -102,9 +102,9 @@ RegCone::RegCone(LAMMPS *lmp, int narg, char **arg) : else hi = domain->boxhi_bound[2]; } } else { - if (axis == 'x') hi = xscale*force->numeric(FLERR,arg[8]); - if (axis == 'y') hi = yscale*force->numeric(FLERR,arg[8]); - if (axis == 'z') hi = zscale*force->numeric(FLERR,arg[8]); + if (axis == 'x') hi = xscale*utils::numeric(FLERR,arg[8],false,lmp); + if (axis == 'y') hi = yscale*utils::numeric(FLERR,arg[8],false,lmp); + if (axis == 'z') hi = zscale*utils::numeric(FLERR,arg[8],false,lmp); } // error check diff --git a/src/region_cylinder.cpp b/src/region_cylinder.cpp index b2c06270d0..dc1584a96b 100644 --- a/src/region_cylinder.cpp +++ b/src/region_cylinder.cpp @@ -51,7 +51,7 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : c1style = VARIABLE; varshape = 1; } else { - c1 = yscale*force->numeric(FLERR,arg[3]); + c1 = yscale*utils::numeric(FLERR,arg[3],false,lmp); c1style = CONSTANT; } if (strstr(arg[4],"v_") == arg[4]) { @@ -62,7 +62,7 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : c2style = VARIABLE; varshape = 1; } else { - c2 = zscale*force->numeric(FLERR,arg[4]); + c2 = zscale*utils::numeric(FLERR,arg[4],false,lmp); c2style = CONSTANT; } } else if (axis == 'y') { @@ -74,7 +74,7 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : c1style = VARIABLE; varshape = 1; } else { - c1 = xscale*force->numeric(FLERR,arg[3]); + c1 = xscale*utils::numeric(FLERR,arg[3],false,lmp); c1style = CONSTANT; } if (strstr(arg[4],"v_") == arg[4]) { @@ -85,7 +85,7 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : c2style = VARIABLE; varshape = 1; } else { - c2 = zscale*force->numeric(FLERR,arg[4]); + c2 = zscale*utils::numeric(FLERR,arg[4],false,lmp); c2style = CONSTANT; } } else if (axis == 'z') { @@ -97,7 +97,7 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : c1style = VARIABLE; varshape = 1; } else { - c1 = xscale*force->numeric(FLERR,arg[3]); + c1 = xscale*utils::numeric(FLERR,arg[3],false,lmp); c1style = CONSTANT; } if (strstr(arg[4],"v_") == arg[4]) { @@ -108,7 +108,7 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : c2style = VARIABLE; varshape = 1; } else { - c2 = yscale*force->numeric(FLERR,arg[4]); + c2 = yscale*utils::numeric(FLERR,arg[4],false,lmp); c2style = CONSTANT; } } @@ -121,7 +121,7 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : rstyle = VARIABLE; varshape = 1; } else { - radius = force->numeric(FLERR,arg[5]); + radius = utils::numeric(FLERR,arg[5],false,lmp); if (axis == 'x') radius *= yscale; else radius *= xscale; rstyle = CONSTANT; @@ -151,9 +151,9 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : else lo = domain->boxlo_bound[2]; } } else { - if (axis == 'x') lo = xscale*force->numeric(FLERR,arg[6]); - if (axis == 'y') lo = yscale*force->numeric(FLERR,arg[6]); - if (axis == 'z') lo = zscale*force->numeric(FLERR,arg[6]); + if (axis == 'x') lo = xscale*utils::numeric(FLERR,arg[6],false,lmp); + if (axis == 'y') lo = yscale*utils::numeric(FLERR,arg[6],false,lmp); + if (axis == 'z') lo = zscale*utils::numeric(FLERR,arg[6],false,lmp); } if (strcmp(arg[7],"INF") == 0 || strcmp(arg[7],"EDGE") == 0) { @@ -175,9 +175,9 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : else hi = domain->boxhi_bound[2]; } } else { - if (axis == 'x') hi = xscale*force->numeric(FLERR,arg[7]); - if (axis == 'y') hi = yscale*force->numeric(FLERR,arg[7]); - if (axis == 'z') hi = zscale*force->numeric(FLERR,arg[7]); + if (axis == 'x') hi = xscale*utils::numeric(FLERR,arg[7],false,lmp); + if (axis == 'y') hi = yscale*utils::numeric(FLERR,arg[7],false,lmp); + if (axis == 'z') hi = zscale*utils::numeric(FLERR,arg[7],false,lmp); } // error check diff --git a/src/region_intersect.cpp b/src/region_intersect.cpp index fe074a6b4c..4096657d30 100644 --- a/src/region_intersect.cpp +++ b/src/region_intersect.cpp @@ -27,7 +27,7 @@ RegIntersect::RegIntersect(LAMMPS *lmp, int narg, char **arg) : nregion = 0; if (narg < 5) error->all(FLERR,"Illegal region command"); - int n = force->inumeric(FLERR,arg[2]); + int n = utils::inumeric(FLERR,arg[2],false,lmp); if (n < 2) error->all(FLERR,"Illegal region command"); options(narg-(n+3),&arg[n+3]); diff --git a/src/region_plane.cpp b/src/region_plane.cpp index 85671357ef..bf12f3cd91 100644 --- a/src/region_plane.cpp +++ b/src/region_plane.cpp @@ -25,12 +25,12 @@ RegPlane::RegPlane(LAMMPS *lmp, int narg, char **arg) : { options(narg-8,&arg[8]); - xp = xscale*force->numeric(FLERR,arg[2]); - yp = yscale*force->numeric(FLERR,arg[3]); - zp = zscale*force->numeric(FLERR,arg[4]); - normal[0] = xscale*force->numeric(FLERR,arg[5]); - normal[1] = yscale*force->numeric(FLERR,arg[6]); - normal[2] = zscale*force->numeric(FLERR,arg[7]); + xp = xscale*utils::numeric(FLERR,arg[2],false,lmp); + yp = yscale*utils::numeric(FLERR,arg[3],false,lmp); + zp = zscale*utils::numeric(FLERR,arg[4],false,lmp); + normal[0] = xscale*utils::numeric(FLERR,arg[5],false,lmp); + normal[1] = yscale*utils::numeric(FLERR,arg[6],false,lmp); + normal[2] = zscale*utils::numeric(FLERR,arg[7],false,lmp); // enforce unit normal diff --git a/src/region_prism.cpp b/src/region_prism.cpp index b6c54c2fb9..5d7c5bce1f 100644 --- a/src/region_prism.cpp +++ b/src/region_prism.cpp @@ -37,46 +37,46 @@ RegPrism::RegPrism(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) error->all(FLERR,"Cannot use region INF or EDGE when box does not exist"); if (strcmp(arg[2],"INF") == 0) xlo = -BIG; else xlo = domain->boxlo[0]; - } else xlo = xscale*force->numeric(FLERR,arg[2]); + } else xlo = xscale*utils::numeric(FLERR,arg[2],false,lmp); if (strcmp(arg[3],"INF") == 0 || strcmp(arg[3],"EDGE") == 0) { if (domain->box_exist == 0) error->all(FLERR,"Cannot use region INF or EDGE when box does not exist"); if (strcmp(arg[3],"INF") == 0) xhi = BIG; else xhi = domain->boxhi[0]; - } else xhi = xscale*force->numeric(FLERR,arg[3]); + } else xhi = xscale*utils::numeric(FLERR,arg[3],false,lmp); if (strcmp(arg[4],"INF") == 0 || strcmp(arg[4],"EDGE") == 0) { if (domain->box_exist == 0) error->all(FLERR,"Cannot use region INF or EDGE when box does not exist"); if (strcmp(arg[4],"INF") == 0) ylo = -BIG; else ylo = domain->boxlo[1]; - } else ylo = yscale*force->numeric(FLERR,arg[4]); + } else ylo = yscale*utils::numeric(FLERR,arg[4],false,lmp); if (strcmp(arg[5],"INF") == 0 || strcmp(arg[5],"EDGE") == 0) { if (domain->box_exist == 0) error->all(FLERR,"Cannot use region INF or EDGE when box does not exist"); if (strcmp(arg[5],"INF") == 0) yhi = BIG; else yhi = domain->boxhi[1]; - } else yhi = yscale*force->numeric(FLERR,arg[5]); + } else yhi = yscale*utils::numeric(FLERR,arg[5],false,lmp); if (strcmp(arg[6],"INF") == 0 || strcmp(arg[6],"EDGE") == 0) { if (domain->box_exist == 0) error->all(FLERR,"Cannot use region INF or EDGE when box does not exist"); if (strcmp(arg[6],"INF") == 0) zlo = -BIG; else zlo = domain->boxlo[2]; - } else zlo = zscale*force->numeric(FLERR,arg[6]); + } else zlo = zscale*utils::numeric(FLERR,arg[6],false,lmp); if (strcmp(arg[7],"INF") == 0 || strcmp(arg[7],"EDGE") == 0) { if (domain->box_exist == 0) error->all(FLERR,"Cannot use region INF or EDGE when box does not exist"); if (strcmp(arg[7],"INF") == 0) zhi = BIG; else zhi = domain->boxhi[2]; - } else zhi = zscale*force->numeric(FLERR,arg[7]); + } else zhi = zscale*utils::numeric(FLERR,arg[7],false,lmp); - xy = xscale*force->numeric(FLERR,arg[8]); - xz = xscale*force->numeric(FLERR,arg[9]); - yz = yscale*force->numeric(FLERR,arg[10]); + xy = xscale*utils::numeric(FLERR,arg[8],false,lmp); + xz = xscale*utils::numeric(FLERR,arg[9],false,lmp); + yz = yscale*utils::numeric(FLERR,arg[10],false,lmp); // error check // prism cannot be 0 thickness in any dim, else inverse blows up diff --git a/src/region_sphere.cpp b/src/region_sphere.cpp index bf874ad311..44db951fde 100644 --- a/src/region_sphere.cpp +++ b/src/region_sphere.cpp @@ -39,7 +39,7 @@ RegSphere::RegSphere(LAMMPS *lmp, int narg, char **arg) : xstyle = VARIABLE; varshape = 1; } else { - xc = xscale*force->numeric(FLERR,arg[2]); + xc = xscale*utils::numeric(FLERR,arg[2],false,lmp); xstyle = CONSTANT; } @@ -51,7 +51,7 @@ RegSphere::RegSphere(LAMMPS *lmp, int narg, char **arg) : ystyle = VARIABLE; varshape = 1; } else { - yc = yscale*force->numeric(FLERR,arg[3]); + yc = yscale*utils::numeric(FLERR,arg[3],false,lmp); ystyle = CONSTANT; } @@ -63,7 +63,7 @@ RegSphere::RegSphere(LAMMPS *lmp, int narg, char **arg) : zstyle = VARIABLE; varshape = 1; } else { - zc = zscale*force->numeric(FLERR,arg[4]); + zc = zscale*utils::numeric(FLERR,arg[4],false,lmp); zstyle = CONSTANT; } @@ -75,7 +75,7 @@ RegSphere::RegSphere(LAMMPS *lmp, int narg, char **arg) : rstyle = VARIABLE; varshape = 1; } else { - radius = xscale*force->numeric(FLERR,arg[5]); + radius = xscale*utils::numeric(FLERR,arg[5],false,lmp); rstyle = CONSTANT; } diff --git a/src/region_union.cpp b/src/region_union.cpp index be1fe6eeff..30f563df2c 100644 --- a/src/region_union.cpp +++ b/src/region_union.cpp @@ -28,7 +28,7 @@ RegUnion::RegUnion(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg), { nregion = 0; if (narg < 5) error->all(FLERR,"Illegal region command"); - int n = force->inumeric(FLERR,arg[2]); + int n = utils::inumeric(FLERR,arg[2],false,lmp); if (n < 2) error->all(FLERR,"Illegal region command"); options(narg-(n+3),&arg[n+3]); diff --git a/src/replicate.cpp b/src/replicate.cpp index 6fe37bc600..9c915d08c0 100644 --- a/src/replicate.cpp +++ b/src/replicate.cpp @@ -52,9 +52,9 @@ void Replicate::command(int narg, char **arg) // nrep = total # of replications - int nx = force->inumeric(FLERR,arg[0]); - int ny = force->inumeric(FLERR,arg[1]); - int nz = force->inumeric(FLERR,arg[2]); + int nx = utils::inumeric(FLERR,arg[0],false,lmp); + int ny = utils::inumeric(FLERR,arg[1],false,lmp); + int nz = utils::inumeric(FLERR,arg[2],false,lmp); int nrep = nx*ny*nz; int bbox_flag = 0; diff --git a/src/rerun.cpp b/src/rerun.cpp index 3cd1c53628..a63fd1ea55 100644 --- a/src/rerun.cpp +++ b/src/rerun.cpp @@ -70,34 +70,34 @@ void Rerun::command(int narg, char **arg) while (iarg < narg) { if (strcmp(arg[iarg],"first") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal rerun command"); - first = force->bnumeric(FLERR,arg[iarg+1]); + first = utils::bnumeric(FLERR,arg[iarg+1],false,lmp); if (first < 0) error->all(FLERR,"Illegal rerun command"); iarg += 2; } else if (strcmp(arg[iarg],"last") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal rerun command"); - last = force->bnumeric(FLERR,arg[iarg+1]); + last = utils::bnumeric(FLERR,arg[iarg+1],false,lmp); if (last < 0) error->all(FLERR,"Illegal rerun command"); iarg += 2; } else if (strcmp(arg[iarg],"every") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal rerun command"); - nevery = force->inumeric(FLERR,arg[iarg+1]); + nevery = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nevery < 0) error->all(FLERR,"Illegal rerun command"); iarg += 2; } else if (strcmp(arg[iarg],"skip") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal rerun command"); - nskip = force->inumeric(FLERR,arg[iarg+1]); + nskip = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nskip <= 0) error->all(FLERR,"Illegal rerun command"); iarg += 2; } else if (strcmp(arg[iarg],"start") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal rerun command"); startflag = 1; - start = force->bnumeric(FLERR,arg[iarg+1]); + start = utils::bnumeric(FLERR,arg[iarg+1],false,lmp); if (start < 0) error->all(FLERR,"Illegal rerun command"); iarg += 2; } else if (strcmp(arg[iarg],"stop") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal rerun command"); stopflag = 1; - stop = force->bnumeric(FLERR,arg[iarg+1]); + stop = utils::bnumeric(FLERR,arg[iarg+1],false,lmp); if (stop < 0) error->all(FLERR,"Illegal rerun command"); iarg += 2; } else if (strcmp(arg[iarg],"dump") == 0) { diff --git a/src/respa.cpp b/src/respa.cpp index f894333e39..1dcc4b898a 100644 --- a/src/respa.cpp +++ b/src/respa.cpp @@ -53,13 +53,13 @@ Respa::Respa(LAMMPS *lmp, int narg, char **arg) : nhybrid_styles = 0; if (narg < 1) error->all(FLERR,"Illegal run_style respa command"); - nlevels = force->inumeric(FLERR,arg[0]); + nlevels = utils::inumeric(FLERR,arg[0],false,lmp); if (nlevels < 1) error->all(FLERR,"Respa levels must be >= 1"); if (narg < nlevels) error->all(FLERR,"Illegal run_style respa command"); loop = new int[nlevels]; for (int iarg = 1; iarg < nlevels; iarg++) { - loop[iarg-1] = force->inumeric(FLERR,arg[iarg]); + loop[iarg-1] = utils::inumeric(FLERR,arg[iarg],false,lmp); if (loop[iarg-1] <= 0) error->all(FLERR,"Illegal run_style respa command"); } loop[nlevels-1] = 1; @@ -81,43 +81,43 @@ Respa::Respa(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"bond") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal run_style respa command"); - level_bond = force->inumeric(FLERR,arg[iarg+1]) - 1; + level_bond = utils::inumeric(FLERR,arg[iarg+1],false,lmp) - 1; iarg += 2; } else if (strcmp(arg[iarg],"angle") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal run_style respa command"); - level_angle = force->inumeric(FLERR,arg[iarg+1]) - 1; + level_angle = utils::inumeric(FLERR,arg[iarg+1],false,lmp) - 1; iarg += 2; } else if (strcmp(arg[iarg],"dihedral") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal run_style respa command"); - level_dihedral = force->inumeric(FLERR,arg[iarg+1]) - 1; + level_dihedral = utils::inumeric(FLERR,arg[iarg+1],false,lmp) - 1; iarg += 2; } else if (strcmp(arg[iarg],"improper") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal run_style respa command"); - level_improper = force->inumeric(FLERR,arg[iarg+1]) - 1; + level_improper = utils::inumeric(FLERR,arg[iarg+1],false,lmp) - 1; iarg += 2; } else if (strcmp(arg[iarg],"pair") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal run_style respa command"); - level_pair = force->inumeric(FLERR,arg[iarg+1]) - 1; + level_pair = utils::inumeric(FLERR,arg[iarg+1],false,lmp) - 1; iarg += 2; } else if (strcmp(arg[iarg],"inner") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal run_style respa command"); - level_inner = force->inumeric(FLERR,arg[iarg+1]) - 1; - cutoff[0] = force->numeric(FLERR,arg[iarg+2]); - cutoff[1] = force->numeric(FLERR,arg[iarg+3]); + level_inner = utils::inumeric(FLERR,arg[iarg+1],false,lmp) - 1; + cutoff[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + cutoff[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"middle") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal run_style respa command"); - level_middle = force->inumeric(FLERR,arg[iarg+1]) - 1; - cutoff[2] = force->numeric(FLERR,arg[iarg+2]); - cutoff[3] = force->numeric(FLERR,arg[iarg+3]); + level_middle = utils::inumeric(FLERR,arg[iarg+1],false,lmp) - 1; + cutoff[2] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + cutoff[3] = utils::numeric(FLERR,arg[iarg+3],false,lmp); iarg += 4; } else if (strcmp(arg[iarg],"outer") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal run_style respa command"); - level_outer = force->inumeric(FLERR,arg[iarg+1]) - 1; + level_outer = utils::inumeric(FLERR,arg[iarg+1],false,lmp) - 1; iarg += 2; } else if (strcmp(arg[iarg],"kspace") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal run_style respa command"); - level_kspace = force->inumeric(FLERR,arg[iarg+1]) - 1; + level_kspace = utils::inumeric(FLERR,arg[iarg+1],false,lmp) - 1; iarg += 2; } else if (strcmp(arg[iarg],"hybrid") == 0) { // the hybrid keyword requires a hybrid pair style @@ -132,7 +132,7 @@ Respa::Respa(LAMMPS *lmp, int narg, char **arg) : hybrid_compute = new int[nhybrid_styles]; for (int i=0; i < nhybrid_styles; ++i) { ++iarg; - hybrid_level[i] = force->inumeric(FLERR,arg[iarg])-1; + hybrid_level[i] = utils::inumeric(FLERR,arg[iarg],false,lmp)-1; } ++iarg; } else error->all(FLERR,"Illegal run_style respa command"); diff --git a/src/run.cpp b/src/run.cpp index 2c2f00a7a8..91e2db5c6b 100644 --- a/src/run.cpp +++ b/src/run.cpp @@ -45,7 +45,7 @@ void Run::command(int narg, char **arg) if (timer->is_timeout()) return; - bigint nsteps_input = force->bnumeric(FLERR,arg[0]); + bigint nsteps_input = utils::bnumeric(FLERR,arg[0],false,lmp); // parse optional args @@ -68,12 +68,12 @@ void Run::command(int narg, char **arg) } else if (strcmp(arg[iarg],"start") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal run command"); startflag = 1; - start = force->bnumeric(FLERR,arg[iarg+1]); + start = utils::bnumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"stop") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal run command"); stopflag = 1; - stop = force->bnumeric(FLERR,arg[iarg+1]); + stop = utils::bnumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"pre") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal run command"); @@ -94,7 +94,7 @@ void Run::command(int narg, char **arg) } else if (strcmp(arg[iarg],"every") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal run command"); - nevery = force->inumeric(FLERR,arg[iarg+1]); + nevery = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nevery <= 0) error->all(FLERR,"Illegal run command"); first = iarg+2; last = narg-1; diff --git a/src/set.cpp b/src/set.cpp index 22121c0b72..f18746652e 100644 --- a/src/set.cpp +++ b/src/set.cpp @@ -95,15 +95,15 @@ void Set::command(int narg, char **arg) if (strcmp(arg[iarg],"type") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else ivalue = force->inumeric(FLERR,arg[iarg+1]); + else ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); set(TYPE); iarg += 2; } else if (strcmp(arg[iarg],"type/fraction") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal set command"); - newtype = force->inumeric(FLERR,arg[iarg+1]); - fraction = force->numeric(FLERR,arg[iarg+2]); - ivalue = force->inumeric(FLERR,arg[iarg+3]); + newtype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + fraction = utils::numeric(FLERR,arg[iarg+2],false,lmp); + ivalue = utils::inumeric(FLERR,arg[iarg+3],false,lmp); if (newtype <= 0 || newtype > atom->ntypes) error->all(FLERR,"Invalid value in set command"); if (fraction < 0.0 || fraction > 1.0) @@ -115,9 +115,9 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"type/ratio") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal set command"); - newtype = force->inumeric(FLERR,arg[iarg+1]); - fraction = force->numeric(FLERR,arg[iarg+2]); - ivalue = force->inumeric(FLERR,arg[iarg+3]); + newtype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + fraction = utils::numeric(FLERR,arg[iarg+2],false,lmp); + ivalue = utils::inumeric(FLERR,arg[iarg+3],false,lmp); if (newtype <= 0 || newtype > atom->ntypes) error->all(FLERR,"Invalid value in set command"); if (fraction < 0.0 || fraction > 1.0) @@ -129,9 +129,9 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"type/subset") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal set command"); - newtype = force->inumeric(FLERR,arg[iarg+1]); - nsubset = force->bnumeric(FLERR,arg[iarg+2]); - ivalue = force->inumeric(FLERR,arg[iarg+3]); + newtype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + nsubset = utils::bnumeric(FLERR,arg[iarg+2],false,lmp); + ivalue = utils::inumeric(FLERR,arg[iarg+3],false,lmp); if (newtype <= 0 || newtype > atom->ntypes) error->all(FLERR,"Invalid value in set command"); if (nsubset < 0) @@ -144,7 +144,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"mol") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else ivalue = force->inumeric(FLERR,arg[iarg+1]); + else ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (!atom->molecule_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(MOLECULE); @@ -153,49 +153,49 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"x") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); set(X); iarg += 2; } else if (strcmp(arg[iarg],"y") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); set(Y); iarg += 2; } else if (strcmp(arg[iarg],"z") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); set(Z); iarg += 2; } else if (strcmp(arg[iarg],"vx") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); set(VX); iarg += 2; } else if (strcmp(arg[iarg],"vy") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); set(VY); iarg += 2; } else if (strcmp(arg[iarg],"vz") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); set(VZ); iarg += 2; } else if (strcmp(arg[iarg],"charge") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->q_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(CHARGE); @@ -204,7 +204,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"mass") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->rmass_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(MASS); @@ -213,11 +213,11 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"shape") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else xvalue = force->numeric(FLERR,arg[iarg+1]); + else xvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) varparse(arg[iarg+2],2); - else yvalue = force->numeric(FLERR,arg[iarg+2]); + else yvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) varparse(arg[iarg+3],3); - else zvalue = force->numeric(FLERR,arg[iarg+3]); + else zvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (!atom->ellipsoid_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(SHAPE); @@ -226,7 +226,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"length") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->line_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(LENGTH); @@ -235,7 +235,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"tri") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->tri_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(TRI); @@ -244,11 +244,11 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"dipole") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else xvalue = force->numeric(FLERR,arg[iarg+1]); + else xvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) varparse(arg[iarg+2],2); - else yvalue = force->numeric(FLERR,arg[iarg+2]); + else yvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) varparse(arg[iarg+3],3); - else zvalue = force->numeric(FLERR,arg[iarg+3]); + else zvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (!atom->mu_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(DIPOLE); @@ -256,8 +256,8 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"dipole/random") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal set command"); - ivalue = force->inumeric(FLERR,arg[iarg+1]); - dvalue = force->numeric(FLERR,arg[iarg+2]); + ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + dvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (!atom->mu_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); if (ivalue <= 0) @@ -270,13 +270,13 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"spin") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) varparse(arg[iarg+2],2); - else xvalue = force->numeric(FLERR,arg[iarg+2]); + else xvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) varparse(arg[iarg+3],3); - else yvalue = force->numeric(FLERR,arg[iarg+3]); + else yvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (strstr(arg[iarg+4],"v_") == arg[iarg+4]) varparse(arg[iarg+4],4); - else zvalue = force->numeric(FLERR,arg[iarg+4]); + else zvalue = utils::numeric(FLERR,arg[iarg+4],false,lmp); if (!atom->sp_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(SPIN); @@ -284,8 +284,8 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"spin/random") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal set command"); - ivalue = force->inumeric(FLERR,arg[iarg+1]); - dvalue = force->numeric(FLERR,arg[iarg+2]); + ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + dvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (!atom->sp_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); if (ivalue <= 0) @@ -298,13 +298,13 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"quat") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else xvalue = force->numeric(FLERR,arg[iarg+1]); + else xvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) varparse(arg[iarg+2],2); - else yvalue = force->numeric(FLERR,arg[iarg+2]); + else yvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) varparse(arg[iarg+3],3); - else zvalue = force->numeric(FLERR,arg[iarg+3]); + else zvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (strstr(arg[iarg+4],"v_") == arg[iarg+4]) varparse(arg[iarg+4],4); - else wvalue = force->numeric(FLERR,arg[iarg+4]); + else wvalue = utils::numeric(FLERR,arg[iarg+4],false,lmp); if (!atom->ellipsoid_flag && !atom->tri_flag && !atom->body_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(QUAT); @@ -312,7 +312,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"quat/random") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); - ivalue = force->inumeric(FLERR,arg[iarg+1]); + ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (!atom->ellipsoid_flag && !atom->tri_flag && !atom->body_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); if (ivalue <= 0) @@ -324,7 +324,7 @@ void Set::command(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); else { - dvalue = force->numeric(FLERR,arg[iarg+1]); + dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); dvalue *= MY_PI/180.0; } if (!atom->line_flag) @@ -334,7 +334,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"theta/random") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); - ivalue = force->inumeric(FLERR,arg[iarg+1]); + ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (!atom->line_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); if (ivalue <= 0) @@ -345,11 +345,11 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"angmom") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else xvalue = force->numeric(FLERR,arg[iarg+1]); + else xvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) varparse(arg[iarg+2],2); - else yvalue = force->numeric(FLERR,arg[iarg+2]); + else yvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) varparse(arg[iarg+3],3); - else zvalue = force->numeric(FLERR,arg[iarg+3]); + else zvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (!atom->angmom_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(ANGMOM); @@ -358,11 +358,11 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"omega") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else xvalue = force->numeric(FLERR,arg[iarg+1]); + else xvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) varparse(arg[iarg+2],2); - else yvalue = force->numeric(FLERR,arg[iarg+2]); + else yvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) varparse(arg[iarg+3],3); - else zvalue = force->numeric(FLERR,arg[iarg+3]); + else zvalue = utils::numeric(FLERR,arg[iarg+3],false,lmp); if (!atom->omega_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(OMEGA); @@ -371,7 +371,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"diameter") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->radius_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); set(DIAMETER); @@ -381,7 +381,7 @@ void Set::command(int narg, char **arg) (strcmp(arg[iarg],"density/disc") == 0)) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->rmass_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); if (dvalue <= 0.0) error->all(FLERR,"Invalid density in set command"); @@ -397,7 +397,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"volume") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->vfrac_flag) error->all(FLERR,"Cannot set this attribute for this atom style"); if (dvalue <= 0.0) error->all(FLERR,"Invalid volume in set command"); @@ -410,17 +410,17 @@ void Set::command(int narg, char **arg) if (strcmp(arg[iarg+1],"NULL") != 0) { ximageflag = 1; if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else ximage = force->inumeric(FLERR,arg[iarg+1]); + else ximage = utils::inumeric(FLERR,arg[iarg+1],false,lmp); } if (strcmp(arg[iarg+2],"NULL") != 0) { yimageflag = 1; if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) varparse(arg[iarg+2],2); - else yimage = force->inumeric(FLERR,arg[iarg+2]); + else yimage = utils::inumeric(FLERR,arg[iarg+2],false,lmp); } if (strcmp(arg[iarg+3],"NULL") != 0) { zimageflag = 1; if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) varparse(arg[iarg+3],3); - else zimage = force->inumeric(FLERR,arg[iarg+3]); + else zimage = utils::inumeric(FLERR,arg[iarg+3],false,lmp); } if (ximageflag && ximage && !domain->xperiodic) error->all(FLERR, @@ -436,7 +436,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"bond") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); - ivalue = force->inumeric(FLERR,arg[iarg+1]); + ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (atom->avec->bonds_allow == 0) error->all(FLERR,"Cannot set this attribute for this atom style"); if (ivalue <= 0 || ivalue > atom->nbondtypes) @@ -446,7 +446,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"angle") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); - ivalue = force->inumeric(FLERR,arg[iarg+1]); + ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (atom->avec->angles_allow == 0) error->all(FLERR,"Cannot set this attribute for this atom style"); if (ivalue <= 0 || ivalue > atom->nangletypes) @@ -456,7 +456,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"dihedral") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); - ivalue = force->inumeric(FLERR,arg[iarg+1]); + ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (atom->avec->dihedrals_allow == 0) error->all(FLERR,"Cannot set this attribute for this atom style"); if (ivalue <= 0 || ivalue > atom->ndihedraltypes) @@ -466,7 +466,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"improper") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); - ivalue = force->inumeric(FLERR,arg[iarg+1]); + ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (atom->avec->impropers_allow == 0) error->all(FLERR,"Cannot set this attribute for this atom style"); if (ivalue <= 0 || ivalue > atom->nimpropertypes) @@ -477,7 +477,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"sph/e") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->esph_flag) error->all(FLERR,"Cannot set meso/e for this atom style"); set(SPH_E); @@ -486,7 +486,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"sph/cv") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->cv_flag) error->all(FLERR,"Cannot set meso/cv for this atom style"); set(SPH_CV); @@ -495,7 +495,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"sph/rho") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->rho_flag) error->all(FLERR,"Cannot set meso/rho for this atom style"); set(SPH_RHO); @@ -506,7 +506,7 @@ void Set::command(int narg, char **arg) if (strcmp(arg[iarg+1],"NULL") == 0) dvalue = -1.0; else if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); else { - dvalue = force->numeric(FLERR,arg[iarg+1]); + dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (dvalue < 0.0) error->all(FLERR,"Illegal set command"); } if (!atom->edpd_flag) @@ -519,7 +519,7 @@ void Set::command(int narg, char **arg) if (strcmp(arg[iarg+1],"NULL") == 0) dvalue = -1.0; else if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); else { - dvalue = force->numeric(FLERR,arg[iarg+1]); + dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (dvalue < 0.0) error->all(FLERR,"Illegal set command"); } if (!atom->edpd_flag) @@ -532,8 +532,8 @@ void Set::command(int narg, char **arg) if (strcmp(arg[iarg+1],"NULL") == 0) dvalue = -1.0; else if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); else { - cc_index = force->inumeric(FLERR,arg[iarg+1]); - dvalue = force->numeric(FLERR,arg[iarg+2]); + cc_index = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + dvalue = utils::numeric(FLERR,arg[iarg+2],false,lmp); if (cc_index < 1) error->all(FLERR,"Illegal set command"); } if (!atom->tdpd_flag) @@ -544,7 +544,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"smd/mass/density") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->smd_flag) error->all(FLERR,"Cannot set smd/mass/density for this atom style"); set(SMD_MASS_DENSITY); @@ -553,7 +553,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"smd/contact/radius") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (!atom->smd_flag) error->all(FLERR,"Cannot set smd/contact/radius " "for this atom style"); @@ -565,7 +565,7 @@ void Set::command(int narg, char **arg) if (strcmp(arg[iarg+1],"NULL") == 0) dvalue = -1.0; else if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); else { - dvalue = force->numeric(FLERR,arg[iarg+1]); + dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); if (dvalue < 0.0) error->all(FLERR,"Illegal set command"); } if (!atom->dpd_flag) @@ -576,7 +576,7 @@ void Set::command(int narg, char **arg) } else if (strstr(arg[iarg],"i_") == arg[iarg]) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else ivalue = force->inumeric(FLERR,arg[iarg+1]); + else ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp); int flag; index_custom = atom->find_custom(&arg[iarg][2],flag); if (index_custom < 0 || flag != 0) @@ -587,7 +587,7 @@ void Set::command(int narg, char **arg) } else if (strstr(arg[iarg],"d_") == arg[iarg]) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); - else dvalue = force->numeric(FLERR,arg[iarg+1]); + else dvalue = utils::numeric(FLERR,arg[iarg+1],false,lmp); int flag; index_custom = atom->find_custom(&arg[iarg][2],flag); if (index_custom < 0 || flag != 1) diff --git a/src/thermo.cpp b/src/thermo.cpp index f608b25016..96de72b4ab 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -608,7 +608,7 @@ void Thermo::modify_params(int narg, char **arg) format_float_user = new char[n]; strcpy(format_float_user,arg[iarg+2]); } else { - int i = force->inumeric(FLERR,arg[iarg+1]) - 1; + int i = utils::inumeric(FLERR,arg[iarg+1],false,lmp) - 1; if (i < 0 || i >= nfield_initial+1) error->all(FLERR,"Illegal thermo_modify command"); if (format_column_user[i]) delete [] format_column_user[i]; diff --git a/src/timer.cpp b/src/timer.cpp index 97f0e8abab..b9124978a9 100644 --- a/src/timer.cpp +++ b/src/timer.cpp @@ -277,7 +277,7 @@ void Timer::modify_params(int narg, char **arg) } else if (strcmp(arg[iarg],"every") == 0) { ++iarg; if (iarg < narg) { - _checkfreq = force->inumeric(FLERR,arg[iarg]); + _checkfreq = utils::inumeric(FLERR,arg[iarg],false,lmp); if (_checkfreq <= 0) error->all(FLERR,"Illegal timers command"); } else error->all(FLERR,"Illegal timers command"); diff --git a/src/universe.cpp b/src/universe.cpp index 0fad232d2c..e920270c1e 100644 --- a/src/universe.cpp +++ b/src/universe.cpp @@ -84,7 +84,7 @@ void Universe::reorder(char *style, char *arg) if (uworld != uorig) MPI_Comm_free(&uworld); if (strcmp(style,"nth") == 0) { - int n = force->inumeric(FLERR,arg); + int n = utils::inumeric(FLERR,arg,false,lmp); if (n <= 0) error->universe_all(FLERR,"Invalid -reorder N value"); if (nprocs % n) diff --git a/src/update.cpp b/src/update.cpp index 612b4de409..a1c712c354 100644 --- a/src/update.cpp +++ b/src/update.cpp @@ -446,7 +446,7 @@ Min *Update::minimize_creator(LAMMPS *lmp) void Update::reset_timestep(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal reset_timestep command"); - bigint newstep = force->bnumeric(FLERR,arg[0]); + bigint newstep = utils::bnumeric(FLERR,arg[0],false,lmp); reset_timestep(newstep); } diff --git a/src/variable.cpp b/src/variable.cpp index 8eecc4690f..d16987984f 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -189,7 +189,7 @@ void Variable::set(int narg, char **arg) int nfirst = 0,nlast = 0; if (narg == 3 || (narg == 4 && strcmp(arg[3],"pad") == 0)) { nfirst = 1; - nlast = force->inumeric(FLERR,arg[2]); + nlast = utils::inumeric(FLERR,arg[2],false,lmp); if (nlast <= 0) error->all(FLERR,"Illegal variable command"); if (narg == 4 && strcmp(arg[3],"pad") == 0) { char digits[12]; @@ -197,8 +197,8 @@ void Variable::set(int narg, char **arg) pad[nvar] = strlen(digits); } else pad[nvar] = 0; } else if (narg == 4 || (narg == 5 && strcmp(arg[4],"pad") == 0)) { - nfirst = force->inumeric(FLERR,arg[2]); - nlast = force->inumeric(FLERR,arg[3]); + nfirst = utils::inumeric(FLERR,arg[2],false,lmp); + nlast = utils::inumeric(FLERR,arg[3],false,lmp); if (nfirst > nlast || nlast < 0) error->all(FLERR,"Illegal variable command"); if (narg == 5 && strcmp(arg[4],"pad") == 0) { @@ -252,7 +252,7 @@ void Variable::set(int narg, char **arg) if (find(arg[0]) >= 0) return; if (nvar == maxvar) grow(); style[nvar] = ULOOP; - num[nvar] = force->inumeric(FLERR,arg[2]); + num[nvar] = utils::inumeric(FLERR,arg[2],false,lmp); data[nvar] = new char*[1]; data[nvar][0] = NULL; if (narg == 4) { @@ -508,7 +508,7 @@ void Variable::set(int narg, char **arg) if (ivar >= 0) { if (style[ivar] != INTERNAL) error->all(FLERR,"Cannot redefine variable as a different style"); - dvalue[nvar] = force->numeric(FLERR,arg[2]); + dvalue[nvar] = utils::numeric(FLERR,arg[2],false,lmp); replaceflag = 1; } else { if (nvar == maxvar) grow(); @@ -518,7 +518,7 @@ void Variable::set(int narg, char **arg) pad[nvar] = 0; data[nvar] = new char*[num[nvar]]; data[nvar][0] = new char[VALUELENGTH]; - dvalue[nvar] = force->numeric(FLERR,arg[2]); + dvalue[nvar] = utils::numeric(FLERR,arg[2],false,lmp); } } else error->all(FLERR,"Illegal variable command"); @@ -5198,7 +5198,7 @@ int VarReader::read_peratom() if (n == 0) return 1; MPI_Bcast(str,n,MPI_CHAR,0,world); - bigint nlines = force->bnumeric(FLERR,str); + bigint nlines = utils::bnumeric(FLERR,str,false,lmp); tagint map_tag_max = atom->map_tag_max; bigint nread = 0; diff --git a/src/velocity.cpp b/src/velocity.cpp index c2776ea174..140a396926 100644 --- a/src/velocity.cpp +++ b/src/velocity.cpp @@ -127,8 +127,8 @@ void Velocity::command(int narg, char **arg) // create() invoked differently, so can be called externally if (style == CREATE) { - double t_desired = force->numeric(FLERR,arg[2]); - int seed = force->inumeric(FLERR,arg[3]); + double t_desired = utils::numeric(FLERR,arg[2],false,lmp); + int seed = utils::inumeric(FLERR,arg[3],false,lmp); create(t_desired,seed); } else if (style == SET) set(narg-2,&arg[2]); @@ -424,21 +424,21 @@ void Velocity::set(int /*narg*/, char **arg) xstr = new char[n]; strcpy(xstr,&arg[0][2]); } else if (strcmp(arg[0],"NULL") == 0) xstyle = NONE; - else vx = force->numeric(FLERR,arg[0]); + else vx = utils::numeric(FLERR,arg[0],false,lmp); if (strstr(arg[1],"v_") == arg[1]) { int n = strlen(&arg[1][2]) + 1; ystr = new char[n]; strcpy(ystr,&arg[1][2]); } else if (strcmp(arg[1],"NULL") == 0) ystyle = NONE; - else vy = force->numeric(FLERR,arg[1]); + else vy = utils::numeric(FLERR,arg[1],false,lmp); if (strstr(arg[2],"v_") == arg[2]) { int n = strlen(&arg[2][2]) + 1; zstr = new char[n]; strcpy(zstr,&arg[2][2]); } else if (strcmp(arg[2],"NULL") == 0) zstyle = NONE; - else vz = force->numeric(FLERR,arg[2]); + else vz = utils::numeric(FLERR,arg[2],false,lmp); // set and apply scale factors @@ -578,7 +578,7 @@ void Velocity::set(int /*narg*/, char **arg) void Velocity::scale(int /*narg*/, char **arg) { - double t_desired = force->numeric(FLERR,arg[0]); + double t_desired = utils::numeric(FLERR,arg[0],false,lmp); // if temperature = NULL, create a new ComputeTemp with the velocity group @@ -649,14 +649,14 @@ void Velocity::ramp(int /*narg*/, char **arg) double v_lo,v_hi; if (v_dim == 0) { - v_lo = xscale*force->numeric(FLERR,arg[1]); - v_hi = xscale*force->numeric(FLERR,arg[2]); + v_lo = xscale*utils::numeric(FLERR,arg[1],false,lmp); + v_hi = xscale*utils::numeric(FLERR,arg[2],false,lmp); } else if (v_dim == 1) { - v_lo = yscale*force->numeric(FLERR,arg[1]); - v_hi = yscale*force->numeric(FLERR,arg[2]); + v_lo = yscale*utils::numeric(FLERR,arg[1],false,lmp); + v_hi = yscale*utils::numeric(FLERR,arg[2],false,lmp); } else if (v_dim == 2) { - v_lo = zscale*force->numeric(FLERR,arg[1]); - v_hi = zscale*force->numeric(FLERR,arg[2]); + v_lo = zscale*utils::numeric(FLERR,arg[1],false,lmp); + v_hi = zscale*utils::numeric(FLERR,arg[2],false,lmp); } int coord_dim = 0; @@ -667,14 +667,14 @@ void Velocity::ramp(int /*narg*/, char **arg) double coord_lo,coord_hi; if (coord_dim == 0) { - coord_lo = xscale*force->numeric(FLERR,arg[4]); - coord_hi = xscale*force->numeric(FLERR,arg[5]); + coord_lo = xscale*utils::numeric(FLERR,arg[4],false,lmp); + coord_hi = xscale*utils::numeric(FLERR,arg[5],false,lmp); } else if (coord_dim == 1) { - coord_lo = yscale*force->numeric(FLERR,arg[4]); - coord_hi = yscale*force->numeric(FLERR,arg[5]); + coord_lo = yscale*utils::numeric(FLERR,arg[4],false,lmp); + coord_hi = yscale*utils::numeric(FLERR,arg[5],false,lmp); } else if (coord_dim == 2) { - coord_lo = zscale*force->numeric(FLERR,arg[4]); - coord_hi = zscale*force->numeric(FLERR,arg[5]); + coord_lo = zscale*utils::numeric(FLERR,arg[4],false,lmp); + coord_hi = zscale*utils::numeric(FLERR,arg[5],false,lmp); } // vramp = ramped velocity component for v_dim diff --git a/src/write_restart.cpp b/src/write_restart.cpp index 062add3b3c..22e993c37c 100644 --- a/src/write_restart.cpp +++ b/src/write_restart.cpp @@ -159,7 +159,7 @@ void WriteRestart::multiproc_options(int multiproc_caller, int mpiioflag_caller, if (!multiproc) error->all(FLERR,"Cannot use write_restart fileper " "without % in restart file name"); - int nper = force->inumeric(FLERR,arg[iarg+1]); + int nper = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nper <= 0) error->all(FLERR,"Illegal write_restart command"); multiproc = nprocs/nper; @@ -177,7 +177,7 @@ void WriteRestart::multiproc_options(int multiproc_caller, int mpiioflag_caller, if (!multiproc) error->all(FLERR,"Cannot use write_restart nfile " "without % in restart file name"); - int nfile = force->inumeric(FLERR,arg[iarg+1]); + int nfile = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (nfile <= 0) error->all(FLERR,"Illegal write_restart command"); nfile = MIN(nfile,nprocs); -- GitLab From 8601e608ca75b10cc2985c424e3cbbb67f58ae38 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 22:00:07 -0400 Subject: [PATCH 130/165] add unit tests for utils::bounds() and utils::boundsbig() --- unittest/utils/test_utils.cpp | 134 ++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/unittest/utils/test_utils.cpp b/unittest/utils/test_utils.cpp index 0a218e2596..20b06db911 100644 --- a/unittest/utils/test_utils.cpp +++ b/unittest/utils/test_utils.cpp @@ -25,6 +25,10 @@ using ::testing::EndsWith; using ::testing::Eq; using ::testing::StrEq; +#if !defined(FLERR) +#define FLERR __FILE__,__LINE__ +#endif + TEST(Utils, trim) { auto trimmed = utils::trim("\t some text"); @@ -362,6 +366,136 @@ TEST(Utils, strmatch_whitespace_nonwhitespace) ASSERT_TRUE(utils::strmatch(" 5.0 angles\n", "^\\s*\\S+\\s+\\S+\\s")); } +TEST(Utils, bounds_case1) +{ + int nlo, nhi; + + nlo = nhi = -1; + utils::bounds(FLERR, "9", 0, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,9); + ASSERT_EQ(nhi,9); + utils::bounds(FLERR, "1", 1, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,1); + ASSERT_EQ(nhi,1); +} + +TEST(Utils, bounds_case2) +{ + int nlo, nhi; + + nlo = nhi = -1; + utils::bounds(FLERR, "*", 0, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,0); + ASSERT_EQ(nhi,10); + utils::bounds(FLERR, "*", -10, 5, nlo, nhi, nullptr); + ASSERT_EQ(nlo,-10); + ASSERT_EQ(nhi,5); +} + +TEST(Utils, bounds_case3) +{ + int nlo, nhi; + + nlo = nhi = -1; + utils::bounds(FLERR, "2*", 0, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,2); + ASSERT_EQ(nhi,10); + utils::bounds(FLERR, "3*", -10, 5, nlo, nhi, nullptr); + ASSERT_EQ(nlo,3); + ASSERT_EQ(nhi,5); +} + +TEST(Utils, bounds_case4) +{ + int nlo, nhi; + + nlo = nhi = -1; + utils::bounds(FLERR, "*2", 0, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,0); + ASSERT_EQ(nhi,2); + utils::bounds(FLERR, "*3", -10, 5, nlo, nhi, nullptr); + ASSERT_EQ(nlo,-10); + ASSERT_EQ(nhi,3); +} + +TEST(Utils, bounds_case5) +{ + int nlo, nhi; + + nlo = nhi = -1; + utils::bounds(FLERR, "2*5", 0, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,2); + ASSERT_EQ(nhi,5); + utils::bounds(FLERR, "-2*3", -10, 5, nlo, nhi, nullptr); + ASSERT_EQ(nlo,-2); + ASSERT_EQ(nhi,3); +} + +TEST(Utils, boundsbig_case1) +{ + bigint nlo, nhi; + + nlo = nhi = -1; + utils::boundsbig(FLERR, "9", 0, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,9); + ASSERT_EQ(nhi,9); + utils::boundsbig(FLERR, "1", 1, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,1); + ASSERT_EQ(nhi,1); +} + +TEST(Utils, boundsbig_case2) +{ + bigint nlo, nhi; + + nlo = nhi = -1; + utils::boundsbig(FLERR, "*", 0, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,0); + ASSERT_EQ(nhi,10); + utils::boundsbig(FLERR, "*", -10, 5, nlo, nhi, nullptr); + ASSERT_EQ(nlo,-10); + ASSERT_EQ(nhi,5); +} + +TEST(Utils, boundsbig_case3) +{ + bigint nlo, nhi; + + nlo = nhi = -1; + utils::boundsbig(FLERR, "2*", 0, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,2); + ASSERT_EQ(nhi,10); + utils::boundsbig(FLERR, "3*", -10, 5, nlo, nhi, nullptr); + ASSERT_EQ(nlo,3); + ASSERT_EQ(nhi,5); +} + +TEST(Utils, boundsbig_case4) +{ + bigint nlo, nhi; + + nlo = nhi = -1; + utils::boundsbig(FLERR, "*2", 0, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,0); + ASSERT_EQ(nhi,2); + utils::boundsbig(FLERR, "*3", -10, 5, nlo, nhi, nullptr); + ASSERT_EQ(nlo,-10); + ASSERT_EQ(nhi,3); +} + +TEST(Utils, boundsbig_case5) +{ + bigint nlo, nhi; + + nlo = nhi = -1; + utils::boundsbig(FLERR, "2*5", 0, 10, nlo, nhi, nullptr); + ASSERT_EQ(nlo,2); + ASSERT_EQ(nhi,5); + utils::boundsbig(FLERR, "-2*3", -10, 5, nlo, nhi, nullptr); + ASSERT_EQ(nlo,-2); + ASSERT_EQ(nhi,3); +} + TEST(Utils, guesspath) { char buf[256]; -- GitLab From 7413dc783ea169cb22b26487eec6397266a2235f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 22:06:33 -0400 Subject: [PATCH 131/165] add tokenizer tests for splitting path environment variables --- unittest/utils/test_tokenizer.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/unittest/utils/test_tokenizer.cpp b/unittest/utils/test_tokenizer.cpp index 12e59cf83b..001b7095de 100644 --- a/unittest/utils/test_tokenizer.cpp +++ b/unittest/utils/test_tokenizer.cpp @@ -62,6 +62,28 @@ TEST(Tokenizer, iterate_words) ASSERT_EQ(t.count(), 2); } +TEST(Tokenizer, unix_paths) +{ + Tokenizer t(":one:two:three:", ":"); + ASSERT_EQ(t.count(), 3); + ASSERT_THAT(t.next(), Eq("one")); + ASSERT_THAT(t.next(), Eq("two")); + ASSERT_EQ(t.has_next(), true); + ASSERT_THAT(t.next(), Eq("three")); + ASSERT_EQ(t.has_next(), false); +} + +TEST(Tokenizer, windows_paths) +{ + Tokenizer t("c:\\one;\\two\\three;d:four;", ";"); + ASSERT_EQ(t.count(), 3); + ASSERT_THAT(t.next(), Eq("c:\\one")); + ASSERT_EQ(t.has_next(), true); + ASSERT_THAT(t.next(), Eq("\\two\\three")); + ASSERT_THAT(t.next(), Eq("d:four")); + ASSERT_EQ(t.has_next(), false); +} + TEST(Tokenizer, default_separators) { Tokenizer t(" \r\n test \t word \f"); -- GitLab From 05ff352021d6a29fd29046e37a5286aef6546eee Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 22:08:16 -0400 Subject: [PATCH 132/165] add utils::open_potential() function to utils namespace --- src/utils.cpp | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/utils.h | 18 +++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/src/utils.cpp b/src/utils.cpp index 46a369c02d..b6a6df9311 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -921,6 +921,62 @@ double utils::get_conversion_factor(const int property, const int conversion) return 0.0; } +/* ---------------------------------------------------------------------- + open a potential file as specified by name + if fails, search in dir specified by env variable LAMMPS_POTENTIALS +------------------------------------------------------------------------- */ + +FILE *utils::open_potential(const char *name, LAMMPS *lmp, int *auto_convert) +{ + auto error = lmp->error; + auto me = lmp->comm->me; + + std::string filepath = get_potential_file_path(name); + + if(!filepath.empty()) { + std::string unit_style = lmp->update->unit_style; + std::string date = get_potential_date(filepath, "potential"); + std::string units = get_potential_units(filepath, "potential"); + + if(!date.empty() && (me == 0)) { + logmesg(lmp, fmt::format("Reading potential file {} " + "with DATE: {}\n", name, date)); + } + + if (auto_convert == nullptr) { + if (!units.empty() && (units != unit_style) && (me == 0)) { + error->one(FLERR, fmt::format("Potential file {} requires {} units " + "but {} units are in use", name, units, + unit_style)); + return nullptr; + } + } else { + if (units.empty() || units == unit_style) { + *auto_convert = NOCONVERT; + } else { + if ((units == "metal") && (unit_style == "real") + && (*auto_convert & METAL2REAL)) { + *auto_convert = METAL2REAL; + } else if ((units == "real") && (unit_style == "metal") + && (*auto_convert & REAL2METAL)) { + *auto_convert = REAL2METAL; + } else { + error->one(FLERR, fmt::format("Potential file {} requires {} units " + "but {} units are in use", name, + units, unit_style)); + return nullptr; + } + } + if ((*auto_convert != NOCONVERT) && (me == 0)) + error->warning(FLERR, fmt::format("Converting potential file in " + "{} units to {} units", + units, unit_style)); + } + return fopen(filepath.c_str(), "r"); + } + return nullptr; +} + /* ---------------------------------------------------------------------- convert a timespec ([[HH:]MM:]SS) to seconds the strings "off" and "unlimited" result in -1.0; diff --git a/src/utils.h b/src/utils.h index 2fb3c839a5..2b647cfd87 100644 --- a/src/utils.h +++ b/src/utils.h @@ -367,6 +367,24 @@ and *nhi* according to the following five cases: */ double get_conversion_factor(const int property, const int conversion); + /** Open a potential file as specified by *name* + * +\verbatim embed:rst +If opening the file fails, it will search for it in the folder(s) +pointed to by the environment variable LAMMPS_POTENTIALS. + +If the potential file has a ``UNITS`` tag in the first line, its +value is compared to the current :doc:`unit style ` setting. +\endverbatim + * + * \param name file- or pathname of the potential file + * \param lmp pointer to top-level LAMMPS class instance + * \param auto_convert pointer to automatic unit conversion bitmask + * \return FILE pointer of the opened potential file or NULL + */ + FILE *open_potential(const char *name, LAMMPS *lmp, + int *auto_convert=nullptr); + /** Convert a time string to seconds * * The strings "off" and "unlimited" result in -1 -- GitLab From b06ba74d18f124e9fc4a88f6603c880290a0a282 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 22:09:07 -0400 Subject: [PATCH 133/165] support that LAMMPS_POTENTIALS is a real path variable with multiple entries, not just a single folder --- src/tokenizer.h | 14 +++++++------- src/utils.cpp | 25 +++++++++++++++++++------ 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/tokenizer.h b/src/tokenizer.h index cc77c8ee0d..30bb71276f 100644 --- a/src/tokenizer.h +++ b/src/tokenizer.h @@ -33,7 +33,7 @@ class Tokenizer { size_t start; size_t ntokens; public: - Tokenizer(const std::string & str, const std::string & separators = TOKENIZER_DEFAULT_SEPARATORS); + Tokenizer(const std::string &str, const std::string &separators = TOKENIZER_DEFAULT_SEPARATORS); Tokenizer(Tokenizer &&); Tokenizer(const Tokenizer &); Tokenizer& operator=(const Tokenizer&) = default; @@ -42,7 +42,7 @@ public: void reset(); void skip(int n); bool has_next() const; - bool contains(const std::string & str) const; + bool contains(const std::string &str) const; std::string next(); size_t count(); @@ -52,7 +52,7 @@ public: class TokenizerException : public std::exception { std::string message; public: - TokenizerException(const std::string & msg, const std::string & token); + TokenizerException(const std::string &msg, const std::string &token); ~TokenizerException() throw() { } @@ -64,20 +64,20 @@ public: class InvalidIntegerException : public TokenizerException { public: - InvalidIntegerException(const std::string & token) : TokenizerException("Not a valid integer number", token) { + InvalidIntegerException(const std::string &token) : TokenizerException("Not a valid integer number", token) { } }; class InvalidFloatException : public TokenizerException { public: - InvalidFloatException(const std::string & token) : TokenizerException("Not a valid floating-point number", token) { + InvalidFloatException(const std::string &token) : TokenizerException("Not a valid floating-point number", token) { } }; class ValueTokenizer { Tokenizer tokens; public: - ValueTokenizer(const std::string & str, const std::string & separators = TOKENIZER_DEFAULT_SEPARATORS); + ValueTokenizer(const std::string &str, const std::string &separators = TOKENIZER_DEFAULT_SEPARATORS); ValueTokenizer(const ValueTokenizer &); ValueTokenizer(ValueTokenizer &&); ValueTokenizer& operator=(const ValueTokenizer&) = default; @@ -90,7 +90,7 @@ public: double next_double(); bool has_next() const; - bool contains(const std::string & value) const; + bool contains(const std::string &value) const; void skip(int ntokens); size_t count(); diff --git a/src/utils.cpp b/src/utils.cpp index b6a6df9311..eecc88a529 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -16,6 +16,7 @@ #include #include #include "lammps.h" +#include "comm.h" #include "compute.h" #include "error.h" #include "fix.h" @@ -23,6 +24,7 @@ #include "modify.h" #include "tokenizer.h" #include "text_file_reader.h" +#include "update.h" #include "fmt/format.h" #if defined(__linux__) @@ -822,6 +824,11 @@ bool utils::file_is_readable(const std::string &path) { search current directory and the LAMMPS_POTENTIALS directory if specified ------------------------------------------------------------------------- */ +#if defined(_WIN32) +#define OS_PATH_VAR_SEP ";" +#else +#define OS_PATH_VAR_SEP ":" +#endif std::string utils::get_potential_file_path(const std::string &path) { std::string filepath = path; @@ -831,19 +838,25 @@ std::string utils::get_potential_file_path(const std::string &path) { return filepath; } else { // try the environment variable directory - const char *path = getenv("LAMMPS_POTENTIALS"); + const char *var = getenv("LAMMPS_POTENTIALS"); - if (path != nullptr){ - std::string pot = utils::path_basename(filepath); - filepath = utils::path_join(path, pot); + if (var != nullptr){ + Tokenizer dirs(var,OS_PATH_VAR_SEP); - if (utils::file_is_readable(filepath)) { - return filepath; + while (dirs.has_next()) { + auto pot = utils::path_basename(filepath); + auto path = dirs.next(); + filepath = utils::path_join(path, pot); + + if (utils::file_is_readable(filepath)) { + return filepath; + } } } } return ""; } +#undef OS_PATH_VAR_SEP /* ---------------------------------------------------------------------- read first line of potential file -- GitLab From 5a22f4d7f2630edf36fcb02064ea5545cdc63510 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 22:09:07 -0400 Subject: [PATCH 134/165] support that LAMMPS_POTENTIALS is a real path variable with multiple entries, not just a single folder --- src/tokenizer.h | 14 +++++++------- src/utils.cpp | 25 +++++++++++++++++++------ unittest/utils/test_tokenizer.cpp | 9 +++++++++ 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/tokenizer.h b/src/tokenizer.h index cc77c8ee0d..30bb71276f 100644 --- a/src/tokenizer.h +++ b/src/tokenizer.h @@ -33,7 +33,7 @@ class Tokenizer { size_t start; size_t ntokens; public: - Tokenizer(const std::string & str, const std::string & separators = TOKENIZER_DEFAULT_SEPARATORS); + Tokenizer(const std::string &str, const std::string &separators = TOKENIZER_DEFAULT_SEPARATORS); Tokenizer(Tokenizer &&); Tokenizer(const Tokenizer &); Tokenizer& operator=(const Tokenizer&) = default; @@ -42,7 +42,7 @@ public: void reset(); void skip(int n); bool has_next() const; - bool contains(const std::string & str) const; + bool contains(const std::string &str) const; std::string next(); size_t count(); @@ -52,7 +52,7 @@ public: class TokenizerException : public std::exception { std::string message; public: - TokenizerException(const std::string & msg, const std::string & token); + TokenizerException(const std::string &msg, const std::string &token); ~TokenizerException() throw() { } @@ -64,20 +64,20 @@ public: class InvalidIntegerException : public TokenizerException { public: - InvalidIntegerException(const std::string & token) : TokenizerException("Not a valid integer number", token) { + InvalidIntegerException(const std::string &token) : TokenizerException("Not a valid integer number", token) { } }; class InvalidFloatException : public TokenizerException { public: - InvalidFloatException(const std::string & token) : TokenizerException("Not a valid floating-point number", token) { + InvalidFloatException(const std::string &token) : TokenizerException("Not a valid floating-point number", token) { } }; class ValueTokenizer { Tokenizer tokens; public: - ValueTokenizer(const std::string & str, const std::string & separators = TOKENIZER_DEFAULT_SEPARATORS); + ValueTokenizer(const std::string &str, const std::string &separators = TOKENIZER_DEFAULT_SEPARATORS); ValueTokenizer(const ValueTokenizer &); ValueTokenizer(ValueTokenizer &&); ValueTokenizer& operator=(const ValueTokenizer&) = default; @@ -90,7 +90,7 @@ public: double next_double(); bool has_next() const; - bool contains(const std::string & value) const; + bool contains(const std::string &value) const; void skip(int ntokens); size_t count(); diff --git a/src/utils.cpp b/src/utils.cpp index b6a6df9311..eecc88a529 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -16,6 +16,7 @@ #include #include #include "lammps.h" +#include "comm.h" #include "compute.h" #include "error.h" #include "fix.h" @@ -23,6 +24,7 @@ #include "modify.h" #include "tokenizer.h" #include "text_file_reader.h" +#include "update.h" #include "fmt/format.h" #if defined(__linux__) @@ -822,6 +824,11 @@ bool utils::file_is_readable(const std::string &path) { search current directory and the LAMMPS_POTENTIALS directory if specified ------------------------------------------------------------------------- */ +#if defined(_WIN32) +#define OS_PATH_VAR_SEP ";" +#else +#define OS_PATH_VAR_SEP ":" +#endif std::string utils::get_potential_file_path(const std::string &path) { std::string filepath = path; @@ -831,19 +838,25 @@ std::string utils::get_potential_file_path(const std::string &path) { return filepath; } else { // try the environment variable directory - const char *path = getenv("LAMMPS_POTENTIALS"); + const char *var = getenv("LAMMPS_POTENTIALS"); - if (path != nullptr){ - std::string pot = utils::path_basename(filepath); - filepath = utils::path_join(path, pot); + if (var != nullptr){ + Tokenizer dirs(var,OS_PATH_VAR_SEP); - if (utils::file_is_readable(filepath)) { - return filepath; + while (dirs.has_next()) { + auto pot = utils::path_basename(filepath); + auto path = dirs.next(); + filepath = utils::path_join(path, pot); + + if (utils::file_is_readable(filepath)) { + return filepath; + } } } } return ""; } +#undef OS_PATH_VAR_SEP /* ---------------------------------------------------------------------- read first line of potential file diff --git a/unittest/utils/test_tokenizer.cpp b/unittest/utils/test_tokenizer.cpp index 001b7095de..7cef3cead0 100644 --- a/unittest/utils/test_tokenizer.cpp +++ b/unittest/utils/test_tokenizer.cpp @@ -62,6 +62,15 @@ TEST(Tokenizer, iterate_words) ASSERT_EQ(t.count(), 2); } +TEST(Tokenizer, no_separator_path) +{ + Tokenizer t("one", ":"); + ASSERT_EQ(t.has_next(), true); + ASSERT_EQ(t.count(), 1); + ASSERT_THAT(t.next(), Eq("one")); + ASSERT_EQ(t.has_next(), false); +} + TEST(Tokenizer, unix_paths) { Tokenizer t(":one:two:three:", ":"); -- GitLab From 6b7f4c500f9aedd49c8dd1496a6302e01266cd2d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 22:22:27 -0400 Subject: [PATCH 135/165] document changes to LAMMPS_POTENTIALS environment variable --- doc/src/Install_linux.rst | 6 +++--- doc/src/pair_coeff.rst | 9 +++++++-- doc/src/pair_comb.rst | 4 ++-- doc/src/pair_python.rst | 12 ++++++------ 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/doc/src/Install_linux.rst b/doc/src/Install_linux.rst index bb67f1aa84..121869187a 100644 --- a/doc/src/Install_linux.rst +++ b/doc/src/Install_linux.rst @@ -79,13 +79,13 @@ To get a copy of the current potentials files: which will download the potentials files to ``/usr/share/lammps-stable/potentials``. The ``lmp_stable`` binary is hard-coded to look for potential files in this directory (it does not -use the `LAMMPS_POTENTIALS` environment variable, as described +use the ``LAMMPS_POTENTIALS`` environment variable, as described in :doc:`pair_coeff ` command). The ``lmp_stable`` binary is built with the :ref:`KIM package ` which -results in the above command also installing the `kim-api` binaries when LAMMPS +results in the above command also installing the ``kim-api`` binaries when LAMMPS is installed. In order to use potentials from `openkim.org `_, you -can install the `openkim-models` package +can install the ``openkim-models`` package .. code-block:: bash diff --git a/doc/src/pair_coeff.rst b/doc/src/pair_coeff.rst index 311163c354..ea62d839ab 100644 --- a/doc/src/pair_coeff.rst +++ b/doc/src/pair_coeff.rst @@ -110,8 +110,8 @@ location specified. E.g. if the file is specified as "niu3.eam", it is looked for in the current working directory. If it is specified as "../potentials/niu3.eam", then it is looked for in the potentials directory, assuming it is a sister directory of the current working -directory. If the file is not found, it is then looked for in the -directory specified by the LAMMPS_POTENTIALS environment variable. +directory. If the file is not found, it is then looked for in one of +the directories specified by the ``LAMMPS_POTENTIALS`` environment variable. Thus if this is set to the potentials directory in the LAMMPS distribution, then you can use those files from anywhere on your system, without copying them into your working directory. Environment variables are @@ -136,6 +136,11 @@ Windows: % set LAMMPS_POTENTIALS="C:\\Path to LAMMPS\\Potentials" +The ``LAMMPS_POTENTIALS`` environment variable may contain paths +to multiple folders, if they are separated by ";" on Windows and +":" on all other operating systems, just like the ``PATH`` and +similar environment variables. + ---------- The alphabetic list of pair styles defined in LAMMPS is given on the diff --git a/doc/src/pair_comb.rst b/doc/src/pair_comb.rst index 7c733e62da..441f982996 100644 --- a/doc/src/pair_comb.rst +++ b/doc/src/pair_comb.rst @@ -129,10 +129,10 @@ For style *comb3*\ , in addition to ffield.comb3, a special parameter file, *lib.comb3*\ , that is exclusively used for C/O/H systems, will be automatically loaded if carbon atom is detected in LAMMPS input structure. This file must be in your working directory or in the -directory pointed to by the environment variable LAMMPS_POTENTIALS, as +directories listed in the environment variable ``LAMMPS_POTENTIALS``, as described on the :doc:`pair_coeff ` command doc page. -Keyword *polar* indicates whether the force field includes +The keyword *polar* indicates whether the force field includes the atomic polarization. Since the equilibration of the polarization has not yet been implemented, it can only set polar_off at present. diff --git a/doc/src/pair_python.rst b/doc/src/pair_python.rst index 9ec24b47fa..99b8ebd766 100644 --- a/doc/src/pair_python.rst +++ b/doc/src/pair_python.rst @@ -38,12 +38,12 @@ corresponding compiled code. This penalty can be significantly reduced through generating tabulations from the python code through the :doc:`pair_write ` command, which is supported by this style. -Only a single pair_coeff command is used with the *python* pair style -which specifies a python class inside a python module or file that -LAMMPS will look up in the current directory, the folder pointed to by -the LAMMPS_POTENTIALS environment variable or somewhere in your python -path. A single python module can hold multiple python pair class -definitions. The class definitions itself have to follow specific +Only a single :doc:`pair_coeff ` command is used with the +*python* pair style which specifies a python class inside a python module +or a file that LAMMPS will look up in the current directory, a folder +pointed to by the ``LAMMPS_POTENTIALS`` environment variable or somewhere +in your python path. A single python module can hold multiple python pair +class definitions. The class definitions itself have to follow specific rules that are explained below. Atom types in the python class are specified through symbolic -- GitLab From 4396dbd9a37be0282d72b6b683b5e4892aa9fca3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 22:37:14 -0400 Subject: [PATCH 136/165] move Force::open_potential() to utils::open_potential() --- src/KOKKOS/pair_exp6_rx_kokkos.cpp | 2 +- src/MANYBODY/pair_eam_cd.cpp | 2 +- src/MANYBODY/pair_eim.cpp | 2 +- src/MANYBODY/pair_lcbop.cpp | 2 +- src/MLIAP/mliap_descriptor_snap.cpp | 2 +- src/MLIAP/mliap_model.cpp | 2 +- src/MOLECULE/fix_cmap.cpp | 2 +- src/QEQ/fix_qeq.cpp | 2 +- src/SNAP/pair_snap.cpp | 4 +- src/USER-DPD/fix_eos_table.cpp | 2 +- src/USER-DPD/fix_rx.cpp | 6 +-- src/USER-DPD/pair_exp6_rx.cpp | 2 +- src/USER-DPD/pair_multi_lucy_rx.cpp | 2 +- src/USER-MEAMC/pair_meamc.cpp | 4 +- src/USER-MESONT/pair_mesocnt.cpp | 2 +- src/USER-MGPT/pair_mgpt.cpp | 4 +- src/USER-MISC/dihedral_table_cut.cpp | 2 +- src/USER-MISC/fix_electron_stopping.cpp | 2 +- src/USER-MISC/fix_gle.cpp | 4 +- src/USER-MISC/fix_orient_eco.cpp | 2 +- src/USER-MISC/pair_agni.cpp | 2 +- src/USER-MISC/pair_drip.cpp | 2 +- src/USER-MISC/pair_edip.cpp | 2 +- src/USER-MISC/pair_edip_multi.cpp | 2 +- src/USER-MISC/pair_extep.cpp | 2 +- src/USER-MISC/pair_ilp_graphene_hbn.cpp | 2 +- src/USER-MISC/pair_kolmogorov_crespi_full.cpp | 2 +- src/USER-MISC/pair_kolmogorov_crespi_z.cpp | 2 +- src/USER-MISC/pair_lebedeva_z.cpp | 2 +- src/USER-MISC/pair_list.cpp | 2 +- src/USER-MISC/pair_meam_spline.cpp | 2 +- src/USER-MISC/pair_meam_sw_spline.cpp | 2 +- src/USER-REAXC/pair_reaxc.cpp | 2 +- src/USER-SMTBQ/pair_smtbq.cpp | 2 +- src/force.cpp | 53 ------------------- src/force.h | 2 - src/utils.cpp | 3 +- src/utils.h | 3 +- 38 files changed, 43 insertions(+), 98 deletions(-) diff --git a/src/KOKKOS/pair_exp6_rx_kokkos.cpp b/src/KOKKOS/pair_exp6_rx_kokkos.cpp index 55421bb4e3..2e2c3ef04e 100644 --- a/src/KOKKOS/pair_exp6_rx_kokkos.cpp +++ b/src/KOKKOS/pair_exp6_rx_kokkos.cpp @@ -1723,7 +1723,7 @@ void PairExp6rxKokkos::read_file(char *file) FILE *fp; fp = NULL; if (comm->me == 0) { - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open exp6/rx potential file %s",file); diff --git a/src/MANYBODY/pair_eam_cd.cpp b/src/MANYBODY/pair_eam_cd.cpp index 01c8a3fffe..4f5041090f 100644 --- a/src/MANYBODY/pair_eam_cd.cpp +++ b/src/MANYBODY/pair_eam_cd.cpp @@ -504,7 +504,7 @@ void PairEAMCD::read_h_coeff(char *filename) char line[MAXLINE]; char nextline[MAXLINE]; int convert_flag = unit_convert_flag; - fptr = force->open_potential(filename, &convert_flag); + fptr = utils::open_potential(filename, lmp, &convert_flag); if (fptr == NULL) error->one(FLERR,fmt::format("Cannot open EAMCD potential file {}", filename)); diff --git a/src/MANYBODY/pair_eim.cpp b/src/MANYBODY/pair_eim.cpp index 4321bd9f8b..cdd928788b 100644 --- a/src/MANYBODY/pair_eim.cpp +++ b/src/MANYBODY/pair_eim.cpp @@ -1061,7 +1061,7 @@ EIMPotentialFileReader::EIMPotentialFileReader(LAMMPS *lmp, } int unit_convert = auto_convert; - FILE *fp = force->open_potential(filename.c_str(), &unit_convert); + FILE *fp = utils::open_potential(filename, lmp, &unit_convert); conversion_factor = utils::get_conversion_factor(utils::ENERGY,unit_convert); if (fp == NULL) { diff --git a/src/MANYBODY/pair_lcbop.cpp b/src/MANYBODY/pair_lcbop.cpp index 7c29f44afc..56ef70d8f9 100644 --- a/src/MANYBODY/pair_lcbop.cpp +++ b/src/MANYBODY/pair_lcbop.cpp @@ -969,7 +969,7 @@ void PairLCBOP::read_file(char *filename) // read file on proc 0 if (me == 0) { - FILE *fp = force->open_potential(filename); + FILE *fp = utils::open_potential(filename,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open LCBOP potential file %s",filename); diff --git a/src/MLIAP/mliap_descriptor_snap.cpp b/src/MLIAP/mliap_descriptor_snap.cpp index 24e8b19a65..fd1bf18330 100644 --- a/src/MLIAP/mliap_descriptor_snap.cpp +++ b/src/MLIAP/mliap_descriptor_snap.cpp @@ -376,7 +376,7 @@ void MLIAPDescriptorSNAP::read_paramfile(char *paramfilename) FILE *fpparam; if (comm->me == 0) { - fpparam = force->open_potential(paramfilename); + fpparam = utils::open_potential(paramfilename,lmp,nullptr); if (fpparam == NULL) error->one(FLERR,fmt::format("Cannot open SNAP parameter file {}: {}", paramfilename, utils::getsyserror())); diff --git a/src/MLIAP/mliap_model.cpp b/src/MLIAP/mliap_model.cpp index bc760b7a68..b8ad1913a0 100644 --- a/src/MLIAP/mliap_model.cpp +++ b/src/MLIAP/mliap_model.cpp @@ -85,7 +85,7 @@ void MLIAPModel::read_coeffs(char *coefffilename) FILE *fpcoeff; if (comm->me == 0) { - fpcoeff = force->open_potential(coefffilename); + fpcoeff = utils::open_potential(coefffilename,lmp,nullptr); if (fpcoeff == NULL) error->one(FLERR,fmt::format("Cannot open MLIAPModel coeff file {}: {}", coefffilename,utils::getsyserror())); diff --git a/src/MOLECULE/fix_cmap.cpp b/src/MOLECULE/fix_cmap.cpp index 5d95ae73c2..ddf035070b 100644 --- a/src/MOLECULE/fix_cmap.cpp +++ b/src/MOLECULE/fix_cmap.cpp @@ -633,7 +633,7 @@ void FixCMAP::read_grid_map(char *cmapfile) FILE *fp = NULL; if (comm->me == 0) { - fp = force->open_potential(cmapfile); + fp = utils::open_potential(cmapfile,lmp,nullptr); if (fp == NULL) error->one(FLERR,fmt::format("Cannot open fix cmap file {}: {}", cmapfile, utils::getsyserror())); diff --git a/src/QEQ/fix_qeq.cpp b/src/QEQ/fix_qeq.cpp index 877d75734c..ba4932a485 100644 --- a/src/QEQ/fix_qeq.cpp +++ b/src/QEQ/fix_qeq.cpp @@ -707,7 +707,7 @@ void FixQEq::read_file(char *file) FILE *fp; if (comm->me == 0) { - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open fix qeq parameter file %s",file); diff --git a/src/SNAP/pair_snap.cpp b/src/SNAP/pair_snap.cpp index 63867f1691..48014592ed 100644 --- a/src/SNAP/pair_snap.cpp +++ b/src/SNAP/pair_snap.cpp @@ -515,7 +515,7 @@ void PairSNAP::read_files(char *coefffilename, char *paramfilename) FILE *fpcoeff; if (comm->me == 0) { - fpcoeff = force->open_potential(coefffilename); + fpcoeff = utils::open_potential(coefffilename,lmp,nullptr); if (fpcoeff == NULL) { char str[128]; snprintf(str,128,"Cannot open SNAP coefficient file %s",coefffilename); @@ -662,7 +662,7 @@ void PairSNAP::read_files(char *coefffilename, char *paramfilename) FILE *fpparam; if (comm->me == 0) { - fpparam = force->open_potential(paramfilename); + fpparam = utils::open_potential(paramfilename,lmp,nullptr); if (fpparam == NULL) { char str[128]; snprintf(str,128,"Cannot open SNAP parameter file %s",paramfilename); diff --git a/src/USER-DPD/fix_eos_table.cpp b/src/USER-DPD/fix_eos_table.cpp index 04a619ac3d..69e5336945 100644 --- a/src/USER-DPD/fix_eos_table.cpp +++ b/src/USER-DPD/fix_eos_table.cpp @@ -199,7 +199,7 @@ void FixEOStable::read_table(Table *tb, Table *tb2, char *file, char *keyword) // open file - FILE *fp = force->open_potential(file); + FILE *fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open file %s",file); diff --git a/src/USER-DPD/fix_rx.cpp b/src/USER-DPD/fix_rx.cpp index 77efd1842b..ced7283ef4 100644 --- a/src/USER-DPD/fix_rx.cpp +++ b/src/USER-DPD/fix_rx.cpp @@ -266,7 +266,7 @@ void FixRX::post_constructor() FILE *fp; fp = NULL; if (comm->me == 0) { - fp = force->open_potential(kineticsFile); + fp = utils::open_potential(kineticsFile,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open rx file %s",kineticsFile); @@ -855,7 +855,7 @@ void FixRX::read_file(char *file) FILE *fp; fp = NULL; if (comm->me == 0) { - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open rx file %s",file); @@ -892,7 +892,7 @@ void FixRX::read_file(char *file) } // open file on proc 0 - if (comm->me == 0) fp = force->open_potential(file); + if (comm->me == 0) fp = utils::open_potential(file,lmp,nullptr); // read each reaction from kinetics file eof=0; diff --git a/src/USER-DPD/pair_exp6_rx.cpp b/src/USER-DPD/pair_exp6_rx.cpp index 4ba088201e..839d22b50b 100644 --- a/src/USER-DPD/pair_exp6_rx.cpp +++ b/src/USER-DPD/pair_exp6_rx.cpp @@ -725,7 +725,7 @@ void PairExp6rx::read_file(char *file) FILE *fp; fp = NULL; if (comm->me == 0) { - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open exp6/rx potential file %s",file); diff --git a/src/USER-DPD/pair_multi_lucy_rx.cpp b/src/USER-DPD/pair_multi_lucy_rx.cpp index a8e588fe01..90f6dc6170 100644 --- a/src/USER-DPD/pair_multi_lucy_rx.cpp +++ b/src/USER-DPD/pair_multi_lucy_rx.cpp @@ -493,7 +493,7 @@ void PairMultiLucyRX::read_table(Table *tb, char *file, char *keyword) // open file - FILE *fp = force->open_potential(file); + FILE *fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open file %s",file); diff --git a/src/USER-MEAMC/pair_meamc.cpp b/src/USER-MEAMC/pair_meamc.cpp index b344dee10a..f40df56c19 100644 --- a/src/USER-MEAMC/pair_meamc.cpp +++ b/src/USER-MEAMC/pair_meamc.cpp @@ -364,7 +364,7 @@ void PairMEAMC::read_files(const std::string &globalfile, FILE *fp; if (comm->me == 0) { - fp = force->open_potential(globalfile.c_str()); + fp = utils::open_potential(globalfile,lmp,nullptr); if (fp == NULL) error->one(FLERR,fmt::format("Cannot open MEAM potential file {}", globalfile)); @@ -563,7 +563,7 @@ void PairMEAMC::read_files(const std::string &globalfile, // open user param file on proc 0 if (comm->me == 0) { - fp = force->open_potential(userfile.c_str()); + fp = utils::open_potential(userfile,lmp,nullptr); if (fp == NULL) error->one(FLERR,fmt::format("Cannot open MEAM potential file {}", userfile)); diff --git a/src/USER-MESONT/pair_mesocnt.cpp b/src/USER-MESONT/pair_mesocnt.cpp index f486814feb..4af8a99d6f 100644 --- a/src/USER-MESONT/pair_mesocnt.cpp +++ b/src/USER-MESONT/pair_mesocnt.cpp @@ -759,7 +759,7 @@ void PairMesoCNT::read_file() // open file - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) error->one(FLERR,fmt::format("Cannot open mesocnt file: {}",file)); diff --git a/src/USER-MGPT/pair_mgpt.cpp b/src/USER-MGPT/pair_mgpt.cpp index 213f73f05a..e7ab62608a 100644 --- a/src/USER-MGPT/pair_mgpt.cpp +++ b/src/USER-MGPT/pair_mgpt.cpp @@ -1904,8 +1904,8 @@ void PairMGPT::coeff(int narg, char **arg) printf("Volumetric pressure is %s.\n",volpres_flag ? "on" : "off"); if(comm->me == 0) { - FILE *parmin_fp = force->open_potential(arg[2]); - FILE *potin_fp = force->open_potential(arg[3]); + FILE *parmin_fp = utils::open_potential(arg[2],lmp,nullptr); + FILE *potin_fp = utils::open_potential(arg[3],lmp,nullptr); if (parmin_fp == NULL || potin_fp == NULL) { char str[128]; sprintf(str,"Cannot open MGPT potential files %s %s",arg[2],arg[3]); diff --git a/src/USER-MISC/dihedral_table_cut.cpp b/src/USER-MISC/dihedral_table_cut.cpp index a734a8e998..2a5b46a4f1 100644 --- a/src/USER-MISC/dihedral_table_cut.cpp +++ b/src/USER-MISC/dihedral_table_cut.cpp @@ -1078,7 +1078,7 @@ void DihedralTableCut::read_table(Table *tb, char *file, char *keyword) // open file - FILE *fp = force->open_potential(file); + FILE *fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { string err_msg = string("Cannot open file ") + string(file); error->one(FLERR,err_msg); diff --git a/src/USER-MISC/fix_electron_stopping.cpp b/src/USER-MISC/fix_electron_stopping.cpp index 5ef0a1cb2f..bf97066275 100644 --- a/src/USER-MISC/fix_electron_stopping.cpp +++ b/src/USER-MISC/fix_electron_stopping.cpp @@ -240,7 +240,7 @@ void FixElectronStopping::read_table(const char *file) { char line[MAXLINE]; - FILE *fp = force->open_potential(file); + FILE *fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str, 128, "Cannot open stopping range table %s", file); diff --git a/src/USER-MISC/fix_gle.cpp b/src/USER-MISC/fix_gle.cpp index aa791679cb..30e62c7eb9 100644 --- a/src/USER-MISC/fix_gle.cpp +++ b/src/USER-MISC/fix_gle.cpp @@ -221,7 +221,7 @@ FixGLE::FixGLE(LAMMPS *lmp, int narg, char **arg) : FILE *fgle = NULL; char *fname = arg[7]; if (comm->me == 0) { - fgle = force->open_potential(fname); + fgle = utils::open_potential(fname,lmp,nullptr); if (fgle == NULL) { char str[128]; snprintf(str,128,"Cannot open A-matrix file %s",fname); @@ -291,7 +291,7 @@ FixGLE::FixGLE(LAMMPS *lmp, int narg, char **arg) : } else { if (comm->me == 0) { - fgle = force->open_potential(fname); + fgle = utils::open_potential(fname,lmp,nullptr); if (fgle == NULL) { char str[128]; snprintf(str,128,"Cannot open C-matrix file %s",fname); diff --git a/src/USER-MISC/fix_orient_eco.cpp b/src/USER-MISC/fix_orient_eco.cpp index 272ba1ca93..4e97cac3f9 100644 --- a/src/USER-MISC/fix_orient_eco.cpp +++ b/src/USER-MISC/fix_orient_eco.cpp @@ -97,7 +97,7 @@ FixOrientECO::FixOrientECO(LAMMPS *lmp, int narg, char **arg) : char *result; int count; - FILE *infile = force->open_potential(dir_filename); + FILE *infile = utils::open_potential(dir_filename,lmp,nullptr); if (infile == NULL) error->one(FLERR,fmt::format("Cannot open fix orient/eco file {}: {}", dir_filename, utils::getsyserror())); diff --git a/src/USER-MISC/pair_agni.cpp b/src/USER-MISC/pair_agni.cpp index 4941f2c7b3..764ccc587f 100644 --- a/src/USER-MISC/pair_agni.cpp +++ b/src/USER-MISC/pair_agni.cpp @@ -358,7 +358,7 @@ void PairAGNI::read_file(char *file) FILE *fp; if (comm->me == 0) { - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open AGNI potential file %s",file); diff --git a/src/USER-MISC/pair_drip.cpp b/src/USER-MISC/pair_drip.cpp index 2e9221537a..cc890f8c94 100644 --- a/src/USER-MISC/pair_drip.cpp +++ b/src/USER-MISC/pair_drip.cpp @@ -223,7 +223,7 @@ void PairDRIP::read_file(char *filename) FILE *fp; if (comm->me == 0) { - fp = force->open_potential(filename); + fp = utils::open_potential(filename,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open DRIP potential file %s",filename); diff --git a/src/USER-MISC/pair_edip.cpp b/src/USER-MISC/pair_edip.cpp index 288160459a..bb9c742212 100644 --- a/src/USER-MISC/pair_edip.cpp +++ b/src/USER-MISC/pair_edip.cpp @@ -883,7 +883,7 @@ void PairEDIP::read_file(char *file) FILE *fp; if (comm->me == 0) { - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open EDIP potential file %s",file); diff --git a/src/USER-MISC/pair_edip_multi.cpp b/src/USER-MISC/pair_edip_multi.cpp index 7fe620223b..90a3502eae 100644 --- a/src/USER-MISC/pair_edip_multi.cpp +++ b/src/USER-MISC/pair_edip_multi.cpp @@ -640,7 +640,7 @@ void PairEDIPMulti::read_file(char *file) FILE *fp; if (comm->me == 0) { - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open EDIP potential file %s",file); diff --git a/src/USER-MISC/pair_extep.cpp b/src/USER-MISC/pair_extep.cpp index 65f792b493..8f8d539679 100644 --- a/src/USER-MISC/pair_extep.cpp +++ b/src/USER-MISC/pair_extep.cpp @@ -589,7 +589,7 @@ void PairExTeP::read_file(char *file) FILE *fp; if (comm->me == 0) { - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open ExTeP potential file %s",file); diff --git a/src/USER-MISC/pair_ilp_graphene_hbn.cpp b/src/USER-MISC/pair_ilp_graphene_hbn.cpp index e7689acda5..62101d0e80 100644 --- a/src/USER-MISC/pair_ilp_graphene_hbn.cpp +++ b/src/USER-MISC/pair_ilp_graphene_hbn.cpp @@ -256,7 +256,7 @@ void PairILPGrapheneHBN::read_file(char *filename) FILE *fp; if (comm->me == 0) { - fp = force->open_potential(filename); + fp = utils::open_potential(filename,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open ILP potential file %s",filename); diff --git a/src/USER-MISC/pair_kolmogorov_crespi_full.cpp b/src/USER-MISC/pair_kolmogorov_crespi_full.cpp index ee3eec3869..fb1da5dab8 100644 --- a/src/USER-MISC/pair_kolmogorov_crespi_full.cpp +++ b/src/USER-MISC/pair_kolmogorov_crespi_full.cpp @@ -257,7 +257,7 @@ void PairKolmogorovCrespiFull::read_file(char *filename) FILE *fp; if (comm->me == 0) { - fp = force->open_potential(filename); + fp = utils::open_potential(filename,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open KC potential file %s",filename); diff --git a/src/USER-MISC/pair_kolmogorov_crespi_z.cpp b/src/USER-MISC/pair_kolmogorov_crespi_z.cpp index bf88bac6e2..f02423e952 100644 --- a/src/USER-MISC/pair_kolmogorov_crespi_z.cpp +++ b/src/USER-MISC/pair_kolmogorov_crespi_z.cpp @@ -315,7 +315,7 @@ void PairKolmogorovCrespiZ::read_file(char *filename) FILE *fp; if (comm->me == 0) { - fp = force->open_potential(filename); + fp = utils::open_potential(filename,lmp,nullptr); if (fp == NULL) { char str[128]; snprintf(str,128,"Cannot open KC potential file %s",filename); diff --git a/src/USER-MISC/pair_lebedeva_z.cpp b/src/USER-MISC/pair_lebedeva_z.cpp index 27e21a12e3..5a84882cd9 100644 --- a/src/USER-MISC/pair_lebedeva_z.cpp +++ b/src/USER-MISC/pair_lebedeva_z.cpp @@ -311,7 +311,7 @@ void PairLebedevaZ::read_file(char *filename) FILE *fp; if (comm->me == 0) { - fp = force->open_potential(filename); + fp = utils::open_potential(filename,lmp,nullptr); if (fp == NULL) { char str[128]; sprintf(str,"Cannot open Lebedeva potential file %s",filename); diff --git a/src/USER-MISC/pair_list.cpp b/src/USER-MISC/pair_list.cpp index 44811316a8..c553e671cb 100644 --- a/src/USER-MISC/pair_list.cpp +++ b/src/USER-MISC/pair_list.cpp @@ -209,7 +209,7 @@ void PairList::settings(int narg, char **arg) if (strcmp(arg[2],"check") == 0) check_flag = 1; } - FILE *fp = force->open_potential(arg[0]); + FILE *fp = utils::open_potential(arg[0],lmp,nullptr); char line[1024]; if (fp == NULL) error->all(FLERR,"Cannot open pair list file"); diff --git a/src/USER-MISC/pair_meam_spline.cpp b/src/USER-MISC/pair_meam_spline.cpp index 5764b09d8a..6091b95837 100644 --- a/src/USER-MISC/pair_meam_spline.cpp +++ b/src/USER-MISC/pair_meam_spline.cpp @@ -458,7 +458,7 @@ void PairMEAMSpline::read_file(const char* filename) int nmultichoose2; // = (n+1)*n/2; if(comm->me == 0) { - FILE *fp = force->open_potential(filename); + FILE *fp = utils::open_potential(filename,lmp,nullptr); if(fp == NULL) { char str[1024]; snprintf(str,128,"Cannot open spline MEAM potential file %s", filename); diff --git a/src/USER-MISC/pair_meam_sw_spline.cpp b/src/USER-MISC/pair_meam_sw_spline.cpp index 8d33a6f04f..34cbe82581 100644 --- a/src/USER-MISC/pair_meam_sw_spline.cpp +++ b/src/USER-MISC/pair_meam_sw_spline.cpp @@ -460,7 +460,7 @@ void PairMEAMSWSpline::coeff(int narg, char **arg) void PairMEAMSWSpline::read_file(const char* filename) { if(comm->me == 0) { - FILE *fp = force->open_potential(filename); + FILE *fp = utils::open_potential(filename,lmp,nullptr); if(fp == NULL) { char str[1024]; snprintf(str,1024,"Cannot open spline MEAM potential file %s", filename); diff --git a/src/USER-REAXC/pair_reaxc.cpp b/src/USER-REAXC/pair_reaxc.cpp index 0262ffc14d..e0888e8514 100644 --- a/src/USER-REAXC/pair_reaxc.cpp +++ b/src/USER-REAXC/pair_reaxc.cpp @@ -317,7 +317,7 @@ void PairReaxC::coeff( int nargs, char **args ) char *file = args[2]; FILE *fp; - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if (fp != NULL) Read_Force_Field(fp, &(system->reax_param), control); else { diff --git a/src/USER-SMTBQ/pair_smtbq.cpp b/src/USER-SMTBQ/pair_smtbq.cpp index fcf6d141f2..f6ecd40bb6 100644 --- a/src/USER-SMTBQ/pair_smtbq.cpp +++ b/src/USER-SMTBQ/pair_smtbq.cpp @@ -410,7 +410,7 @@ void PairSMTBQ::read_file(char *file) // open file on all processors FILE *fp; - fp = force->open_potential(file); + fp = utils::open_potential(file,lmp,nullptr); if ( fp == NULL ) { char str[128]; snprintf(str,128,"Cannot open SMTBQ potential file %s",file); diff --git a/src/force.cpp b/src/force.cpp index cb0e0ac5a8..10b82afabe 100644 --- a/src/force.cpp +++ b/src/force.cpp @@ -836,59 +836,6 @@ void Force::set_special(int narg, char **arg) error->all(FLERR,"Illegal special_bonds command"); } -/* ---------------------------------------------------------------------- - open a potential file as specified by name - if fails, search in dir specified by env variable LAMMPS_POTENTIALS -------------------------------------------------------------------------- */ - -FILE *Force::open_potential(const char *name, int *auto_convert) -{ - std::string filepath = utils::get_potential_file_path(name); - - if(!filepath.empty()) { - std::string unit_style = update->unit_style; - std::string date = utils::get_potential_date(filepath, "potential"); - std::string units = utils::get_potential_units(filepath, "potential"); - - if(!date.empty() && (comm->me == 0)) { - utils::logmesg(lmp, fmt::format("Reading potential file {} " - "with DATE: {}\n", name, date)); - } - - if (auto_convert == nullptr) { - if (!units.empty() && (units != unit_style) && (comm->me == 0)) { - error->one(FLERR, fmt::format("Potential file {} requires {} units " - "but {} units are in use", name, units, - unit_style)); - return nullptr; - } - } else { - if (units.empty() || units == unit_style) { - *auto_convert = utils::NOCONVERT; - } else { - if ((units == "metal") && (unit_style == "real") - && (*auto_convert & utils::METAL2REAL)) { - *auto_convert = utils::METAL2REAL; - } else if ((units == "real") && (unit_style == "metal") - && (*auto_convert & utils::REAL2METAL)) { - *auto_convert = utils::REAL2METAL; - } else { - error->one(FLERR, fmt::format("Potential file {} requires {} units " - "but {} units are in use", name, - units, unit_style)); - return nullptr; - } - } - if ((*auto_convert != utils::NOCONVERT) && (comm->me == 0)) - lmp->error->warning(FLERR, fmt::format("Converting potential file in " - "{} units to {} units", - units, unit_style)); - } - return fopen(filepath.c_str(), "r"); - } - return nullptr; -} - /* ---------------------------------------------------------------------- memory usage of force classes ------------------------------------------------------------------------- */ diff --git a/src/force.h b/src/force.h index 8d3ae25294..d7824ea90e 100644 --- a/src/force.h +++ b/src/force.h @@ -129,8 +129,6 @@ class Force : protected Pointers { void store_style(char *&, const std::string &, int); void set_special(int, char **); - FILE *open_potential(const char *, int *auto_convert = nullptr); - bigint memory_usage(); private: diff --git a/src/utils.cpp b/src/utils.cpp index eecc88a529..486a84b601 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -939,7 +939,8 @@ double utils::get_conversion_factor(const int property, const int conversion) if fails, search in dir specified by env variable LAMMPS_POTENTIALS ------------------------------------------------------------------------- */ -FILE *utils::open_potential(const char *name, LAMMPS *lmp, int *auto_convert) +FILE *utils::open_potential(const std::string &name, LAMMPS *lmp, + int *auto_convert) { auto error = lmp->error; auto me = lmp->comm->me; diff --git a/src/utils.h b/src/utils.h index 2b647cfd87..9c897d5d7b 100644 --- a/src/utils.h +++ b/src/utils.h @@ -382,8 +382,7 @@ value is compared to the current :doc:`unit style ` setting. * \param auto_convert pointer to automatic unit conversion bitmask * \return FILE pointer of the opened potential file or NULL */ - FILE *open_potential(const char *name, LAMMPS *lmp, - int *auto_convert=nullptr); + FILE *open_potential(const std::string &name, LAMMPS *lmp, int *auto_convert); /** Convert a time string to seconds * -- GitLab From e51a5ad8f458a41fc5fb123f1dfdfb27edda37ea Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 22:46:25 -0400 Subject: [PATCH 137/165] import doxygen docs for new utils functions --- doc/src/pg_developer.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index 9ea30d599f..f3d532df07 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -866,6 +866,21 @@ Potential file functions .. doxygenfunction:: get_conversion_factor :project: progguide +.. doxygenfunction:: open_potential + :project: progguide + +Argument processing functions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: bounds + :project: progguide + +.. doxygenfunction:: boundsbig + :project: progguide + +.. doxygenfunction:: expand_args + :project: progguide + Convenience functions ^^^^^^^^^^^^^^^^^^^^^ -- GitLab From 83a9e5e724d61d8f2575939dda4c00d4bceb7079 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 22:55:05 -0400 Subject: [PATCH 138/165] handle spelling issues with new doc text --- doc/utils/sphinx-config/false_positives.txt | 8 +++++++- src/utils.h | 20 ++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index cd68c3ddda..42c8116249 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -728,6 +728,7 @@ Eaat Eacn eam eangle +earg eatom Eb Eba @@ -2044,6 +2045,7 @@ Ngyuen nh nharmonic nhc +nhi NiAlH Nicklas Niklasson @@ -2059,6 +2061,7 @@ Nk nl nlen Nlines +nlo nlocal Nlocal Nlog @@ -2066,7 +2069,9 @@ nlp nm Nm Nmax +nmax Nmin +nmin Nmols nn Nocedal @@ -3276,8 +3281,9 @@ Widom widom Wijk Wikipedia -wildcard Wildcard +wildcard +wildcards Wirnsberger wirtes witin diff --git a/src/utils.h b/src/utils.h index 9c897d5d7b..e53781585d 100644 --- a/src/utils.h +++ b/src/utils.h @@ -150,10 +150,10 @@ namespace LAMMPS_NS { This functions processes the string in *str* and set the values of *nlo* and *nhi* according to the following five cases: #. a single number *i*: nlo = i; nhi = i; -#. a single asterix *\*\ *: nlo = nmin; nhi = nmax; -#. a single number followed by an asterix *i\*\ *: nlo = i; nhi = nmax; -#. a single asterix followed by a number *\*\ i*: nlo = nmin; nhi = i; -#. two numbers with an asterix in between *i\*\ j*: nlo = i; nhi = j; +#. a single asterisk *\*\ *: nlo = nmin; nhi = nmax; +#. a single number followed by an asterisk *i\*\ *: nlo = i; nhi = nmax; +#. a single asterisk followed by a number *\*\ i*: nlo = nmin; nhi = i; +#. two numbers with an asterisk in between *i\*\ j*: nlo = i; nhi = j; \endverbatim * \param file name of source file for error message @@ -174,10 +174,10 @@ and *nhi* according to the following five cases: This functions processes the string in *str* and set the values of *nlo* and *nhi* according to the following five cases: #. a single number *i*: nlo = i; nhi = i; -#. a single asterix *\*\ *: nlo = nmin; nhi = nmax; -#. a single number followed by an asterix *i\*\ *: nlo = i; nhi = nmax; -#. a single asterix followed by a number *\*\ i*: nlo = nmin; nhi = i; -#. two numbers with an asterix in between *i\*\ j*: nlo = i; nhi = j; +#. a single asterisk *\*\ *: nlo = nmin; nhi = nmax; +#. a single number followed by an asterisk *i\*\ *: nlo = i; nhi = nmax; +#. a single asterisk followed by a number *\*\ i*: nlo = nmin; nhi = i; +#. two numbers with an asterisk in between *i\*\ j*: nlo = i; nhi = j; \endverbatim * \param file name of source file for error message @@ -207,7 +207,7 @@ and *nhi* according to the following five cases: * If any expansion happens, the earg list and all its * strings are new allocations and must be freed explicitly by the * caller. Otherwise arg and earg will point to the same address - * and no explicit deallocation is needed by the caller. + * and no explicit de-allocation is needed by the caller. * * \param file name of source file for error message * \param line line number in source file for error message @@ -370,7 +370,7 @@ and *nhi* according to the following five cases: /** Open a potential file as specified by *name* * \verbatim embed:rst -If opening the file fails, it will search for it in the folder(s) +If opening the file directly fails, it will search for it in the folder(s) pointed to by the environment variable LAMMPS_POTENTIALS. If the potential file has a ``UNITS`` tag in the first line, its -- GitLab From 9c404e02fd81a6c04267ca39dde38ed0bb1fc70b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 22:56:37 -0400 Subject: [PATCH 139/165] update include file conventions --- doc/include-file-conventions.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/include-file-conventions.md b/doc/include-file-conventions.md index 51f67afbbb..e3448cb8ce 100644 --- a/doc/include-file-conventions.md +++ b/doc/include-file-conventions.md @@ -3,7 +3,7 @@ This purpose of this document is to provide a point of reference for LAMMPS developers and contributors as to what include files and definitions to put where into LAMMPS source. -Last change 2019-07-05 +Last change 2020-08-31 ## Table of Contents @@ -99,10 +99,13 @@ Include files should be included in this order: #### pointers.h -The `pointer.h` header file also includes `cstdio` and `lmptype.h` -(and through it `stdint.h`, `intttypes.h`, cstdlib, and `climits`). +The `pointer.h` header file also includes `cstdio`, `cstddef`, +`string`, `lmptype.h`, and `utils.h` (and through those indirectly + `stdint.h`, `intttypes.h`, cstdlib, and `climits`). This means any header including `pointers.h` can assume that `FILE`, -`NULL`, `INT_MAX` are defined. +`NULL`, `INT_MAX` are defined, they may freely use std::string +and functions from the utils namespace without including the +corresponding header files. ## Tools -- GitLab From ceeaf1e988b223acd832357c484bb130c2c0c71c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Aug 2020 23:51:46 -0400 Subject: [PATCH 140/165] update and correct documentation for utils functions --- doc/src/pg_developer.rst | 43 +++++++------ src/utils.h | 135 ++++++++++++++++++++------------------- 2 files changed, 92 insertions(+), 86 deletions(-) diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index f3d532df07..1886a15af6 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -753,8 +753,8 @@ reading or writing to files with error checking or translation of strings into specific types of numbers with checking for validity. This reduces redundant implementations and encourages consistent behavior. -I/O functions with validity check -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +I/O with status check +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ These are wrappers around the corresponding C library calls like ``fgets()`` or ``fread()``. They will check if there were errors @@ -771,19 +771,21 @@ indicating the name of the problematic file, if possible. String to number conversions with validity check ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -These are functions equivalent to those in the ``Force`` class that -were implemented with the aim to replace and supersede those. Unlike -the versions in ``Force``, these can be used in cases where only -a single MPI rank is trying to convert strings to numbers, as you -can select through an argument, whether ``Error->all()`` or ``Error->one()`` -should be called on improper strings. - -These functions are preferred over C library calls like ``atoi()`` or +These functions should be used to convert strings to numbers. They are +are strongly preferred over C library calls like ``atoi()`` or ``atof()`` since they check if the **entire** provided string is a valid -(floating-point or integer) number, and will error out instead of silently -return the result of a partial conversion or zero in cases where the -string is not a valid number. This behavior allows to more easily detect -typos or issues when processing input files. +(floating-point or integer) number, and will error out instead of +silently returning the result of a partial conversion or zero in cases +where the string is not a valid number. This behavior allows to more +easily detect typos or issues when processing input files. + +The *do_abort* flag should be set to ``true`` in case this function +is called only on a single MPI rank, as that will then trigger the +a call to ``Error::one()`` for errors instead of ``Error::all()`` +and avoids a "hanging" calculation when run in parallel. + +Please also see :cpp:func:`is_integer` and :cpp:func:`is_double` for +testing strings for compliance without conversion. .. doxygenfunction:: numeric :project: progguide @@ -798,8 +800,9 @@ typos or issues when processing input files. :project: progguide -String processing functions -^^^^^^^^^^^^^^^^^^^^^^^^^^^ +String processing +^^^^^^^^^^^^^^^^^ + The following are functions to help with processing strings and parsing files or arguments. @@ -833,8 +836,8 @@ and parsing files or arguments. .. doxygenfunction:: is_double :project: progguide -Filename and path functions -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +File and path functions +^^^^^^^^^^^^^^^^^^^^^^^^^ .. doxygenfunction:: guesspath :project: progguide @@ -869,8 +872,8 @@ Potential file functions .. doxygenfunction:: open_potential :project: progguide -Argument processing functions -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Argument processing +^^^^^^^^^^^^^^^^^^^ .. doxygenfunction:: bounds :project: progguide diff --git a/src/utils.h b/src/utils.h index e53781585d..17b507d157 100644 --- a/src/utils.h +++ b/src/utils.h @@ -133,62 +133,59 @@ namespace LAMMPS_NS { /** Convert a string to an integer number while checking * if it is a valid integer number (tagint) * - * \param file name of source file for error message - * \param line line number in source file for error message - * \param str string to be converted to number - * \param do_abort determines whether to call Error::one() or Error::all() - * \param lmp pointer to top-level LAMMPS class instance - * \return integer number (tagint) - */ + * \param file name of source file for error message + * \param line line number in source file for error message + * \param str string to be converted to number + * \param do_abort determines whether to call Error::one() or Error::all() + * \param lmp pointer to top-level LAMMPS class instance + * \return integer number (tagint) */ + tagint tnumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp); /** Compute index bounds derived from a string with a possible wildcard * -\verbatim embed:rst - -This functions processes the string in *str* and set the values of *nlo* -and *nhi* according to the following five cases: -#. a single number *i*: nlo = i; nhi = i; -#. a single asterisk *\*\ *: nlo = nmin; nhi = nmax; -#. a single number followed by an asterisk *i\*\ *: nlo = i; nhi = nmax; -#. a single asterisk followed by a number *\*\ i*: nlo = nmin; nhi = i; -#. two numbers with an asterisk in between *i\*\ j*: nlo = i; nhi = j; -\endverbatim + * This functions processes the string in *str* and set the values of *nlo* + * and *nhi* according to the following five cases: + * + * - a single number *i*: nlo = i; nhi = i; + * - a single asterisk \*: nlo = nmin; nhi = nmax; + * - a single number followed by an asterisk *i*\*: nlo = i; nhi = nmax; + * - a single asterisk followed by a number \**i*: nlo = nmin; nhi = i; + * - two numbers with an asterisk in between *i\*j*: nlo = i; nhi = j; + * + * \param file name of source file for error message + * \param line line number in source file for error message + * \param str string to be processed + * \param nmin smallest possible lower bound + * \param nmax largest allowed upper bound + * \param nlo lower bound + * \param nhi upper bound + * \param error pointer to Error class for out-of-bounds messages */ - * \param file name of source file for error message - * \param line line number in source file for error message - * \param str string to be processed - * \param nmin smallest possible lower bound - * \param nmax largest allowed upper bound - * \param nlo lower bound - * \param nhi upper bound - * \param error pointer to Error class for out-of-bounds error message - */ void bounds(const char *file, int line, char *str, int nmin, int nmax, int &nlo, int &nhi, Error *error); /** Compute index bounds derived from a string with a possible wildcard * -\verbatim embed:rst -This functions processes the string in *str* and set the values of *nlo* -and *nhi* according to the following five cases: -#. a single number *i*: nlo = i; nhi = i; -#. a single asterisk *\*\ *: nlo = nmin; nhi = nmax; -#. a single number followed by an asterisk *i\*\ *: nlo = i; nhi = nmax; -#. a single asterisk followed by a number *\*\ i*: nlo = nmin; nhi = i; -#. two numbers with an asterisk in between *i\*\ j*: nlo = i; nhi = j; -\endverbatim + * This functions processes the string in *str* and set the values of *nlo* + * and *nhi* according to the following five cases: + * + * - a single number *i*: nlo = i; nhi = i; + * - a single asterisk \*: nlo = nmin; nhi = nmax; + * - a single number followed by an asterisk *i*\*: nlo = i; nhi = nmax; + * - a single asterisk followed by a number \**i*: nlo = nmin; nhi = i; + * - two numbers with an asterisk in between *i\*j*: nlo = i; nhi = j; + * + * \param file name of source file for error message + * \param line line number in source file for error message + * \param str string to be processed + * \param nmin smallest possible lower bound + * \param nmax largest allowed upper bound + * \param nlo lower bound + * \param nhi upper bound + * \param error pointer to Error class for out-of-bounds messages */ - * \param file name of source file for error message - * \param line line number in source file for error message - * \param str string to be processed - * \param nmin smallest possible lower bound - * \param nmax largest allowed upper bound - * \param nlo lower bound - * \param nhi upper bound - * \param error pointer to Error class for out-of-bounds error message - */ void boundsbig(const char *file, int line, char *str, bigint nmin, bigint nmax, bigint &nlo, bigint &nhi, Error *error); @@ -209,15 +206,15 @@ and *nhi* according to the following five cases: * caller. Otherwise arg and earg will point to the same address * and no explicit de-allocation is needed by the caller. * - * \param file name of source file for error message - * \param line line number in source file for error message - * \param narg number of arguments in current list - * \param arg argument list, possibly containing wildcards - * \param mode select between global vectors(=0) and arrays (=1) - * \param earg new argument list with wildcards expanded - * \param lmp pointer to top-level LAMMPS class instance - * \return number of arguments in expanded list - */ + * \param file name of source file for error message + * \param line line number in source file for error message + * \param narg number of arguments in current list + * \param arg argument list, possibly containing wildcards + * \param mode select between global vectors(=0) and arrays (=1) + * \param earg new argument list with wildcards expanded + * \param lmp pointer to top-level LAMMPS class instance + * \return number of arguments in expanded list */ + int expand_args(const char *file, int line, int narg, char **arg, int mode, char **&earg, LAMMPS *lmp); @@ -326,7 +323,7 @@ and *nhi* according to the following five cases: bool file_is_readable(const std::string &path); /** Determine full path of potential file. If file is not found in current directory, - * search LAMMPS_POTENTIALS folder + * search directories listed in LAMMPS_POTENTIALS environment variable * * \param path file path * \return full path to potential file @@ -369,19 +366,25 @@ and *nhi* according to the following five cases: /** Open a potential file as specified by *name* * -\verbatim embed:rst -If opening the file directly fails, it will search for it in the folder(s) -pointed to by the environment variable LAMMPS_POTENTIALS. + * If opening the file directly fails, the function will search for + * it in the list of folder pointed to by the environment variable + * LAMMPS_POTENTIALS (if it is set). + * + * If the potential file has a ``UNITS`` tag in the first line, the + * tag's value is compared to the current unit style setting. + * The behavior of the function then depends on the value of the + * *auto_convert* parameter. If it is ``NULL``, then the unit values + * must match or else the open will fail with an error. Otherwise + * the bitmask that *auto_convert* points to is used check for + * compatibility with possible automatic conversions by the calling + * function. If compatible, the bitmask is set to the required + * conversion or ``NOCONVERT``. + * + * \param name file- or pathname of the potential file + * \param lmp pointer to top-level LAMMPS class instance + * \param auto_convert pointer to unit conversion bitmask or NULL + * \return FILE pointer of the opened potential file or NULL*/ -If the potential file has a ``UNITS`` tag in the first line, its -value is compared to the current :doc:`unit style ` setting. -\endverbatim - * - * \param name file- or pathname of the potential file - * \param lmp pointer to top-level LAMMPS class instance - * \param auto_convert pointer to automatic unit conversion bitmask - * \return FILE pointer of the opened potential file or NULL - */ FILE *open_potential(const std::string &name, LAMMPS *lmp, int *auto_convert); /** Convert a time string to seconds -- GitLab From f123246189d691cf745c22c29311d895faac108b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 00:25:01 -0400 Subject: [PATCH 141/165] minor doc updates --- src/utils.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/utils.h b/src/utils.h index 17b507d157..e50e78e867 100644 --- a/src/utils.h +++ b/src/utils.h @@ -148,11 +148,11 @@ namespace LAMMPS_NS { * This functions processes the string in *str* and set the values of *nlo* * and *nhi* according to the following five cases: * - * - a single number *i*: nlo = i; nhi = i; - * - a single asterisk \*: nlo = nmin; nhi = nmax; - * - a single number followed by an asterisk *i*\*: nlo = i; nhi = nmax; - * - a single asterisk followed by a number \**i*: nlo = nmin; nhi = i; - * - two numbers with an asterisk in between *i\*j*: nlo = i; nhi = j; + * - a single number, i: nlo = i; nhi = i; + * - a single asterisk, \*: nlo = nmin; nhi = nmax; + * - a single number followed by an asterisk, i\*: nlo = i; nhi = nmax; + * - a single asterisk followed by a number, \*i: nlo = nmin; nhi = i; + * - two numbers with an asterisk in between. i\*j: nlo = i; nhi = j; * * \param file name of source file for error message * \param line line number in source file for error message @@ -171,11 +171,11 @@ namespace LAMMPS_NS { * This functions processes the string in *str* and set the values of *nlo* * and *nhi* according to the following five cases: * - * - a single number *i*: nlo = i; nhi = i; - * - a single asterisk \*: nlo = nmin; nhi = nmax; - * - a single number followed by an asterisk *i*\*: nlo = i; nhi = nmax; - * - a single asterisk followed by a number \**i*: nlo = nmin; nhi = i; - * - two numbers with an asterisk in between *i\*j*: nlo = i; nhi = j; + * - a single number, i: nlo = i; nhi = i; + * - a single asterisk, \*: nlo = nmin; nhi = nmax; + * - a single number followed by an asterisk, i\*: nlo = i; nhi = nmax; + * - a single asterisk followed by a number, \*i: nlo = nmin; nhi = i; + * - two numbers with an asterisk in between. i\*j: nlo = i; nhi = j; * * \param file name of source file for error message * \param line line number in source file for error message @@ -368,7 +368,7 @@ namespace LAMMPS_NS { * * If opening the file directly fails, the function will search for * it in the list of folder pointed to by the environment variable - * LAMMPS_POTENTIALS (if it is set). + * ``LAMMPS_POTENTIALS`` (if it is set). * * If the potential file has a ``UNITS`` tag in the first line, the * tag's value is compared to the current unit style setting. @@ -378,7 +378,7 @@ namespace LAMMPS_NS { * the bitmask that *auto_convert* points to is used check for * compatibility with possible automatic conversions by the calling * function. If compatible, the bitmask is set to the required - * conversion or ``NOCONVERT``. + * conversion or ``utils::NOCONVERT``. * * \param name file- or pathname of the potential file * \param lmp pointer to top-level LAMMPS class instance -- GitLab From 8d2c16ad663df741acdcebdaa9a18fd33fb29887 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 00:31:04 -0400 Subject: [PATCH 142/165] remove trailing whitespace --- src/utils.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils.h b/src/utils.h index e50e78e867..d8db9815e5 100644 --- a/src/utils.h +++ b/src/utils.h @@ -147,7 +147,7 @@ namespace LAMMPS_NS { * * This functions processes the string in *str* and set the values of *nlo* * and *nhi* according to the following five cases: - * + * * - a single number, i: nlo = i; nhi = i; * - a single asterisk, \*: nlo = nmin; nhi = nmax; * - a single number followed by an asterisk, i\*: nlo = i; nhi = nmax; @@ -170,7 +170,7 @@ namespace LAMMPS_NS { * * This functions processes the string in *str* and set the values of *nlo* * and *nhi* according to the following five cases: - * + * * - a single number, i: nlo = i; nhi = i; * - a single asterisk, \*: nlo = nmin; nhi = nmax; * - a single number followed by an asterisk, i\*: nlo = i; nhi = nmax; -- GitLab From 96ee132e85e4e06c6d1e9904cae53afd21e12764 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 01:50:37 -0400 Subject: [PATCH 143/165] start documenting tokenizer classes --- doc/doxygen/Doxyfile.in | 2 ++ doc/src/pg_developer.rst | 29 +++++++++++++++++++++++++++ src/tokenizer.h | 43 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) diff --git a/doc/doxygen/Doxyfile.in b/doc/doxygen/Doxyfile.in index 78ac614ca3..d6b9327df1 100644 --- a/doc/doxygen/Doxyfile.in +++ b/doc/doxygen/Doxyfile.in @@ -422,6 +422,8 @@ INPUT = @LAMMPS_SOURCE_DIR@/utils.cpp \ @LAMMPS_SOURCE_DIR@/atom.h \ @LAMMPS_SOURCE_DIR@/input.cpp \ @LAMMPS_SOURCE_DIR@/input.h \ + @LAMMPS_SOURCE_DIR@/tokenizer.cpp \ + @LAMMPS_SOURCE_DIR@/tokenizer.h \ # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index 9ea30d599f..430637746d 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -880,3 +880,32 @@ Convenience functions .. doxygenfunction:: timespec2seconds :project: progguide + +--------------------------- + +Tokenizer classes +================= + +The purpose of the tokenizer classes is to simplify the recurring task +of breaking lines of text down into words and/or numbers. +Traditionally, LAMMPS code would be using the ``strtok()`` function from +the C library for that purpose, but that function has two significant +disadvantages: 1) it cannot be used concurrently from different LAMMPS +instances since it stores its status in a global variable and 2) it +modifies the string that it is processing. These classes were +implemented to avoid both of these issues and also to reduce the amount +of code that needs to be written. + +The basic procedure is to create an instance of the class with the +string to be processed as an argument and then do a loop until all +available tokens are read. The constructor has a default set of +separator characters, but that can be overridden. The default separators +are all "whitespace" characters, i.e. the space character, the tabulator +character, the carriage return character, the linefeed character, and +the form feed character. + +.. doxygenclass:: LAMMPS_NS::Tokenizer + :project: progguide + +.. doxygenclass:: LAMMPS_NS::ValueTokenizer + :project: progguide diff --git a/src/tokenizer.h b/src/tokenizer.h index cc77c8ee0d..af8bb114f2 100644 --- a/src/tokenizer.h +++ b/src/tokenizer.h @@ -27,6 +27,11 @@ namespace LAMMPS_NS { #define TOKENIZER_DEFAULT_SEPARATORS " \t\r\n\f" +/*! Class for splitting text into words + * + * \sa ValueTokenizer + */ + class Tokenizer { std::string text; std::string separators; @@ -39,13 +44,46 @@ public: Tokenizer& operator=(const Tokenizer&) = default; Tokenizer& operator=(Tokenizer&&) = default; + /*! Reposition the tokenizer state to the first word, + * i.e. the first non-separator character + */ void reset(); + + /*! Skip over a given number of tokens + * + * \param n number of tokens to skip over + */ void skip(int n); + + /*! Indicate whether more tokens are available + * + * \return true if there are more tokens, false if not + */ bool has_next() const; + + /*! Search the text to be processed for a sub-string. + * + * \param str string to be searched for + * \return true if string was found, false if not + */ bool contains(const std::string & str) const; + + /*! Retrieve next token. + * + * \return string with the next token + */ std::string next(); + /*! Count number of tokens in text. + * + * \return number of counted tokens + */ size_t count(); + + /*! Retrieve the entire text converted to an STL vector of tokens. + * + * \return The STL vector + */ std::vector as_vector(); }; @@ -74,6 +112,11 @@ public: } }; +/*! Class for reading text with numbers + * + * \sa Tokenizer + */ + class ValueTokenizer { Tokenizer tokens; public: -- GitLab From 562300996285fdec4ef74542383276898555af06 Mon Sep 17 00:00:00 2001 From: Vsevak Date: Sun, 30 Aug 2020 01:29:48 +0300 Subject: [PATCH 144/165] arch 3.0 is dropped in CUDA 11 --- cmake/Modules/Packages/GPU.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Modules/Packages/GPU.cmake b/cmake/Modules/Packages/GPU.cmake index 04c320226a..ac2c975da3 100644 --- a/cmake/Modules/Packages/GPU.cmake +++ b/cmake/Modules/Packages/GPU.cmake @@ -75,7 +75,7 @@ if(GPU_API STREQUAL "CUDA") endif() # Kepler (GPU Arch 3.5) is supported by CUDA 5 to CUDA 11 if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0")) - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_30,code=[sm_30,compute_30] -gencode arch=compute_35,code=[sm_35,compute_35]") + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_35,code=[sm_35,compute_35]") endif() # Maxwell (GPU Arch 5.x) is supported by CUDA 6 and later if(CUDA_VERSION VERSION_GREATER_EQUAL "6.0") -- GitLab From 4b0999e167616f1a57077e8bb65a0e6ad2e42f81 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 14:11:14 -0400 Subject: [PATCH 145/165] complete documentation of tokenizer classes --- doc/src/pg_developer.rst | 50 +++++++++++++++++++++++++++++++++- src/tokenizer.cpp | 59 ++++++++++++++++++++++++++++++++++++++++ src/tokenizer.h | 48 ++++---------------------------- 3 files changed, 113 insertions(+), 44 deletions(-) diff --git a/doc/src/pg_developer.rst b/doc/src/pg_developer.rst index 430637746d..eaaa368425 100644 --- a/doc/src/pg_developer.rst +++ b/doc/src/pg_developer.rst @@ -902,10 +902,58 @@ available tokens are read. The constructor has a default set of separator characters, but that can be overridden. The default separators are all "whitespace" characters, i.e. the space character, the tabulator character, the carriage return character, the linefeed character, and -the form feed character. +the form feed character. Below is a small example code using the +tokenizer class to print the individual entries of the PATH environment +variable. + +.. code-block:: C++ + + #include "tokenizer.h" + #include + #include + #include + + using namespace LAMMPS_NS; + + int main(int, char **) + { + const char *path = getenv("PATH"); + + if (path != nullptr) { + Tokenizer p(path,":"); + while (p.has_next()) + std::cout << "Entry: " << p.next() << "\n"; + } + return 0; + } + +Most tokenizer operations cannot fail except for +:cpp:func:`LAMMPS_NS::Tokenizer::next` (when used without first +checking with :cpp:func:`LAMMPS_NS::Tokenizer::has_next`) and +:cpp:func:`LAMMPS_NS::Tokenizer::skip`. In case of failure, the class +will throw an exception, so you may need to wrap the code using the +tokenizer into a ``try`` / ``catch`` block to handle errors. The +:cpp:class:`LAMMPS_NS::ValueTokenizer` class may also throw an exception +when a (type of) number is requested as next token that is not +compatible with the string representing the next word. .. doxygenclass:: LAMMPS_NS::Tokenizer :project: progguide + :members: + +.. doxygenclass:: LAMMPS_NS::TokenizerException + :project: progguide + :members: .. doxygenclass:: LAMMPS_NS::ValueTokenizer :project: progguide + :members: + +.. doxygenclass:: LAMMPS_NS::InvalidIntegerException + :project: progguide + :members: what + +.. doxygenclass:: LAMMPS_NS::InvalidFloatException + :project: progguide + :members: what + diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp index 62605f76c3..032d3473a8 100644 --- a/src/tokenizer.cpp +++ b/src/tokenizer.cpp @@ -30,6 +30,13 @@ TokenizerException::TokenizerException(const std::string & msg, const std::strin } } +/** Class for splitting text into words + * + * This tokenizer will break down a string into sub-strings (i.e words) + * separated by the given separator characters. + * + * \sa LAMMPS_NS::ValueTokenizer TokenizerException */ + Tokenizer::Tokenizer(const std::string & str, const std::string & separators) : text(str), separators(separators), start(0), ntokens(std::string::npos) { @@ -48,14 +55,23 @@ Tokenizer::Tokenizer(Tokenizer && rhs) : reset(); } +/*! Reposition the tokenizer state to the first word, + * i.e. the first non-separator character */ void Tokenizer::reset() { start = text.find_first_not_of(separators); } +/*! Search the text to be processed for a sub-string. + * + * \param str string to be searched for + * \return true if string was found, false if not */ bool Tokenizer::contains(const std::string & str) const { return text.find(str) != std::string::npos; } +/*! Skip over a given number of tokens + * + * \param n number of tokens to skip over */ void Tokenizer::skip(int n) { for(int i = 0; i < n; ++i) { if(!has_next()) throw TokenizerException("No more tokens", ""); @@ -70,10 +86,16 @@ void Tokenizer::skip(int n) { } } +/*! Indicate whether more tokens are available + * + * \return true if there are more tokens, false if not */ bool Tokenizer::has_next() const { return start != std::string::npos; } +/*! Retrieve next token. + * + * \return string with the next token */ std::string Tokenizer::next() { if(!has_next()) throw TokenizerException("No more tokens", ""); @@ -90,6 +112,9 @@ std::string Tokenizer::next() { return token; } +/*! Count number of tokens in text. + * + * \return number of counted tokens */ size_t Tokenizer::count() { // lazy evaluation if (ntokens == std::string::npos) { @@ -98,6 +123,9 @@ size_t Tokenizer::count() { return ntokens; } +/*! Retrieve the entire text converted to an STL vector of tokens. + * + * \return The STL vector */ std::vector Tokenizer::as_vector() { // store current state size_t current = start; @@ -117,6 +145,9 @@ std::vector Tokenizer::as_vector() { return tokens; } +/*! Class for reading text with numbers + * + * \sa LAMMPS_NS::Tokenizer InvalidIntegerException InvalidFloatException */ ValueTokenizer::ValueTokenizer(const std::string & str, const std::string & separators) : tokens(str, separators) { } @@ -127,14 +158,24 @@ ValueTokenizer::ValueTokenizer(const ValueTokenizer & rhs) : tokens(rhs.tokens) ValueTokenizer::ValueTokenizer(ValueTokenizer && rhs) : tokens(std::move(rhs.tokens)) { } +/*! Indicate whether more tokens are available + * + * \return true if there are more tokens, false if not */ bool ValueTokenizer::has_next() const { return tokens.has_next(); } +/*! Search the text to be processed for a sub-string. + * + * \param value string with value to be searched for + * \return true if string was found, false if not */ bool ValueTokenizer::contains(const std::string & value) const { return tokens.contains(value); } +/*! Retrieve next token + * + * \return string with next token */ std::string ValueTokenizer::next_string() { if (has_next()) { std::string value = tokens.next(); @@ -143,6 +184,9 @@ std::string ValueTokenizer::next_string() { return ""; } +/*! Retrieve next token and convert to int + * + * \return value of next token */ int ValueTokenizer::next_int() { if (has_next()) { std::string current = tokens.next(); @@ -155,6 +199,9 @@ int ValueTokenizer::next_int() { return 0; } +/*! Retrieve next token and convert to bigint + * + * \return value of next token */ bigint ValueTokenizer::next_bigint() { if (has_next()) { std::string current = tokens.next(); @@ -167,6 +214,9 @@ bigint ValueTokenizer::next_bigint() { return 0; } +/*! Retrieve next token and convert to tagint + * + * \return value of next token */ tagint ValueTokenizer::next_tagint() { if (has_next()) { std::string current = tokens.next(); @@ -179,6 +229,9 @@ tagint ValueTokenizer::next_tagint() { return 0; } +/*! Retrieve next token and convert to double + * + * \return value of next token */ double ValueTokenizer::next_double() { if (has_next()) { std::string current = tokens.next(); @@ -191,10 +244,16 @@ double ValueTokenizer::next_double() { return 0.0; } +/*! Skip over a given number of tokens + * + * \param n number of tokens to skip over */ void ValueTokenizer::skip(int n) { tokens.skip(n); } +/*! Count number of tokens in text. + * + * \return number of counted tokens */ size_t ValueTokenizer::count() { return tokens.count(); } diff --git a/src/tokenizer.h b/src/tokenizer.h index af8bb114f2..fd034ddddb 100644 --- a/src/tokenizer.h +++ b/src/tokenizer.h @@ -27,11 +27,6 @@ namespace LAMMPS_NS { #define TOKENIZER_DEFAULT_SEPARATORS " \t\r\n\f" -/*! Class for splitting text into words - * - * \sa ValueTokenizer - */ - class Tokenizer { std::string text; std::string separators; @@ -44,49 +39,17 @@ public: Tokenizer& operator=(const Tokenizer&) = default; Tokenizer& operator=(Tokenizer&&) = default; - /*! Reposition the tokenizer state to the first word, - * i.e. the first non-separator character - */ void reset(); - - /*! Skip over a given number of tokens - * - * \param n number of tokens to skip over - */ void skip(int n); - - /*! Indicate whether more tokens are available - * - * \return true if there are more tokens, false if not - */ bool has_next() const; - - /*! Search the text to be processed for a sub-string. - * - * \param str string to be searched for - * \return true if string was found, false if not - */ bool contains(const std::string & str) const; - - /*! Retrieve next token. - * - * \return string with the next token - */ std::string next(); - /*! Count number of tokens in text. - * - * \return number of counted tokens - */ size_t count(); - - /*! Retrieve the entire text converted to an STL vector of tokens. - * - * \return The STL vector - */ std::vector as_vector(); }; +/** \exception TokenizerException. Contains an error message string. */ class TokenizerException : public std::exception { std::string message; public: @@ -95,28 +58,27 @@ public: ~TokenizerException() throw() { } + /** Retrieve message describing the thrown exception + * \return string with error message */ virtual const char * what() const throw() { return message.c_str(); } }; +/** \exception InvalidIntegerException. Contains an error message string. */ class InvalidIntegerException : public TokenizerException { public: InvalidIntegerException(const std::string & token) : TokenizerException("Not a valid integer number", token) { } }; +/** \exception FloatIntegerException. Contains an error message string. */ class InvalidFloatException : public TokenizerException { public: InvalidFloatException(const std::string & token) : TokenizerException("Not a valid floating-point number", token) { } }; -/*! Class for reading text with numbers - * - * \sa Tokenizer - */ - class ValueTokenizer { Tokenizer tokens; public: -- GitLab From 8d45b724a61bef9cfd654ec25fda2ec2cb27a3f3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 14:12:53 -0400 Subject: [PATCH 146/165] fix bug in conventional build makefile preventing the correct Install.py in the lib folder to be run --- src/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 4528c027cf..8216d5164c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -85,8 +85,8 @@ PACKUSERUC = $(call uppercase,$(PACKUSER)) YESDIR = $(call uppercase,$(@:yes-%=%)) NODIR = $(call uppercase,$(@:no-%=%)) -LIBDIR = $($(@:lib-%=%)) -LIBUSERDIR = $($(@:lib-user-%=%)) +LIBDIR = $(@:lib-%=%) +LIBUSERDIR = $(@:lib-user-%=%) # List of all targets -- GitLab From f3ed1dea4d23f5ee012830a6a4094443895168a6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 14:28:19 -0400 Subject: [PATCH 147/165] minor tweaks --- src/tokenizer.cpp | 6 ++++-- src/tokenizer.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp index 032d3473a8..bad6250df5 100644 --- a/src/tokenizer.cpp +++ b/src/tokenizer.cpp @@ -35,7 +35,9 @@ TokenizerException::TokenizerException(const std::string & msg, const std::strin * This tokenizer will break down a string into sub-strings (i.e words) * separated by the given separator characters. * - * \sa LAMMPS_NS::ValueTokenizer TokenizerException */ + * \exception TokenizerException + * + * \sa ValueTokenizer TokenizerException */ Tokenizer::Tokenizer(const std::string & str, const std::string & separators) : text(str), separators(separators), start(0), ntokens(std::string::npos) @@ -147,7 +149,7 @@ std::vector Tokenizer::as_vector() { /*! Class for reading text with numbers * - * \sa LAMMPS_NS::Tokenizer InvalidIntegerException InvalidFloatException */ + * \sa Tokenizer InvalidIntegerException InvalidFloatException */ ValueTokenizer::ValueTokenizer(const std::string & str, const std::string & separators) : tokens(str, separators) { } diff --git a/src/tokenizer.h b/src/tokenizer.h index fd034ddddb..688e6dcbbc 100644 --- a/src/tokenizer.h +++ b/src/tokenizer.h @@ -49,10 +49,10 @@ public: std::vector as_vector(); }; -/** \exception TokenizerException. Contains an error message string. */ class TokenizerException : public std::exception { std::string message; public: + /** Thrown during retrieving or skipping tokens */ TokenizerException(const std::string & msg, const std::string & token); ~TokenizerException() throw() { -- GitLab From cd0cdf0b747a6d97d99946ec7976cf4a07221039 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 14:28:29 -0400 Subject: [PATCH 148/165] silence compiler warning --- src/USER-REACTION/fix_bond_react.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 0b0e41581d..9485d6cd27 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -169,7 +169,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"reset_mol_ids") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " "'reset_mol_ids' keyword has too few arguments"); - if (strcmp(arg[iarg+1],"yes") == 0) ; // default + if (strcmp(arg[iarg+1],"yes") == 0) reset_mol_ids_flag = 1; // default if (strcmp(arg[iarg+1],"no") == 0) reset_mol_ids_flag = 0; iarg += 2; } else if (strcmp(arg[iarg],"react") == 0) { -- GitLab From 199cfeba78d8eec5528cb46a702a459995f1059f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 14:32:53 -0400 Subject: [PATCH 149/165] more tweaks. doxygen translation has no more warnings now. --- src/tokenizer.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tokenizer.h b/src/tokenizer.h index 688e6dcbbc..17f4159ad7 100644 --- a/src/tokenizer.h +++ b/src/tokenizer.h @@ -65,16 +65,16 @@ public: } }; -/** \exception InvalidIntegerException. Contains an error message string. */ class InvalidIntegerException : public TokenizerException { public: + /** Thrown during converting string to integer number */ InvalidIntegerException(const std::string & token) : TokenizerException("Not a valid integer number", token) { } }; -/** \exception FloatIntegerException. Contains an error message string. */ class InvalidFloatException : public TokenizerException { public: + /** Thrown during converting string to floating point number */ InvalidFloatException(const std::string & token) : TokenizerException("Not a valid floating-point number", token) { } }; -- GitLab From 65d2ee74644e7b068e6d3ef7b074f0d9ce888901 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 15:23:02 -0400 Subject: [PATCH 150/165] add work-in-progress marker to fortran library wrapper --- doc/src/pg_fortran.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/src/pg_fortran.rst b/doc/src/pg_fortran.rst index a6085da13a..0942d5a303 100644 --- a/doc/src/pg_fortran.rst +++ b/doc/src/pg_fortran.rst @@ -24,6 +24,15 @@ of the source files: the lammps.f90 file needs to be compiled first, since it provides the ``LIBLAMMPS`` module that is imported by the fortran code using the interface. +.. versionadded:: 30Sep2020 + +.. admonition:: Work in Progress + + This fortran module is work in progress and only the documented + functionality is currently available. The final implementation should + cover the entire range of functionality available in the C and + Python library interfaces. + ---------- Creating or deleting a LAMMPS object -- GitLab From 4484699ab64142fe1332bb04b7f34ef36387e247 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 15:52:42 -0400 Subject: [PATCH 151/165] fix spelling --- doc/src/pg_fortran.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/pg_fortran.rst b/doc/src/pg_fortran.rst index 0942d5a303..50738330d2 100644 --- a/doc/src/pg_fortran.rst +++ b/doc/src/pg_fortran.rst @@ -22,13 +22,13 @@ Please note, that the MPI compiler wrapper is only required when the calling the library from an MPI parallel code. Please also note the order of the source files: the lammps.f90 file needs to be compiled first, since it provides the ``LIBLAMMPS`` module that is imported by the -fortran code using the interface. +Fortran code using the interface. .. versionadded:: 30Sep2020 .. admonition:: Work in Progress - This fortran module is work in progress and only the documented + This Fortran module is work in progress and only the documented functionality is currently available. The final implementation should cover the entire range of functionality available in the C and Python library interfaces. -- GitLab From 7a5f193c0292c3afeeb8c37916d36d9a4d998bf2 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sun, 30 Aug 2020 15:06:44 -0500 Subject: [PATCH 152/165] Updated several Makefile's in lib/gpu for newer compute capabilities --- lib/gpu/Makefile.linux | 4 ++-- lib/gpu/Makefile.linux.double | 36 ++++++++++++++++++++++++++++------- lib/gpu/Makefile.linux.mixed | 35 ++++++++++++++++++++++++++++------ lib/gpu/Makefile.linux.single | 36 ++++++++++++++++++++++++++++------- lib/gpu/Makefile.linux_multi | 8 ++++---- lib/gpu/Makefile.serial | 32 +++++++++++++++++++++++++------ 6 files changed, 119 insertions(+), 32 deletions(-) diff --git a/lib/gpu/Makefile.linux b/lib/gpu/Makefile.linux index a26fbe114c..3fa1dcdce6 100644 --- a/lib/gpu/Makefile.linux +++ b/lib/gpu/Makefile.linux @@ -22,13 +22,13 @@ NVCC = nvcc #CUDA_ARCH = -arch=sm_21 # Kepler hardware -CUDA_ARCH = -arch=sm_30 +#CUDA_ARCH = -arch=sm_30 #CUDA_ARCH = -arch=sm_32 #CUDA_ARCH = -arch=sm_35 #CUDA_ARCH = -arch=sm_37 # Maxwell hardware -#CUDA_ARCH = -arch=sm_50 +CUDA_ARCH = -arch=sm_50 #CUDA_ARCH = -arch=sm_52 # Pascal hardware diff --git a/lib/gpu/Makefile.linux.double b/lib/gpu/Makefile.linux.double index 05f083697d..4693c86d57 100644 --- a/lib/gpu/Makefile.linux.double +++ b/lib/gpu/Makefile.linux.double @@ -7,18 +7,40 @@ EXTRAMAKE = Makefile.lammps.standard +ifeq ($(CUDA_HOME),) CUDA_HOME = /usr/local/cuda +endif + NVCC = nvcc -# Kepler CUDA -#CUDA_ARCH = -arch=sm_35 -# Tesla CUDA -CUDA_ARCH = -arch=sm_21 -# newer CUDA +# obsolete hardware. not supported by current drivers anymore. #CUDA_ARCH = -arch=sm_13 -# older CUDA #CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE +# Fermi hardware +#CUDA_ARCH = -arch=sm_20 +#CUDA_ARCH = -arch=sm_21 + +# Kepler hardware +#CUDA_ARCH = -arch=sm_30 +#CUDA_ARCH = -arch=sm_32 +#CUDA_ARCH = -arch=sm_35 +#CUDA_ARCH = -arch=sm_37 + +# Maxwell hardware +CUDA_ARCH = -arch=sm_50 +#CUDA_ARCH = -arch=sm_52 + +# Pascal hardware +#CUDA_ARCH = -arch=sm_60 +#CUDA_ARCH = -arch=sm_61 + +# Volta hardware +#CUDA_ARCH = -arch=sm_70 + +# Turing hardware +#CUDA_ARCH = -arch=sm_75 + # this setting should match LAMMPS Makefile # one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL @@ -33,7 +55,7 @@ CUDA_PRECISION = -D_DOUBLE_DOUBLE CUDA_INCLUDE = -I$(CUDA_HOME)/include CUDA_LIB = -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib64/stubs -CUDA_OPTS = -DUNIX -O3 --use_fast_math +CUDA_OPTS = -DUNIX -O3 --use_fast_math $(LMP_INC) -Xcompiler -fPIC CUDR_CPP = mpic++ -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK CUDR_OPTS = -O2 # -xHost -no-prec-div -ansi-alias diff --git a/lib/gpu/Makefile.linux.mixed b/lib/gpu/Makefile.linux.mixed index ca414f1fc1..03c776fad0 100644 --- a/lib/gpu/Makefile.linux.mixed +++ b/lib/gpu/Makefile.linux.mixed @@ -7,18 +7,41 @@ EXTRAMAKE = Makefile.lammps.standard +ifeq ($(CUDA_HOME),) CUDA_HOME = /usr/local/cuda +endif + NVCC = nvcc -# Kepler CUDA -#CUDA_ARCH = -arch=sm_35 -# Tesla CUDA -CUDA_ARCH = -arch=sm_21 -# newer CUDA +# obsolete hardware. not supported by current drivers anymore. #CUDA_ARCH = -arch=sm_13 # older CUDA #CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE +# Fermi hardware +#CUDA_ARCH = -arch=sm_20 +#CUDA_ARCH = -arch=sm_21 + +# Kepler hardware +#CUDA_ARCH = -arch=sm_30 +#CUDA_ARCH = -arch=sm_32 +#CUDA_ARCH = -arch=sm_35 +#CUDA_ARCH = -arch=sm_37 + +# Maxwell hardware +CUDA_ARCH = -arch=sm_50 +#CUDA_ARCH = -arch=sm_52 + +# Pascal hardware +#CUDA_ARCH = -arch=sm_60 +#CUDA_ARCH = -arch=sm_61 + +# Volta hardware +#CUDA_ARCH = -arch=sm_70 + +# Turing hardware +#CUDA_ARCH = -arch=sm_75 + # this setting should match LAMMPS Makefile # one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL @@ -33,7 +56,7 @@ CUDA_PRECISION = -D_SINGLE_DOUBLE CUDA_INCLUDE = -I$(CUDA_HOME)/include CUDA_LIB = -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib64/stubs -CUDA_OPTS = -DUNIX -O3 --use_fast_math +CUDA_OPTS = -DUNIX -O3 --use_fast_math $(LMP_INC) -Xcompiler -fPIC CUDR_CPP = mpic++ -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK CUDR_OPTS = -O2 # -xHost -no-prec-div -ansi-alias diff --git a/lib/gpu/Makefile.linux.single b/lib/gpu/Makefile.linux.single index 1b349faac2..0c3d525b4e 100644 --- a/lib/gpu/Makefile.linux.single +++ b/lib/gpu/Makefile.linux.single @@ -7,18 +7,40 @@ EXTRAMAKE = Makefile.lammps.standard +ifeq ($(CUDA_HOME),) CUDA_HOME = /usr/local/cuda +endif + NVCC = nvcc -# Kepler CUDA -#CUDA_ARCH = -arch=sm_35 -# Tesla CUDA -CUDA_ARCH = -arch=sm_21 -# newer CUDA +# obsolete hardware. not supported by current drivers anymore. #CUDA_ARCH = -arch=sm_13 -# older CUDA #CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE +# Fermi hardware +#CUDA_ARCH = -arch=sm_20 +#CUDA_ARCH = -arch=sm_21 + +# Kepler hardware +#CUDA_ARCH = -arch=sm_30 +#CUDA_ARCH = -arch=sm_32 +#CUDA_ARCH = -arch=sm_35 +#CUDA_ARCH = -arch=sm_37 + +# Maxwell hardware +CUDA_ARCH = -arch=sm_50 +#CUDA_ARCH = -arch=sm_52 + +# Pascal hardware +#CUDA_ARCH = -arch=sm_60 +#CUDA_ARCH = -arch=sm_61 + +# Volta hardware +#CUDA_ARCH = -arch=sm_70 + +# Turing hardware +#CUDA_ARCH = -arch=sm_75 + # this setting should match LAMMPS Makefile # one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL @@ -33,7 +55,7 @@ CUDA_PRECISION = -D_SINGLE_SINGLE CUDA_INCLUDE = -I$(CUDA_HOME)/include CUDA_LIB = -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib64/stubs -CUDA_OPTS = -DUNIX -O3 --use_fast_math +CUDA_OPTS = -DUNIX -O3 --use_fast_math $(LMP_INC) -Xcompiler -fPIC CUDR_CPP = mpic++ -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK CUDR_OPTS = -O2 # -xHost -no-prec-div -ansi-alias diff --git a/lib/gpu/Makefile.linux_multi b/lib/gpu/Makefile.linux_multi index ba50170f39..27b0bac77c 100644 --- a/lib/gpu/Makefile.linux_multi +++ b/lib/gpu/Makefile.linux_multi @@ -19,11 +19,11 @@ NVCC = nvcc #CUDA_ARCH = -arch=sm_13 # older CUDA #CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE -CUDA_ARCH = -arch=sm_30 +CUDA_ARCH = -arch=sm_50 -CUDA_CODE = -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61] \ - -gencode arch=compute_30,code=[sm_30,compute_30] -gencode arch=compute_35,code=[sm_35,compute_35] \ - -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] +CUDA_CODE = -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] \ + -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61] \ + -gencode arch=compute_70,code=[sm_70,compute_70] -gencode arch=compute_75,code=[sm_75,compute_75] CUDA_ARCH += $(CUDA_CODE) diff --git a/lib/gpu/Makefile.serial b/lib/gpu/Makefile.serial index b0cfb3c86b..dfe732ee80 100644 --- a/lib/gpu/Makefile.serial +++ b/lib/gpu/Makefile.serial @@ -13,13 +13,33 @@ endif NVCC = nvcc -# Tesla CUDA -CUDA_ARCH = -arch=sm_21 -# newer CUDA +# obsolete hardware. not supported by current drivers anymore. #CUDA_ARCH = -arch=sm_13 -# older CUDA #CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE -CUDA_ARCH = -arch=sm_35 + +# Fermi hardware +#CUDA_ARCH = -arch=sm_20 +#CUDA_ARCH = -arch=sm_21 + +# Kepler hardware +#CUDA_ARCH = -arch=sm_30 +#CUDA_ARCH = -arch=sm_32 +#CUDA_ARCH = -arch=sm_35 +#CUDA_ARCH = -arch=sm_37 + +# Maxwell hardware +CUDA_ARCH = -arch=sm_50 +#CUDA_ARCH = -arch=sm_52 + +# Pascal hardware +#CUDA_ARCH = -arch=sm_60 +#CUDA_ARCH = -arch=sm_61 + +# Volta hardware +#CUDA_ARCH = -arch=sm_70 + +# Turing hardware +#CUDA_ARCH = -arch=sm_75 # this setting should match LAMMPS Makefile # one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL @@ -35,7 +55,7 @@ CUDA_PRECISION = -D_SINGLE_DOUBLE CUDA_INCLUDE = -I$(CUDA_HOME)/include CUDA_LIB = -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib64/stubs -L../../src/STUBS -lmpi_stubs -CUDA_OPTS = -DUNIX -O3 --use_fast_math $(LMP_INC) +CUDA_OPTS = -DUNIX -O3 --use_fast_math $(LMP_INC) -Xcompiler -fPIC CUDR_CPP = g++ -DMPI_GERYON -DUCL_NO_EXIT -fPIC -I../../src/STUBS CUDR_OPTS = -O2 $(LMP_INC) # -xHost -no-prec-div -ansi-alias -- GitLab From ecb1f266b5efbc78b4f01d2753b2694bcab1d450 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sun, 30 Aug 2020 15:10:29 -0500 Subject: [PATCH 153/165] More updates --- lib/gpu/Makefile.linux_multi | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/gpu/Makefile.linux_multi b/lib/gpu/Makefile.linux_multi index 27b0bac77c..d47f87e871 100644 --- a/lib/gpu/Makefile.linux_multi +++ b/lib/gpu/Makefile.linux_multi @@ -13,13 +13,23 @@ endif NVCC = nvcc -# Kepler CUDA -#CUDA_ARCH = -arch=sm_35 -# newer CUDA +# obsolete hardware. not supported by current drivers anymore. #CUDA_ARCH = -arch=sm_13 -# older CUDA #CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE + +# Fermi hardware +#CUDA_ARCH = -arch=sm_20 +#CUDA_ARCH = -arch=sm_21 + +# Kepler hardware +#CUDA_ARCH = -arch=sm_30 +#CUDA_ARCH = -arch=sm_32 +#CUDA_ARCH = -arch=sm_35 +#CUDA_ARCH = -arch=sm_37 + +# Maxwell hardware CUDA_ARCH = -arch=sm_50 +#CUDA_ARCH = -arch=sm_52 CUDA_CODE = -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] \ -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61] \ -- GitLab From e8e57b0628fe1aaa0fe9830f3bd2dc610156d723 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Aug 2020 19:56:49 -0400 Subject: [PATCH 154/165] remove doxygen tool folder and references to it in the input as it is no longer compatible and needed --- doc/src/Manual_build.rst | 2 +- doc/src/Tools.rst | 16 - tools/doxygen/Developer.dox.lammps | 456 ----- tools/doxygen/Doxyfile.lammps | 2557 ---------------------------- tools/doxygen/README | 158 -- tools/doxygen/doxygen.sh | 107 -- 6 files changed, 1 insertion(+), 3295 deletions(-) delete mode 100644 tools/doxygen/Developer.dox.lammps delete mode 100644 tools/doxygen/Doxyfile.lammps delete mode 100644 tools/doxygen/README delete mode 100644 tools/doxygen/doxygen.sh diff --git a/doc/src/Manual_build.rst b/doc/src/Manual_build.rst index affa9e5057..a8e3f1a1c6 100644 --- a/doc/src/Manual_build.rst +++ b/doc/src/Manual_build.rst @@ -51,7 +51,7 @@ b. You can build the HTML or PDF files yourself, by typing ``make html`` A current version of the manual (latest patch release, aka unstable branch) is is available online at: `https://lammps.sandia.gov/doc/Manual.html `_ A version of the manual corresponding to the ongoing development -(aka master branch) is available online at: `https://doc.lammps.org/ `_ +(aka master branch) is available online at: `https://docs.lammps.org/ `_ ---------- diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index 8feb2afefa..3600d6c661 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -89,7 +89,6 @@ Miscellaneous tools :columns: 6 * :ref:`CMake ` - * :ref:`doxygen ` * :ref:`emacs ` * :ref:`i-pi ` * :ref:`kate ` @@ -254,21 +253,6 @@ The tool is authored by Xiaowang Zhou (Sandia), xzhou at sandia.gov. ---------- -.. _doxygen: - -doxygen tool --------------------------- - -The tools/doxygen directory contains a shell script called -doxygen.sh which can generate a call graph and API lists using -the `Doxygen software `_. - -See the included README file for details. - -The tool is authored by Nandor Tamaskovics, numericalfreedom at googlemail.com. - ----------- - .. _drude: drude tool diff --git a/tools/doxygen/Developer.dox.lammps b/tools/doxygen/Developer.dox.lammps deleted file mode 100644 index 8e9e3de232..0000000000 --- a/tools/doxygen/Developer.dox.lammps +++ /dev/null @@ -1,456 +0,0 @@ -/** - -@mainpage Lammps Developer Guide -@tableofcontents - -

    LAMMPS Documentation

    -

    and

    -

    LAMMPS Developer Guide

    -

    LAMMPS_VERSION

    - - -This document is a developer guide to the LAMMPS molecular dynamics package, whose WWW site is at lammps.sandia.gov. It describes the internal structure and algorithms of the code. Sections will be added as we have time, and in response to requests from developers and users. - - -@section SCT_Lammps_source_files LAMMPS source files - -LAMMPS source files are in two directories of the distribution tarball. The src directory has the majority of them, all of which are C++ files (*.cpp and *.h). Many of these files are in the src directory itself. There are also dozens of "packages", which can be included or excluded when LAMMPS is built. See the doc/Section_start.html section of the manual for more information about packages, or type "make" from within the src directory, which lists package-related commands, such as "make package-status". The source files for each package are in an all-uppercase sub-directory of src, like src/MOLECULE or src/USER-CUDA. If the package is currently installed, copies of the package source files will also exist in the src directory itself. The src/STUBS sub-directory is not a package but contains a dummy version of the MPI library, used when building a serial version of the code. - -The lib directory also contains source code for external libraries, used by a few of the packages. Each sub-directory, like meam or gpu, contains the source files, some of which are in different languages such as Fortran. The files are compiled into libraries from within each sub-directory, e.g. performing a "make" in the lib/meam directory creates a libmeam.a file. These libraries are statically linked to during a LAMMPS build, if the corresponding package is installed. - -LAMMPS C++ source files almost always come in pairs, such as run.cpp and run.h. The pair of files defines a C++ class, the LAMMPS_NS::Run class in this case, which contains the code invoked by the run command in a LAMMPS input script. As this example illustrates, source file and class names often have a one-to-one correspondence with a command used in a LAMMPS input script. Some source files and classes do not have a corresponding input script command, e.g. force.cpp and the LAMMPS_NS::Force class. They are discussed in the next section. - - -@section SCT_Class_hierarchy_of_LAMMPS Class hierarchy of LAMMPS - -Though LAMMPS has a lot of source files and classes, its class hierarchy is quite simple, as outlined in figure @ref classes. Each boxed name refers to a class and has a pair of associated source files in lammps/src, e.g. memory.cpp and memory.h. More details on the class and its methods and data structures can be found by examining its *.h file. - -LAMMPS_NS::LAMMPS (src/lammps.cpp and src/lammps.h) is the top-level class for the entire code. It holds an "instance" of LAMMPS and can be instantiated one or more times by a calling code. For example, the file src/main.cpp simply instantiates one instance of LAMMPS and passes it the input script. - -The file src/library.cpp contains a C-style library interface to the LAMMPS_NS::LAMMPS class. See the lammps/couple and lammps/python directories for examples of simple programs that use LAMMPS through its library interface. A driver program can instantiate the LAMMPS_NS::LAMMPS class multiple times, e.g. to embed several atomistic simulation regions within a mesoscale or continuum simulation domain. - -There are a dozen or so top-level classes within the LAMMPS_NS::LAMMPS class that are visible everywhere in the code. They are shaded blue in figure @ref classes. Thus any class can refer to the y-coordinate of local atom "i" as atom@f$\rightarrow@f$x[i][1]. This visibility is enabled by a bit of cleverness in the LAMMPS_NS::Pointers class (see src/pointers.h) which every class inherits from. - -There are a handful of virtual parent classes in LAMMPS that define what LAMMPS calls "styles". They are shaded red in figure @ref classes. Each of these are parents of a number of child classes that implement the interface defined by the parent class. For example, the "fix style" has around 100 child classes. They are the possible fixes that can be specified by the fix command in an input script, e.g. fix nve, fix shake, fix ave/time, etc. The corresponding classes are LAMMPS_NS::Fix (for the parent class), LAMMPS_NS::FixNVE, LAMMPS_NS::FixShake, LAMMPS_NS::FixAveTime, etc. The source files for these classes are easy to identify in the src directory, since they begin with the word "fix", e,g, fix_nve.cpp, fix_shake.cpp, fix_ave_time.cpp, etc. - -The one exception is child class files for the "command" style. These implement specific commands in the input script that can be invoked before/after/between runs or which launch a simulation. Examples are the create_box, minimize, run, and velocity commands which encode the LAMMPS_NS::CreateBox, LAMMPS_NS::Minimize, LAMMPS_NS::Run, and LAMMPS_NS::Velocity classes. The corresponding files are create_box.cpp, minimize.cpp, run.cpp, and velocity.cpp. - -The list of command style files can be found by typing "grep COMMAND_CLASS *.h" from within the src directory, since that word in the header file identifies the class as an input script command. Similar words can be grepped to list files for the other LAMMPS styles. E.g. ATOM_CLASS, PAIR_CLASS, BOND_CLASS, REGION_CLASS, FIX_CLASS, COMPUTE_CLASS, DUMP_CLASS, etc. - -
    - -@anchor classes @image html classes.png "Class hierarchy within LAMMPS source code" - -@anchor classes @image latex classes.eps "Class hierarchy within LAMMPS source code" - -
    - -More details on individual classes in figure @ref classes are as -follows: - -- The LAMMPS_NS::Memory class handles allocation of all large vectors and arrays. - -- The LAMMPS_NS::Error class prints all error and warning messages. - -- The LAMMPS_NS::Universe class sets up partitions of processors so that multiple simulations can be run, each on a subset of the processors allocated for a run, e.g. by the mpirun command. - -- The LAMMPS_NS::Input class reads an input script, stores variables, and invokes stand-alone commands that are child classes of the LAMMPS_NS::Command class. - -- As discussed above, the LAMMPS_NS::Command class is a parent class for certain input script commands that perform a one-time operation before/after/between simulations or which invoke a simulation. They are instantiated from within the LAMMPS_NS::Input class, invoked, then immediately destructed. - -- The LAMMPS_NS::Finish class is instantiated to print statistics to the screen after a simulation is performed, by commands like run and minimize. - -- The LAMMPS_NS::Special class walks the bond topology of a molecular system to find 1st, 2nd, 3rd neighbors of each atom. It is invoked by several commands, like read_data, read_restart, and replicate. - -- The LAMMPS_NS::Atom class stores all per-atom arrays. More precisely, they are allocated and stored by the LAMMPS_NS::AtomVec class, and the LAMMPS_NS::Atom class simply stores a pointer to them. The LAMMPS_NS::AtomVec class is a parent class for atom styles, defined by the atom_style command. - -- The LAMMPS_NS::Update class holds an integrator and a minimizer. The LAMMPS_NS::Integrate class is a parent style for the Verlet and rRESPA time integrators, as defined by the run_style input command. The LAMMPS_NS::Min class is a parent style for various energy minimizers. - -- The LAMMPS_NS::Neighbor class builds and stores neighbor lists. The LAMMPS_NS::NeighList class stores a single list (for all atoms). The LAMMPS_NS::NeighRequest class is called by pair, fix, or compute styles when they need a particular kind of neighbor list. - -- The LAMMPS_NS::Comm class performs interprocessor communication, typically of ghost atom information. This usually involves MPI message exchanges with 6 neighboring processors in the 3d logical grid of processors mapped to the simulation box. Sometimes the LAMMPS_NS::Irregular class is used, when atoms may migrate to arbitrary processors. - -- The LAMMPS_NS::Domain class stores the simulation box geometry, as well as the geometric LAMMPS_NS::Region and any user definition of a LAMMPS_NS::Lattice. The latter are defined by region and lattice commands in an input script. - -- The LAMMPS_NS::Force class computes various forces between atoms. The LAMMPS_NS::Pair parent class is for non-bonded or pair-wise forces, which in LAMMPS lingo includes many-body forces such as the Tersoff 3-body potential. The LAMMPS_NS::Bond, LAMMPS_NS::Angle, LAMMPS_NS::Dihedral, LAMMPS_NS::Improper parent classes are styles for bonded interactions within a static molecular topology. The LAMMPS_NS::KSpace parent class is for computing long-range Coulombic interactions. One of its child classes, LAMMPS_NS::PPPM, uses the LAMMPS_NS::FFT3d and LAMMPS_NS::Remap classes to communicate grid-based information with neighboring processors. - -- The LAMMPS_NS::Modify class stores lists of LAMMPS_NS::Fix and LAMMPS_NS::Compute classes, both of which are parent styles. - -- The LAMMPS_NS::Group class manipulates groups that atoms are assigned to via the group command. It also computes various attributes of groups of atoms. - -- The LAMMPS_NS::Output class is used to generate 3 kinds of output from a LAMMPS simulation: thermodynamic information printed to the screen and log file, dump file snapshots, and restart files. These correspond to the LAMMPS_NS::Thermo, LAMMPS_NS::Dump, and LAMMPS_NS::WriteRestart classes respectively. The LAMMPS_NS::Dump class is a parent style. - -- The LAMMPS_NS::Timer class logs MPI timing information, output at the end of a run. - - -@section SCT_How_a_timestep_works How a timestep works - -The first and most fundamental operation within LAMMPS to understand is how a timestep is structured. Timestepping is performed by the LAMMPS_NS::Integrate class within the LAMMPS_NS::Update class. Since LAMMPS_NS::Integrate is a parent class, corresponding to the run_style input script command, it has child classes. In this section, the timestep implemented by the LAMMPS_NS::Verlet child class is described. A similar timestep is implemented by the LAMMPS_NS::Respa child class, for the rRESPA hierarchical timestepping method. The LAMMPS_NS::Min parent class performs energy minimization, so does not perform a literal timestep. But it has logic similar to what is described here, to compute forces and invoke fixes at each iteration of a minimization. Differences between time integration and minimization are highlighted at the end of this section. - -The LAMMPS_NS::Verlet class is encoded in the src/verlet.cpp and verlet.h files. It implements the velocity-Verlet timestepping algorithm. The workhorse method is LAMMPS_NS::Verlet::run(), but first we highlight several other methods in the class. - -- The LAMMPS_NS::Verlet::init() method is called at the beginning of each dynamics run. It simply sets some internal flags, based on user settings in other parts of the code. - -- The LAMMPS_NS::Verlet::setup() or LAMMPS_NS::Verlet::setup_minimal() methods are also called before each run. The velocity-Verlet method requires current forces be calculated before the first timestep, so these routines compute forces due to all atomic interactions, using the same logic that appears in the timestepping described next. A few fixes are also invoked, using the mechanism described in the next section. Various counters are also initialized before the run begins. The LAMMPS_NS::Verlet::setup_minimal() method is a variant that has a flag for performing less setup. This is used when runs are continued and information from the previous run is still valid. For example, if repeated short LAMMPS runs are being invoked, interleaved by other commands, via the "pre no" and "every" options of the run command, the LAMMPS_NS::Verlet::setup_minimal() method is used. - -- The LAMMPS_NS::Verlet::force_clear() method initializes force and other arrays to zero before each timestep, so that forces (torques, etc) can be accumulated. - -Now for the LAMMPS_NS::Verlet::run() method. Its structure in hi-level pseudo code is shown in figure @ref Verlet. In the actual code in src/verlet.cpp some of these operations are conditionally invoked. - - -@verbatim - -loop over N timesteps: - ev_set() - - fix->initial_integrate() - fix->post_integrate() - - nflag = neighbor->decide() - if nflag: - fix->pre_exchange() - domain->pbc() - domain->reset_box() - comm->setup() - neighbor->setup_bins() - comm->exchange() - comm->borders() - fix->pre_neighbor() - neighbor->build() - else - comm->forward_comm() - - force_clear() - fix->pre_force() - - pair->compute() - bond->compute() - angle->compute() - dihedral->compute() - improper->compute() - kspace->compute() - - comm->reverse_comm() - - fix->post_force() - fix->final_integrate() - fix->end_of_step() - - if any output on this step: output->write() - -@endverbatim - -@anchor Verlet
    **Pseudo-code for the Verlet::run() method**
    - - -The LAMMPS_NS::Integrate::ev_set() method (in the parent LAMMPS_NS::Integrate class), sets two flags LAMMPS_NS::Integrate::eflag and LAMMPS_NS::Integrate::vflag for energy and virial computation. Each flag encodes whether global and/or per-atom energy and virial should be calculated on this timestep, because some fix or variable or output will need it. These flags are passed to the various methods that compute particle interactions, so that they can skip the extra calculations if the energy and virial are not needed. See the comments with the LAMMPS_NS::Integrate::ev_set() method which document the flag values. - -At various points of the timestep, fixes are invoked, e.g. fix@f$\rightarrow@f$initial_integrate(). In the code, this is actually done via the LAMMPS_NS::Modify class which stores all the Fix objects and lists of which should be invoked at what point in the timestep. Fixes are the LAMMPS mechanism for tailoring the operations of a timestep for a particular simulation. As described elsewhere (unwritten section), each fix has one or more methods, each of which is invoked at a specific stage of the timestep, as in figure @ref Verlet. All the fixes defined in an input script with an LAMMPS_NS::Fix::initial_integrate() method are invoked at the beginning of each timestep. The fix commands fix nve, fix nvt and fix npt are examples, since they perform the start-of-timestep velocity-Verlet integration to update velocities by a half-step, and coordinates by a full step. The LAMMPS_NS::Fix::post_integrate() method is next. Only a few fixes use this, e.g. to reflect particles off box boundaries in the LAMMPS_NS::FixWallReflect class. - -The LAMMPS_NS::Neighbor::decide() method in the Neighbor class determines whether neighbor lists need to be rebuilt on the current timestep. If not, coordinates of ghost atoms are acquired by each processor via the LAMMPS_NS::Comm::forward_comm() method of the LAMMPS_NS::Comm class. If neighbor lists need to be built, several operations within the inner if clause of figure @ref Verlet are first invoked. The LAMMPS_NS::Fix::pre_exchange() method of any defined fixes is invoked first. Typically this inserts or deletes particles from the system. - -Periodic boundary conditions are then applied by the LAMMPS_NS::Domain class via its LAMMPS_NS::Domain::pbc() method to remap particles that have moved outside the simulation box back into the box. Note that this is not done every timestep. but only when neighbor lists are rebuilt. This is so that each processor’s sub-domain will have consistent (nearby) atom coordinates for its owned and ghost atoms. It is also why dumped atom coordinates can be slightly outside the simulation box. - -The box boundaries are then reset (if needed) via the LAMMPS_NS::Domain::reset_box() method of the Domain class, e.g. if box boundaries are shrink-wrapped to current particle coordinates. A change in the box size or shape requires internal information for communicating ghost atoms (LAMMPS_NS::Comm class) and neighbor list bins (LAMMPS_NS::Neighbor class) be updated. The LAMMPS_NS::Comm::setup() method of the LAMMPS_NS::Comm class and LAMMPS_NS::Neighbor::setup_bins() method of the LAMMPS_NS::Neighbor class perform the update. - -The code is now ready to migrate atoms that have left a processor’s geometric sub-domain to new processors. The LAMMPS_NS::Comm::exchange() method of the LAMMPS_NS::Comm class performs this operation. The LAMMPS_NS::Comm::borders() method of the LAMMPS_NS::Comm class then identifies ghost atoms surrounding each processor’s sub-domain and communicates ghost atom information to neighboring processors. It does this by looping over all the atoms owned by a processor to make lists of those to send to each neighbor processor. On subsequent timesteps, the lists are used by the LAMMPS_NS::Comm::forward_comm() method. - -Fixes with a LAMMPS_NS::Fix::pre_neighbor() method are then called. These typically re-build some data structure stored by the fix that depends on the current atoms owned by each processor. - -Now that each processor has a current list of its owned and ghost atoms, LAMMPS is ready to rebuild neighbor lists via the LAMMPS_NS::Neighbor::build() method of the LAMMPS_NS::Neighbor class. This is typically done by binning all owned and ghost atoms, and scanning a stencil of bins around each owned atom’s bin to make a Verlet list of neighboring atoms within the force cutoff plus neighbor skin distance. - -In the next portion of the timestep, all interaction forces between particles are computed, after zeroing the per-atom force vector via the LAMMPS_NS::Verlet::force_clear() method. If the newton flag is set to "on" by the newton command, forces on both owned and ghost atoms are calculated. - -Pairwise forces are calculated first, which enables the global virial (if requested) to be calculated cheaply (at the end of the LAMMPS_NS::Pair::compute() method), by a dot product of atom coordinates and forces. By including owned and ghost atoms in the dot product, the effect of periodic boundary conditions is correctly accounted for. Molecular topology interactions (bonds, angles, dihedrals, impropers) are calculated next. The final contribution is from long-range Coulombic interactions, invoked by the LAMMPS_NS::KSpace class. - -If the newton flag is on, forces on ghost atoms are communicated and summed back to their corresponding owned atoms. The LAMMPS_NS::Comm::reverse_comm() method of the LAMMPS_NS::Comm class performs this operation, which is essentially the inverse operation of sending copies of owned atom coordinates to other processor’s ghost atoms. - -At this point in the timestep, the total force on each atom is known. Additional force constraints (external forces, SHAKE, etc) are applied by Fixes that have a LAMMPS_NS::Fix::post_force() method. The second half of the velocity-Verlet integration is then performed (another half-step update of the velocities) via fixes like fix nve, fix nvt and fix npt. - -At the end of the timestep, fixes that define an LAMMPS_NS::Fix::end_of_step() method are invoked. These typically perform a diagnostic calculation, e.g. the fix ave/time and fix ave/spatial fixes. - -The final operation of the timestep is to perform any requested output, via the LAMMPS_NS::Output::write() method of the LAMMPS_NS::Output class. There are 3 kinds of LAMMPS output: - -- thermodynamic output to the screen and log file, -- snapshots of atom data to a dump file, and -- restart files. - -See the thermo_style, dump, and restart commands for more details. - -The iteration performed by an energy minimization is similar to the dynamics timestep of figure @ref Verlet. Forces are computed, neighbor lists are built as needed, atoms migrate to new processors, and atom coordinates and forces are communicated to neighboring processors. The only difference is what LAMMPS_NS::Fix class operations are invoked when. Only a subset of LAMMPS fixes are useful during energy minimization, as explained in their individual doc pages. The relevant LAMMPS_NS::Fix class methods are LAMMPS_NS::Fix::min_pre_exchange(), LAMMPS_NS::Fix::min_pre_force(), and LAMMPS_NS::Fix::min_post_force(). Each is invoked at the appropriate place within the minimization iteration. For example, the LAMMPS_NS::Fix::min_post_force() method is analogous to the LAMMPS_NS::Fix::post_force() method for dynamics; it is used to alter or constrain forces on each atom, which affects the minimization procedure. - - -@section SCT_Extending_LAMMPS Extending LAMMPS - -The Section_modify.html file in the doc directory of the LAMMPS distribution gives an overview of how LAMMPS can be extended by writing new classes that derive from existing parent classes in LAMMPS. - - -@subsection SST_New_fixes New fixes - -(this section has been provided by Kirill Lykov) - -Here, some specific coding details are provided for writing a new fix. - -Writing fixes is a flexible way of extending LAMMPS. Users can implement many things using fixes: - -- changing particles attributes (positions, velocities, forces, etc.). Example: LAMMPS_NS::FixFreeze. - -- reading/writing data. Example: LAMMPS_NS::FixReadRestart. - -- implementing boundary conditions. Example: LAMMPS_NS::FixWall. - -- saving information about particles for future use (previous positions, for instance). Example: LAMMPS_NS::FixStoreState. - -All fixes are derived from class LAMMPS_NS::Fix and must have constructor with the signature: - -@verbatim - -FixMine(class LAMMPS *, int, char **) - -@endverbatim - -Every fix must be registered in LAMMPS by writing the following lines of code in the header before include guards: - -@verbatim - -#ifdef FIX_CLASS -FixStyle(your/fix/name,FixMine) -#else - -@endverbatim - -Where `your/fix/name` is a name of your fix in the script and `FixMine` is the name of the class. This code allows LAMMPS to find your fix when it parses input script. In addition, your fix header must be included in the file style_fix.h. In case if you use LAMMPS make, this file is generated automatically - all files starting with prefix `fix_` are included, so call your header the same way. Otherwise, don’t forget to add your include into style_fix.h. - -Let’s write a simple fix which will print average velocity at the end of each timestep. First of all, implement a constructor: - -@verbatim - -FixPrintVel::FixPrintVel(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) -{ - - if (narg < 4) - error->all(FLERR,"Illegal fix print command"); - - nevery = atoi(arg[3]); - - if (nevery <= 0) - error->all(FLERR,"Illegal fix print command"); -} - -@endverbatim - -In the constructor you should parse your fix arguments which are specified in the script. All fixes have pretty the same syntax: - -@verbatim - -fix [fix_identifier] [group_name] [fix_name] [fix_arguments]. - -@endverbatim - -The first 3 parameters are parsed by Fix class constructor, while `[fix_arguments]` should be parsed by you. In our case, we need to specify how often we want to print an average velocity. For instance, once in 50 timesteps: `fix 1 print/vel 50`. There is a special variable in Fix class called nevery which specifies how often the method `end_of_step()` is called. Thus all we need to do is just set it up. - -The next method we need to implement is `setmask()`: - -@verbatim - -int FixPrintVel::setmask() -{ - int mask = 0; - mask |= FixConst::END_OF_STEP; - return mask; -} - -@endverbatim - -Here user specifies which methods of your fix should be called during the execution. For instance, `END_OF_STEP` corresponds to the LAMMPS_NS::Fix::end_of_step() method. Overall, there are 8 most important methods that are called in predefined order during the execution of the Verlet algorithm as was mentioned in Section 3: - -- LAMMPS_NS::Fix::initial_integrate() - -- LAMMPS_NS::Fix::post_integrate() - -- LAMMPS_NS::Fix::pre_exchange() - -- LAMMPS_NS::Fix::pre_neighbor() - -- LAMMPS_NS::Fix::pre_force() - -- LAMMPS_NS::Fix::post_force() - -- LAMMPS_NS::Fix::final_integrate() - -- LAMMPS_NS::Fix::end_of_step() - -The fix developer must understand when he wants to execute his code. In case if we want to write `FixPrintVel`, we need only LAMMPS_NS::Fix::end_of_step(): - -@verbatim - -void FixPrintVel::end_of_step() -{ - // for add3, scale3 - using namespace MathExtra; - - double** v = atom->v; - int nlocal = atom->nlocal; - double localAvgVel[4]; // 4th element for particles count - memset(localAvgVel, 0, 4 * sizeof(double)); - for (int particleInd = 0; particleInd < nlocal; ++particleInd) { - add3(localAvgVel, v[particleInd], localAvgVel); - } - localAvgVel[3] = nlocal; - double globalAvgVel[4]; - memset(globalAvgVel, 0, 4 * sizeof(double)); - MPI_Allreduce(localAvgVel, globalAvgVel, 4, MPI_DOUBLE, MPI_SUM, world); - scale3(1.0 / globalAvgVel[3], globalAvgVel); - if (comm->me == 0) { - printf("%e, %e, %e\n", globalAvgVel[0], globalAvgVel[1], globalAvgVel[2]); - } -} - -@endverbatim - - -In the code above, we use MathExtra routines defined in math_extra.h. There are bunch of math functions to work with arrays of doubles as with math vectors. - -In this code we use an instance of LAMMPS_NS::Atom class. This object is stored in the LAMMPS_NS::Pointers class (see pointers.h). This object contains all global information about the simulation system. Data from LAMMPS_NS::Pointers class available to all classes inherited from it using protected inheritance. Hence when you write you own class, which is going to use LAMMPS data, don’t forget to inherit from the class LAMMPS_NS::Pointers. When writing fixes we inherit from class LAMMPS_NS::Fix which is inherited from LAMMPS_NS::Pointers so there is no need to inherit from it directly. - -The code above computes average velocity for all particles in the simulation. Yet you have one unused parameter in fix call from the script - `[group_name]`. This parameter specifies the group of atoms used in the fix. So we should compute average for all particles in the simulation if `group_name == all`, but it can be any group. The group information is specified by groupbit which is defined in class LAMMPS_NS::Fix: - -@verbatim - -for (int particleInd = 0; particleInd < nlocal; ++particleInd) { - if (atom->mask[particleInd] & groupbit) { - // Do all job here - } - } - -@endverbatim - -Class LAMMPS_NS::Atom encapsulates atoms positions, velocities, forces, etc. The user can access them using particle index. Note, that particle indexes are usually changed every timestep because of sorting. - -Lets consider another LAMMPS_NS::Fix example. We want to have a fix which stores atoms position from previous time step in your fix. The local atoms indexes will not be valid on the next iteration. In order to handle this situation there are several methods which should be implemented: - -- LAMMPS_NS::Fix::memory_usage() `/double memory_usage(void)/` - return how much memory fix uses - -- LAMMPS_NS::Fix::grow_arrays() `/void grow_arrays(int)/` - do reallocation of the per particle arrays in your fix - -- LAMMPS_NS::Fix::copy_arrays() `/void copy_arrays(int i, int j)/` - copy i-th per-particle information to j-th. Used when atoms sorting is performed - -- LAMMPS_NS::Fix::set_arrays() `/void set_arrays(int i)/` - sets i-th particle related information to zero - -Note, that if your class implements these methods, it must call add calls of LAMMPS_NS::Atom::add_callback and LAMMPS_NS::Atom::delete_callback to constructor and destructor: - -@verbatim - -FixSavePos::FixSavePos(LAMMPS *lmp, int narg, char **arg) -{ - //... - atom->add_callback(0); -} - -FixSavePos::~FixSavePos() -{ - atom->delete_callback(id, 0); -} - -@endverbatim - -Since we want to store positions of atoms from previous timestep, we -need to add `double** x` to the header file. Than add allocation code to -constructor: - -@verbatim - -memory->create(this->x, atom->nmax, 3, "FixSavePos:x"); . - -@endverbatim - -Free memory at destructor: - -@verbatim - -memory->destroy(x); - -@endverbatim - -Finally, implement mentioned methods: - -@verbatim - -double FixSavePos::memory_usage() -{ - int nmax = atom->nmax; - double bytes = 0.0; - bytes += nmax * 3 * sizeof(double); - return bytes; -} - -void FixSavePos::grow_arrays(int nmax) -{ - memory->grow(this->x, nmax, 3, "FixSavePos:x"); -} - -void FixSavePos::copy_arrays(int i, int j) -{ - memcpy(this->x[j], this->x[i], sizeof(double) * 3); -} - -void FixSavePos::set_arrays(int i) -{ - memset(this->x[i], 0, sizeof(double) * 3); -} - -int FixSavePos::pack_exchange(int i, double *buf) -{ - int m = 0; - buf[m++] = x[i][0]; - buf[m++] = x[i][1]; - buf[m++] = x[i][2]; - - return m; -} - -int FixSavePos::unpack_exchange(int nlocal, double *buf) -{ - int m = 0; - x[nlocal][0] = buf[m++]; - x[nlocal][1] = buf[m++]; - x[nlocal][2] = buf[m++]; - - return m; -} - -@endverbatim - -Now, a little bit about memory allocation. We used LAMMPS_NS::Memory class which is just a bunch of template functions for allocating 1D and 2D arrays. So you need to add include memory.h to have access to them. - -Finally, if you need to write or read some global information used in your fix to of from a restart file, you might do it by setting flag - -@verbatim - -restart_global = 1 - -@endverbatim - -in the constructor and implementing methods LAMMPS_NS::Fix::write_restart() `/void write_restart(FILE *fp)/` and LAMMPS_NS::Fix::restart() `/void restart(char *buf)/`. - - -@subsection SST_New_commands New commands - -New commands can be added to LAMMPS input scripts by adding new classes that have a “command” method. For example, the create_atoms, read_data, velocity and run commands are all implemented in this fashion. When such a command is encountered in the LAMMPS input script, LAMMPS simply creates a class with the corresponding name, invokes the “command” method of the class, and passes it the arguments from the input script. The command method can perform whatever operations it wishes on LAMMPS data structures. - - -@subsection SST_New_computes New computes - -Classes that compute scalar and vector quantities like temperature and the pressure tensor, as well as classes that compute per-atom quantities like kinetic energy and the centro-symmetry parameter are derived from the LAMMPS_NS::Compute class. New styles can be created to add new calculations to LAMMPS. Compute_temp.cpp is a simple example of computing a scalar temperature. - - -@subsection SST_New_pair_styles New pair styles - -Classes that compute pairwise interactions are derived from the LAMMPS_NS::Pair class. In LAMMPS, pairwise calculation include manybody potentials such as EAM or Tersoff where particles interact without a static bond topology. New styles can be created to add new pair potentials to LAMMPS. - - -@subsection SST_New_bonds_angles_dihedrals_impropers New bonds, angles, dihedrals and impropers - -Classes that compute molecular interactions are derived from the LAMMPS_NS::Bond, LAMMPS_NS::Angle, LAMMPS_NS::Dihedral, and LAMMPS_NS::Improper classes. New styles can be created to add new potentials to LAMMPS. - -*/ diff --git a/tools/doxygen/Doxyfile.lammps b/tools/doxygen/Doxyfile.lammps deleted file mode 100644 index f872541857..0000000000 --- a/tools/doxygen/Doxyfile.lammps +++ /dev/null @@ -1,2557 +0,0 @@ -# Doxyfile 1.8.15 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See -# https://www.gnu.org/software/libiconv/ for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "LAMMPS - Large Atomic and Molecular Massive Parallel Simulator" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "LAMMPS - Developer Guide - LAMMPS_VERSION" - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = tools/doxygen/doc - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 0. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 0 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = YES - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = YES - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = YES - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = YES - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO, these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = YES - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = YES - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = tools/doxygen/Developer.dox \ - src/ \ - src/ASPHERE \ - src/BODY \ - src/CLASS2 \ - src/COLLOID \ - src/COMPRESS \ - src/CORESHELL \ - src/DEPEND \ - src/DIPOLE \ - src/GPU \ - src/GRANULAR \ - src/KIM \ - src/KOKKOS \ - src/KSPACE \ - src/LATTE \ - src/MAKE \ - src/MANYBODY \ - src/MC \ - src/MEAM \ - src/MISC \ - src/MOLECULE \ - src/MPIIO \ - src/MSCG \ - src/OPT \ - src/PERI \ - src/POEMS \ - src/PYTHON \ - src/QEQ \ - src/REAX \ - src/REPLICA \ - src/RIGID \ - src/SHOCK \ - src/SNAP \ - src/SRD \ - src/VORONOI \ - src/USER-AWPMD \ - src/USER-CGDNA \ - src/USER-CGSDK \ - src/USER-COLVARS \ - src/USER-DIFFRACTION \ - src/USER-DPD \ - src/USER-DRUDE \ - src/USER-EFF \ - src/USER-FEP \ - src/USER-H5MD \ - src/USER-INTEL \ - src/USER-LB \ - src/USER-MANIFOLD \ - src/USER-MEAMC \ - src/USER-MESO \ - src/USER-MGPT \ - src/USER-MISC \ - src/USER-MOLFILE \ - src/USER-NETCDF \ - src/USER-OMP \ - src/USER-PHONON \ - src/USER-QMMM \ - src/USER-QTB \ - src/USER-QUIP \ - src/USER-REAXC \ - src/USER-SMD \ - src/USER-SMTBQ \ - src/USER-SPH \ - src/USER-TALLY \ - src/USER-UEF \ - src/USER-VTK \ - src/STUBS - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, -# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ - *.inc \ - *.m \ - *.markdown \ - *.md \ - *.mm \ - *.dox \ - *.py \ - *.pyw \ - *.f90 \ - *.f95 \ - *.f03 \ - *.f08 \ - *.f \ - *.for \ - *.tcl \ - *.vhd \ - *.vhdl \ - *.ucf \ - *.qsf - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = examples - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = in.* - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = tools/doxygen - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = YES - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see https://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# https://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML -# documentation will contain a main index with vertical navigation menus that -# are dynamically created via Javascript. If disabled, the navigation index will -# consists of multiple levels of tabs that are statically embedded in every HTML -# page. Disable this option to support browsers that do not have Javascript, -# like the Qt help browser. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_MENUS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = YES - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# https://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /