35 #ifndef _BLAZE_MATH_ROW_H_ 36 #define _BLAZE_MATH_ROW_H_ 70 class Rand< Row<MT,SO,true,SF> >
78 template<
typename Arg >
79 inline void randomize( Row<MT,SO,true,SF>&
row,
const Arg&
min,
const Arg&
max )
const;
97 inline void Rand< Row<MT,SO,true,SF> >
::randomize( Row<MT,SO,true,SF>&
row )
const 101 for(
size_t i=0UL; i<row.size(); ++i ) {
118 template<
typename MT
121 template<
typename Arg >
122 inline void Rand< Row<MT,SO,true,SF> >
::randomize( Row<MT,SO,true,SF>& row,
123 const Arg&
min,
const Arg&
max )
const 127 for(
size_t i=0UL; i<row.size(); ++i ) {
150 template<
typename MT
153 class Rand< Row<MT,SO,false,SF> >
159 inline void randomize( Row<MT,SO,false,SF>& row )
const;
160 inline void randomize( Row<MT,SO,false,SF>& row,
size_t nonzeros )
const;
162 template<
typename Arg >
163 inline void randomize( Row<MT,SO,false,SF>& row,
const Arg& min,
const Arg& max )
const;
165 template<
typename Arg >
166 inline void randomize( Row<MT,SO,false,SF>& row,
size_t nonzeros,
const Arg& min,
const Arg& max )
const;
181 template<
typename MT
184 inline void Rand< Row<MT,SO,false,SF> >
::randomize( Row<MT,SO,false,SF>& row )
const 186 using ElementType = ElementType_< Row<MT,SO,false,SF> >;
188 const size_t size( row.size() );
190 if(
size == 0UL )
return;
192 const size_t nonzeros( rand<size_t>( 1UL,
std::ceil( 0.5*
size ) ) );
195 row.reserve( nonzeros );
197 while( row.nonZeros() < nonzeros ) {
198 row[ rand<size_t>( 0UL,
size-1UL ) ] = rand<ElementType>();
214 template<
typename MT
217 inline void Rand< Row<MT,SO,false,SF> >
::randomize( Row<MT,SO,false,SF>& row,
size_t nonzeros )
const 219 using ElementType = ElementType_< Row<MT,SO,false,SF> >;
221 const size_t size( row.size() );
223 if( nonzeros >
size ) {
227 if(
size == 0UL )
return;
230 row.reserve( nonzeros );
232 while( row.nonZeros() < nonzeros ) {
233 row[ rand<size_t>( 0UL,
size-1UL ) ] = rand<ElementType>();
249 template<
typename MT
252 template<
typename Arg >
253 inline void Rand< Row<MT,SO,false,SF> >
::randomize( Row<MT,SO,false,SF>& row,
254 const Arg& min,
const Arg& max )
const 256 using ElementType = ElementType_< Row<MT,SO,false,SF> >;
258 const size_t size( row.size() );
260 if(
size == 0UL )
return;
262 const size_t nonzeros( rand<size_t>( 1UL,
std::ceil( 0.5*
size ) ) );
265 row.reserve( nonzeros );
267 while( row.nonZeros() < nonzeros ) {
268 row[ rand<size_t>( 0UL,
size-1UL ) ] = rand<ElementType>( min, max );
286 template<
typename MT
289 template<
typename Arg >
290 inline void Rand< Row<MT,SO,false,SF> >
::randomize( Row<MT,SO,false,SF>& row,
size_t nonzeros,
291 const Arg& min,
const Arg& max )
const 293 using ElementType = ElementType_< Row<MT,SO,false,SF> >;
295 const size_t size( row.size() );
297 if( nonzeros >
size ) {
301 if(
size == 0UL )
return;
304 row.reserve( nonzeros );
306 while( row.nonZeros() < nonzeros ) {
307 row[ rand<size_t>( 0UL,
size-1UL ) ] = rand<ElementType>( min, max );
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exception.This macro encapsulates the default way o...
Definition: Exception.h:235
Header file for auxiliary alias declarations.
BLAZE_ALWAYS_INLINE size_t size(const Vector< VT, TF > &vector) noexcept
Returns the current size/dimension of the vector.
Definition: Vector.h:265
void randomize(T &value)
Randomization of a given variable.
Definition: Random.h:927
decltype(auto) ceil(const DenseMatrix< MT, SO > &dm)
Applies the ceil() function to each single element of the dense matrix dm.
Definition: DMatMapExpr.h:1234
const ElementType_< MT > min(const DenseMatrix< MT, SO > &dm)
Returns the smallest element of the dense matrix.
Definition: DenseMatrix.h:1762
Implementation of a random number generator.
const ElementType_< MT > max(const DenseMatrix< MT, SO > &dm)
Returns the largest element of the dense matrix.
Definition: DenseMatrix.h:1809
Row< MT > row(Matrix< MT, SO > &matrix, size_t index)
Creating a view on a specific row of the given matrix.
Definition: Row.h:124
void randomize(T &value) const
Randomization of the given variable with a new value in the range .
Definition: Random.h:290
Header file for the dense vector SMP implementation.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Type ElementType
Type of the compressed matrix elements.
Definition: CompressedMatrix.h:3081
Header file for the exception macros of the math module.
Header file for all restructuring column functions.
Header file for the sparse vector SMP implementation.
Header file for the implementation of the Row view.