Commit Graph

  • 083ffa8c41 #undef vector after including altivec.h Gael Guennebaud 2008-08-27 00:09:58 +0000
  • 12c6b45ae5 replace 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
  • 3e526dcdbd BTL: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
  • 7ce70e1437 various updates in BTL Gael Guennebaud 2008-08-25 14:23:08 +0000
  • d2b345e6a9 bugfix in test/packetmath.h Gael Guennebaud 2008-08-25 14:19:57 +0000
  • 9e25dfcb2c Various doc improvements... including a owl in the API doc header. Gael Guennebaud 2008-08-25 10:49:53 +0000
  • da674fa032 Shut up two bogus gcc 4.3 warnings Benoit Jacob 2008-08-25 03:13:14 +0000
  • 5ac883b10a Fix 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
  • aa54d6bef0 arf, of course a meta-selector was required here Benoit Jacob 2008-08-24 21:36:14 +0000
  • 124ec71c50 allow constructing Transform from small-matrix (like fromPosOrientScale but with trivial Pos and Scale) Benoit Jacob 2008-08-24 21:25:04 +0000
  • bf31d81aac argh, 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
  • d3529e9c40 optimization: spare the 3x3 matrix product in fromPositionOrientationScale Benoit Jacob 2008-08-24 20:50:18 +0000
  • 6a36b5a6e0 add AngleAxis::operator*(const Vector3&) Benoit Jacob 2008-08-24 20:13:32 +0000
  • 6b591d06c5 add data() methods to Transform Benoit Jacob 2008-08-24 20:02:20 +0000
  • b815b23e09 forgot to install Regression public header Benoit Jacob 2008-08-24 19:39:07 +0000
  • 854d6e8458 Documentation: 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
  • 251ecc0ab9 Rename 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
  • aeca7a63f4 nothing to see here Gael Guennebaud 2008-08-24 16:00:53 +0000
  • bf17467ce0 bugfix in Product and ei_L2_block_traits Gael Guennebaud 2008-08-24 16:00:17 +0000
  • 440664cd5d temporary 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
  • c3f46cf55b need to commit this file before changing its name Gael Guennebaud 2008-08-23 19:32:13 +0000
  • 2f6815df8e cmake fix Gael Guennebaud 2008-08-23 17:40:52 +0000
  • da5e644567 forgot 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
  • 312013a089 compile fix for code like Vector3d::Random().x() Benoit Jacob 2008-08-23 02:19:03 +0000
  • 0e60e22151 extended cwise unit tests to cover all Cwise API Gael Guennebaud 2008-08-22 22:49:09 +0000
  • 8509668466 bugfix from Timothy Hunter s/ei_div/ei_pdiv Gael Guennebaud 2008-08-22 22:01:02 +0000
  • e0f627a7db s/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
  • a95c1e190b patch from Konstantinos Margaritis: Altivec vectorization is resurrected ! Gael Guennebaud 2008-08-22 13:19:35 +0000
  • 95db4e9841 added SparseSetter doc Gael Guennebaud 2008-08-22 11:19:12 +0000
  • a814ebe180 fix 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
  • db628c6ad7 Reimplement 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
  • 58061f5ffc extend 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
  • 082e309d2a patch by Patrick Spendrin: fix MSVC compatibility Benoit Jacob 2008-08-21 16:17:51 +0000
  • 67813e01bf disable 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
  • 591d497b84 add 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
  • 84a39e04bf added Sub matrices section and a couple of cross ref to the API doc Gael Guennebaud 2008-08-20 23:04:58 +0000
  • fd681507dc Add 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
  • ff8e98c974 Fix 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
  • 752ec27293 minor bugfix found using gcc-4.0 Gael Guennebaud 2008-08-20 14:05:57 +0000
  • 8afaeb4ad5 doc fixes, and extended Basic Linear Algebra and Reductions sections Gael Guennebaud 2008-08-20 13:07:46 +0000
  • db8fbf2b39 some 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
  • 8551fe28ce fix 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
  • c6674ab076 missing SVD header file Gael Guennebaud 2008-08-19 20:18:46 +0000
  • 104f8fd36e Added 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
  • a6d387a359 Various 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
  • e778ae2559 only 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
  • 95a1283bf6 fix 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
  • 5546e963c9 bugfix in CholeskyWithoutSquareRoot::solve found by Timothy Hunter Gael Guennebaud 2008-08-16 07:09:39 +0000
  • d9d69de382 updated tutorial Benoit Jacob 2008-08-15 14:28:06 +0000
  • 3bc2746928 Copy 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
  • 8a3e6b1ee2 change 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
  • 13ad88736e last small fixes, this is alpha6, eigen2 is now ready for eigen1 apps to port to. Benoit Jacob 2008-08-12 02:14:02 +0000
  • f04c1cb774 Complete 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
  • 55e8d670ce Renamed 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
  • b13148c358 renamed 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
  • 9bbe396939 forgot 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
  • 58ba9ca72f LU: 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
  • 88bb2087c1 New implementation of Swap as discussed, reusing Assign. Makes LU run 10% faster overall. Benoit Jacob 2008-08-05 21:55:57 +0000
  • c94be35bc8 introduce 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
  • 09ef7db9d9 Add partial pivoting runtime option to LU. Benoit Jacob 2008-08-05 15:43:11 +0000
  • e741b7beca further big perf improvement in Inverse Benoit Jacob 2008-08-04 23:47:09 +0000
  • 79a0feee68 big performance improvement in inverse and LU Benoit Jacob 2008-08-04 23:34:21 +0000
  • a7a05382d1 Add 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
  • f81dfcf00b fix 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
  • 49ae3fca89 fix 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
  • 6d11a07e5e Added 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
  • 55aeb1f83a Optimizations: * 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
  • b32b186c14 removed the packet specializations of some functors (GCC generates better code without those "optimizations") Gael Guennebaud 2008-07-31 21:03:11 +0000
  • 842c4f8bfa Several 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
  • e0215ee510 BTL: - added tridiagonalization and hessenberg decomposition bench - added GOTO library Gael Guennebaud 2008-07-28 20:48:21 +0000
  • 44d95e0540 fix some internal asserts in CacheFrinedlyProduct Gael Guennebaud 2008-07-27 22:14:08 +0000
  • 02a7efa910 forgot 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