aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/Core
Commit message (Collapse)AuthorAge
* * add a Make* expression type builder to allow theGravatar Gael Guennebaud2009-10-16
| | | | | | | | | | | | | construction of generic expressions working for both dense and sparse matrix. A nicer solution would be to use CwiseBinaryOp for any kind of matrix. To this end we either need to change the overall design so that the base class(es) depends on the kind of matrix, or we could add a template parameter to each expression type (e.g., int Kind = ei_traits<MatrixType>::Kind) allowing to specialize each expression for each kind of matrix. * Extend AutoDiffScalar to work with sparse vector expression for the derivatives.
* undef B0Gravatar Benoit Jacob2009-09-19
|
* * add a HouseholderSequence class (not good enough yet for ↵Gravatar Gael Guennebaud2009-09-16
| | | | | | Triadiagonalization and HessenbergDecomposition) * rework a bit AnyMatrixBase, and mobe it to a separate file
* add overloads of lazyAssign to detect common aliasing issue withGravatar Gael Guennebaud2009-08-15
| | | | transpose and adjoint
* 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.
* oops forgot to remove the #include in CoreGravatar Gael Guennebaud2009-08-14
|
* 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
* more product refactoringGravatar Gael Guennebaud2009-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
* synch with main branchGravatar Gael Guennebaud2009-07-28
|\
* | trmm is now working in all storage order configurationsGravatar Gael Guennebaud2009-07-27
| |
* | 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
* | 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()
* | 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)
| * re-implement stableNorm using a homemade blocky andGravatar Gael Guennebaud2009-07-17
| | | | | | | | vectorization friendly algorithm (slow if no vectorization)
* | started an implementation of BandMatrix: at least the read/write accessGravatar Gael Guennebaud2009-07-14
| | | | | | | | to the main/sub/super diagonals seems to work well.
* | synch with main devel branchGravatar Gael Guennebaud2009-07-14
|\|
* | some cleaning/renaming is Triangular/SelfadjointViewGravatar Gael Guennebaud2009-07-14
| |
* | 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.
| * Set of fixes and workaround to make sun studio more happy.Gravatar Gael Guennebaud2009-07-10
| | | | | | | | Still remains the problem of alignment and vectorization.
* | * bybye Part, welcome TriangularView and SelfAdjointView.Gravatar Gael Guennebaud2009-07-06
| | | | | | | | | | | | | | | | * move solveTriangular*() to TriangularView::solve*() * move .llt() to SelfAdjointView * add a high level wrapper to the efficient selfadjoint * vector product * improve LLT so that we can specify which triangular part is meaningless => there are still many things to do (doc, cleaning, improve the matrix products, etc.)
| * add a VectorBlock expr as a specialization of BlockGravatar Gael Guennebaud2009-07-05
| |
* | new implementation of diagonal matrices and diagonal matrix expressionsGravatar Benoit Jacob2009-06-28
|/
* mergeGravatar Benoit Jacob2009-05-22
|\
| * remove sentence "Eigen itself is part of the KDE project."Gravatar Benoit Jacob2009-05-22
| | | | | | | | it never made very precise sense. but now does it still make any?
* | * add a writable generic coeff wise expression (CwiseUnaryView)Gravatar Gael Guennebaud2009-05-20
|/ | | | * add writable .real() and .imag() functions
* constant Diagonal ---> DiagonalBitsGravatar Benoit Jacob2009-05-10
| | | | | | introduce ei_is_diagonal to check for it DiagonalCoeffs ---> Diagonal and allow Index to by Dynamic -> add MatrixBase::diagonal(int) with unittest and doc
* add copyright on two public headers that are not so trivial...Gravatar Benoit Jacob2009-05-06
|
* fix SSE2 detection on win64, reported by 'kajala'Gravatar Benoit Jacob2009-05-04
|
* let the user disable alignment altogether by #defining EIGEN_DONT_ALIGN.Gravatar Benoit Jacob2009-05-03
| | | | | | | Until now, the user had to edit the source code to do that. Internally, add EIGEN_ALIGN that takes into account both EIGEN_DONT_ALIGN.and EIGEN_ARCH_WANTS_ALIGNMENT. From now on, only EIGEN_ALIGN should be used to test whether we want to align.
* add vectorization of sqrt for floatGravatar Gael Guennebaud2009-03-27
|
* add SSE2 versions of sin, cos, log, exp using code from JulienGravatar Gael Guennebaud2009-03-25
| | | | | | | | Pommier. They are for float only, and they return exactly the same result as the standard versions in about 90% of the cases. Otherwise the max error is below 1e-7. However, for very large values (>1e3) the accuracy of sin and cos slighlty decrease. They are about 3 or 4 times faster than 4 calls to their respective standard versions. So, is it ok to enable them by default in their respective functors ?
* remove bad #include of SelfadjointRank2Update.hGravatar Gael Guennebaud2009-03-05
|
* big addons:Gravatar Gael Guennebaud2009-03-05
| | | | | | | | | | | * add Homogeneous expression for vector and set of vectors (aka matrix) => the next step will be to overload operator* * add homogeneous normalization (again for vector and set of vectors) * add a Replicate expression (with uni-directional replication facilities) => for all of them I'll add examples once we agree on the API * fix gcc-4.4 warnings * rename reverse.cpp array_reverse.cpp
* add ReturnByValue pseudo expression for in-place evaluation with aGravatar Gael Guennebaud2009-03-04
| | | | return-by-value API style (will soon use it for the transform products)
* * split CacheFriendlyProduct into multiple smaller filesGravatar Gael Guennebaud2009-02-21
| | | | | | * add an efficient selfadjoint * vector implementation (= blas symv) perf are inbetween MKL and GOTO => the interface is still missing (have to be rethougth)
* * exit Sum.h, exit Prod.h, welcome vectorization of redux() !Gravatar Gael Guennebaud2009-02-12
| | | | * add vectorization for minCoeff and maxCoeff
* * add ei_predux_mul internal functionGravatar Gael Guennebaud2009-02-10
| | | | * apply Ricard Marxer's prod() patch with fixes for the vectorized path
* apply Ricard patch for Reverse with minor modificationsGravatar Gael Guennebaud2009-02-06
|
* #error if min or max is definedGravatar Benoit Jacob2009-01-19
|
* fix potential compilation issue on MSVC + no vectorizationGravatar Benoit Jacob2009-01-10
|
* * Added aligned_allocator for using 16-byte aligned types with STL ↵Gravatar Kenneth Frank Riddile2009-01-09
| | | | containers. There is still a compile-time problem with STL containers that have a standard-conformant resize() method, but this should resolve the original user issue which was storing aligned objects in a std::map.
* Patch by Kenneth Riddile: disable MSVC warnings, reenable them outsideGravatar Benoit Jacob2008-12-18
| | | | of Eigen, and add a MSVC-friendly path in StaticAssert.
* * throw bad_alloc if exceptions are enabled, after patch by Kenneth RiddileGravatar Benoit Jacob2008-12-16
| | | | * disable vectorization on MSVC 2005, as it doesn't have all the required intrinsics. require 2008.
* Finally work around enough of MSVC preprocessor dumbness so that it actually ↵Gravatar Benoit Jacob2008-12-15
| | | | detects SSE2
* work around the braindead msvc preprocessorGravatar Benoit Jacob2008-12-15
|
* Fix detection of SSE2 with MSVC.Gravatar Benoit Jacob2008-12-15
|
* Fix memory alignment (hence vectorization) on MSVC thanks to help from Armin ↵Gravatar Benoit Jacob2008-12-15
| | | | Berres.