35 #ifndef _BLAZE_MATH_STATICMATRIX_H_
36 #define _BLAZE_MATH_STATICMATRIX_H_
72 template<
typename Type
76 class Rand< StaticMatrix<Type,M,N,SO> >
82 inline const StaticMatrix<Type,M,N,SO>
generate()
const;
84 template<
typename Arg >
85 inline const StaticMatrix<Type,M,N,SO>
generate(
const Arg&
min,
const Arg&
max )
const;
92 inline void randomize( StaticMatrix<Type,M,N,SO>& matrix )
const;
94 template<
typename Arg >
95 inline void randomize( StaticMatrix<Type,M,N,SO>& matrix,
const Arg&
min,
const Arg&
max )
const;
109 template<
typename Type
113 inline const StaticMatrix<Type,M,N,SO> Rand< StaticMatrix<Type,M,N,SO> >::generate()
const
115 StaticMatrix<Type,M,N,SO> matrix;
131 template<
typename Type
135 template<
typename Arg >
136 inline const StaticMatrix<Type,M,N,SO>
137 Rand< StaticMatrix<Type,M,N,SO> >::generate(
const Arg&
min,
const Arg&
max )
const
139 StaticMatrix<Type,M,N,SO> matrix;
154 template<
typename Type
158 inline void Rand< StaticMatrix<Type,M,N,SO> >
::randomize( StaticMatrix<Type,M,N,SO>& matrix )
const
162 for(
size_t i=0UL; i<M; ++i ) {
163 for(
size_t j=0UL; j<N; ++j ) {
181 template<
typename Type
185 template<
typename Arg >
186 inline void Rand< StaticMatrix<Type,M,N,SO> >
::randomize( StaticMatrix<Type,M,N,SO>& matrix,
187 const Arg&
min,
const Arg&
max )
const
191 for(
size_t i=0UL; i<M; ++i ) {
192 for(
size_t j=0UL; j<N; ++j ) {
217 template<
typename Type
221 void makeSymmetric( StaticMatrix<Type,M,N,SO>& matrix )
227 for(
size_t i=0UL; i<N; ++i ) {
228 for(
size_t j=0UL; j<i; ++j ) {
230 matrix(j,i) = matrix(i,j);
251 template<
typename Type
256 void makeSymmetric( StaticMatrix<Type,M,N,SO>& matrix,
const Arg& min,
const Arg& max )
262 for(
size_t i=0UL; i<N; ++i ) {
263 for(
size_t j=0UL; j<i; ++j ) {
265 matrix(j,i) = matrix(i,j);
284 template<
typename Type
288 void makeHermitian( StaticMatrix<Type,M,N,SO>& matrix )
295 typedef typename UnderlyingBuiltin<Type>::Type BT;
297 for(
size_t i=0UL; i<N; ++i ) {
298 for(
size_t j=0UL; j<i; ++j ) {
300 matrix(j,i) =
conj( matrix(i,j) );
302 matrix(i,i) = rand<BT>();
321 template<
typename Type
326 void makeHermitian( StaticMatrix<Type,M,N,SO>& matrix,
const Arg& min,
const Arg& max )
333 typedef typename UnderlyingBuiltin<Type>::Type BT;
335 for(
size_t i=0UL; i<N; ++i ) {
336 for(
size_t j=0UL; j<i; ++j ) {
338 matrix(j,i) =
conj( matrix(i,j) );
340 matrix(i,i) = rand<BT>(
real( min ),
real( max ) );
357 template<
typename Type
361 void makePositiveDefinite( StaticMatrix<Type,M,N,SO>& matrix )
369 matrix *=
ctrans( matrix );
371 for(
size_t i=0UL; i<N; ++i ) {
372 matrix(i,i) += Type(N);
Header file for the complete HybridMatrix implementation.
const MT::ElementType max(const DenseMatrix< MT, SO > &dm)
Returns the largest element of the dense matrix.
Definition: DenseMatrix.h:1729
Constraint on the data type.
StaticMatrix< double, 6UL, 6UL, false > Mat6x6d
6x6 double precision matrix.
Definition: StaticMatrix.h:497
void randomize(T &value)
Randomization of a given variable.
Definition: Random.h:1041
bool isSymmetric(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is symmetric.
Definition: DenseMatrix.h:697
StaticMatrix< real_t, 2UL, 2UL, false > Mat2x2
2x2 matrix with system-specific precision.
Definition: StaticMatrix.h:409
Implementation of a random number generator.
StaticMatrix< double, 3UL, 3UL, false > Mat3x3d
3x3 double precision matrix.
Definition: StaticMatrix.h:425
StaticMatrix< double, 5UL, 5UL, false > Mat5x5d
5x5 double precision matrix.
Definition: StaticMatrix.h:473
StaticMatrix< float, 5UL, 5UL, false > Mat5x5f
5x5 single precision matrix.
Definition: StaticMatrix.h:465
ConjExprTrait< typename DiagonalProxy< MT >::RepresentedType >::Type conj(const DiagonalProxy< MT > &proxy)
Computing the complex conjugate of the represented element.
Definition: DiagonalProxy.h:487
Header file for the floating point precision of the Blaze library.
StaticMatrix< float, 2UL, 2UL, false > Mat2x2f
2x2 single precision matrix.
Definition: StaticMatrix.h:393
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
void randomize(T &value) const
Randomization of the given variable with a new value in the range .
Definition: Random.h:260
Header file for the UnderlyingBuiltin type trait.
const MT::ElementType min(const DenseMatrix< MT, SO > &dm)
Returns the smallest element of the dense matrix.
Definition: DenseMatrix.h:1682
Efficient implementation of a fixed-sized matrix.The StaticMatrix class template is the representatio...
Definition: Forward.h:60
Header file for the implementation of a fixed-size matrix.
const CTransExprTrait< MT >::Type ctrans(const DenseMatrix< MT, SO > &dm)
Returns the conjugate transpose matrix of dm.
Definition: DMatConjExpr.h:974
const RealExprTrait< MT >::Type real(const DenseMatrix< MT, SO > &dm)
Returns a matrix containing the real part of each single element of dm.
Definition: DMatRealExpr.h:920
StaticMatrix< float, 3UL, 3UL, false > Mat3x3f
3x3 single precision matrix.
Definition: StaticMatrix.h:417
StaticMatrix< real_t, 3UL, 3UL, false > Mat3x3
3x3 matrix with system-specific precision.
Definition: StaticMatrix.h:433
Header file for the real shim.
StaticMatrix< real_t, 5UL, 5UL, false > Mat5x5
5x5 matrix with system-specific precision.
Definition: StaticMatrix.h:481
Header file for the conjugate shim.
Header file for run time assertion macros.
StaticMatrix< real_t, 4UL, 4UL, false > Mat4x4
4x4 matrix with system-specific precision.
Definition: StaticMatrix.h:457
#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:79
Header file for the complete StaticVector implementation.
StaticMatrix< float, 4UL, 4UL, false > Mat4x4f
4x4 single precision matrix.
Definition: StaticMatrix.h:441
T generate() const
Generation of a random value in the range .
Definition: Random.h:220
Header file for all basic DenseMatrix functionality.
StaticMatrix< double, 2UL, 2UL, false > Mat2x2d
2x2 double precision matrix.
Definition: StaticMatrix.h:401
StaticMatrix< double, 4UL, 4UL, false > Mat4x4d
4x4 double precision matrix.
Definition: StaticMatrix.h:449
bool isHermitian(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is Hermitian.
Definition: DenseMatrix.h:767
StaticMatrix< float, 6UL, 6UL, false > Mat6x6f
6x6 single precision matrix.
Definition: StaticMatrix.h:489
StaticMatrix< real_t, 6UL, 6UL, false > Mat6x6
6x6 matrix with system-specific precision.
Definition: StaticMatrix.h:505
#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:143
#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