| Commit message (Collapse) | Author | Age |
... | |
| |
|
|\ |
|
| |
| |
| |
| | |
remove EIGEN_ENUM_MIN/MAX, implement new macros instead
|
|/
|
|
| |
* add an Index type template parapeter to sparse objects
|
|
|
|
| |
As discussed on the list (too long to explain here).
|
| |
|
|
|
|
|
| |
* remove member XprBase typedefs, use ei_dense_xpr_base
* remove member _HasDirectAccess typedefs, use ei_has_direct_access
|
|
|
|
|
|
|
|
|
| |
removal of extra _Base/_Options template parameters.
* Introduction of strides-at-compile-time so for example the optimized code really knows when it needs to evaluate to a temporary
* StorageKind / XprKind
* Quaternion::setFromTwoVectors: use JacobiSVD instead of SVD
* ComplexSchur: support the 1x1 case
|
|
|
|
|
|
|
|
| |
* use them (big simplification in Assign.h)
* axe (Inner|Outer)StrideAtCompileTime that were just introduced
* ei_int_if_dynamic now asserts that the size is the expected one: adapt to that in Block.h
* add rowStride() / colStride() in DenseBase
* implement innerStride() / outerStride() everywhere needed
|
|
|
|
|
| |
my day, my hard disk would die.
Will write a more detailed commit message once it's working.
|
|
|
|
|
| |
using std::size_t;
This is the only way that we can ensure QCC support in the long term without having to think about it everytime.
|
|
|
|
|
| |
*forward port expanded map.cpp unit test
*fix unused variable warnings
|
|
|
|
| |
present, none of the base class operator*='s may be hidden and all of them should be visible. As far as I was able to verify, this is not affecting GCC. This fixes #84.
|
| |
|
|
|
|
|
|
| |
because thanks to the previous commit this is not needed anymore
* add a more general ForceAlignedAccess expression which can be used for any expression.
It is already used by StableNorm.h.
|
|
|
|
|
|
| |
Add an internal pseudo expression allowing to optimize operators like +=, *= using
the copyCoeff stuff.
This allows to easily enforce aligned load for the destination matrix everywhere.
|
|
|
|
|
|
|
| |
is aligned or not. This is done using the Aligned constant:
Map<MatrixType,Aligned>::Map(data);
* rename ForceAligned to EnforceAlignedAccess, and update its doc,
and emphasize this is mainly an internal stuff.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| | |
* allows 0 sized objects in Block/Map
|
| | |
|
| |
| |
| |
| | |
Still remains the problem of alignment and vectorization.
|
| |
| |
| |
| |
| | |
* fix Block::operator+= product which was not optimized
* fix some compilation issues
|
|/ |
|
|
|
|
| |
it never made very precise sense. but now does it still make any?
|
|
|
|
|
|
| |
const returns a const Scalar& and not a Scalar as before.
useful for people doing direct access. + 1 bugfix thanks to Patrick Mihelich, forgot a & in MapBase::coeff(int).
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
* allow Map to map null data
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* Bug fixes in euler angle snippet, Assign and MapBase
* Started a "quick start guide" (draft state)
|
|
|
|
| |
still fail at runtime in ei_aligned_free() (even without vectorization).
|
|
|
|
|
| |
and AsRequested for the PacketAccess parameter of MapBase. Updated respective
documentation.
|
|
- added a MapBase base xpr on top of which Map and the specialization
of Block are implemented
- MapBase forces both aligned loads (and aligned stores, see below) in expressions
such as "x.block(...) += other_expr"
* Significant vectorization improvement:
- added a AlignedBit flag meaning the first coeff/packet is aligned,
this allows to not generate extra code to deal with the first unaligned part
- removed all unaligned stores when no unrolling
- removed unaligned loads in Sum when the input as the DirectAccessBit flag
* Some code simplification in CacheFriendly product
* Some minor documentation improvements
|