35 #ifndef _BLAZE_MATH_STATICMATRIX_H_ 36 #define _BLAZE_MATH_STATICMATRIX_H_ 73 template<
typename Type
77 class Rand< StaticMatrix<Type,M,N,SO> >
83 inline const StaticMatrix<Type,M,N,SO>
generate()
const;
85 template<
typename Arg >
86 inline const StaticMatrix<Type,M,N,SO>
generate(
const Arg&
min,
const Arg&
max )
const;
93 inline void randomize( StaticMatrix<Type,M,N,SO>& matrix )
const;
95 template<
typename Arg >
96 inline void randomize( StaticMatrix<Type,M,N,SO>& matrix,
const Arg&
min,
const Arg&
max )
const;
110 template<
typename Type
114 inline const StaticMatrix<Type,M,N,SO> Rand< StaticMatrix<Type,M,N,SO> >::generate()
const 116 StaticMatrix<Type,M,N,SO> matrix;
132 template<
typename Type
136 template<
typename Arg >
137 inline const StaticMatrix<Type,M,N,SO>
138 Rand< StaticMatrix<Type,M,N,SO> >::generate(
const Arg&
min,
const Arg&
max )
const 140 StaticMatrix<Type,M,N,SO> matrix;
155 template<
typename Type
159 inline void Rand< StaticMatrix<Type,M,N,SO> >
::randomize( StaticMatrix<Type,M,N,SO>& matrix )
const 163 for(
size_t i=0UL; i<M; ++i ) {
164 for(
size_t j=0UL; j<N; ++j ) {
182 template<
typename Type
186 template<
typename Arg >
187 inline void Rand< StaticMatrix<Type,M,N,SO> >
::randomize( StaticMatrix<Type,M,N,SO>& matrix,
188 const Arg&
min,
const Arg&
max )
const 192 for(
size_t i=0UL; i<M; ++i ) {
193 for(
size_t j=0UL; j<N; ++j ) {
218 template<
typename Type
222 void makeSymmetric( StaticMatrix<Type,M,N,SO>& matrix )
228 for(
size_t i=0UL; i<N; ++i ) {
229 for(
size_t j=0UL; j<i; ++j ) {
231 matrix(j,i) = matrix(i,j);
252 template<
typename Type
257 void makeSymmetric( StaticMatrix<Type,M,N,SO>& matrix,
const Arg&
min,
const Arg&
max )
263 for(
size_t i=0UL; i<N; ++i ) {
264 for(
size_t j=0UL; j<i; ++j ) {
266 matrix(j,i) = matrix(i,j);
285 template<
typename Type
289 void makeHermitian( StaticMatrix<Type,M,N,SO>& matrix )
296 using BT = UnderlyingBuiltin_t<Type>;
298 for(
size_t i=0UL; i<N; ++i ) {
299 for(
size_t j=0UL; j<i; ++j ) {
301 matrix(j,i) =
conj( matrix(i,j) );
303 matrix(i,i) = rand<BT>();
322 template<
typename Type
327 void makeHermitian( StaticMatrix<Type,M,N,SO>& matrix,
const Arg&
min,
const Arg&
max )
334 using BT = UnderlyingBuiltin_t<Type>;
336 for(
size_t i=0UL; i<N; ++i ) {
337 for(
size_t j=0UL; j<i; ++j ) {
339 matrix(j,i) =
conj( matrix(i,j) );
358 template<
typename Type
362 void makePositiveDefinite( StaticMatrix<Type,M,N,SO>& matrix )
370 matrix *=
ctrans( matrix );
372 for(
size_t i=0UL; i<N; ++i ) {
373 matrix(i,i) += Type(N);
Header file for the complete HybridMatrix implementation.
Constraint on the data type.
decltype(auto) real(const DenseMatrix< MT, SO > &dm)
Returns a matrix containing the real part of each single element of dm.
Definition: DMatMapExpr.h:1392
void randomize(T &&value)
Randomization of a given variable.
Definition: Random.h:929
Implementation of a random number generator.
void randomize(T &value) const
Randomization of the given variable with a new value in the range .
Definition: Random.h:292
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
decltype(auto) ctrans(const DenseMatrix< MT, SO > &dm)
Returns the conjugate transpose matrix of dm.
Definition: DMatMapExpr.h:1364
Header file for the UnderlyingBuiltin type trait.
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:1147
Header file for the implementation of a fixed-size matrix.
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:1179
Header file for the conjugate shim.
Header file for run time assertion macros.
#define BLAZE_CONSTRAINT_MUST_BE_NUMERIC_TYPE(T)
Constraint on the data type.In case the given data type T is not a numeric (integral or floating poin...
Definition: Numeric.h:61
Header file for the complete StaticVector implementation.
bool isHermitian(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is Hermitian.
Definition: DenseMatrix.h:617
bool isSymmetric(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is symmetric.
Definition: DenseMatrix.h:539
T generate() const
Generation of a random value in the range .
Definition: Random.h:252
Header file for all basic DenseMatrix functionality.
Header file for the complete IdentityMatrix implementation.
Header file for the real shim.
decltype(auto) conj(const DenseMatrix< MT, SO > &dm)
Returns a matrix containing the complex conjugate of each single element of dm.
Definition: DMatMapExpr.h:1326
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.In case of an invalid compile time expression, a compilation error is cr...
Definition: StaticAssert.h:112
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.In case of an invalid run time expression, the program execution is terminated. The BLAZE_INTERNAL_ASSERT macro can be disabled by setting the BLAZE_USER_ASSERTION flag to zero or by defining NDEBUG during the compilation.
Definition: Assert.h:101
Header file for the complete ZeroMatrix implementation.