22 #ifndef _BLAZE_MATH_COMPRESSEDVECTOR_H_
23 #define _BLAZE_MATH_COMPRESSEDVECTOR_H_
52 template<
typename Type
54 class Rand< CompressedVector<Type,TF> >
60 explicit inline Rand(
size_t size );
61 explicit inline Rand(
size_t size,
size_t nonzeros );
68 inline operator CompressedVector<Type,TF>()
const;
76 CompressedVector<Type,TF> vector_;
90 template<
typename Type
95 if( size == 0UL )
return;
97 const size_t nonzeros( rand<size_t>( 1UL, std::ceil( 0.5*size ) ) );
99 vector_.reserve( nonzeros );
101 while( vector_.nonZeros() < nonzeros ) {
102 vector_[ rand<size_t>( 0UL, size-1UL ) ] = rand<Type>();
117 template<
typename Type
120 : vector_( size, nonzeros )
122 if( nonzeros > size )
123 throw std::invalid_argument(
"Invalid number of non-zero elements" );
125 if( size == 0UL )
return;
127 while( vector_.nonZeros() < nonzeros ) {
128 vector_[ rand<size_t>( 0UL, size-1UL ) ] = rand<Type>();
141 template<
typename Type