| Commit message (Collapse) | Author | Age |
... | |
|
|
|
| |
(see notes in Core/util/StaticAssert.h for details)
|
|
|
|
|
| |
as it speed up compilation.
* fix minor typo introduced in the previous commit
|
|
|
|
|
|
| |
in MatrixBase work
* removed product_selector and cleaned Product.h a bit
* cleaned Assign.h a bit
|
|
|
|
|
| |
* bugfix in Assign and cache friendly product (weird that worked before)
* improved argument evaluation in Product
|
|
|
|
|
|
|
|
|
|
| |
Triangular class
- full meta-unrolling in Part
- move inverseProduct() to MatrixBase
- compilation fix in ProductWIP: introduce a meta-selector to only do
direct access on types that support it.
- phase out the old Product, remove the WIP_DIRTY stuff.
- misc renaming and fixes
|
|
|
|
|
|
| |
* Fix a mistake in CwiseNullary.
* Added a CoreDeclarions header that declares only the forward declarations
and related basic stuffs.
|
|
|
|
| |
-finline-limit=1000 to gcc to get good performance. By the way some cleanup.
|
|
|
|
|
|
|
|
| |
* Fix compilation of Inverse.h with vectorisation
* Introduce EIGEN_GNUC_AT_LEAST(x,y) macro doing future-proof (e.g. gcc v5.0) check
* Only use ProductWIP if vectorisation is enabled
* rename EIGEN_ALWAYS_INLINE -> EIGEN_INLINE with fall-back to inline keyword
* some cleanup/indentation
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Introduce a new highly optimized matrix-matrix product for large
matrices. The code is still highly experimental and it is activated
only if you define EIGEN_WIP_PRODUCT at compile time.
Currently the third dimension of the product must be a factor of
the packet size (x4 for floats) and the right handed side matrix
must be column major.
Moreover, currently c = a*b; actually computes c += a*b !!
Therefore, the code is provided for experimentation purpose only !
These limitations will be fixed soon or later to become the default
product implementation.
|
|
|
|
| |
in benchmark. Still not as fasts as explicit eval(), strangely.
|
|
|
|
|
|
| |
extended cache optimal product to work in any row/column
major situations, and a few bugfixes (forgot to add the
Cholesky header, vectorization of CwiseBinary)
|
|
|
|
| |
Added a test for Triangular.
|
|
|
|
|
|
|
|
|
|
|
| |
m.upper() = a+b;
only updates the upper triangular part of m.
Note that:
m = (a+b).upper();
updates all coefficients of m (but half of the additions
will be skiped)
Updated back/forward substitution to better use Eigen's capability.
|
|
|
|
|
|
|
|
| |
- vector to vector assign
- PartialRedux
- Vectorization criteria of Product
- returned type of normalized
- SSE integer mul
|
|
|
|
|
|
|
|
| |
- support dynamic sizes
- support arbitrary matrix size when the matrix can be seen as a 1D array
(except for fixed size matrices where the size in Bytes must be a factor of 16,
this is to allow compact storage of a vector of matrices)
Note that the explict vectorization is still experimental and far to be completely tested.
|
| |
|
|
|
|
|
|
| |
fully optimized.
* Even if LargeBit is set, only parallelize for large enough objects
(controlled by EIGEN_PARALLELIZATION_TRESHOLD).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
using a macro and _Pragma.
- use OpenMP also in cacheOptimalProduct and in the
vectorized paths as well
- kill the vector assignment unroller. implement in
operator= the logic for assigning a row-vector in
a col-vector.
- CMakeLists support for building tests/examples
with -fopenmp and/or -msse2
- updates in bench/, especially replace identity()
by ones() which prevents underflows from perturbing
bench results.
|
| |
|
|
* rename OperatorEquals -> Assign
* move Util.h and FwDecl.h to a util/ subdir
|