| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
* removed DirectAccessBit from Part
* use a template specialization in inverseProduct() to transform a Part xpr to a Flagged xpr
|
|
|
|
|
|
|
|
|
|
|
| |
efficient matrix-vector products:
=> up to 6 times faster !
* Added DirectAccessBit to Part
* Added an exemple of a cwise operator
* Renamed perpendicular() => someOrthogonal() (geometry module)
* Fix a weired bug in ei_constant_functor: the default copy constructor did not copy
the imaginary part when the single member of the class is a complex...
|
| |
|
|
|
|
|
| |
make use of static asserts in Map
fix 2 warnings in CacheFriendlyProduct: unused var 'Vectorized'
|
|
|
|
|
|
|
| |
products.
* Minor update of the cores of the Cholesky algorithms to make them more friendly
wrt to matrix-vector products => speedup x5 !
|
|
|
|
|
|
| |
Documentation:
* add an overview for each module.
* add an example for .all() and Cwise::operator<
|
|
|
|
|
|
|
|
|
|
| |
- conflicts with operator * overloads
- discard the use of ei_pdiv for interger
(g++ handles operators on __m128* types, this is why it worked)
- weird behavior of icc in fixed size Block() constructor complaining
the initializer of m_blockRows and m_blockCols were missing while
we are in fixed size (maybe this hide deeper problem since this is a
recent one, but icc gives only little feedback)
|
|
|
|
|
|
| |
Renamed "MatrixBase::extract() const" to "MatrixBase::part() const"
* Renamed static functions identity, zero, ones, random with an upper case
first letter: Identity, Zero, Ones and Random.
|
|
|
|
|
|
| |
module.
Added doxygen groups for Matrix typedefs and the Geometry module
|
|
|
|
| |
Various documentation improvements including new snippets (AngleAxis and Cholesky)
|
|
|
|
| |
Added the custom gemetry_module tag, and use it.
|
|
|
|
|
|
|
| |
Removed EulerAngles, addes typdefs for Quaternion and AngleAxis,
and added automatic conversions from Quaternion/AngleAxis to Matrix3 such that:
Matrix3f m = AngleAxisf(0.2,Vector3f::UnitX) * AngleAxisf(0.2,Vector3f::UnitY);
just works.
|
| |
|
| |
|
|
|
|
|
|
|
| |
* Improve the efficiency of matrix*vector in unaligned cases
* Trivial fixes in the destructors of MatrixStorage
* Removed the matrixNorm in test/product.cpp (twice faster and
that assumed the matrix product was ok while checking that !!)
|
|
|
|
|
|
|
|
|
|
|
| |
- remove all invertibility checking, will be redundant with LU
- general case: adapt to matrix storage order for better perf
- size 4 case: handle corner cases without falling back to gen case.
- rationalize with selectors instead of compile time if
- add C-style computeInverse()
* update inverse test.
* in snippets, default cout precision to 3 decimal places
* add some cmake module from kdelibs to support btl with cmake 2.4
|
| |
|
|
|
|
|
|
|
|
| |
- removed the ugly X11 and PNG gnuplots terminals
- use enhanced postscript terminal
- use imagemagick to generate the png files (with compression)
- disable the fortran impl by default since it is as meaningless as a "C impl"
- update line settings
|
|
|
|
|
|
|
|
| |
colmajor).
It basically performs 4 dot products at once reducing loads of the vector and improving
instructions scheduling. With 3 cache friendly algorithms, we now handle all product
configurations with outstanding perf for large matrices.
|
| |
|
| |
|
| |
|
|
|
|
| |
* some simplifications and fixes in cache friendly products
|
| |
|
| |
|
| |
|
|
|
|
|
| |
of some functions as well as the experimental C code used to design
efficient eigen's matrix vector products.
|
|
|
|
|
|
| |
and vector * row-major products. Currently, it is enabled only is the matrix
has DirectAccessBit flag and the product is "large enough".
Added the respective unit tests in test/product/cpp.
|
|
|
|
| |
in the benchmark suite
|
|
|
|
| |
Cwise.
|
|
|
|
|
|
| |
BTL_CONFIG="-a ata" ctest -V -R eigen
run the all benchmarks having "ata" in their name for all
libraries matching the regexp "eigen"
|
|
|
|
|
|
| |
(using either a cache friendly strategy or re-using dot-product
vectorized implementation)
* add LinearAccessBit to Transpose
|
|
|
|
|
| |
about a +25% speedup which is still nice as i expected zero or even
negative benefit.
|
|
|
|
| |
zero benefit... turns out to be 20x speedup. Something is wrong.
|
|
|
|
|
|
|
|
|
|
|
|
| |
the modifications to initial code follow:
* changed build system from plain makefiles to cmake
* added eigen2 (4 versions: vec/novec and fixed/dynamic), GMM++, MTL4 interfaces
* added "transposed matrix * vector" product action
* updated blitz interface to use condensed products instead of hand coded loops
* removed some deprecated interfaces
* changed default storage order to column major for all libraries
* new generic bench timer strategy which is supposed to be more accurate
* various code clean-up
|
|
|
|
|
|
| |
such that
lazyAssign overloads of <xpr> are automatically called (this also reduces assign instansiations)
|
| |
|
| |
|
|
|
|
|
| |
- fix compilation in product.cpp with std::complex
- fix bug in MatrixBase::operator!=
|
|
|
|
| |
can be seen in Eigen/src/Core/Cwise.h.
|
| |
|
|
|
|
|
| |
* add comment in Product.h about CanVectorizeInner
* fix typo in test/product.cpp
|
|
|
|
|
| |
* added some tests for product and swap
* overload .swap() for dynamic-sized matrix of same size
|
|
|
|
|
| |
(equivalent to the GEMM blas routine)
* added a GEMM benchmark
|
|
|
|
| |
* add comments in render() in case anyone ever reads that :P
|
| |
|
|
|
|
|
| |
* increased number of iterations, with more iterations done before
testing divergence. results in x2 speedup from vectorization.
|
|
|
|
|
| |
- some temporary fix to get a +50% improvement from vectorization until
we have vectorisation for comparisons and redux
|
|
|
|
|
|
|
| |
might be twice faster fot small fixed size matrix
* added a sparse triangular solver (sparse version
of inverseProduct)
* various other improvements in the Sparse module
|
| |
|