Commit Graph

  • 568a7e8eba improve assertion checking in product Gael Guennebaud 2008-10-25 11:52:13 +0000
  • 72f2c7eed5 bugfix in Quaternion found by Daniel Stonier Gael Guennebaud 2008-10-25 09:25:29 +0000
  • 0c5a09d93f some cleaning and doc in ParametrizedLine and HyperPlane Just a thought: what about ParamLine instead of the verbose ParametrizedLine ? Gael Guennebaud 2008-10-25 00:08:52 +0000
  • 8ea8b481de As discussed on ML: * remove the automatic resizing feature of operator = * add function Matrix::set() to be used when the previous behavior is wanted * the default constructor of dynamic-size matrices now creates a "null" matrix (data=0, rows = cols = 0) instead of a 1x1 matrix * fix UnixX typos ;) Gael Guennebaud 2008-10-24 21:42:03 +0000
  • 65abb4c52e compilation fix for ICC Gael Guennebaud 2008-10-21 15:43:25 +0000
  • cf0f82ecbe sparse module: - remove some useless stuff => let's focus on a single sparse matrix format - finalize the new RandomSetter Gael Guennebaud 2008-10-21 13:35:04 +0000
  • 9e02e42ff6 add the bench file for the RandomSetter Gael Guennebaud 2008-10-21 00:05:45 +0000
  • 3645d6c138 sparse module: add a RandomSetter based on a user defined map implementation as described on the wiki (one map per N column) Here's some bench results for the 4 currently supported map impl: std::map => 18.3385 (581 MB) gnu::hash_map => 6.52574 (555 MB) google::dense => 2.87982 (315 MB) google::sparse => 15.7441 (165 MB) This is the time is second (and memory consumption) to insert/lookup 10 million of coeffs with random coords inside a 10000^2 matrix, with one map per packet of 64 columns => google::dense really rocks ! Note I use for the key value the index of the column in the packet (between 0 and 63) times the number of rows and I used the default hash function.... so maybe there is room for improvement here.... Gael Guennebaud 2008-10-20 23:42:20 +0000
  • 96538b976d remove debug message in FindCholmod.cmake Gael Guennebaud 2008-10-20 20:58:43 +0000
  • 5066fe8bbe * sparse LU: add extraction of L,U,P, and Q, as well as determinant for both backends. * extended a bit the sparse unit tests Gael Guennebaud 2008-10-20 17:03:09 +0000
  • e1c50a3cb1 add unit tests for sparse LU and fix a couple of warnings Gael Guennebaud 2008-10-20 11:37:45 +0000
  • fa27cd1ed0 * add cmake files to find (optional) supported libraries * add unit tests for sparse cholesky Gael Guennebaud 2008-10-20 10:43:11 +0000
  • f44316e5f8 UmfPack support: add support for complex<double> Gael Guennebaud 2008-10-20 00:39:11 +0000
  • 3a231c2349 sparse module: add support for umfpack, the sparse direct LU solver from suitesparse (as cholmod). It seems to be even faster than SuperLU and it was much simpler to interface ! Well, the factorization is faster, but for the solve part, SuperLU is quite faster. On the other hand the solve part represents only a fraction of the whole procedure. Moreover, I bench random matrices that does not represents real cases, and I'm not sure at all I use both libraries with their best settings ! Gael Guennebaud 2008-10-19 22:44:21 +0000
  • 64f7fbe3f2 sparse module: some trivial bugfixes Gael Guennebaud 2008-10-19 17:07:20 +0000
  • 76fe2e1b34 add/update some benchmark files used to test/compare sparse module features Gael Guennebaud 2008-10-19 17:06:11 +0000
  • ecc6c43dba sparse module: add preliminary support for direct sparse LU solver using SuperLU. Calling SuperLU was very painful, but it was worth it, it seems to be damn fast ! Gael Guennebaud 2008-10-19 15:26:28 +0000
  • 6be0131774 sparse module: added some documentation for the LLT solver Gael Guennebaud 2008-10-18 18:33:56 +0000
  • cfca7f71fe sparse module: much much faster transposition code Gael Guennebaud 2008-10-18 11:11:10 +0000
  • 727dfa1c43 fix some documentation issues Gael Guennebaud 2008-10-17 11:20:46 +0000
  • e747b338ee Started the third chapter of the tutorial on linear solvers. It is only a first draft and I think it should be reorganized a bit in 2 parts: 1 - a compact table summarizing the main API and its use (this is what would expect an "expert" user) 2 - a discussion about the various algorithm in Eigen to guide the newbies in linear algebra Currently I mixed the discussion with the API, but it is still better than nothing ! Gael Guennebaud 2008-10-16 22:28:23 +0000
  • 28d32f9bd8 add my copyright in MatrixBase.h Gael Guennebaud 2008-10-13 16:09:16 +0000
  • 765219aa51 Big API change in Cholesky module: * rename Cholesky to LLT * rename CholeskyWithoutSquareRoot to LDLT * rename MatrixBase::cholesky() to llt() * rename MatrixBase::choleskyNoSqrt() to ldlt() * make {LLT,LDLT}::solve() API consistent with other modules Gael Guennebaud 2008-10-13 15:53:27 +0000
  • e2bd8623f8 Solve the issue found by Timothy in solveTriangular: => row-major rhs are now evaluated to a column-major temporary before the computations. Add solveInPlace in Cholesky* Gael Guennebaud 2008-10-13 13:14:43 +0000
  • 537a0e0a52 fix typos Scott Wheeler 2008-10-12 16:09:12 +0000
  • e80d6a95d9 note that norm2() is *not* an l2 norm as it is in other APIs Scott Wheeler 2008-10-11 21:01:59 +0000
  • 8466244faa SVN_SILENT pendantic Urs Wolfer 2008-10-11 17:52:45 +0000
  • b46c327133 Clear up the docs some. I'd also suggest making Dynamic the default template parameter for matrices. Scott Wheeler 2008-10-11 08:43:18 +0000
  • 4e502dd6b0 very little fixes: cast literals to Scalar, rephrase some doc, add some const (maybe completely useless but at least doesn't hurt) Benoit Jacob 2008-10-06 22:10:36 +0000
  • 22507fa645 Sparse module: refactoring of the cholesky factorization, now the backends are well separated from the default impl, etc. Gael Guennebaud 2008-10-05 20:19:47 +0000
  • b8fc1edb2c Sparse module: enable support for incomplete cholesky factorization in CHOLMOD backend. Gael Guennebaud 2008-10-05 13:45:43 +0000
  • 3c155ab073 Sparse module: removed some extra copies using markAsRValue() Gael Guennebaud 2008-10-05 13:39:49 +0000
  • b730c6f57d Sparse module: add experimental support for TAUCS and CHOLMOD with: * bidirectionnal mapping * full cholesky factorization Gael Guennebaud 2008-10-05 13:38:38 +0000
  • a930dfb229 extend sparse unit tests with transpose and matrix product Gael Guennebaud 2008-10-04 14:25:00 +0000
  • 98d3c0a413 Cleaned a bit the sparse cholesky code Gael Guennebaud 2008-10-04 14:24:15 +0000
  • 068ff3370d Sparse module: * several fixes (transpose, matrix product, etc...) * Added a basic cholesky factorization * Added a low level hybrid dense/sparse vector class to help writing code involving intensive read/write in a fixed vector. It is currently used to implement the matrix product itself as well as in the Cholesky factorization. Gael Guennebaud 2008-10-04 14:23:00 +0000
  • 1fc503e3ce add EigenSolver::eigenvectors() method for non symmetric matrices. However, for matrices larger than 5, it seems there is constantly a quite large error for a very few coefficients. I don't what's going on, but that's certainely not due to numerical issues only. (also note that the test with the pseudo eigenvectors fails the same way) Gael Guennebaud 2008-10-03 13:22:54 +0000
  • d907cd4410 Fixes in Eigensolver: * eigenvectors => pseudoEigenvectors * added pseudoEigenvalueMatrix * clear the documentation * added respective unit test Still missing: a proper eigenvectors() function. Gael Guennebaud 2008-10-01 10:17:08 +0000
  • 618de17bf7 block(int,int)->segment Benoit Jacob 2008-09-24 20:35:07 +0000
  • 373331e3bf remove apidox_preprocessing script which is not used anymore Gael Guennebaud 2008-09-16 13:26:46 +0000
  • 42e88b1724 resurrected root/Mainpage.dox, the directives are needed by kde's scripts Gael Guennebaud 2008-09-16 12:53:03 +0000
  • fb5b62fbac block => segment in the tutorial Gael Guennebaud 2008-09-15 16:26:55 +0000
  • af991a6bdb small dox fixes Benoit Jacob 2008-09-15 16:19:48 +0000
  • 247f2b0ffa * block() for vectors ---> segment() * documentation improvements, especially in quickstart guide Benoit Jacob 2008-09-15 15:45:41 +0000
  • 0940ad7127 add normalization functions to Quaternion and fix compilation issue with custom types 2.0-beta1 Gael Guennebaud 2008-09-14 12:21:22 +0000
  • db030d4e28 * fix issues with "long double" type (useful to enforce the use of x87 registers) * extend the documentation on "extending Eigen" Gael Guennebaud 2008-09-14 11:59:10 +0000
  • 8473a77f2f move CommaInitializer out of MatrixBase and documment it (because of .finished()) Gael Guennebaud 2008-09-13 18:51:51 +0000
  • a62bd110a2 fix doc compilation Gael Guennebaud 2008-09-13 10:44:23 +0000
  • e5c50afed6 * Quaternion: added dot product and angularDistance functions. The latter is based on the former. * opengl_demo: makes IcoSphere better (vertices are instanciated only once) and removed the generation of a big geometry for the fancy spheres... Gael Guennebaud 2008-09-11 11:19:34 +0000
  • 5e9ee8863e opengl demo, now working: - quaternion vs euler angles interpolation (though the Euler angle version looks a bit too bad) - navigation using either a mapping from 2D screen coordinates to 3D points on a sphere or the standard approach mapping mouse displacements as rotations around camera's axes. Gael Guennebaud 2008-09-09 23:17:14 +0000
  • 146c9e4494 various stuff in opengl demos such as a better model, stable trackball for the fly navigation mode, and started to put some GUI elements... Gael Guennebaud 2008-09-09 18:50:45 +0000
  • d3a70b7fac fix a numerical instability in Quaternion::slerp Gael Guennebaud 2008-09-09 15:25:03 +0000
  • 703539110b add the missing templated version of block for sub-vectors Gael Guennebaud 2008-09-09 09:30:23 +0000
  • c41ceee750 2 typos Gael Guennebaud 2008-09-08 17:08:27 +0000
  • 31c33b9ed4 started a small OpenGL demo making use of Eigen's geometry features Gael Guennebaud 2008-09-07 23:15:11 +0000
  • 12e9de4abb fix stupid numerical stability issue in SVD::solve (though it is not yet as stable as LU with full pivoting) Gael Guennebaud 2008-09-04 14:38:42 +0000
  • 6add33e2c2 fix warning Benoit Jacob 2008-09-04 01:35:39 +0000
  • 52406aecad * Extend a bit ParametrizedLine and move it to a separate file, add unit-tests for it. * remove "using namespace std" in test/main.h such that the compilation bug found today in SVD won't happen again. Gael Guennebaud 2008-09-03 22:35:45 +0000
  • c29c7b0ea9 Fix bugs reported by Timothy Hunter: * CholeskyWithoutSqrt with 1x1 matrices * .part<Diagonal>() Updated unit tests to handle these cases Gael Guennebaud 2008-09-03 20:52:26 +0000
  • e14aa8c8aa Add coeff-wise comparisons to scalar operators. You can now write: mat.cwise() < 2 instead of: mat.cwise() < MatrixType::Constant(mat.rows(), mat.cols(), 2) Gael Guennebaud 2008-09-03 17:56:06 +0000
  • 59dc1da5bf Add a Select expression in the Array module which mimics a coeff-wise ?: operator. Example: mat = (mat.cwise().abs().cwise() < Ones()).select(0,mat); replaces all small values by 0. (the scalar version is "s = abs(s)<1 ? 0 : s") Gael Guennebaud 2008-09-03 17:16:28 +0000
  • 622f2d5eae trivial compilation fix in SVD Gael Guennebaud 2008-09-03 15:52:44 +0000
  • 3bbd1b3114 Bugfix regarding alignent in Assign.h (updated map unit test to detect this bug) Anyway: LinearVectorization+CompleteUnrolling actually uses the InnerVectorization unrollers, so these two cases could be merged to a single one... Gael Guennebaud 2008-09-03 14:42:36 +0000
  • 75649551c2 compilation fixes with MSVC Gael Guennebaud 2008-09-03 11:26:19 +0000
  • 2a2c305c4d not yet Gael Guennebaud 2008-09-03 10:34:05 +0000
  • f52d119b9c Solve a big issue with data alignment and dynamic allocation: * add a WithAlignedOperatorNew class with overloaded operator new * make Matrix (and Quaternion, Transform, Hyperplane, etc.) use it if needed such that "*(new Vector4) = xpr" does not failed anymore. * Please: make sure your classes having fixed size Eigen's vector or matrice attributes inherit WithAlignedOperatorNew * add a ei_new_allocator STL memory allocator to use with STL containers. This allocator really calls operator new on your types (unlike GCC's new_allocator). Example: std::vector<Vector4f> data(10); will segfault if the vectorization is enabled, instead use: std::vector<Vector4f,ei_new_allocator<Vector4f> > data(10); NOTE: you only have to worry if you deal with fixed-size matrix types with "sizeof(matrix_type)%16==0"... Gael Guennebaud 2008-09-03 00:32:56 +0000
  • d8df318d77 resurrected sparse triangular solver Gael Guennebaud 2008-09-02 19:55:26 +0000
  • 8fb1678f0f Extended sparse unit-test: nested blocks and InnerIterators. Block specialization for sparse matrices. InnerIterators for Blocks and fixes in CoreIterators. Daniel Gomez Ferro 2008-09-02 15:28:49 +0000
  • 46fe7a3d9e if EIGEN_NICE_RANDOM is defined, the random functions will return numbers with few bits left of the comma and for floating-point types will never return zero. This replaces the custom functions in test/main.h, so one does not anymore need to think about that when writing tests. Benoit Jacob 2008-09-01 17:31:21 +0000
  • 49ff9b204c remove the conceptualy broken "NoShear" transformation traits, and rename NonAfine => Projective, GenericAffine => Affine, NoScaling => Isometry Gael Guennebaud 2008-09-01 17:14:34 +0000
  • 6825c8dd6b QTransform conversion and doc Gael Guennebaud 2008-09-01 06:33:19 +0000
  • 994629721a update of the geometry tutorial Gael Guennebaud 2008-08-31 17:30:09 +0000
  • d74916e4fe same thing with EIGEN_BINARY_DIR. Now the doc generation works from kdesupport. Benoit Jacob 2008-08-31 15:20:25 +0000
  • c931867909 also use EIGEN_SOURCE_DIR here. according to grep this was the last place to change. Benoit Jacob 2008-08-31 15:12:55 +0000
  • ff60c9ccb1 fix cmakelists: wrong assumption on CMAKE_SOURCE_DIR. One can now use EIGEN_SOURCE_DIR for that use, guaranteed to point to eigen2/ directory. Benoit Jacob 2008-08-31 15:08:41 +0000
  • 7e8aa63bb7 * Add Hyperplane::transform(Matrix/Transform) * Fix compilations with gcc 3.4, ICC and doxygen * Fix krazy directives (hopefully) Gael Guennebaud 2008-08-31 13:32:29 +0000
  • 5c34d8e20a The discussed changes to Hyperplane, the ParametrizedLine class, and the API update in Regression... Benoit Jacob 2008-08-31 04:25:30 +0000
  • 5c8c09e021 add uniform scale/prescale functions in Tranform Gael Guennebaud 2008-08-30 23:10:46 +0000
  • 9c450a52a2 Split Rotation.h to Rotation2D.h and RotationBase.h, and more code factorization based on RotationBase. Added notes about the main aim of the Translation and Scaling classes. Gael Guennebaud 2008-08-30 21:36:04 +0000
  • 6ba991aa3a * added a RotationBase class following the CRT pattern This allow code factorization and generic template specialization of functions * added any_rotation * {Translation,Scaling,Transform} products methods * rewrite of the actually broken ToRoationMatrix helper class to a global ei_toRotationMatrix function. Gael Guennebaud 2008-08-30 20:11:04 +0000
  • 027ee14f31 api.kde.org is still bugged, let's do another try... Gael Guennebaud 2008-08-30 16:30:58 +0000
  • f1e6c56b77 * rename TranformationKnowledge to TransformTraits * apply the same principle to extractRotation and fix it to extract a rotation corresponding to a positive scaling Gael Guennebaud 2008-08-30 15:22:45 +0000
  • 236b7a545d update Transform::inverse() to take an optional argument stating whether the transformation is: NonAffine, Affine (default), contains NoShear, contains NoScaling that allows significant speed improvements. If you like it, this concept could be applied to Transform::extractRotation (or to a more advanced decomposition function) and to Hyperplane::transformed() and maybe to some other places... e.g., I think a Transform::normalMatrix() function would not harm and warn user that the transformation of normals is not that trivial (I saw this mistake much too often) Gael Guennebaud 2008-08-30 12:42:06 +0000
  • 9e7a9cde14 Add Scaling and Translation class as discussed on ML, still missing: * handling Quaternion, AngleAxis and Rotation2D, 2 options here: 1- make all of them inheriting a common base class Rotation such that we can have a single version of operator* for all the rotation type (they all get converted to a matrix) 2- write a version for all type (so 3 rotations types * 3 for Transform,Translation and Scaling) * real documentation Gael Guennebaud 2008-08-30 00:08:23 +0000
  • 13a9d93bc0 minor doc fixes Gael Guennebaud 2008-08-29 17:45:11 +0000
  • 582c1b6c3a in doc for kde: fix project name and number, add the amssymb latex package Gael Guennebaud 2008-08-29 16:32:54 +0000
  • 063d1bb811 tweak root/Mainpage.dox to make it compatible with kde's doxygen.sh script plus some hacks to compile the examples from doxygen... Hopefully, api.kde.org/eigen2 will be beautiful by tomorrow.... Gael Guennebaud 2008-08-29 16:17:06 +0000
  • 68fbd6f531 typos in bench/ Gael Guennebaud 2008-08-29 16:10:08 +0000
  • 6d841512c7 some hyperplane changes: - the coefficients are stored in a single vector - added transformation methods - removed Line* typedef since in 2D this is really an hyperplane and not really a line... - HyperPlane => Hyperplane Gael Guennebaud 2008-08-29 13:30:37 +0000
  • 409e82be06 doc and use sed to clean the class hierarchy instead of preprocessor directives. Gael Guennebaud 2008-08-28 23:25:27 +0000
  • 7ea821d18e spelling + some krazy directives Gael Guennebaud 2008-08-28 21:44:56 +0000
  • 80be1ea515 remove CoreDeclaration from the documentation Gael Guennebaud 2008-08-28 19:11:03 +0000
  • 9b4d46c82e * Add an HyperPlane class in the Geometry module with its respective unit-test. Feel free to discuss the API on the ML. * Some bugfix in unitOrthogonal found by the hyperplane unit test. Gael Guennebaud 2008-08-28 17:44:27 +0000
  • ee2df6026a CoreDeclarations was removed Jure Repinc 2008-08-28 17:33:27 +0000
  • 3ced3f91c2 * temporarily remove doxygen customization, we'll see if that fix api.kde.org but I no hope, that would be too simple ! * added Rotation2D typedefs * remove CoreDeclarations header file Gael Guennebaud 2008-08-28 15:28:23 +0000
  • 70266b4d05 doc + quick bug fix in Matrix ctor Gael Guennebaud 2008-08-28 00:33:58 +0000
  • f7de12de69 Missing inline keywords in AltiVec/PacketMath were making Avogadro fail to compile (duplicate symbols). Benoit Jacob 2008-08-27 20:06:15 +0000
  • 252e0c45b2 * missing cmake make_directory command * show svn revision number if available * fix warnings about unused argc/argv Benoit Jacob 2008-08-27 06:43:42 +0000
  • a0cfe6ebdc remove double ; Benoit Jacob 2008-08-27 02:58:04 +0000
  • 8e8019d289 improvements in geometry tutorial Gael Guennebaud 2008-08-27 00:46:24 +0000