1 #ifndef VIENNACL_RAND_UTILS_HPP_
2 #define VIENNACL_RAND_UTILS_HPP_
25 #ifdef VIENNACL_WITH_OPENCL
26 #include "viennacl/linalg/kernels/rand_kernels.h"
33 template<
class SCALARTYPE,
class DISTRIBUTION>
34 struct random_matrix_t{
35 typedef size_t size_type;
36 random_matrix_t(size_type _size1,
unsigned int _size2, DISTRIBUTION
const & _distribution) :
size1(_size1),
size2(_size2), distribution(_distribution){
37 #ifdef VIENNACL_WITH_OPENCL
38 viennacl::linalg::kernels::rand<SCALARTYPE,1>::init();
43 DISTRIBUTION distribution;
47 template<
class SCALARTYPE,
class DISTRIBUTION>
48 struct random_vector_t{
49 typedef size_t size_type;
50 random_vector_t(size_type _size, DISTRIBUTION
const & _distribution) :
size(_size), distribution(_distribution){
51 #ifdef VIENNACL_WITH_OPENCL
52 viennacl::linalg::kernels::rand<SCALARTYPE,1>::init();
56 DISTRIBUTION distribution;
59 template<
class ScalarType,
class Distribution>
vcl_size_t size1(MatrixType const &mat)
Generic routine for obtaining the number of rows of a matrix (ViennaCL, uBLAS, etc.)
Definition: size.hpp:216
result_of::size_type< MatrixType >::type size2(MatrixType const &mat)
Generic routine for obtaining the number of columns of a matrix (ViennaCL, uBLAS, etc...
Definition: size.hpp:245
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
Definition: cpu_ram.hpp:29
vcl_size_t size(VectorType const &vec)
Generic routine for obtaining the size of a vector (ViennaCL, uBLAS, etc.)
Definition: size.hpp:144