Gael Guennebaud
92a35c93b2
* extended the cache friendly products to support C = alpha * A * M and C += alpha * A * B
...
* this allows to optimize xpr like C -= lazy_product, still have to catch "scalar_product_of_lazy_product"
* started to support conjugate in cache friendly products (very useful to evaluate A * B.adjoint() without
evaluating B.adjoint() into a temporary
* compilation fix
2009-07-07 11:39:19 +02:00
Gael Guennebaud
544888e342
add a generic mechanism to copy a special matrix to a dense matrix so that
...
we don't need to add other specialization of MatrixBase::operator=, Matrix::=,
and Matrix::Matrix(...)
2009-07-07 09:05:20 +02:00
Gael Guennebaud
1aea45335f
* bybye Part, welcome TriangularView and SelfAdjointView.
...
* 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.)
2009-07-06 23:43:20 +02:00
Gael Guennebaud
08e419dcb1
* update sparse module wrt new diagonal matrix impl
...
* fix a bug is SparseMatrix
2009-07-04 11:16:27 +02:00
Benoit Jacob
2de9b7f537
fully vectorize DiagonalProduct
...
(it used to be partially vectorized and that had been lost in the big changes from the previous commit)
2009-06-29 04:01:31 +02:00
Benoit Jacob
6809f7b1cd
new implementation of diagonal matrices and diagonal matrix expressions
2009-06-28 21:27:37 +02:00
Benoit Jacob
fc9000f23e
only disable the inline ASM if we're NEITHER gcc nor icc. right ??
2009-06-26 05:32:21 +02:00
Benoit Jacob
6ccb97620a
patch by Patrick Mihelich: use empty struct + anonymous namespace for NoChange
2009-06-25 03:33:47 +02:00
Benoit Jacob
903acf0d5c
add missing code snippets for newer Matrix methods and PartialLU::solve()
2009-06-25 00:57:51 +02:00
Benoit Jacob
03ad303d14
* add resize(int, NoChange) and resize(NoChange, int)
...
* add missing assert in resize(int)
* add examples for all resize variants
* expand docs (part of which is from Tim Hutt's e-mail)
2009-06-24 22:07:03 +02:00
Gael Guennebaud
a44f7cf440
re-enable the fast unaligned loads for gcc and icc using inline assembly
...
(this allows to avoid incompatible pointer casts and to specify the dependency to the data explicitely)
2009-06-24 10:48:36 +02:00
Gael Guennebaud
aa17b5b514
use the slower unaligned load intrinsics in ei_ploadu because GCC mess up with my tricks
2009-06-23 23:28:34 +02:00
Benoit Jacob
7d48ed4be3
refine the check to disable alignment. now it's disabled on gcc3 (where we don't vectorize anyway)
2009-06-21 04:56:01 +02:00
Gael Guennebaud
627595ad19
* rename PartialRedux to VectorwiseOp
...
* add VectorwiseOp's +, -, +=, -= operators
2009-06-10 11:20:30 +02:00
Hauke Heibel
f26c691678
Renamed internal helper functions from the Memory header.
2009-06-04 17:25:15 +02:00
Hauke Heibel
5f04f8eb6b
Fixes #9 . Thanks to the (unknown) bug contributor.
2009-06-04 09:11:35 +02:00
Hauke Heibel
6530c8f5b4
A much simplified version of the earlier commit introducing way fewer changes compared to changeset f292d2352e
...
.
The reason of the previous commit was incorrect. The smart pointers issues were actually a result of issue 9.
2009-06-03 22:22:15 +02:00
Hauke Heibel
71e5cbcbc4
Added specializations for DontAlign when using Dynamic matrices.
...
This allows users to store Matrices in smart pointers without the
need for a specialized allocator/de-allocator.
2009-06-03 16:47:38 +02:00
Hauke Heibel
f292d2352e
Relaxed checks againts _MaxRows and _MaxCols in Matrix::_check_template_params().
2009-05-29 09:09:48 +02:00
Benoit Jacob
ee92009fd8
make Umeyama, and its unit-test, work for me on gcc 4.3
2009-05-27 23:10:24 +02:00
Benoit Jacob
86be59124d
fix the static assert checking the size template parameters.
2009-05-27 23:07:29 +02:00
Hauke Heibel
4d1e492c00
* Umeyama has now similar performance for RowMajor and ColMajor layouts.
...
* Fixed a bug in umeyama for fixed size matrices.
* Fixed the umeyama unit test for fixed size matrices.
* Added XprHelper::ei_plain_matrix_type_row_major.
2009-05-27 19:24:05 +02:00
Benoit Jacob
42848498aa
fixes #5 : freebsd really has aligned malloc
2009-05-22 23:54:52 +02:00
Benoit Jacob
7667a93cbe
merge
2009-05-22 20:31:26 +02:00
Benoit Jacob
6347b1db5b
remove sentence "Eigen itself is part of the KDE project."
...
it never made very precise sense. but now does it still make any?
2009-05-22 20:25:33 +02:00
Gael Guennebaud
dd45c4805c
* add a writable generic coeff wise expression (CwiseUnaryView)
...
* add writable .real() and .imag() functions
2009-05-20 15:41:23 +02:00
Benoit Jacob
934d6b4749
fix #2 , bug in Diagonal::MaxRowsAtCompileTime when Index==Dynamic
2009-05-17 16:00:56 +02:00
Benoit Jacob
dd390470e1
simplification (no reason anymore to write that in that convoluted way)
2009-05-15 16:05:45 +00:00
Benoit Jacob
5ee9f1a705
argh, forgot to re-add the throw()
2009-05-15 15:54:52 +00:00
Benoit Jacob
126284d08b
* fix bugs in EigenTesting.cmake: it didn't work with -DEIGEN_NO_ASSERTION_CHECKING=ON
...
* only try...catch if exceptions are enabled
2009-05-15 15:53:26 +00:00
Benoit Jacob
7c14e1eac4
add partial-pivoting LU decomposition
...
the name 'PartialLU' is not meant to be definitive!
make inverse() and determinant() use it, so it's *almost* considered
well tested.
2009-05-13 02:02:22 +00:00
Benoit Jacob
9afd1324fd
constant Diagonal ---> DiagonalBits
...
introduce ei_is_diagonal to check for it
DiagonalCoeffs ---> Diagonal and allow Index to by Dynamic
-> add MatrixBase::diagonal(int) with unittest and doc
2009-05-10 16:24:39 +00:00
Gael Guennebaud
b6c76c30cd
apply patch from Hauke Heibel cleaning overloaded operator new/detete
2009-05-07 20:33:48 +00:00
Benoit Jacob
47fc3858b9
oops, didn't want to commit that
2009-05-07 18:40:06 +00:00
Benoit Jacob
c8a22dbc08
CREDIT Hauke Heibel, more std::vector::insert fixes
2009-05-07 18:38:07 +00:00
Benoit Jacob
4f0af00e51
*add missing overloads of setZero, etc... that were mentioned in the tutorial
...
--->they go into Matrix as they resize.
*add isConstant() alias to isApproxToConstant()
*extend unit-test
*change an assert into a static assert
2009-05-06 21:40:24 +00:00
Gael Guennebaud
1e286464ab
* compilation fixes for gcc 3.3
...
* test Part::swap
2009-05-06 08:43:38 +00:00
Thomas Capricelli
ddb6e96d48
fix warnings with recent gcc
2009-05-04 13:55:21 +00:00
Benoit Jacob
dec09a618d
fix warning, unused variable dummy
2009-05-04 13:01:23 +00:00
Benoit Jacob
b60571a193
fix warnings with unused static functions
2009-05-04 12:49:56 +00:00
Benoit Jacob
95bda5e6ab
let the user disable alignment altogether by #defining EIGEN_DONT_ALIGN.
...
Until now, the user had to edit the source code to do that.
Internally, add EIGEN_ALIGN that takes into account both EIGEN_DONT_ALIGN.and
EIGEN_ARCH_WANTS_ALIGNMENT. From now on, only EIGEN_ALIGN should be used to
test whether we want to align.
2009-05-03 13:50:56 +00:00
Gael Guennebaud
7029ed6b88
ok, this time cast should really work ; sorry for the noise
2009-04-29 17:39:39 +00:00
Gael Guennebaud
428a12902a
fixed my mistake in cast
2009-04-29 17:05:19 +00:00
Gael Guennebaud
9e9e99a42e
casting to the same type no longer generates a CwiseUnaryOp
2009-04-29 14:57:18 +00:00
Gael Guennebaud
e722f55382
fix the Matrix(int,int)/vector 2D ctors issue so that we really
...
have a Matrix(Scalar,Scalar) ctor. (useful for std::complex, user
defined types, etc.
2009-04-24 14:38:40 +00:00
Benoit Jacob
32e9801890
CREDIT Ross Smith: fix posix_memalign detection
2009-04-24 13:26:36 +00:00
Gael Guennebaud
c7bb7436f9
make the ei_p* math functions overloads instead of template
...
specializations
2009-04-22 21:35:50 +00:00
Gael Guennebaud
d78eb02627
add aligned_allocator operator == and != as suggested by Hauke Heibel
2009-04-09 21:22:02 +00:00
Benoit Jacob
0c99de5a17
more patches from Hauke Heibel: compilation/warning fixes from VC++
2009-04-09 17:19:17 +00:00
Benoit Jacob
e6332cba4b
forward-port r951449: patch by Hauke Heibel: compile fix with VS 9
2009-04-09 12:06:13 +00:00