aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/MatrixStorage.h
Commit message (Collapse)AuthorAge
* email changeGravatar Gael Guennebaud2010-06-24
|
* Fixes #104.Gravatar Hauke Heibel2010-06-02
|
* the Index types change.Gravatar Benoit Jacob2010-05-30
| | | | As discussed on the list (too long to explain here).
* * allow matrix dimensions to be 0 (also at compile time) and provide a ↵Gravatar Benoit Jacob2010-03-21
| | | | | | | | | | | | | | | specialization of ei_matrix_array for size 0 * adapt many xprs to have the right storage order, now that it matters * add static assert on expressions to check that vector xprs have the righ storage order * adapt ei_plain_matrix_type_(column|row)_major * implement assignment of selfadjointview to matrix (was before failing to compile) and add nestedExpression() methods * expand product_symm test * in ei_gemv_selector, use the PlainObject type instead of a custom Matrix<...> type * fix VectorBlock and Block mistakes
* introduce EIGEN_DONT_ALIGN_STACK (disables alignment attributes) and ↵Gravatar Benoit Jacob2010-03-06
| | | | | | EIGEN_DONT_ALIGN_HEAP (disables aligned malloc)... you can still use EIGEN_DONT_ALIGN to do both at once.
* Added initial NEON support, most tests pass however we had to use some ↵Gravatar Konstantinos Margaritis2010-03-03
| | | | | | | | hackish workarounds as gcc on ARM (both CodeSourcery 4.4.1 used and experimental 4.5) fail to ensure proper alignment with __attribute__((aligned(16))). This has to be fixed upstream to remove the workarounds.
* Added support for realloc based conservative resizing.Gravatar Hauke Heibel2010-02-27
|
* Piotr's patch was missing many occurences of size_t. So,Gravatar Benoit Jacob2010-02-12
| | | | | using std::size_t; This is the only way that we can ensure QCC support in the long term without having to think about it everytime.
* std:: namespace fixup for more restricive compilers such as QNX's QCCGravatar Piotr Trojanek2010-02-10
|
* Regression tests for number of nested temporaries.Gravatar Hauke Heibel2010-02-09
| | | | Moved EIGEN_DEBUG_MATRIX_CTOR to ei_matrix_storage to capture resize related allocations.
* make some changes to please clang, fix some warnings too.Gravatar Thomas Capricelli2010-01-04
|
* * remove empty destructors in Matrix.h and MatrixStorage.hGravatar Mathieu Gautier2009-12-02
|
* after all we're not aligning to 8byte boundaryGravatar Benoit Jacob2009-10-05
| | | | keep most of the changes though as they make the code more extensible
* we were already aligning to 16 byte boundary fixed-size objects that are ↵Gravatar Benoit Jacob2009-10-05
| | | | | | | | multiple of 16 bytes; now we also align to 8byte boundary fixed-size objects that are multiple of 8 bytes. That's only useful for now for double, not e.g. for Vector2f, but that didn't seem to hurt. Am I missing something? Do you prefer that we don't align Vector2f at all? Also, improvements in test_unalignedassert.
* A much simplified version of the earlier commit introducing way fewer ↵Gravatar Hauke Heibel2009-06-03
| | | | | | | changes compared to changeset f292d2352e0ac9be8a9c5b0d931dc9a2c6da1aa0 . The reason of the previous commit was incorrect. The smart pointers issues were actually a result of issue 9.
* Added specializations for DontAlign when using Dynamic matrices.Gravatar Hauke Heibel2009-06-03
| | | | | This allows users to store Matrices in smart pointers without the need for a specialized allocator/de-allocator.
* 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?
* 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
* * 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
* * label Cholesky and solveTriangular.* as experimentalGravatar Benoit Jacob2009-02-02
| | | | | * improve Experimental.dox * update urls from /api/ to /dox/
* 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
* Based on code + help from Alex Stapleton:Gravatar Benoit Jacob2009-01-09
| | | | | | | | | | | *Add Eigen/StdVector header. Including it #includes<vector> and "Core" and generates a partial specialization of std::vector<T> for T=Eigen::Matrix<...> that will work even with vectorizable fixed-size Eigen types (working around a design issue in the c++ STL) *Add unit-test CCMAIL: alex.stapleton@gmail.com
* 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
* add missing inline keywords (compilation error) spotted by timvdmGravatar Benoit Jacob2009-01-08
|
* 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
|
* * fix a unused variable warningGravatar Benoit Jacob2009-01-04
| | | | * if svnversion returns prose such as "exported" then discard that
* * 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
* * make WithAlignedOperatorNew always align even when vectorization is disabledGravatar Benoit Jacob2008-12-30
| | | | * make ei_aligned_malloc and ei_aligned_free honor custom operator new and delete
* Update e-mail addressGravatar Benoit Jacob2008-11-24
|
* As discussed on ML:Gravatar Gael Guennebaud2008-10-24
| | | | | | | | | | * 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 ;)
* * move memory related stuff to util/Memory.hGravatar Gael Guennebaud2008-08-26
| | | | | * clean ugly doxygen inheritence of expressions * keep improving the documentation... slowly !
* * Fix a couple of issues related to the recent cache friendly productsGravatar Gael Guennebaud2008-07-19
| | | | | | | * Improve the efficiency of matrix*vector in unaligned cases * Trivial fixes in the destructors of MatrixStorage * Removed the matrixNorm in test/product.cpp (twice faster and that assumed the matrix product was ok while checking that !!)
* Optimization: added super efficient rowmajor * vector product (and vector * ↵Gravatar Gael Guennebaud2008-07-13
| | | | | | | | colmajor). It basically performs 4 dot products at once reducing loads of the vector and improving instructions scheduling. With 3 cache friendly algorithms, we now handle all product configurations with outstanding perf for large matrices.
* * fix compilation issue in ProductGravatar Gael Guennebaud2008-07-02
| | | | | * added some tests for product and swap * overload .swap() for dynamic-sized matrix of same size
* fix two bugs dicovered by the previous commit.Gravatar Gael Guennebaud2008-06-16
|
* put inline keywords everywhere appropriate. So we don't need anymore to passGravatar Benoit Jacob2008-05-12
| | | | -finline-limit=1000 to gcc to get good performance. By the way some cleanup.
* Removed ei_pload1, use posix_memalign to allocate aligned memory,Gravatar Gael Guennebaud2008-05-02
| | | | | and make Product ok when only one side is vectorizable (and the product is still vectorized)
* Make the explicit vectorization much more flexible:Gravatar Gael Guennebaud2008-04-25
| | | | | | | | - support dynamic sizes - support arbitrary matrix size when the matrix can be seen as a 1D array (except for fixed size matrices where the size in Bytes must be a factor of 16, this is to allow compact storage of a vector of matrices) Note that the explict vectorization is still experimental and far to be completely tested.
* Added initial experimental support for explicit vectorization.Gravatar Gael Guennebaud2008-04-09
| | | | | | | | | | | | | Currently only the following platform/operations are supported: - SSE2 compatible architecture - compiler compatible with intel's SSE2 intrinsics - float, double and int data types - fixed size matrices with a storage major dimension multiple of 4 (or 2 for double) - scalar-matrix product, component wise: +,-,*,min,max - matrix-matrix product only if the left matrix is vectorizable and column major or the right matrix is vectorizable and row major, e.g.: a.transpose() * b is not vectorized with the default column major storage. To use it you must define EIGEN_VECTORIZE and EIGEN_INTEL_PLATFORM.
* - introduce sum() returning the sum of the coeffs of a vectorGravatar Benoit Jacob2008-03-15
| | | | | - reimplement trace() as just diagonal().sum() - apidoc fixes
* a lot of renamingGravatar Benoit Jacob2008-03-13
| | | | | | | | internal classes: AaBb -> ei_aa_bb IntAtRunTimeIfDynamic -> ei_int_if_dynamic unify UNROLLING_LIMIT (there was no reason to have operator= use a higher limit) etc...
* Removed trailling spaces.Gravatar Gael Guennebaud2008-03-03
|
* * Added generic unary operators (replace Opposite and Conjugate)Gravatar Gael Guennebaud2008-03-03
| | | | | | | | | | | * functor templates are not template template parameter anymore (this allows to make templated functors !) * Main page: extented compiler discussion * A small hack to support gcc 3.4 and 4.0 (see the main page) * Fix a cast type issue in Cast * Various doxygen updates (mainly Cwise stuff and added doxygen groups in MatrixBase to split the huge memeber list, still not perfect though) * Updated Gael's email address
* -merge patch from Gael Guennebaud adding NumTraits for long longGravatar Benoit Jacob2008-02-29
| | | | | | | | | | and long double. -define scalar-multiple operators only for the current Scalar type; thanks to Gael for expaining how to make the compiler understand when automatic casting is needed. -take ScalarMultiple take only 1 template param, again. We lose some flexibility especially when dealing with complex numbers, but we gain a lot of extensibility to new scalar types.
* Patch by Gael Guennebaud:Gravatar Benoit Jacob2008-02-29
| | | | | | | Rework the matrix storage to ensure optimal sizeof in all cases, while keeping the decoupling of matrix sizes versus storage sizes. Also fixing (recently introduced) bugs caused by unwanted reallocations of the buffers.
* big architecture change dissociating "actual" dimensions from "maximum possible"Gravatar Benoit Jacob2008-01-13
| | | | | | | dimension. The advantage is that evaluating a dynamic-sized block in a fixed-size matrix no longer causes a dynamic memory allocation. Other new thing: IntAtRunTimeIfDynamic allows storing an integer at zero cost if it is known at compile time.
* revert most of previous commit. It really is better to forbid defaultGravatar Benoit Jacob2008-01-08
| | | | | constructor for dynamic-size matrices. Now why do I feel like a beheaded chicken running around?