mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
Loading...
Searching...
No Matches
templateCurand.hpp
Go to the documentation of this file.
1/** \file templateCurand.hpp
2 * \author Jared R. Males
3 * \brief A template interface to curand
4 * \ingroup cuda_files
5 *
6 */
7
8//***********************************************************************//
9// Copyright 2019,2020 Jared R. Males (jaredmales@gmail.com)
10//
11// This file is part of mxlib.
12//
13// mxlib is free software: you can redistribute it and/or modify
14// it under the terms of the GNU General Public License as published by
15// the Free Software Foundation, either version 3 of the License, or
16// (at your option) any later version.
17//
18// mxlib is distributed in the hope that it will be useful,
19// but WITHOUT ANY WARRANTY; without even the implied warranty of
20// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21// GNU General Public License for more details.
22//
23// You should have received a copy of the GNU General Public License
24// along with mxlib. If not, see <http://www.gnu.org/licenses/>.
25//***********************************************************************//
26
27#ifndef math_templateCurand_hpp
28#define math_templateCurand_hpp
29
30#ifdef MXLIB_CUDA
31
32#include <cuda_runtime.h>
33#include <curand.h>
34
35namespace mx
36{
37namespace cuda
38{
39
40template <typename realT>
41curandStatus_t
42curandGenerateNormal( curandGenerator_t generator, realT *outputPtr, size_t n, realT mean, realT stddev );
43
44template <>
45curandStatus_t
46curandGenerateNormal<float>( curandGenerator_t generator, float *outputPtr, size_t n, float mean, float stddev );
47
48template <>
49curandStatus_t
50curandGenerateNormal<double>( curandGenerator_t generator, double *outputPtr, size_t n, double mean, double stddev );
51
52} // namespace cuda
53} // namespace mx
54
55#endif //MXLIB_CUDA
56
57#endif // math_templateCurand_hpp
The mxlib c++ namespace.
Definition mxlib.hpp:37