Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Assign.h: add LinearTraversal (non-vectorized index-based traversal) | Benoit Jacob | 2009-11-18 |
| | | | | Rename some constants to make names match more closely what they mean. | ||
* | discard vectorization in matrix-vector product when data is not even | Gael Guennebaud | 2009-10-05 |
| | | | | aligned on the scalar type size (e.g., for double on 32 bits system without -malign-double) | ||
* | forgot to hg add this file | Benoit Jacob | 2009-10-02 |
| | |||
* | remove some dirty lines | Gael Guennebaud | 2009-09-25 |
| | |||
* | update mixingtype unit test to reflect current status, but it is still clear | Gael Guennebaud | 2009-09-03 |
| | | | | we should allow matrix products between complex and real ? | ||
* | Fix serious bug discovered with gcc 4.2 | Gael Guennebaud | 2009-09-03 |
| | |||
* | fix Matrix::stride for vectors, add a unit test for Block::stride | Gael Guennebaud | 2009-08-31 |
| | | | | and make use of it where it was relevant | ||
* | rename back MayAliasBit to EvalBeforeAssigningBit | Gael Guennebaud | 2009-08-16 |
| | |||
* | As proposed on the list: | Gael Guennebaud | 2009-08-15 |
| | | | | | | | | | - 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. | ||
* | optimize "apply Jacobi" for small sizes, and move it to Jacobi.h | Gael Guennebaud | 2009-08-14 |
| | |||
* | * remove EIGEN_DONT_INLINE that harm performance for small sizes | Benoit Jacob | 2009-08-13 |
| | | | | | | | * normalize left Jacobi rotations to avoid having to swap rows * set precision to 2*machine_epsilon instead of machine_epsilon, we lose 1 bit of precision but gain between 10% and 100% speed, plus reduce the risk that some day we hit a bad matrix where it's impossible to approach machine precision | ||
* | add an optimized "apply in place a rotation in the plane", | Gael Guennebaud | 2009-08-13 |
| | | | | | and make Jacobi and SelfAdjointEigenSolver use it => ~ x1.75 speedup for JacobiSVD and x2 for SelfAdjointEigenSolver | ||
* | overload operartor* with a ProductBase such that "scalar * (mat * mat)" is ↵ | Gael Guennebaud | 2009-08-11 |
| | | | | | | optimized as one could naturally expect | ||
* | * implement a second level of micro blocking (faster for small sizes) | Gael Guennebaud | 2009-08-07 |
| | | | | * workaround GCC bad implementation of _mm_set1_p* | ||
* | more product refactoring | Gael Guennebaud | 2009-08-06 |
| | |||
* | fix vs.net compilation issue | Hauke Heibel | 2009-08-06 |
| | |||
* | implement a ProductBase class and, as a proof of concept, update ↵ | Gael Guennebaud | 2009-08-04 |
| | | | | | | TriangularProduct and SelfAdjointMatrixProduct to take advantage of it => fewer LOC | ||
* | * Bye bye MultiplierBase, extend a bit AnyMatrixBase to allow =, +=, and -= | Gael Guennebaud | 2009-08-03 |
| | | | | * This probably makes ReturnByValue needless | ||
* | faster trsm kernel and fix a couple of issues | Gael Guennebaud | 2009-07-31 |
| | |||
* | add explicit "on the right" triangular solving, | Gael Guennebaud | 2009-07-30 |
| | | | | => no temporary when the rhs/unknows is row major | ||
* | fix typo | Gael Guennebaud | 2009-07-29 |
| | |||
* | fix a couple of issues related to recent products | Gael Guennebaud | 2009-07-28 |
| | |||
* | add a debug mechanism to compute the number of intermediate evaluations ↵ | Gael Guennebaud | 2009-07-28 |
| | | | | (only for dynamic size) | ||
* | improve the expression analyzer to bypass Transpose expression | Gael Guennebaud | 2009-07-28 |
| | |||
* | compilation fixes | Gael Guennebaud | 2009-07-27 |
| | |||
* | various compilation and bug fixes in selfadjoint stuff | Gael Guennebaud | 2009-07-27 |
| | |||
* | cleaning and fix a perf issue | Gael Guennebaud | 2009-07-27 |
| | |||
* | trmm is now fully working and available via TriangularView::operator* | Gael Guennebaud | 2009-07-27 |
| | |||
* | trmm is now working in all storage order configurations | Gael Guennebaud | 2009-07-27 |
| | |||
* | finalize trsm: works in all situations, and it is now used by solve() and ↵ | Gael Guennebaud | 2009-07-26 |
| | | | | solveInPlace() | ||
* | ok, now trsm works very well for upper triangular matrices | Gael Guennebaud | 2009-07-26 |
| | | | | | | TODO: link it with the meta triangular_solve_selector and handle the case where the rhs is row major by copying it to a col-major temporary + handle right solving: X = B * M^-1 | ||
* | The new trsm is working very very well (read very fast) for | Gael Guennebaud | 2009-07-25 |
| | | | | | lower triangular matrix and row or col major lhs. TODO: handle upper triangular and row major rhs cases | ||
* | add WIP trsm | Gael Guennebaud | 2009-07-24 |
| | |||
* | some cleaning | Gael Guennebaud | 2009-07-24 |
| | |||
* | add a simplified version of the sybb kernel built on top of gebp | Gael Guennebaud | 2009-07-24 |
| | |||
* | split and add unit tests for symm and syrk, | Gael Guennebaud | 2009-07-23 |
| | | | | the .rank*update() functions now returns a reference to *this | ||
* | oops,, update SYRK so that the rhs can be non-square² | Gael Guennebaud | 2009-07-23 |
| | |||
* | Implement efficient sefladjoint product (aka SYRK) : C += alpha * U U^T | Gael Guennebaud | 2009-07-23 |
| | | | | | It is currently available via SelfAdjointView::rankKupdate. TODO: allows to write SelfAdjointView += u * u.adjoint() | ||
* | improve SYMV it is now faster and ready for use | Gael Guennebaud | 2009-07-23 |
| | |||
* | bugfix in SYMM | Gael Guennebaud | 2009-07-22 |
| | |||
* | implement high level API for SYMM and fix a couple of bugs related to complex | Gael Guennebaud | 2009-07-22 |
| | |||
* | * GEMM enhencement: no need to pre-transpose the rhs | Gael Guennebaud | 2009-07-22 |
| | | | | | | | => faster a * b.transpose() product => this also fix a bug in a so far untested situation * SYMM is now ready for use => still have to write the high level stuff to convert natural expressions into a call to SYMM | ||
* | more refactoring in the level3 products | Gael Guennebaud | 2009-07-22 |
| | |||
* | * refactoring of the matrix product into multiple small kernels | Gael Guennebaud | 2009-07-21 |
| | | | | | * started an efficient selfadjoint matrix * general matrix product based on the generic kernels ( => need a very little LOC) | ||
* | add triangular * vector product | Gael Guennebaud | 2009-07-13 |
| | |||
* | Add an efficient rank2 update function (like the level2 blas xSYR2 routine). | Gael Guennebaud | 2009-07-11 |
| | | | | Note that it is already used in Tridiagonalization. | ||
* | finally directly calling the low-level products is faster | Gael Guennebaud | 2009-07-10 |
| | |||
* | commit woking versions of triangular solvers naturally | Gael Guennebaud | 2009-07-09 |
| | | | | | | handling conjuagted expression. still have to bench whether it is faster (runtime and compile time) to directly call the cache friendly functions, whence all the commented piece of code... | ||
* | started to simplify the triangular solvers | Gael Guennebaud | 2009-07-09 |
| | |||
* | ok now all the complex mat-mat and mat-vec products involving conjugate, | Gael Guennebaud | 2009-07-08 |
| | | | | | adjoint, -, and scalar multiple seems to be well handled. It only remains the simpler case: C = alpha*(A*B) ... for the next commit |