aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/Core
Commit message (Collapse)AuthorAge
* * 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.)
* 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.
* remove CoreDeclaration from the documentationGravatar Gael Guennebaud2008-08-28
|
* * temporarily remove doxygen customization, we'll see if that fix api.kde.orgGravatar Gael Guennebaud2008-08-28
| | | | | | but I no hope, that would be too simple ! * added Rotation2D typedefs * remove CoreDeclarations header file
* doc + quick bug fix in Matrix ctorGravatar Gael Guennebaud2008-08-28
|
* * remove debug code commited by mistake in AssignGravatar Gael Guennebaud2008-08-26
| | | | * keep going on the doc: added a short geometry tutorial
* * move memory related stuff to util/Memory.hGravatar Gael Guennebaud2008-08-26
| | | | | * clean ugly doxygen inheritence of expressions * keep improving the documentation... slowly !
* * Add the possibility to customize the output of matrices, e.g.:Gravatar Gael Guennebaud2008-08-21
| | | | | | | | IoFormat OctaveFmt(4, AlignCols, ", ", ";\n", "", "", "[", "]"); cout << mat.format(OctaveFmt); The first "4" is the precision. Documentation missing. * Some compilation fixes
* renamed inverseProduct => solveTriangularGravatar Gael Guennebaud2008-08-09
|
* * Big change in Block and Map:Gravatar Gael Guennebaud2008-08-09
| | | | | | | | | | | | | | - added a MapBase base xpr on top of which Map and the specialization of Block are implemented - MapBase forces both aligned loads (and aligned stores, see below) in expressions such as "x.block(...) += other_expr" * Significant vectorization improvement: - added a AlignedBit flag meaning the first coeff/packet is aligned, this allows to not generate extra code to deal with the first unaligned part - removed all unaligned stores when no unrolling - removed unaligned loads in Sum when the input as the DirectAccessBit flag * Some code simplification in CacheFriendly product * Some minor documentation improvements
* fix compile errors with gcc 4.3: unresolved func call toGravatar Benoit Jacob2008-08-03
| | | | ei_cache_friendly_product, and undeclared memcpy
* * Rewrite the triangular solver so that we can take advantage of our ↵Gravatar Gael Guennebaud2008-07-26
| | | | | | | | | | | 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...
* * Merge Extract and Part to the Part expression.Gravatar Gael Guennebaud2008-07-21
| | | | | | 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.
* Add a *very efficient* evaluation path for both col-major matrix * vectorGravatar Gael Guennebaud2008-07-12
| | | | | | 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.
* * added optimized paths for matrix-vector and vector-matrix productsGravatar Gael Guennebaud2008-07-09
| | | | | | (using either a cache friendly strategy or re-using dot-product vectorized implementation) * add LinearAccessBit to Transpose
* the big Array/Cwise rework as discussed on the mailing list. The new APIGravatar Benoit Jacob2008-07-08
| | | | can be seen in Eigen/src/Core/Cwise.h.
* split sum away from redux and vectorize it.Gravatar Benoit Jacob2008-06-23
| | | | | | (could come back to redux after it has been vectorized, and could serve as a starting point for that) also make the abs2 functor vectorizable (for real types).
* * split Product to a DiagonalProduct template specializationGravatar Gael Guennebaud2008-06-15
| | | | | | | | | | to optimize matrix-diag and diag-matrix products without making Product over complicated. * compilation fixes in Tridiagonalization and HessenbergDecomposition in the case of 2x2 matrices. * added an Orientation2D small class with similar interface than Quaternion (used by Transform to handle 2D and 3D orientations seamlessly) * added a couple of features in Transform.
* Add QR and Cholesky module instantiations in the lib.Gravatar Gael Guennebaud2008-06-14
| | | | To try it with the unit tests set the cmake variable TEST_LIB to ON.
* work around Doxygen bug triggered by r814874, which caused many classes to ↵Gravatar Benoit Jacob2008-06-02
| | | | | | disappear from the docs.
* added an *optional* Eigen2 dynamic library.Gravatar Gael Guennebaud2008-05-31
| | | | | it allows the possiblity to save some compilation time by linking to it *and* defining the token EIGEN_EXTERN_INSTANCIATIONS
* moved purely "array" related stuff to a new module Array.Gravatar Gael Guennebaud2008-05-31
| | | | | | | | This include: - cwise Pow,Sin,Cos,Exp... - cwise Greater and other comparison operators - .any(), .all() and partial reduction - random
* Added ArrayBit to get the ability to manipulate a Matrix like a simple scalar.Gravatar Gael Guennebaud2008-05-29
| | | | In particular this flag changes the behavior of operator* to a coeff wise product.
* hehe, the complicated nesting scheme in Flagged in the previous commitGravatar Benoit Jacob2008-05-28
| | | | | | | | | | | was a sign that we were doing something wrong. In fact, having NestByValue as a special case of Flagged was wrong, and the previous commit, while not buggy, was inefficient because then when the resulting NestByValue xpr was nested -- hence copied -- the original xpr which was already nested by value was copied again; hence instead of 1 copy we got 3 copies. The solution was to ressuscitate the old Temporary.h (renamed NestByValue.h) as it was the right approach.
* * find the proper way of nesting the expression in Flagged:Gravatar Benoit Jacob2008-05-28
| | | | | | | | | | | | | finally that's more subtle than just using ei_nested, because when flagging with NestByValueBit we want to store the expression by value already, regardless of whether it already had the NestByValueBit set. * rename temporary() ----> nestByValue() * move the old Product.h to disabled/, replace by what was ProductWIP.h * tweak -O and -g flags for tests and examples * reorder the tests -- basic things go first * simplifications, e.g. in many methoeds return derived() and count on implicit casting to the actual return type. * strip some not-really-useful stuff from the heaviest tests