Commit Graph

  • 10f9478f35 release beta5, fix a doc typo Benoit Jacob 2009-01-05 19:00:10 +00:00
  • 9c8a653c0b gaaaaaaaaaaaaaaaaaah can't believe that 3 people wasted so much time because of a missing & !!!!! and this time MSVC didn't catch it so it was really copying the vector on the stack at an unaligned location! Benoit Jacob 2009-01-05 18:33:39 +00:00
  • 8551505436 problem solved, we really want public inheritance and it is only automatic when the _child_ class is a struct. Benoit Jacob 2009-01-05 18:21:44 +00:00
  • 1b88042880 the empty base class optimization is not standard. Most compilers implement a basic form of it; however MSVC won't implement it if there is more than one empty base class. For that reason, we shouldn't give Matrix two empty base classes, since sizeof(Matrix) must be optimal. So we overload operator new and delete manually rather than inheriting an empty struct for doing that. Benoit Jacob 2009-01-05 16:46:19 +00:00
  • 7db3f2f72a *fix compilation with MSVC 2005 in the Transform::construct_from_matrix *fix warnings with MSVC 2005: converting M_PI to float gives loss-of-precision warnings Benoit Jacob 2009-01-05 14:47:38 +00:00
  • dae7f065d4 didn't meant to commit the fortran check. but anyway, unfortunately it doesn't work the way iot should. the test fails and cmake will terminate if it doesn't find a fortran compiler Armin Berres 2009-01-05 14:40:27 +00:00
  • ab660a4d29 inherit from ei_with_aligned_operator_new even with disabled vectorization Armin Berres 2009-01-05 14:35:07 +00:00
  • 986f301233 *add PartialRedux::cross() with unit test *add transform-from-matrices test *undo an unwanted change in Matrix Benoit Jacob 2009-01-05 14:26:34 +00:00
  • d316d4f393 fix compilation on apple: _mm_malloc was undefined. the fix is to just use malloc since on apple it already returns aligned ptrs Benoit Jacob 2009-01-05 13:15:27 +00:00
  • e1ee876daa fix segfault due to non-aligned packets Benoit Jacob 2009-01-04 23:23:32 +00:00
  • 3de311f497 oops forgot important parentheses 2.0-beta4 Benoit Jacob 2009-01-04 21:23:02 +00:00
  • 06fd84cdb1 Fix bug in Matrix, in determining whether to overload operator new with an aligned one, introduced in r905543 Benoit Jacob 2009-01-04 21:20:42 +00:00
  • 0e5c640563 * fix a unused variable warning * if svnversion returns prose such as "exported" then discard that Benoit Jacob 2009-01-04 17:32:20 +00:00
  • be64619ab6 * require CMake 2.6.2 everywhere, Alexander Neundorf says it'd make it easier to have a uniform requirement in kdesupport for when he makes fixes. * add eigen versioning macros Benoit Jacob 2009-01-04 16:19:12 +00:00
  • 269bf67796 rename Regression --> LeastSquares Benoit Jacob 2009-01-04 15:55:54 +00:00
  • 15ca6659ac * the 4th template param of Matrix is now Options. One bit for storage order, one bit for enabling/disabling auto-alignment. If you want to disable, do: Matrix<float,4,1,Matrix_DontAlign> The Matrix_ prefix is the only way I can see to avoid ambiguity/pollution. The old RowMajor, ColMajor constants are deprecated, remain for now. * this prompted several improvements in matrix_storage. ei_aligned_array renamed to ei_matrix_array and moved there. The %16==0 tests are now much more centralized in 1 place there. * unalignedassert test: updated * update FindEigen2.cmake from KDElibs * determinant test: use VERIFY_IS_APPROX to fix false positives; add testing of 1 big matrix Benoit Jacob 2009-01-04 15:26:32 +00:00
  • d9e5fd393a * In LU solvers: no need anymore to use row-major matrices * Matrix: always inherit WithAlignedOperatorNew, regardless of vectorization or not * rename ei_alloc_stack to ei_aligned_stack_alloc * mixingtypes test: disable vectorization as SSE intrinsics don't allow mixing types and we just get compile errors there. Benoit Jacob 2009-01-03 22:33:08 +00:00
  • fd7eba3394 Added a SparseVector class (not tested yet) Gael Guennebaud 2009-01-02 08:47:09 +00:00
  • d671205755 fix the nomalloc test: it didn't catch the ei_stack_alloc in cachefriendlyproduct, that should be banned as well as depending on the platform they can give a malloc, and they could happen even with (large enough) fixed size matrices. Corresponding fix in Product.h: cachefriendly is now only used for dynamic matrices -- fixedsize, no matter how large, doesn't use the cachefriendly product. We don't need to care (in my opinion) about performance for large fixed size, as large fixed size is a bad idea in the first place and it is more important to be able to guarantee clearly that fixed size never causes a malloc. Benoit Jacob 2008-12-31 00:25:31 +00:00
  • 3958e7f751 add unit-test checking the assertion on unaligned arrays -- checking that it's triggered when and only when it should. Benoit Jacob 2008-12-31 00:05:22 +00:00
  • 164f410bb5 * make WithAlignedOperatorNew always align even when vectorization is disabled * make ei_aligned_malloc and ei_aligned_free honor custom operator new and delete Benoit Jacob 2008-12-30 14:11:35 +00:00
  • a2782964c1 Sparse module, add an assertion and make the use of CHOLMOD's solve method the default. Gael Guennebaud 2008-12-27 19:51:54 +00:00
  • ce3984844d Sparse module: * enable complex support for the CHOLMOD LLT backend using CHOLMOD's triangular solver * quick fix for complex support in SparseLLT::solve Gael Guennebaud 2008-12-27 18:13:29 +00:00
  • 361225068d fix bug discovered by Frank: ei_alloc_stack must really return aligned pointers Benoit Jacob 2008-12-24 13:59:24 +00:00
  • 6f158fb7fc one last compilation fix ... 2.0-beta3 Benoit Jacob 2008-12-22 21:04:13 +00:00
  • 789ea9d676 unless i find more failures in the tests, this will be beta3... * fixes for mistakes (especially in the cast() methods in Geometry) revealed by the new "mixing types" test * dox love, including a section on coeff access in core and an overview in geometry Benoit Jacob 2008-12-22 20:50:47 +00:00
  • 4336cf3833 * add unit-tests to check allowed and forbiddent mixing of different scalar types * fix issues in Product revealed by this test * in Dot.h forbid mixing of different types (at least for now, might allow real.dot(complex) in the future). Benoit Jacob 2008-12-22 19:17:44 +00:00
  • f5a05e7ed1 unfuck v.cwise()*w where v is real and w is complex Benoit Jacob 2008-12-21 20:55:46 +00:00
  • 9e00d94543 * the Upper->UpperTriangular change * finally get ei_add_test right Benoit Jacob 2008-12-20 13:36:12 +00:00
  • 21ab65e4b3 fix nasty little bug in ei_add_test Benoit Jacob 2008-12-20 01:13:38 +00:00
  • ebf906a23a add matrix * transform product Gael Guennebaud 2008-12-19 16:31:22 +00:00
  • df4bd5e46f * fix a test giving some false positives * add coverage for various operator*= Benoit Jacob 2008-12-19 16:16:39 +00:00
  • a3fad2e3c3 Transform*Transform should return Transform unit test compiles again Benoit Jacob 2008-12-19 15:55:35 +00:00
  • 5f6fbaa0e7 * fix a vectorization issue in Product * use _mm_malloc/_mm_free on other platforms than linux of MSVC (eg., cygwin, OSX) * replace a lot of inline keywords by EIGEN_STRONG_INLINE to compensate for poor MSVC inlining Gael Guennebaud 2008-12-19 15:38:39 +00:00
  • 8679d895d3 various MSVC fixes in BTL Gael Guennebaud 2008-12-19 15:31:47 +00:00
  • 22875683b9 * extractRotation ---> rotation * expand the geometry/Transform tests, after Mek's reports * fix my own stupidity in eigensolver test Benoit Jacob 2008-12-19 14:52:03 +00:00
  • e4980616fd SelfAdjointEigenSolver: add operatorSqrt() and operatorInverseSqrt() Benoit Jacob 2008-12-19 14:15:32 +00:00
  • 84bb868f07 * more MSVC warning fixes from Kenneth Riddile * actually GCC 4.3.0 has a bug, "deprecated" placed at the end of a function prototype doesn't have any effect, moving them to the start of the function prototype makes it actually work! * finish porting the cholesky unit-test to the new LLT/LDLT, after the above fix revealed a deprecated warning Benoit Jacob 2008-12-19 02:59:04 +00:00
  • f34a4fa335 * forgot to svn add 2 files * idea of Keir Mierle: make the static assert error msgs UPPERCASE Benoit Jacob 2008-12-18 21:04:06 +00:00
  • 8106d35408 Patch by Kenneth Riddile: disable MSVC warnings, reenable them outside of Eigen, and add a MSVC-friendly path in StaticAssert. Benoit Jacob 2008-12-18 20:48:02 +00:00
  • fabaa6915b * fix in IO.h, a useless copy was made because of assignment from Derived to MatrixBase. * the optimization of eval() for Matrix now consists in a partial specialization of ei_eval, which returns a reference type for Matrix. No overriding of eval() in Matrix anymore. Consequence: careful, ei_eval is no longer guaranteed to give a plain matrix type! For that, use ei_plain_matrix_type, or the PlainMatrixType typedef. * so lots of changes to adapt to that everywhere. Hope this doesn't break (too much) MSVC compilation. * add code examples for the new image() stuff. * lower a bit the precision for floats in the unit tests as we were already doing some workarounds in inverse.cpp and we got some failed tests. Benoit Jacob 2008-12-18 20:36:25 +00:00
  • b27a3644a2 Macros: add MSVC paths, add an important comment on EIGEN_ALIGN_128 Benoit Jacob 2008-12-18 13:36:31 +00:00
  • 93f8d56789 improved MSVC support in cmake files (SSE) Gael Guennebaud 2008-12-18 09:07:36 +00:00
  • 15d72d3f9a somehow we had forgotten this very important static assertion... Benoit Jacob 2008-12-18 03:47:49 +00:00
  • 9084e2a216 oops I commited bad stuff in the previous commit Gael Guennebaud 2008-12-17 18:54:28 +00:00
  • 6e138d0069 more MSVC cmake fixes Gael Guennebaud 2008-12-17 18:37:04 +00:00
  • 4cb63808d4 some cmake fixes for windows and GSL Gael Guennebaud 2008-12-17 17:50:43 +00:00
  • c98fe0185e fix non standard non-const std::complex::real/imag issue Gael Guennebaud 2008-12-17 17:31:23 +00:00
  • 5f582aa4e8 fix bad typos, thanks to Kenneth Riddile Benoit Jacob 2008-12-17 17:14:37 +00:00
  • c22d10f94c LU class: * add image() and computeImage() methods, with unit test * fix a mistake in the definition of KernelResultType * fix and improve comments Benoit Jacob 2008-12-17 16:47:55 +00:00
  • e3a8431a4a found one bug in the previous ++ changes Gael Guennebaud 2008-12-17 16:04:21 +00:00
  • 89f468671d * replace postfix ++ by prefix ++ wherever that makes sense in Eigen/ * fix some "unused variable" warnings in the tests; there remains a libstdc++ "deprecated" warning which I haven't looked much into Benoit Jacob 2008-12-17 14:30:01 +00:00
  • 2110cca431 actually honor EIGEN_STACK_ALLOCATION. Can set it to 0 to disable stack alloc which guarantees that bad alloc throws exceptions if they are enabled. Benoit Jacob 2008-12-16 15:44:48 +00:00
  • 38b83b4157 * throw bad_alloc if exceptions are enabled, after patch by Kenneth Riddile * disable vectorization on MSVC 2005, as it doesn't have all the required intrinsics. require 2008. Benoit Jacob 2008-12-16 15:17:29 +00:00
  • 50105c3ed6 Hopefully fix compilation of SSE Packetmath with MSVC. Benoit Jacob 2008-12-16 03:48:49 +00:00
  • 0a220721d1 Finally work around enough of MSVC preprocessor dumbness so that it actually detects SSE2 Benoit Jacob 2008-12-15 21:20:40 +00:00
  • 1ad751b991 only enable the "unaligned array" assert if vectorization is enabled. if vectorization is disabled, WithAlignedOperatorNew is empty! Benoit Jacob 2008-12-15 20:49:03 +00:00
  • 55b603e457 * fix a bug I introduced in WithAlignedOperatorNew * add an important comment Benoit Jacob 2008-12-15 20:14:59 +00:00
  • 763f0a2434 use ei_aligned_malloc and ei_aligned_free also in WithAlignedOperatorNew, so this too should now work with MSVC. Benoit Jacob 2008-12-15 17:55:11 +00:00
  • 9b1a3d6e19 small optimization (for MSVC) and simplification of ei_alligned_malloc Benoit Jacob 2008-12-15 17:33:19 +00:00
  • dd139b92b4 work around the braindead msvc preprocessor Benoit Jacob 2008-12-15 17:16:22 +00:00
  • 11c8a6bf63 Fix detection of SSE2 with MSVC. Benoit Jacob 2008-12-15 16:14:54 +00:00
  • 703951d5cd Fix memory alignment (hence vectorization) on MSVC thanks to help from Armin Berres. Benoit Jacob 2008-12-15 15:54:33 +00:00
  • d11c8704e0 oops, forget to remove a line Gael Guennebaud 2008-12-15 12:35:46 +00:00
  • a164646c77 more warning fixes by Armin Berres Gael Guennebaud 2008-12-15 12:30:04 +00:00
  • 936eaf600a compilation fix thanks to Dennis Schridde Benoit Jacob 2008-12-13 21:09:19 +00:00
  • ef0cd3a289 one more warning fix, thanks to Armin Berres Gael Guennebaud 2008-12-12 13:50:01 +00:00
  • 1ed17b037d * fix a couple of warnings (patch from Armin Berres) * allow Map to map null data Gael Guennebaud 2008-12-12 12:54:45 +00:00
  • 5015e48361 Sparse module: add a more flexible SparseMatrix::fillrand() function which allows to fill a matrix with random inner coordinates (makes sense only when a very few coeffs are inserted per col/row) Gael Guennebaud 2008-12-11 18:26:24 +00:00
  • beabf008b0 bugfix in DiagonalProduct: a "DiagonalProduct<SomeXpr>" expression is now evaluated as a "DiagonalProduct<Matrix<SomeXpr::Eval> >". Note that currently this only happens in DiagonalProduct. Gael Guennebaud 2008-12-10 19:02:13 +00:00
  • ba9a53f9c6 fix compilation issue for 64bit systems (pointer <=> size_t) Gael Guennebaud 2008-12-08 15:07:42 +00:00
  • 52a30c1d54 fix minor mistake in the inside eigen example Gael Guennebaud 2008-12-08 10:07:09 +00:00
  • cb409914e0 * call it beta2 * improvements in Matrix documentation * document copyCoeff and copyPacket even if it's hidden from doxygen 2.0-beta2 Benoit Jacob 2008-12-07 23:23:36 +00:00
  • 069ecbb4ab * complete the change norm2->squaredNorm in PartialRedux * somehow the NICE_RANDOM stuff wasn't being used anymore and tests were sometimes failing again. Fixed by #including Eigen/Array instead of cherry-picking just Random.h. * little fixes in the unaligned assert page Benoit Jacob 2008-12-07 21:40:53 +00:00
  • 09fd69d734 * add Transform explicit constructors taking translation/scaling/rotation * add Transform::operator= taking rotation. An old remnant was left commented out. Why was it disabled? * slight optimization in operator= taking translation * slight optimization (perhaps) in the new memory assertion Benoit Jacob 2008-12-07 17:49:56 +00:00
  • 6700f07fb0 actually this message is probably more effective at making people read the web page... Benoit Jacob 2008-12-07 16:38:45 +00:00
  • 08e6b7ad80 Make deluxe assertion with deluxe error message with link to deluxe web page for this very nasty bug (unaligned member in dynamically allocated struct) that our friends at Krita just encountered: Benoit Jacob 2008-12-07 16:31:32 +00:00
  • 7e8ee5b527 hide internal stuff from doxygen by using #ifndef EIGEN_PARSED_BY_DOXYGEN. Benoit Jacob 2008-12-07 15:40:40 +00:00
  • 93c1f62979 Use an aligned IOFormat in the docs Benoit Jacob 2008-12-06 23:20:30 +00:00
  • 2b20da624a * improvements in the tutorial: triangular matrices, linear algebra * minor fixes in Part and StaticAssert * EulerAngles: remove the FIXME as I think the current version is fine Benoit Jacob 2008-12-06 22:21:29 +00:00
  • bb33ec4ef3 * fix compile error when C++0x is enabled: static_assert() needs ; thanks to devurandom for reporting * remove redundant ; in ei_internal_assert * minor fixes in InsideEigenExample.dox Benoit Jacob 2008-12-06 16:49:03 +00:00
  • 9c0deb55ca bugfix in matrix to Euler-angles function Gael Guennebaud 2008-12-06 11:04:33 +00:00
  • faf942a947 Add a generic matrix to Euler-angles function. Perhaps the prototype of this function could be improved, see comments in the code Gael Guennebaud 2008-12-05 15:56:28 +00:00
  • 6d1439a52f add big "what happens inside eigen" tutorial for people interested in Eigen internals Benoit Jacob 2008-12-05 14:45:42 +00:00
  • 2ff7961c10 split off the lazy evaluation part from the quickstartguide; actually by mistake i had already committed part of that change so i commit the rest even if it's not much, so building docs from trunk works again. Benoit Jacob 2008-12-03 23:15:26 +00:00
  • c1e2156d8a * Much better, consistent error msgs when mixing different scalar types: - in matrix-matrix product, static assert on the two scalar types to be the same. - Similarly in CwiseBinaryOp. POTENTIALLY CONTROVERSIAL: we don't allow anymore binary ops to take two different scalar types. The functors that we defined take two args of the same type anyway; also we still allow the return type to be different. Again the reason is that different scalar types are incompatible with vectorization. Better have the user realize explicitly what mixing different numeric types costs him in terms of performance. See comment in CwiseBinaryOp constructor. - This allowed to fix a little mistake in test/regression.cpp, mixing float and double - Remove redundant semicolon (;) after static asserts Benoit Jacob 2008-12-03 21:01:55 +00:00
  • 84cc69f0f3 -add quotes around the configured directories so build dirs with spaces produce some errors less Alexander Neundorf 2008-12-02 13:04:32 +00:00
  • 20c11bc52c prefix all Eigen cmake variable with EIGEN_ and switched to lowercase for all cmake files Gael Guennebaud 2008-12-02 12:59:10 +00:00
  • eb9dadf3b2 clean FindUmfpack.cmake wrt enable_language(Fortran) Gael Guennebaud 2008-12-02 12:20:13 +00:00
  • 6b3d0e68e2 -use the cmake-provided Eigen_(SOURCE|BINARY)_DIR variables instead of setting own versions (EIGEN_(SOURCE|BINARY)_DIR Alexander Neundorf 2008-12-02 11:00:51 +00:00
  • aba378eb1a add internal documentation Benoit Jacob 2008-11-30 21:49:02 +00:00
  • 00f89a8f37 Update e-mail address Benoit Jacob 2008-11-24 13:40:43 +00:00
  • 582c1f92c8 doc: add a "non stable" warning for parts which are not part of the stable API yet and a couple of other minor doc updates... Gael Guennebaud 2008-11-22 19:51:05 +00:00
  • a040b7f15d tutorial: extend casting section with set Gael Guennebaud 2008-11-20 11:01:17 +00:00
  • cc6121b98d tutorial: add the cast function Gael Guennebaud 2008-11-20 10:47:12 +00:00
  • a3b89e0ee6 tutorial: add array module warnings when needed Gael Guennebaud 2008-11-17 15:38:57 +00:00
  • 3614321401 * add Gael a (c) line in IO.h * let user change default format by defining EIGEN_DEFAULT_IO_FORMAT * improve docs a little Benoit Jacob 2008-11-17 12:45:57 +00:00
  • 139529e97b * add .imag() function * fix a very old bug in EigenSolver that I had completely forgotten (thanks to Timothy to refresh my mind) * fix doc of Matrix::Map Gael Guennebaud 2008-11-14 09:55:25 +00:00
  • 86ccd99d8d Several improvements in sparse module: * add a LDL^T factorization with solver using code from T. Davis's LDL library (LPGL2.1+) * various bug fixes in trianfular solver, matrix product, etc. * improve cmake files for the supported libraries * split the sparse unit test * etc. Gael Guennebaud 2008-11-05 13:47:55 +00:00
  • 9aba671cfc Remove executable here too Laurent Montel 2008-11-04 08:25:19 +00:00