mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
As proposed on the list:
- rename EvalBeforeAssignBit to MayAliasBit - make .lazy() remove the MayAliasBit only, and mark it as deprecated - add a NoAlias pseudo expression, and MatrixBase::noalias() function Todo: - we have to decide whether += and -= assume no aliasing by default ? - once we agree on the API: update the Sparse module and the unit tests respectively.
This commit is contained in:
@@ -76,8 +76,10 @@ const unsigned int EvalBeforeNestingBit = 0x2;
|
||||
|
||||
/** \ingroup flags
|
||||
*
|
||||
* means the expression should be evaluated before any assignement */
|
||||
const unsigned int EvalBeforeAssigningBit = 0x4;
|
||||
* Means the expression cannot be evaluated safely if the result alias one
|
||||
* of the operands of the expression. Therefore it should be evaluated
|
||||
* before any assignement. */
|
||||
const unsigned int MayAliasBit = 0x4;
|
||||
|
||||
/** \ingroup flags
|
||||
*
|
||||
@@ -182,7 +184,7 @@ const unsigned int SparseBit = 0x1000;
|
||||
// list of flags that are inherited by default
|
||||
const unsigned int HereditaryBits = RowMajorBit
|
||||
| EvalBeforeNestingBit
|
||||
| EvalBeforeAssigningBit
|
||||
| MayAliasBit
|
||||
| SparseBit;
|
||||
|
||||
// Possible values for the Mode parameter of part()
|
||||
|
||||
@@ -35,6 +35,7 @@ template<typename _Scalar, int _Rows, int _Cols,
|
||||
int _MaxRows = _Rows, int _MaxCols = _Cols> class Matrix;
|
||||
|
||||
template<typename ExpressionType, unsigned int Added, unsigned int Removed> class Flagged;
|
||||
template<typename ExpressionType> class NoAlias;
|
||||
template<typename ExpressionType> class NestByValue;
|
||||
template<typename ExpressionType> class SwapWrapper;
|
||||
template<typename MatrixType> class Minor;
|
||||
|
||||
Reference in New Issue
Block a user