22 #ifndef _BLAZE_MATH_COMPRESSEDMATRIX_H_
23 #define _BLAZE_MATH_COMPRESSEDMATRIX_H_
52 template<
typename Type
54 class Rand< CompressedMatrix<Type,SO> >
60 explicit inline Rand(
size_t m,
size_t n );
61 explicit inline Rand(
size_t m,
size_t n,
size_t nonzeros );
68 inline operator CompressedMatrix<Type,SO>()
const;
76 CompressedMatrix<Type,SO> matrix_;
91 template<
typename Type
96 if( m == 0UL || n == 0UL )
return;
98 const size_t nonzeros( rand<size_t>( 1UL, std::ceil( 0.5*m*n ) ) );
100 matrix_.reserve( nonzeros );
102 while( matrix_.nonZeros() < nonzeros ) {
103 matrix_( rand<size_t>( 0UL, m-1UL ), rand<size_t>( 0UL, n-1UL ) ) = rand<Type>();
119 template<
typename Type
122 : matrix_( m, n, nonzeros )
125 throw std::invalid_argument(
"Invalid number of non-zero elements" );
127 if( m == 0UL || n == 0UL )
return;
129 while( matrix_.nonZeros() < nonzeros ) {
130 matrix_( rand<size_t>( 0UL, m-1UL ), rand<size_t>( 0UL, n-1UL ) ) = rand<Type>();
143 template<
typename Type