aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/products
Commit message (Collapse)AuthorAge
* Assign.h: add LinearTraversal (non-vectorized index-based traversal)Gravatar Benoit Jacob2009-11-18
| | | | Rename some constants to make names match more closely what they mean.
* discard vectorization in matrix-vector product when data is not evenGravatar Gael Guennebaud2009-10-05
| | | | aligned on the scalar type size (e.g., for double on 32 bits system without -malign-double)
* forgot to hg add this fileGravatar Benoit Jacob2009-10-02
|
* remove some dirty linesGravatar Gael Guennebaud2009-09-25
|
* update mixingtype unit test to reflect current status, but it is still clearGravatar Gael Guennebaud2009-09-03
| | | | we should allow matrix products between complex and real ?
* Fix serious bug discovered with gcc 4.2Gravatar Gael Guennebaud2009-09-03
|
* fix Matrix::stride for vectors, add a unit test for Block::strideGravatar Gael Guennebaud2009-08-31
| | | | and make use of it where it was relevant
* rename back MayAliasBit to EvalBeforeAssigningBitGravatar Gael Guennebaud2009-08-16
|
* As proposed on the list:Gravatar Gael Guennebaud2009-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.hGravatar Gael Guennebaud2009-08-14
|
* * remove EIGEN_DONT_INLINE that harm performance for small sizesGravatar Benoit Jacob2009-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",Gravatar Gael Guennebaud2009-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 ↵Gravatar Gael Guennebaud2009-08-11
| | | | | | optimized as one could naturally expect
* * implement a second level of micro blocking (faster for small sizes)Gravatar Gael Guennebaud2009-08-07
| | | | * workaround GCC bad implementation of _mm_set1_p*
* more product refactoringGravatar Gael Guennebaud2009-08-06
|
* fix vs.net compilation issueGravatar Hauke Heibel2009-08-06
|
* implement a ProductBase class and, as a proof of concept, update ↵Gravatar Gael Guennebaud2009-08-04
| | | | | | TriangularProduct and SelfAdjointMatrixProduct to take advantage of it => fewer LOC
* * Bye bye MultiplierBase, extend a bit AnyMatrixBase to allow =, +=, and -=Gravatar Gael Guennebaud2009-08-03
| | | | * This probably makes ReturnByValue needless
* faster trsm kernel and fix a couple of issuesGravatar Gael Guennebaud2009-07-31
|
* add explicit "on the right" triangular solving,Gravatar Gael Guennebaud2009-07-30
| | | | => no temporary when the rhs/unknows is row major
* fix typoGravatar Gael Guennebaud2009-07-29
|
* fix a couple of issues related to recent productsGravatar Gael Guennebaud2009-07-28
|
* add a debug mechanism to compute the number of intermediate evaluations ↵Gravatar Gael Guennebaud2009-07-28
| | | | (only for dynamic size)
* improve the expression analyzer to bypass Transpose expressionGravatar Gael Guennebaud2009-07-28
|
* compilation fixesGravatar Gael Guennebaud2009-07-27
|
* various compilation and bug fixes in selfadjoint stuffGravatar Gael Guennebaud2009-07-27
|
* cleaning and fix a perf issueGravatar Gael Guennebaud2009-07-27
|
* trmm is now fully working and available via TriangularView::operator*Gravatar Gael Guennebaud2009-07-27
|
* trmm is now working in all storage order configurationsGravatar Gael Guennebaud2009-07-27
|
* finalize trsm: works in all situations, and it is now used by solve() and ↵Gravatar Gael Guennebaud2009-07-26
| | | | solveInPlace()
* ok, now trsm works very well for upper triangular matricesGravatar Gael Guennebaud2009-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) forGravatar Gael Guennebaud2009-07-25
| | | | | lower triangular matrix and row or col major lhs. TODO: handle upper triangular and row major rhs cases
* add WIP trsmGravatar Gael Guennebaud2009-07-24
|
* some cleaningGravatar Gael Guennebaud2009-07-24
|
* add a simplified version of the sybb kernel built on top of gebpGravatar Gael Guennebaud2009-07-24
|
* split and add unit tests for symm and syrk,Gravatar Gael Guennebaud2009-07-23
| | | | the .rank*update() functions now returns a reference to *this
* oops,, update SYRK so that the rhs can be non-square²Gravatar Gael Guennebaud2009-07-23
|
* Implement efficient sefladjoint product (aka SYRK) : C += alpha * U U^TGravatar Gael Guennebaud2009-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 useGravatar Gael Guennebaud2009-07-23
|
* bugfix in SYMMGravatar Gael Guennebaud2009-07-22
|
* implement high level API for SYMM and fix a couple of bugs related to complexGravatar Gael Guennebaud2009-07-22
|
* * GEMM enhencement: no need to pre-transpose the rhsGravatar Gael Guennebaud2009-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 productsGravatar Gael Guennebaud2009-07-22
|
* * refactoring of the matrix product into multiple small kernelsGravatar Gael Guennebaud2009-07-21
| | | | | * started an efficient selfadjoint matrix * general matrix product based on the generic kernels ( => need a very little LOC)
* add triangular * vector productGravatar Gael Guennebaud2009-07-13
|
* Add an efficient rank2 update function (like the level2 blas xSYR2 routine).Gravatar Gael Guennebaud2009-07-11
| | | | Note that it is already used in Tridiagonalization.
* finally directly calling the low-level products is fasterGravatar Gael Guennebaud2009-07-10
|
* commit woking versions of triangular solvers naturallyGravatar Gael Guennebaud2009-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 solversGravatar Gael Guennebaud2009-07-09
|
* ok now all the complex mat-mat and mat-vec products involving conjugate,Gravatar Gael Guennebaud2009-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