aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Matrix.h
Commit message (Collapse)AuthorAge
* add a generic mechanism to copy a special matrix to a dense matrix so thatGravatar Gael Guennebaud2009-07-07
| | | | | we don't need to add other specialization of MatrixBase::operator=, Matrix::=, and Matrix::Matrix(...)
* * 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
|
* * add resize(int, NoChange) and resize(NoChange, int)Gravatar Benoit Jacob2009-06-24
| | | | | | * add missing assert in resize(int) * add examples for all resize variants * expand docs (part of which is from Tim Hutt's e-mail)
* Relaxed checks againts _MaxRows and _MaxCols in ↵Gravatar Hauke Heibel2009-05-29
| | | | Matrix::_check_template_params().
* fix the static assert checking the size template parameters.Gravatar Benoit Jacob2009-05-27
|
* 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 missing overloads of setZero, etc... that were mentioned in the tutorialGravatar Benoit Jacob2009-05-06
| | | | | | | --->they go into Matrix as they resize. *add isConstant() alias to isApproxToConstant() *extend unit-test *change an assert into a static assert
* fix warning, unused variable dummyGravatar Benoit Jacob2009-05-04
|
* fix the Matrix(int,int)/vector 2D ctors issue so that we reallyGravatar Gael Guennebaud2009-04-24
| | | | | have a Matrix(Scalar,Scalar) ctor. (useful for std::complex, user defined types, etc.
* The ABI break:Gravatar Benoit Jacob2009-03-26
| | | | | | | * set AutoAlign=0, DontAlign!=0 * set Dynamic=33331 * add check on fixed sizes * bump version to 2.0.52
* * allows fixed size matrix with size==0 (via a specialization ofGravatar Gael Guennebaud2009-03-23
| | | | | | MatrixStorage returning a null pointer). For instance this is very useful to make Tridiagonalization compile for 1x1 matrices * fix LLT and eigensolver for 1x1 matrix
* 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)
* * allow Matrix to be resized to 0 (solve a lot of troubles withGravatar Gael Guennebaud2009-02-07
| | | | | | some containers) * new workaround for std::vector which is supposed to work for any classes having EIGEN_MAKE_ALIGNED_OPERATOR_NEW as discussed on ML
* Add Matrix::resizeLike(other) convenience function and test.Gravatar Keir Mierle2009-02-03
|
* * label Cholesky and solveTriangular.* as experimentalGravatar Benoit Jacob2009-02-02
| | | | | * improve Experimental.dox * update urls from /api/ to /dox/
* add EIGEN_NO_AUTOMATIC_RESIZINGGravatar Benoit Jacob2009-01-28
| | | | | if defined, already initialized matrices won't be automatically resized in assignments uninitialized matrices may still be initialized
* centralize those static asserts more upstream, reduces duplication and ↵Gravatar Benoit Jacob2009-01-27
| | | | | | ensures they can't be bypassed (e.g. until now it was possible to bypass the static assert on sizes)
* add a missing static assertion on the scalar typesGravatar Benoit Jacob2009-01-27
|
* * remove set(), revert to old behavior where = resizesGravatar Benoit Jacob2009-01-21
| | | | | | | | | | * try to be clever in matrix ctors and operator=: be lazy when we can, always allow to copy rowvector into columnvector, check the template parameters, try to factor the code better * add missing copy ctor in UnalignedType * fix bug in the traits of DiagonalProduct * renaming: EIGEN_TUNE_FOR_CPU_CACHE_SIZE * update the dox a little
* add a flexible sparse matrix class designed for fast matrix assemblyGravatar Gael Guennebaud2009-01-19
|
* fix a couple of doxygen issuesGravatar Gael Guennebaud2009-01-13
|
* * make std::vector specializations also for Transform and for QuaternionGravatar Benoit Jacob2009-01-12
| | | | | | | * update test_stdvector * Quaternion() does nothing (instead of bug) * update test_geometry * some renaming
* make the std::vector fix work also with dynamic size Eigen objects, e.g.Gravatar Benoit Jacob2009-01-10
| | | | | std::vector<VectorXd> update unit test
* oops, fix compilation (sorry for all that noise!)Gravatar Benoit Jacob2009-01-09
|
* overloaded operator delete should call ei_conditinal_aligned_free, notGravatar Benoit Jacob2009-01-09
| | | | ei_aligned_free
* EIGEN_MAKE_ALIGNED_OPERATOR_NEW didn't actually need to get the classGravatar Benoit Jacob2009-01-08
| | | | name as parameter
* the big memory changes. the most important changes are:Gravatar Benoit Jacob2009-01-08
| | | | | | | ei_aligned_malloc now really behaves like a malloc (untyped, doesn't call ctor) ei_aligned_new is the typed variant calling ctor EIGEN_MAKE_ALIGNED_OPERATOR_NEW now takes the class name as parameter
* remove the Matrix_ prefixGravatar Benoit Jacob2009-01-06
|
* * introduce macros to replace inheritance for operator new overloadingGravatar Benoit Jacob2009-01-06
| | | | | | | | | (former solution still available and tested) This plays much better with classes that already have base classes -- don't force the user to mess with multiple inheritance, which gave much trouble with MSVC. * Expand the unaligned assert dox page * Minor fixes in the lazy evaluation dox page
* ...so the placement new is really trivial:)Gravatar Benoit Jacob2009-01-05
|
* oops, placement new should take a void*Gravatar Benoit Jacob2009-01-05
|
* we also had to overload the placement new... issue uncovered by Tim whenGravatar Benoit Jacob2009-01-05
| | | | doing QVector<Vector3d>...
* problem solved, we really want public inheritance and it is onlyGravatar Benoit Jacob2009-01-05
| | | | automatic when the _child_ class is a struct.
* the empty base class optimization is not standard. Most compilers implement ↵Gravatar Benoit Jacob2009-01-05
| | | | | | | 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.
* *add PartialRedux::cross() with unit testGravatar Benoit Jacob2009-01-05
| | | | | *add transform-from-matrices test *undo an unwanted change in Matrix
* fix compilation on apple: _mm_malloc was undefined. the fix is to just use ↵Gravatar Benoit Jacob2009-01-05
| | | | malloc since on apple it already returns aligned ptrs
* oops forgot important parenthesesGravatar Benoit Jacob2009-01-04
|
* Fix bug in Matrix, in determining whether to overload operator new with an ↵Gravatar Benoit Jacob2009-01-04
| | | | aligned one, introduced in r905543
* * the 4th template param of Matrix is now Options. One bit for storageGravatar Benoit Jacob2009-01-04
| | | | | | | | | | | | | | | | 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
* * In LU solvers: no need anymore to use row-major matricesGravatar Benoit Jacob2009-01-03
| | | | | | | | * 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.
* * fix a vectorization issue in ProductGravatar Gael Guennebaud2008-12-19
| | | | | | * 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
* * fix in IO.h, a useless copy was made because of assignment fromGravatar Benoit Jacob2008-12-18
| | | | | | | | | | | | | | | 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.
* * call it beta2Gravatar Benoit Jacob2008-12-07
| | | | | * improvements in Matrix documentation * document copyCoeff and copyPacket even if it's hidden from doxygen
* * Much better, consistent error msgs when mixing different scalar types:Gravatar Benoit Jacob2008-12-03
| | | | | | | | | | | | | - 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
* add internal documentationGravatar Benoit Jacob2008-11-30
|
* Update e-mail addressGravatar Benoit Jacob2008-11-24
|
* * add .imag() functionGravatar Gael Guennebaud2008-11-14
| | | | | | * fix a very old bug in EigenSolver that I had completely forgotten (thanks to Timothy to refresh my mind) * fix doc of Matrix::Map
* refinements in Matrix docGravatar Benoit Jacob2008-11-03
|
* Matrix documentation reworkGravatar Benoit Jacob2008-11-03
|