083ffa8c41#undef vector after including altivec.h
Gael Guennebaud
2008-08-27 00:09:58 +0000
12c6b45ae5replace vector by __vector to prevent conflict with std::vector
Benoit Jacob
2008-08-26 23:25:10 +0000
63d3ef8204* remove debug code commited by mistake in Assign * keep going on the doc: added a short geometry tutorial
Gael Guennebaud
2008-08-26 23:07:33 +0000
00a8d314c5* move memory related stuff to util/Memory.h * clean ugly doxygen inheritence of expressions * keep improving the documentation... slowly !
Gael Guennebaud
2008-08-26 19:12:23 +0000
3e526dcdbdBTL:added trisolve action file
Gael Guennebaud
2008-08-26 10:46:58 +0000
8f9d30cb20* patch from Konstantinos Margaritis: bugfix in Altivec version of ei_pdiv and various cleaning in Altivec code. Altivec vectorization have been re-enabled in CoreDeclaration * added copy constructors in non empty functors because I observed weird behavior with std::complex<>
Gael Guennebaud
2008-08-25 16:22:56 +0000
7ce70e1437various updates in BTL
Gael Guennebaud
2008-08-25 14:23:08 +0000
d2b345e6a9bugfix in test/packetmath.h
Gael Guennebaud
2008-08-25 14:19:57 +0000
9e25dfcb2cVarious doc improvements... including a owl in the API doc header.
Gael Guennebaud
2008-08-25 10:49:53 +0000
da674fa032Shut up two bogus gcc 4.3 warnings
Benoit Jacob
2008-08-25 03:13:14 +0000
5ac883b10aFix a bug discovered in Avogadro: the AngleAxis*Matrix and the newer AngleAxis*Vector products were wrong because they returned the product _expression_ toRotationMatrix()*other; and toRotationMatrix() died before that expression would be later evaluated. Here it would not have been practical to NestByValue as this is a whole matrix. So, let them simply evaluate and return the result by value.
Benoit Jacob
2008-08-24 23:16:51 +0000
aa54d6bef0arf, of course a meta-selector was required here
Benoit Jacob
2008-08-24 21:36:14 +0000
124ec71c50allow constructing Transform from small-matrix (like fromPosOrientScale but with trivial Pos and Scale)
Benoit Jacob
2008-08-24 21:25:04 +0000
bf31d81aacargh, gael you're more clever than i remembered. diagonal product is optimized. so, i almost revert, just reordering to reduce # of load/store.
Benoit Jacob
2008-08-24 20:53:04 +0000
d3529e9c40optimization: spare the 3x3 matrix product in fromPositionOrientationScale
Benoit Jacob
2008-08-24 20:50:18 +0000
6a36b5a6e0add AngleAxis::operator*(const Vector3&)
Benoit Jacob
2008-08-24 20:13:32 +0000
6b591d06c5add data() methods to Transform
Benoit Jacob
2008-08-24 20:02:20 +0000
b815b23e09forgot to install Regression public header
Benoit Jacob
2008-08-24 19:39:07 +0000
854d6e8458Documentation: fill the placeholders, add a custom CSS file, add a reference to the tutorial in the main page.
Gael Guennebaud
2008-08-24 19:14:20 +0000
251ecc0ab9Rename someOrthogonal to unitOrthogonal. Fix a bug in it, with dyn-size vectors of size <=3. Update doc and test to reflect that it always returns a unit vector.
Benoit Jacob
2008-08-24 17:31:03 +0000
aeca7a63f4nothing to see here
Gael Guennebaud
2008-08-24 16:00:53 +0000
bf17467ce0bugfix in Product and ei_L2_block_traits
Gael Guennebaud
2008-08-24 16:00:17 +0000
440664cd5dtemporary fix of the pèrevious commit
Gael Guennebaud
2008-08-24 15:27:05 +0000
ba100998bf* split Meta.h to Meta.h (generic meta programming) and XprHelper.h (relates to eigen mechanism) * added a meta.cpp unit test * EIGEN_TUNE_FOR_L2_CACHE_SIZE now represents L2 block size in Bytes (whence the ei_meta_sqrt...) * added a CustomizeEigen.dox page * added a TOC to QuickStartGuide.dox
Gael Guennebaud
2008-08-24 15:15:32 +0000
bfe86b8fc0* add documentation of the cool (?) "print with format" feature * move the ioformat.cpp test to a documentation example * rename IoFormat => IOFormat
Gael Guennebaud
2008-08-23 19:41:00 +0000
c3f46cf55bneed to commit this file before changing its name
Gael Guennebaud
2008-08-23 19:32:13 +0000
2f6815df8ecmake fix
Gael Guennebaud
2008-08-23 17:40:52 +0000
da5e644567forgot to commit a file
Gael Guennebaud
2008-08-23 17:25:54 +0000
f2f48b6560* remove LargeBit and related stuff * replaced the Flags template parameter of Matrix by StorageOrder and move it back to the 4th position such that we don't have to worry about the two Max* template parameters * extended EIGEN_USING_MATRIX_TYPEDEFS with the ei_* math functions
Gael Guennebaud
2008-08-23 17:11:44 +0000
2120fed849* bug fixes in: Dot, generalized eigen problem, singular matrix detetection in Cholesky * fix all numerical instabilies in the unit tests, now all tests can be run 2000 times with almost zero failures.
Gael Guennebaud
2008-08-23 15:14:20 +0000
312013a089compile fix for code like Vector3d::Random().x()
Benoit Jacob
2008-08-23 02:19:03 +0000
0e60e22151extended cwise unit tests to cover all Cwise API
Gael Guennebaud
2008-08-22 22:49:09 +0000
8509668466bugfix from Timothy Hunter s/ei_div/ei_pdiv
Gael Guennebaud
2008-08-22 22:01:02 +0000
e0f627a7dbs/Affine/Linear, thanks to Thomas Vaughan
Gael Guennebaud
2008-08-22 17:54:37 +0000
f0394edfa7* bugfix in SolveTriangular found by Timothy Hunter (did not compiled for very small fixed size matrices) * bugfix in Dot unroller * added special random generator for the unit tests and reduced the tolerance threshold by an order of magnitude this fixes issues with sum.cpp but other tests still failed sometimes, this have to be carefully checked...
Gael Guennebaud
2008-08-22 17:48:36 +0000
a95c1e190bpatch from Konstantinos Margaritis: Altivec vectorization is resurrected !
Gael Guennebaud
2008-08-22 13:19:35 +0000
95db4e9841added SparseSetter doc
Gael Guennebaud
2008-08-22 11:19:12 +0000
a814ebe180fix a number of compiler errors and warnings with gcc 4.3. There was a missing #include<algorithm> so I'm not sure how it compiled at all for you :)
Benoit Jacob
2008-08-22 01:19:53 +0000
db628c6ad7Reimplement fitHyperplane such that the fit is done in a total LS sense (use eigen decomposition). Added optional feedback on the stability of the actual fit (think about fitting a 3D plane on data lying on a line...)
Gael Guennebaud
2008-08-22 00:09:46 +0000
0998c51d1f- remove the ASM macro as in fact Gael had been removing all the remaining asm("...") from the code while fixing MSVC compat (so your changes crossed one another). - move the pragma warning to CoreDeclarations, it's the right place to do early platform checks.
Benoit Jacob
2008-08-21 21:07:24 +0000
58061f5ffcextend sparse unit test and more bugfix, major todo: finilize the SparseSetter
Gael Guennebaud
2008-08-21 18:40:56 +0000
60804c306d*patch by Daniel Gomez: - bugfix in SparseMatrix - add a sparse unit test * renamed Transform::affine => linear
Gael Guennebaud
2008-08-21 17:02:47 +0000
082e309d2apatch by Patrick Spendrin: fix MSVC compatibility
Benoit Jacob
2008-08-21 16:17:51 +0000
67813e01bfdisable the vectorization of div for AltiVec
Gael Guennebaud
2008-08-21 14:03:17 +0000
f729fc1d70* Add the possibility to customize the output of matrices, e.g.: IoFormat OctaveFmt(4, AlignCols, ", ", ";\n", "", "", "[", "]"); cout << mat.format(OctaveFmt); The first "4" is the precision. Documentation missing. * Some compilation fixes
Gael Guennebaud
2008-08-21 13:17:21 +0000
591d497b84add resize() methods to Map, doing nothing but assertions. This is useful in Krita where I call lu().solve() with a Map object as result. As solve() resizes the result, this was needed.
Benoit Jacob
2008-08-21 04:36:48 +0000
84a39e04bfadded Sub matrices section and a couple of cross ref to the API doc
Gael Guennebaud
2008-08-20 23:04:58 +0000
fd681507dcAdd a packetmath unit test, re-enable the comma-initializer unit test, and bug fix in PacketMath/SSE
Gael Guennebaud
2008-08-20 20:08:38 +0000
ff8e98c974Fix bugs in Sum.h, add unit-test
Benoit Jacob
2008-08-20 16:43:28 +0000
c501c7a4ef* Fix CMakeLists.txt issue with SVD * Fix on stack memory allocation issues
Gael Guennebaud
2008-08-20 15:58:01 +0000
752ec27293minor bugfix found using gcc-4.0
Gael Guennebaud
2008-08-20 14:05:57 +0000
8afaeb4ad5doc fixes, and extended Basic Linear Algebra and Reductions sections
Gael Guennebaud
2008-08-20 13:07:46 +0000
db8fbf2b39some updated of the quick start guide
Gael Guennebaud
2008-08-20 11:31:50 +0000
c705c38a23* it's \returns not \Returns * add some explanations in the typedefs page * expand a bit the new QuickStartGuide. Some placeholders (not a pb since it's not even yet linked to from other pages). The point I want to make is that it's super important to have fully compilable short programs (even with compile instructions for the first one) not just small snippets, at least at the beginning. Let's start with examples of compilable programs.
Benoit Jacob
2008-08-20 04:34:04 +0000
8551fe28cefix a few typos
Gael Guennebaud
2008-08-20 01:12:56 +0000
7aba51ce53* Added .all() and .any() members to PartialRedux * Bug fixes in euler angle snippet, Assign and MapBase * Started a "quick start guide" (draft state)
Gael Guennebaud
2008-08-20 00:58:25 +0000
c6674ab076missing SVD header file
Gael Guennebaud
2008-08-19 20:18:46 +0000
104f8fd36eAdded a SVD module: - the decompostion code has been adfapted from JAMA - handles non square matrices of size MxN with M>=N - does not work for complex matrices - includes a solver where the parts corresponding to zero singular values are set to zero
Gael Guennebaud
2008-08-19 17:52:04 +0000
54137f1ca7* fix bug found by Boudewijn Rempt: no CMakeLists in arch/ subdir * fix warning in SolveTriangular
Benoit Jacob
2008-08-19 13:15:13 +0000
a6d387a359Various compilation fixes for MSVC 9. All tests compile but some still fail at runtime in ei_aligned_free() (even without vectorization).
Gael Guennebaud
2008-08-19 11:06:40 +0000
9466e5f94e* doc improvements in Cwise and PartialRedux: - 33 new snippets - unfuck doxygen output in Cwise (issues with function macros) - more see-also links from outside, making Cwise more discoverable * rename matrixNorm() to operatorNorm(). There are many matrix norms (the L2 is another one) but only one is called the operator norm. Risk of confusion with keyword operator is not too scary after all.
Benoit Jacob
2008-08-19 04:30:28 +0000
95dd09bea6* revert the previous interface change in solveTriangular (pointer vs reference) * remove the cast operators in the Geometry module: they are replaced by constructors and new operator= in Matrix * extended the operations supported by Rotation2D * rewrite in solveTriangular: - merge the Upper and Lower specializations - big optimization of the path for row-major triangular matrices
Gael Guennebaud
2008-08-18 22:17:42 +0000
e778ae2559only use alloca on linux. Use malloc on other platforms. Needed for mingw compatibility.
Benoit Jacob
2008-08-18 16:36:47 +0000
baf0cffedd*add operator()(int) for vectors, synonymous to operator[](int). I don't see any reason not to allow it, it doesn't add much code, and it makes porting from eigen1 easier. *expand tests/basicstuff to first test coefficient access methods
Benoit Jacob
2008-08-18 12:33:14 +0000
95a1283bf6fix compilation of unit-tests when cmake is run on kdesupport/ parent directory
Benoit Jacob
2008-08-17 15:25:53 +0000
239b47e033*make Eigen2 install to prefix/include/eigen2/Eigen *Add FindEigen2.cmake module in kdelibs
Benoit Jacob
2008-08-16 12:56:38 +0000
5546e963c9bugfix in CholeskyWithoutSquareRoot::solve found by Timothy Hunter
Gael Guennebaud
2008-08-16 07:09:39 +0000
d9d69de382updated tutorial
Benoit Jacob
2008-08-15 14:28:06 +0000
3bc2746928Copy eigen2 into kdesupport, alongside eigen1 for now, co-installable, will remove eigen1 once no code uses it anymore (soon).
Benoit Jacob
2008-08-14 13:21:11 +0000
8a3e6b1ee2change solveTriangularInPlace() to take a pointer as input (as discussed on IRC). extended the documentation of the triangular solver.
Gael Guennebaud
2008-08-12 07:49:59 +0000
13ad88736elast small fixes, this is alpha6, eigen2 is now ready for eigen1 apps to port to.
Benoit Jacob
2008-08-12 02:14:02 +0000
f04c1cb774Complete LU documentation
Benoit Jacob
2008-08-11 21:26:37 +0000
17ec407ccd* add Regression module, from eigen1, improved, with doc and unit-test. * fix .normalized() so that Random().normalized() works; since the return type became complicated to write down i just let it return an actual vector, perhaps not optimal. * add Sparse/CMakeLists.txt. I suppose that it was intentional that it didn't have CMakeLists, but in <=2.0 releases I'll just manually remove Sparse.
Benoit Jacob
2008-08-11 02:25:40 +0000
55e8d670ceRenamed allowAligned() => forceAligned() and added the constants ForceAligned and AsRequested for the PacketAccess parameter of MapBase. Updated respective documentation.
Gael Guennebaud
2008-08-09 21:57:50 +0000
b13148c358renamed inverseProduct => solveTriangular
Gael Guennebaud
2008-08-09 20:06:25 +0000
d6e88f8155* add LU unit-test. Seems like we have very good numerical stability! * some cleanup, and grant me a copyright line on the determinant test.
Benoit Jacob
2008-08-09 19:26:14 +0000
4fa40367e9* Big change in Block and Map: - 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
Gael Guennebaud
2008-08-09 18:41:24 +0000
becbeda50a* reimplement the general case of inverse() on top of LU. Advantages: - removes much code - 2.5x faster (even though LU uses complete pivoting contrary to what inverse used to do!) - there _were_ numeric stability problems with the partial pivoting approach of inverse(), with 200x200 matrices inversion failed almost half of the times (overflow). Now these problems are solved thanks to complete pivoting.
Benoit Jacob
2008-08-09 15:50:07 +0000
681e944670*implement LU solver (solves any rectangular system) *in test/CMakeLists : modify EI_ADD_TEST so that 2nd argument is additional compiler flags. used to add -O2 to test_product_large so it doesn't take forever.
Benoit Jacob
2008-08-09 15:23:54 +0000
a41f2b4216* fix bug in SwapWrapper : store the wrapped expression by reference * optimize setIdentity: when the matrix is large enough it is better to setZero() and overwrite the diagonal * start of LU solver, disabled for now
Benoit Jacob
2008-08-09 04:37:09 +0000
9bbe396939forgot to remove that old code
Benoit Jacob
2008-08-07 21:50:29 +0000
5f350448e1- add kernel computation using the triangular solver - take advantage of the fact that our LU dec sorts the eigenvalues of U in decreasing order - add meta selector in determinant
Benoit Jacob
2008-08-07 21:48:21 +0000
58ba9ca72fLU: remove partial-pivoting path (moderately useful since it's does not allow to easily get the rank), fix a bug (which could have been triggered by matrices having coefficients of very different magnitudes). Part: add an assert to prevent hard to find bugs Swap: update comments
Benoit Jacob
2008-08-07 04:31:05 +0000
88bb2087c1New implementation of Swap as discussed, reusing Assign. Makes LU run 10% faster overall.
Benoit Jacob
2008-08-05 21:55:57 +0000
c94be35bc8introduce copyCoeff and copyPacket methods in MatrixBase, used by Assign, in preparation for new Swap impl reusing Assign code. remove last remnant of old Inverse class in Transform.
Benoit Jacob
2008-08-05 18:00:23 +0000
09ef7db9d9Add partial pivoting runtime option to LU.
Benoit Jacob
2008-08-05 15:43:11 +0000
e741b7becafurther big perf improvement in Inverse
Benoit Jacob
2008-08-04 23:47:09 +0000
79a0feee68big performance improvement in inverse and LU
Benoit Jacob
2008-08-04 23:34:21 +0000
a7a05382d1Add a LU decomposition action in BTL and various cleaning in BTL. For instance all per plot settings have been moved to a single file, go_mean now takes an optional second argument "tiny" to generate plots for tiny matrices, and output of comparison information wrt to previous benchs (if any).
Gael Guennebaud
2008-08-04 23:12:48 +0000
c2f8ecf466* LU decomposition, supporting all rectangular matrices, with full pivoting for better numerical stability. For now the only application is determinant. * New determinant unit-test. * Disable most of Swap.h for now as it makes LU fail (mysterious). Anyway Swap needs a big overhaul as proposed on IRC. * Remnants of old class Inverse removed. * Some warnings fixed.
Benoit Jacob
2008-08-04 04:45:59 +0000
f81dfcf00bfix two perf issues in product. fix positive definite test in Cholesky. remove #include <cstring> in CoreDeclaration.
Gael Guennebaud
2008-08-03 20:23:06 +0000
49ae3fca89fix compile errors with gcc 4.3: unresolved func call to ei_cache_friendly_product, and undeclared memcpy
Benoit Jacob
2008-08-03 15:44:06 +0000
6d11a07e5eAdded a ei_palign function align a packet from two others. This allows much faster code dealing with unligned as in the updated matrix-vector product functions.
Gael Guennebaud
2008-08-03 15:15:46 +0000
55aeb1f83aOptimizations: * faster matrix-matrix and matrix-vector products (especially for not aligned cases) * faster tridiagonalization (make it using our matrix-vector impl.) Others: * fix Flags of Map * split the test_product to two smaller ones
Gael Guennebaud
2008-08-01 23:44:59 +0000
b32b186c14removed the packet specializations of some functors (GCC generates better code without those "optimizations")
Gael Guennebaud
2008-07-31 21:03:11 +0000
842c4f8bfaSeveral compilation fixes for MSVC and NVCC, basically: - added explicit enum to int conversion where needed - if a function is not defined as declared and the return type is "tricky" then the type must be typedefined somewhere. A "tricky return type" can be: * a template class with a default parameter which depends on another template parameter * a nested template class, or type of a nested template class
Gael Guennebaud
2008-07-29 16:33:07 +0000
e0215ee510BTL: - added tridiagonalization and hessenberg decomposition bench - added GOTO library
Gael Guennebaud
2008-07-28 20:48:21 +0000
44d95e0540fix some internal asserts in CacheFrinedlyProduct
Gael Guennebaud
2008-07-27 22:14:08 +0000
02a7efa910forgot to include this file in previous commit
Gael Guennebaud
2008-07-27 14:24:32 +0000
93115619c2* updated benchmark files according to recent renamings * various improvements in BTL including trisolver and cholesky bench
Gael Guennebaud
2008-07-27 11:39:47 +0000