35 #ifndef _BLAZE_MATH_EXPRESSIONS_MATRIX_H_ 36 #define _BLAZE_MATH_EXPRESSIONS_MATRIX_H_ 105 return *
static_cast<const MatrixType*
>( this );
123 template<
typename MT,
bool SO >
126 template<
typename MT,
bool SO >
129 template<
typename MT,
bool SO >
132 template<
typename MT,
bool SO >
135 template<
typename MT,
bool SO >
138 template<
typename MT,
bool SO >
141 template<
typename MT,
bool SO >
144 template<
typename MT,
bool SO >
147 template<
typename MT,
bool SO >
150 template<
typename MT,
bool SO >
153 template<
typename MT,
bool SO >
156 template<
typename MT,
bool SO >
159 template<
typename MT,
bool SO >
162 template<
typename MT,
bool SO >
165 template<
typename MT,
bool SO >
168 template<
typename MT,
bool SO >
171 template<
typename MT,
bool SO >
174 template<
typename MT,
bool SO >
177 template<
typename MT1,
bool SO1,
typename MT2,
bool SO2 >
196 template<
typename MT
200 return (~matrix).begin(i);
218 template<
typename MT
222 return (~matrix).begin(i);
240 template<
typename MT
244 return (~matrix).cbegin(i);
262 template<
typename MT
266 return (~matrix).end(i);
284 template<
typename MT
288 return (~matrix).end(i);
306 template<
typename MT
310 return (~matrix).cend(i);
322 template<
typename MT
326 return (~matrix).rows();
338 template<
typename MT
342 return (~matrix).columns();
354 template<
typename MT
358 return (~matrix).capacity();
376 template<
typename MT
380 return (~matrix).capacity( i );
392 template<
typename MT
396 return (~matrix).nonZeros();
414 template<
typename MT
418 return (~matrix).nonZeros( i );
440 template<
typename MT
443 resize_backend(
Matrix<MT,SO>& matrix,
size_t m,
size_t n,
bool preserve )
447 if( (~matrix).
rows() != m || (~matrix).
columns() != n ) {
468 template<
typename MT
471 resize_backend(
Matrix<MT,SO>& matrix,
size_t m,
size_t n,
bool preserve )
473 (~matrix).
resize( m, n, preserve );
493 template<
typename MT
496 resize_backend(
Matrix<MT,SO>& matrix,
size_t m,
size_t n,
bool preserve )
502 (~matrix).
resize( m, preserve );
546 template<
typename MT
550 resize_backend( matrix, m, n, preserve );
563 template<
typename MT
582 template<
typename MT
607 template<
typename MT
611 shrinkToFit_backend( matrix );
633 template<
typename MT
659 template<
typename MT
720 template<
typename MT
740 template<
typename MT
782 template<
typename MT1
789 reinterpret_cast<const void*>( &a ) == reinterpret_cast<const void*>( &b ) );
803 template<
typename MT1
810 (~lhs).assign( ~rhs );
825 template<
typename MT1
835 (~lhs).assign( ~rhs );
851 template<
typename MT1
863 (~lhs).assign(
trans( ~rhs ) );
884 template<
typename MT1
895 assign_backend( ~lhs, ~rhs );
911 template<
typename MT1
918 (~lhs).addAssign( ~rhs );
934 template<
typename MT1
944 (~lhs).addAssign( ~rhs );
960 template<
typename MT1
972 (~lhs).addAssign(
trans( ~rhs ) );
993 template<
typename MT1
1004 addAssign_backend( ~lhs, ~rhs );
1020 template<
typename MT1
1027 (~lhs).subAssign( ~rhs );
1043 template<
typename MT1
1053 (~lhs).subAssign( ~rhs );
1069 template<
typename MT1
1081 (~lhs).subAssign(
trans( ~rhs ) );
1102 template<
typename MT1
1113 subAssign_backend( ~lhs, ~rhs );
1129 template<
typename MT1
1136 (~lhs).schurAssign( ~rhs );
1152 template<
typename MT1
1162 (~lhs).schurAssign( ~rhs );
1178 template<
typename MT1
1190 (~lhs).schurAssign(
trans( ~rhs ) );
1211 template<
typename MT1
1222 schurAssign_backend( ~lhs, ~rhs );
1243 template<
typename MT1
1253 (~lhs).multAssign( ~rhs );
1275 template<
typename MT
1311 template<
typename MT1
1316 size_t row,
size_t column )
1347 template<
typename MT
1352 size_t row,
size_t column )
1383 template<
typename MT1
1388 size_t row,
size_t column )
1419 template<
typename MT
1424 size_t row,
size_t column )
1455 template<
typename MT1
1460 size_t row,
size_t column )
1491 template<
typename MT
1496 size_t row,
size_t column )
1527 template<
typename MT1
1532 size_t row,
size_t column )
1563 template<
typename MT
1568 size_t row,
size_t column )
1598 template<
typename MT
#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 the UNUSED_PARAMETER function template.
BLAZE_ALWAYS_INLINE size_t capacity(const Matrix< MT, SO > &matrix) noexcept
Returns the maximum capacity of the matrix.
Definition: Matrix.h:356
BLAZE_ALWAYS_INLINE bool isSame(const Matrix< MT1, SO1 > &a, const Matrix< MT2, SO2 > &b) noexcept
Returns whether the two given matrices represent the same observable state.
Definition: Matrix.h:786
Header file for basic type definitions.
BLAZE_ALWAYS_INLINE size_t size(const Vector< VT, TF > &vector) noexcept
Returns the current size/dimension of the vector.
Definition: Vector.h:265
Header file for the IsSame and IsStrictlySame type traits.
This ResultType
Result type for expression template evaluations.
Definition: CompressedMatrix.h:3078
BLAZE_ALWAYS_INLINE MT::Iterator begin(Matrix< MT, SO > &matrix, size_t i)
Returns an iterator to the first element of row/column i.
Definition: Matrix.h:198
BLAZE_ALWAYS_INLINE void shrinkToFit(Matrix< MT, SO > &matrix)
Requesting the removal of unused capacity.
Definition: Matrix.h:609
typename DisableIf< Condition, T >::Type DisableIf_
Auxiliary type for the DisableIf class template.The DisableIf_ alias declaration provides a convenien...
Definition: DisableIf.h:224
Header file for the And class template.
BLAZE_ALWAYS_INLINE void ctranspose(Matrix< MT, SO > &matrix)
In-place conjugate transpose of the given matrix.
Definition: Matrix.h:661
BLAZE_ALWAYS_INLINE size_t nonZeros(const Matrix< MT, SO > &matrix)
Returns the total number of non-zero elements in the matrix.
Definition: Matrix.h:394
Column< MT > column(Matrix< MT, SO > &matrix, size_t index)
Creating a view on a specific column of the given matrix.
Definition: Column.h:124
Type relationship analysis.This class tests if the two data types A and B are equal. For this type comparison, the cv-qualifiers of both data types are ignored. If A and B are the same data type (ignoring the cv-qualifiers), then the value member constant is set to true, the nested type definition Type is TrueType, and the class derives from TrueType. Otherwise value is set to false, Type is FalseType, and the class derives from FalseType.
Definition: IsSame.h:140
Element * Iterator
Iterator over non-constant elements.
Definition: CompressedMatrix.h:3086
const MT::ResultType evaluate(const Matrix< MT, SO > &matrix)
Evaluates the given matrix expression.
Definition: Matrix.h:722
BLAZE_ALWAYS_INLINE MT::ConstIterator cend(const Matrix< MT, SO > &matrix, size_t i)
Returns an iterator just past the last element of row/column i.
Definition: Matrix.h:308
BLAZE_ALWAYS_INLINE MT::ConstIterator cbegin(const Matrix< MT, SO > &matrix, size_t i)
Returns an iterator to the first element of row/column i.
Definition: Matrix.h:242
Header file for the IsSquare type trait.
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
Header file for the DisableIf class template.
Header file for the IsSymmetric type trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Header file for the IsShrinkable type trait.
Header file for the Not class template.
const Element * ConstIterator
Iterator over constant elements.
Definition: CompressedMatrix.h:3087
Compile time check for square matrices.This type trait tests whether or not the given template parame...
Definition: IsSquare.h:88
BLAZE_ALWAYS_INLINE size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:340
Header file for the exception macros of the math module.
BLAZE_ALWAYS_INLINE void resize(Matrix< MT, SO > &matrix, size_t rows, size_t columns, bool preserve=true)
Changing the size of the matrix.
Definition: Matrix.h:548
BLAZE_ALWAYS_INLINE MT::Iterator end(Matrix< MT, SO > &matrix, size_t i)
Returns an iterator just past the last element of row/column i.
Definition: Matrix.h:264
Header file for all forward declarations for expression class templates.
Header file for the EnableIf class template.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_SYMMETRIC_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is a symmetric matrix type, a compilation error is created.
Definition: Symmetric.h:79
Header file for run time assertion macros.
BLAZE_ALWAYS_INLINE const MatrixType & operator~() const noexcept
Conversion operator for constant matrices.
Definition: Matrix.h:104
Expression object for sparse matrix-scalar divisions.The SMatScalarMult class represents the compile ...
Definition: Forward.h:113
#define BLAZE_FUNCTION_TRACE
Function trace macro.This macro can be used to reliably trace function calls. In case function tracin...
Definition: FunctionTrace.h:94
Compile time type negation.The Not alias declaration negates the given compile time condition...
Definition: Not.h:70
Base class for matrices.The Matrix class is a base class for all dense and sparse matrix classes with...
Definition: Forward.h:101
Constraint on the data type.
typename EnableIf< Condition, T >::Type EnableIf_
Auxiliary alias declaration for the EnableIf class template.The EnableIf_ alias declaration provides ...
Definition: EnableIf.h:224
BLAZE_ALWAYS_INLINE size_t rows(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of rows of the matrix.
Definition: Matrix.h:324
decltype(auto) trans(const DenseMatrix< MT, SO > &dm)
Calculation of the transpose of the given dense matrix.
Definition: DMatTransExpr.h:790
Base class for N-dimensional vectors.The Vector class is a base class for all arbitrarily sized (N-di...
Definition: Forward.h:177
void UNUSED_PARAMETER(const Args &...)
Suppression of unused parameter warnings.
Definition: Unused.h:81
BLAZE_ALWAYS_INLINE bool isSquare(const Matrix< MT, SO > &matrix) noexcept
Checks if the given matrix is a square matrix.
Definition: Matrix.h:742
Header file for the IsResizable type trait.
BLAZE_ALWAYS_INLINE MatrixType & operator~() noexcept
Conversion operator for non-constant matrices.
Definition: Matrix.h:94
System settings for the inline keywords.
#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 function trace functionality.
BLAZE_ALWAYS_INLINE void transpose(Matrix< MT, SO > &matrix)
In-place transpose of the given matrix.
Definition: Matrix.h:635