| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
we don't need to add other specialization of MatrixBase::operator=, Matrix::=,
and Matrix::Matrix(...)
|
|
|
|
|
|
|
|
| |
* 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.)
|
| |
|
|
|
|
|
|
| |
* add missing assert in resize(int)
* add examples for all resize variants
* expand docs (part of which is from Tim Hutt's e-mail)
|
|
|
|
| |
Matrix::_check_template_params().
|
| |
|
|
|
|
| |
it never made very precise sense. but now does it still make any?
|
|
|
|
|
|
|
| |
--->they go into Matrix as they resize.
*add isConstant() alias to isApproxToConstant()
*extend unit-test
*change an assert into a static assert
|
| |
|
|
|
|
|
| |
have a Matrix(Scalar,Scalar) ctor. (useful for std::complex, user
defined types, etc.
|
|
|
|
|
|
|
| |
* set AutoAlign=0, DontAlign!=0
* set Dynamic=33331
* add check on fixed sizes
* bump version to 2.0.52
|
|
|
|
|
|
| |
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
|
|
|
|
| |
return-by-value API style (will soon use it for the transform products)
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
* improve Experimental.dox
* update urls from /api/ to /dox/
|
|
|
|
|
| |
if defined, already initialized matrices won't be automatically resized in assignments
uninitialized matrices may still be initialized
|
|
|
|
|
|
| |
ensures they can't be bypassed (e.g.
until now it was possible to bypass the static assert on sizes)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
|
|
|
|
|
|
| |
* update test_stdvector
* Quaternion() does nothing (instead of bug)
* update test_geometry
* some renaming
|
|
|
|
|
| |
std::vector<VectorXd>
update unit test
|
| |
|
|
|
|
| |
ei_aligned_free
|
|
|
|
| |
name as parameter
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
(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
|
| |
|
| |
|
|
|
|
| |
doing QVector<Vector3d>...
|
|
|
|
| |
automatic when the _child_ class is a struct.
|
|
|
|
|
|
|
| |
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 transform-from-matrices test
*undo an unwanted change in Matrix
|
|
|
|
| |
malloc since on apple it already returns aligned ptrs
|
| |
|
|
|
|
| |
aligned one, introduced in r905543
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* improvements in Matrix documentation
* document copyCoeff and copyPacket even if it's hidden from doxygen
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
| |
|
|
|
|
|
|
| |
* fix a very old bug in EigenSolver that I had completely forgotten
(thanks to Timothy to refresh my mind)
* fix doc of Matrix::Map
|
| |
|
| |
|