35 #ifndef _BLAZE_MATH_VIEWS_COLUMN_H_ 36 #define _BLAZE_MATH_VIEWS_COLUMN_H_ 122 template<
typename MT
165 template<
typename MT
190 template<
typename MT
221 template<
typename MT >
226 return column( (~matrix).leftOperand(), index ) +
column( (~matrix).rightOperand(), index );
244 template<
typename MT >
249 return column( (~matrix).leftOperand(), index ) -
column( (~matrix).rightOperand(), index );
267 template<
typename MT >
272 return column( (~matrix).leftOperand(), index ) *
column( (~matrix).rightOperand(), index );
290 template<
typename MT >
295 return (~matrix).leftOperand() *
column( (~matrix).rightOperand(), index );
313 template<
typename MT >
318 return (~matrix).leftOperand() * (~matrix).rightOperand()[index];
336 template<
typename MT >
341 return column( (~matrix).leftOperand(), index ) * (~matrix).rightOperand();
359 template<
typename MT >
364 return column( (~matrix).leftOperand(), index ) / (~matrix).rightOperand();
382 template<
typename MT >
387 return map(
column( (~matrix).operand(), index ), (~matrix).operation() );
405 template<
typename MT >
410 return map(
column( (~matrix).leftOperand() , index ),
411 column( (~matrix).rightOperand(), index ),
412 (~matrix).operation() );
430 template<
typename MT >
435 return eval(
column( (~matrix).operand(), index ) );
453 template<
typename MT >
476 template<
typename MT >
481 return column( (~matrix).operand(), index );
499 template<
typename MT >
504 return trans(
row( (~matrix).operand(), index ) );
521 template<
typename MT,
bool SO,
bool DF,
bool SF >
524 template<
typename MT,
bool SO,
bool DF,
bool SF >
527 template<
typename MT,
bool SO,
bool DF,
bool SF >
530 template<
typename MT,
bool SO,
bool DF,
bool SF >
533 template<
bool RF,
typename MT,
bool SO,
bool DF,
bool SF >
536 template<
typename MT,
bool SO,
bool DF,
bool SF >
539 template<
typename MT,
bool SO,
bool DF,
bool SF >
552 template<
typename MT
570 template<
typename MT
590 template<
typename MT
610 template<
typename MT
655 for(
size_t i=0UL; i<column.size(); ++i )
656 if( !isDefault<RF>( column[i] ) )
return false;
693 if( !isDefault<RF>( element->value() ) )
return false;
717 template<
typename MT
723 return ( column.column() < column.operand().columns() &&
741 template<
typename MT
747 return (
isSame( a.operand(), b.operand() ) && ( a.column() == b.column() ) );
767 template<
typename MT
777 return tryAssign( lhs.operand(), ~rhs, index, lhs.column );
798 template<
typename MT
808 return tryAddAssign( lhs.operand(), ~rhs, index, lhs.column() );
829 template<
typename MT
839 return trySubAssign( lhs.operand(), ~rhs, index, lhs.column() );
860 template<
typename MT
870 return tryMultAssign( lhs.operand(), ~rhs, index, lhs.column() );
891 template<
typename MT
901 return tryDivAssign( lhs.operand(), ~rhs, index, lhs.column() );
922 template<
typename MT
928 return column( derestrict( c.operand() ), c.column() );
949 template<
typename MT
955 return column( derestrict( c.operand() ), c.column() );
971 template<
typename MT,
bool SO,
bool DF,
bool SF >
989 template<
typename MT,
bool SO,
bool SF >
1007 template<
typename MT,
bool SO,
bool SF >
1009 :
public BoolConstant< HasMutableDataAccess<MT>::value >
1025 template<
typename MT,
bool SO,
bool SF >
1026 struct IsAligned< Column<MT,SO,true,SF> >
1027 :
public BoolConstant< And< IsAligned<MT>, Or< IsColumnMajorMatrix<MT>, IsSymmetric<MT> > >::value >
1043 template<
typename MT,
bool SO,
bool SF >
1044 struct IsPadded< Column<MT,SO,true,SF> >
1045 :
public BoolConstant< And< IsPadded<MT>, Or< IsColumnMajorMatrix<MT>, IsSymmetric<MT> > >::value >
1061 template<
typename MT,
bool DF >
1079 template<
typename MT,
bool SO,
bool DF,
bool SF,
typename T >
1080 struct AddTrait< Column<MT,SO,DF,SF>, T >
1085 template<
typename T,
typename MT,
bool SO,
bool DF,
bool SF >
1086 struct AddTrait< T, Column<MT,SO,DF,SF> >
1104 template<
typename MT,
bool SO,
bool DF,
bool SF,
typename T >
1105 struct SubTrait< Column<MT,SO,DF,SF>, T >
1110 template<
typename T,
typename MT,
bool SO,
bool DF,
bool SF >
1111 struct SubTrait< T, Column<MT,SO,DF,SF> >
1129 template<
typename MT,
bool SO,
bool DF,
bool SF,
typename T >
1130 struct MultTrait< Column<MT,SO,DF,SF>, T >
1135 template<
typename T,
typename MT,
bool SO,
bool DF,
bool SF >
1136 struct MultTrait< T, Column<MT,SO,DF,SF> >
1154 template<
typename MT,
bool SO,
bool DF,
bool SF,
typename T >
1155 struct DivTrait< Column<MT,SO,DF,SF>, T >
1160 template<
typename T,
typename MT,
bool SO,
bool DF,
bool SF >
1161 struct DivTrait< T, Column<MT,SO,DF,SF> >
1179 template<
typename MT,
bool SO,
bool DF,
bool SF,
typename T >
1185 template<
typename T,
typename MT,
bool SO,
bool DF,
bool SF >
1204 template<
typename MT,
bool SO,
bool DF,
bool SF >
Base class for all binary matrix map expression templates.The MatMatMapExpr class serves as a tag for...
Definition: MatMatMapExpr.h:66
Compile time check for low-level access to constant data.This type trait tests whether the given data...
Definition: HasConstDataAccess.h:75
Header file for the subtraction trait.
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.
Base class for all matrix serial evaluation expression templates.The MatSerialExpr class serves as a ...
Definition: MatSerialExpr.h:67
Base class for all matrix/scalar division expression templates.The MatScalarDivExpr class serves as a...
Definition: MatScalarDivExpr.h:66
BLAZE_ALWAYS_INLINE size_t size(const Vector< VT, TF > &vector) noexcept
Returns the current size/dimension of the vector.
Definition: Vector.h:265
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:71
Header file for the MatTransExpr base class.
Compile time check for resizable data types.This type trait tests whether the given data type is an o...
Definition: IsOpposedView.h:81
Header file for the IsColumnMajorMatrix type trait.
Header file for the implementation of the Column base template.
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:560
Base class for all matrix/scalar multiplication expression templates.The MatScalarMultExpr class serv...
Definition: MatScalarMultExpr.h:67
Header file for the And class template.
Header file for the MatEvalExpr base class.
typename MultTrait< T1, T2 >::Type MultTrait_
Auxiliary alias declaration for the MultTrait class template.The MultTrait_ alias declaration provide...
Definition: MultTrait.h:250
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
Header file for the MatMatMultExpr base class.
Base template for the CrossTrait class.
Definition: CrossTrait.h:116
Compile time check for data types with restricted data access.This type trait tests whether the given...
Definition: IsRestricted.h:82
Base template for the SubvectorTrait class.
Definition: SubvectorTrait.h:120
Compile time check for low-level access to mutable data.This type trait tests whether the given data ...
Definition: HasMutableDataAccess.h:75
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
Compile time check for the alignment of data types.This type trait tests whether the given data type ...
Definition: IsAligned.h:87
Column specialization for dense matrices.
Header file for the MatMapExpr base class.
Header file for the multiplication trait.
Header file for the IsSymmetric type trait.
Base class for all matrix/matrix subtraction expression templates.The MatMatSubExpr class serves as a...
Definition: MatMatSubExpr.h:67
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Compile time check for data types with padding.This type trait tests whether the given data type empl...
Definition: IsPadded.h:76
Header file for the Or class template.
typename SubvectorTrait< VT >::Type SubvectorTrait_
Auxiliary alias declaration for the SubvectorTrait type trait.The SubvectorTrait_ alias declaration p...
Definition: SubvectorTrait.h:155
const Element * ConstIterator
Iterator over constant elements.
Definition: CompressedMatrix.h:3087
Header file for the subvector trait.
Base class for all matrix/matrix addition expression templates.The MatMatAddExpr class serves as a ta...
Definition: MatMatAddExpr.h:66
Header file for the MatMatSubExpr base class.
Reference to a specific column of a dense or sparse matrix.The Column template represents a reference...
Definition: BaseTemplate.h:354
Header file for the IsAligned type trait.
Base class for all unary matrix map expression templates.The MatMapExpr class serves as a tag for all...
Definition: MatMapExpr.h:66
Header file for the IsOpposedView type trait.
decltype(auto) eval(const DenseMatrix< MT, SO > &dm)
Forces the evaluation of the given dense matrix expression dm.
Definition: DMatEvalExpr.h:797
typename CrossTrait< T1, T2 >::Type CrossTrait_
Auxiliary alias declaration for the CrossTrait class template.The CrossTrait_ alias declaration provi...
Definition: CrossTrait.h:159
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 the MatSerialExpr base class.
Header file for the VecTVecMultExpr base class.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:580
typename DivTrait< T1, T2 >::Type DivTrait_
Auxiliary alias declaration for the DivTrait class template.The DivTrait_ alias declaration provides ...
Definition: DivTrait.h:250
Header file for the HasConstDataAccess type trait.
Header file for the DeclExpr base class.
Base class for all matrix/matrix multiplication expression templates.The MatMatMultExpr class serves ...
Definition: MatMatMultExpr.h:67
Header file for the Matrix base class.
Header file for the MatScalarMultExpr base class.
Base class for all Schur product expression templates.The SchurExpr class serves as a tag for all exp...
Definition: SchurExpr.h:66
Base template for the AddTrait class.
Definition: AddTrait.h:139
Base template for the MultTrait class.
Definition: MultTrait.h:139
Header file for the addition trait.
Header file for the cross product trait.
Header file for the division trait.
Header file for the SchurExpr base class.
Base class for all matrix evaluation expression templates.The MatEvalExpr class serves as a tag for a...
Definition: MatEvalExpr.h:66
#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
Header file for the column trait.
Header file for the isDefault shim.
Base class for matrices.The Matrix class is a base class for all dense and sparse matrix classes with...
Definition: Forward.h:101
decltype(auto) serial(const DenseMatrix< MT, SO > &dm)
Forces the serial evaluation of the given dense matrix expression dm.
Definition: DMatSerialExpr.h:819
Base class for all matrix transposition expression templates.The MatTransExpr class serves as a tag f...
Definition: MatTransExpr.h:66
Header file for the HasMutableDataAccess type trait.
Header file for the MatMatAddExpr base class.
Base class for all outer product expression templates.The VecTVecMultExpr class serves as a tag for a...
Definition: VecTVecMultExpr.h:67
Base template for the DivTrait class.
Definition: DivTrait.h:139
typename T::ConstIterator ConstIterator_
Alias declaration for nested ConstIterator type definitions.The ConstIterator_ alias declaration prov...
Definition: Aliases.h:103
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
Header file for the MatMatMapExpr base class.
typename SubTrait< T1, T2 >::Type SubTrait_
Auxiliary alias declaration for the SubTrait class template.The SubTrait_ alias declaration provides ...
Definition: SubTrait.h:250
Header file for the IntegralConstant class template.
bool isIntact(const DiagonalMatrix< MT, SO, DF > &m)
Returns whether the invariants of the given diagonal matrix are intact.
Definition: DiagonalMatrix.h:252
Column specialization for sparse matrices.
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:600
Base template for the SubTrait class.
Definition: SubTrait.h:139
Header file for the MatScalarDivExpr base class.
typename AddTrait< T1, T2 >::Type AddTrait_
Auxiliary alias declaration for the AddTrait class template.The AddTrait_ alias declaration provides ...
Definition: AddTrait.h:250
#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 TrueType type/value trait base class.
Header file for the function trace functionality.
decltype(auto) map(const DenseMatrix< MT1, SO > &lhs, const DenseMatrix< MT2, SO > &rhs, OP op)
Evaluates the given binary operation on each single element of the dense matrices lhs and rhs...
Definition: DMatDMatMapExpr.h:1133