35#ifndef _BLAZE_MATH_COLUMN_H_
36#define _BLAZE_MATH_COLUMN_H_
75class Rand< Column<MT,SO,true,SF,CCAs...> >
84 template<
typename CT >
89 using ColumnType = RemoveReference_t<CT>;
94 for(
size_t i=0UL; i<
column.size(); ++i ) {
108 template<
typename CT
114 using ColumnType = RemoveReference_t<CT>;
119 for(
size_t i=0UL; i<
column.size(); ++i ) {
148class Rand< Column<MT,SO,false,SF,CCAs...> >
157 template<
typename CT >
160 using ColumnType = RemoveReference_t<CT>;
161 using ElementType = ElementType_t<ColumnType>;
168 if(
size == 0UL )
return;
170 const size_t nonzeros( rand<size_t>( 1UL,
std::ceil( 0.5*
size ) ) );
173 column.reserve( nonzeros );
175 while(
column.nonZeros() < nonzeros ) {
176 column[ rand<size_t>( 0UL,
size-1UL ) ] = rand<ElementType>();
189 template<
typename CT >
192 using ColumnType = RemoveReference_t<CT>;
193 using ElementType = ElementType_t<ColumnType>;
200 if( nonzeros >
size ) {
204 if(
size == 0UL )
return;
207 column.reserve( nonzeros );
209 while(
column.nonZeros() < nonzeros ) {
210 column[ rand<size_t>( 0UL,
size-1UL ) ] = rand<ElementType>();
223 template<
typename CT
227 using ColumnType = RemoveReference_t<CT>;
228 using ElementType = ElementType_t<ColumnType>;
235 if(
size == 0UL )
return;
237 const size_t nonzeros( rand<size_t>( 1UL,
std::ceil( 0.5*
size ) ) );
240 column.reserve( nonzeros );
242 while(
column.nonZeros() < nonzeros ) {
258 template<
typename CT
262 using ColumnType = RemoveReference_t<CT>;
263 using ElementType = ElementType_t<ColumnType>;
270 if( nonzeros >
size ) {
274 if(
size == 0UL )
return;
277 column.reserve( nonzeros );
279 while(
column.nonZeros() < nonzeros ) {
Header file for auxiliary alias declarations.
Header file for the RemoveReference type trait.
Constraint on the data type.
Constraint on the data type.
Constraint on the data type.
decltype(auto) column(Matrix< MT, SO > &&matrix, size_t index, RCAs... args)
Creating a view on a specific column of the given temporary matrix.
Definition: Column.h:340
decltype(auto) min(const DenseMatrix< MT1, SO1 > &lhs, const DenseMatrix< MT2, SO2 > &rhs)
Computes the componentwise minimum of the dense matrices lhs and rhs.
Definition: DMatDMatMapExpr.h:1339
decltype(auto) max(const DenseMatrix< MT1, SO1 > &lhs, const DenseMatrix< MT2, SO2 > &rhs)
Computes the componentwise maximum of the dense matrices lhs and rhs.
Definition: DMatDMatMapExpr.h:1375
decltype(auto) ceil(const DenseMatrix< MT, SO > &dm)
Applies the ceil() function to each single element of the dense matrix dm.
Definition: DMatMapExpr.h:1380
#define BLAZE_CONSTRAINT_MUST_BE_SPARSE_VECTOR_TYPE(T)
Constraint on the data type.
Definition: SparseVector.h:61
#define BLAZE_CONSTRAINT_MUST_BE_COLUMN_TYPE(T)
Constraint on the data type.
Definition: Column.h:61
#define BLAZE_CONSTRAINT_MUST_BE_DENSE_VECTOR_TYPE(T)
Constraint on the data type.
Definition: DenseVector.h:61
constexpr size_t size(const Matrix< MT, SO > &matrix) noexcept
Returns the total number of elements of the matrix.
Definition: Matrix.h:676
void randomize(T &&value)
Randomization of a given variable.
Definition: Random.h:626
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exception.
Definition: Exception.h:235
Header file for the exception macros of the math module.
Header file for the dense vector SMP implementation.
Header file for the sparse vector SMP implementation.
Implementation of a random number generator.
Header file for the implementation of the Column view.
Header file for the implementation of the Row view.