Gael Guennebaud
01b4b6e456
improve accuracy of 3x3 direct eigenvector extraction
2011-11-23 22:43:40 +01:00
Benoit Jacob
ffe6d1f901
Alignment fixes:
...
* Fix AlignedBit computation for Plain Objects
* use it for the conditional alignment of operator new
* only overload new in PlainObjectBase, don't overload again in Matrix and Array
2011-11-22 09:04:31 -05:00
Gael Guennebaud
f278a3eaba
stop fill pivoting LU only if the pivot is exactly 0
2011-11-22 09:18:54 +01:00
Benoit Jacob
bc6d78982f
Bugs 157 and 377 - General tightening/testing of vectorwise ops:
...
* add lots of static assertions making it very explicit when all these ops
are supposed to work:
** all ops require the rhs vector to go in the right direction
** all ops already require that the lhs and rhs are of the same kind
(matrix vs vector) otherwise we'd have to do complex work
** multiplicative ops (introduced Kibeom's patch) are restricted to arrays, if only because for matrices they could be ambiguous.
* add a new test, vectorwiseop.cpp.
* these compound-assign operators used to be implemented with for loops:
for(Index j=0; j<subVectors(); ++j)
subVector(j).array() += other.derived().array();
This didn't seem to be needed; replaced by using expressions like operator+ and operator- did.
2011-11-18 11:10:27 -05:00
Kibeom Kim
de22ad117c
bug #157 - Implemented *= /= * / operations for VectorwiseOp (e.g. mat.colwise())
2011-11-17 17:57:45 -05:00
Jitse Niesen
08c0edae86
Move EIGEN_USING_MATRIX_TYPEDEFS macros to Eigen2Support.
2011-11-16 14:32:50 +00:00
Dennis Schridde
db36e4204f
[Geometry/AlignedBox] New typedefs, like for Core/Matrix
...
Includes 1-4 and dynamic sized boxes for int, float and double type.
Also changes the tests to use these typedefs.
2011-11-09 22:12:28 +01:00
Gael Guennebaud
8fbbbe7521
fix some include paths
2011-11-16 09:27:38 +01:00
Gael Guennebaud
cb2f1944e2
add the new module headers
2011-11-12 15:22:35 +01:00
Gael Guennebaud
53fa851724
move sparse solvers from unsupported/ to main Eigen/ and remove the "not stable yet" warning
2011-11-12 14:11:27 +01:00
Gael Guennebaud
3e4a68cc60
optimize vectorized reductions by peeling the loop:
...
- x2 for squaredNorm() on double
- peeling the loop with a peeling factor of 4 leads to even better perf
for large vectors (e.g., >64) but it makes more difficult to keep good performance on smaller ones.
2011-11-12 09:19:48 +01:00
Gael Guennebaud
c110abb7d2
fix performance issue with SPMV
2011-11-11 06:04:31 +01:00
Dennis Schridde
3a82aa1133
[Core/Matrix] Fix: Clear the right typedef macro
2011-11-09 12:25:55 +00:00
Gael Guennebaud
fb3aa7220f
reimplement abs2 not to use std::norm which is incredibly slow.
2011-11-08 22:42:51 +01:00
Jitse Niesen
45a6bb34c3
Add simple example on how to compute Cholesky decomposition.
2011-11-07 17:14:06 +00:00
Marton Danoczy
f422668d39
Patches to support ARM NEON with Clang 3.0 and LLVM-GCC
2011-11-04 16:37:10 +01:00
Benoit Jacob
1b98b73472
Refactor force-inlining macros and use EIGEN_ALWAYS_INLINE to force inlining of the integer overflow helpers, whose non-inlining caused major performance problems, see the mailing list thread 'Significant perf regression probably due to bug #363 patches'
2011-11-06 16:27:41 -05:00
Benoit Jacob
ab3f138b23
In the Matrix constructor taking (rows, cols), statically assert that the types are integer.
...
The 2D vector ctor taking (x, y) is not concerned.
2011-11-05 23:56:48 -04:00
Gael Guennebaud
478de03bd8
fix a couple of warnings in the unit tests
2011-11-05 23:30:49 +01:00
Gael Guennebaud
1de769d122
remove deprecated assert
2011-11-04 14:42:54 +01:00
Jitse Niesen
a594ac3966
Allow for more iterations in SelfAdjointEigenSolver (bug #354 ).
...
Add an assert to guard against using eigenvalues that have not converged.
Add call to info() in tutorial example to cover non-convergence.
2011-11-02 14:18:20 +00:00
Jan Oberländer
fa7c08a831
bug #365 - Rename B0 in GeneralBlockPanelKernel.h to avoid name clash
...
with termios.h on POSIX systems.
2011-10-31 10:44:09 -04:00
Benoit Jacob
9df2f5c923
bug #369 - Quaternion alignment is broken
...
The problem was two-fold:
* missing aligned operator new
* Flags were mis-computed, the Aligned constant was misused
2011-10-31 09:23:41 -04:00
Adolfo Rodriguez Tsourouksdissian
4477843bdd
bug #206 - part 4: Removes heap allocations from JacobiSVD and its preconditioners
2011-10-30 23:55:20 -04:00
Adolfo Rodriguez Tsourouksdissian
5e431779f3
bug #206 - part 3: Reimplement FullPivHouseholderQR<T>::matrixQ() using ReturnByValue
2011-03-08 19:04:31 +01:00
Adolfo Rodriguez Tsourouksdissian
7bf0e8cd82
bug #206 - part 2: For HouseholderSequence objects, added non-allocating versions of evalTo() and applyThisOnTheRight/Left that take additional working vector parameters.
2011-10-30 23:55:16 -04:00
Benoit Jacob
bca18a13ea
The most important inline keyword ever? Without it, gcc failed to inline this function, which is called by all matrix constructors...
2011-10-25 20:45:26 -04:00
Gael Guennebaud
1ddf88060b
update sparse*sparse product: the default is now a conservative algorithm preserving symbolic non zeros. The previous with auto pruning of the small value is avaible doing: (A*B).pruned() or (A*B).pruned(ref) or (A*B).pruned(ref,eps)
2011-10-24 11:44:53 +02:00
Gael Guennebaud
39d4585bff
add the possiibility to disable deprectated warnings (useful for deprecated unit tests!)
2011-10-24 09:40:37 +02:00
Gael Guennebaud
70df09b76d
move DynamicSparseMatrix to SparseExtra
2011-10-24 09:31:33 +02:00
Benoit Jacob
de69129f56
forgot inline keyword
2011-10-17 08:49:59 -04:00
Benoit Jacob
16b638c159
Throw std::bad_alloc even when exceptions are disabled, by doing new int[size_t(-1)].
...
Don't throw exceptions on aligned_malloc(0) (just because malloc's retval is null doesn't mean error, if size==0).
Remove EIGEN_NO_EXCEPTIONS option, use only compiler standard defines. Either exceptions are enabled or they aren't.
2011-10-17 08:44:44 -04:00
Benoit Jacob
dcbc985a28
bug #363 - add test for integer overflow in size computations
2011-10-16 16:12:19 -04:00
Benoit Jacob
739559b08a
bug #363 - check for integer overflow in size=rows*cols computations
2011-10-16 16:12:19 -04:00
Benoit Jacob
0c6055c285
bug #363 - check for integer overflow in byte-size computations
2011-10-16 16:12:19 -04:00
Gael Guennebaud
a5761d6dd7
fix sparse tri-solve for full matrices
2011-10-11 20:35:52 +02:00
Gael Guennebaud
b94c00226f
make it compatible with Diagonal<>
2011-10-11 11:28:13 +02:00
Gael Guennebaud
ae9c96a32d
fix assignment to a set of sparse inner vectors
2011-10-10 16:16:37 +02:00
Gael Guennebaud
4e7f38ffc7
fix nesting
2011-10-09 22:19:01 +02:00
Jitse Niesen
ac3ad9c1e7
Convert tabs to spaces.
2011-09-27 15:47:04 +01:00
Jitse Niesen
17c321617d
Fix bug #286 : Infinite loop in JacobiSVD with denormals
2011-09-27 14:25:02 +01:00
Gael Guennebaud
c331c092d5
no comment
2011-09-21 14:20:41 +02:00
Gael Guennebaud
7301f4345c
quick workaround of MSVC9' ICE in pset1
2011-09-21 14:18:41 +02:00
Gael Guennebaud
5d1836b182
accept both STL and Eigen's containers for reserve()
2011-09-20 02:04:03 +02:00
Jitse Niesen
2092b45d0d
Bug fix for matrix1 * matrix2 * scalar1 * scalar2.
...
See report on http://forum.kde.org/viewtopic.php?f=74&t=96947 .
2011-09-19 15:07:19 +01:00
Jitse Niesen
6b006772f1
Fix LDLT::solve() if matrix singular but solution exists (bug #241 ).
...
Clarify this in docs and add regression test.
2011-09-11 06:30:53 +01:00
Gael Guennebaud
d52d8e4a53
reactivate the sorting in the experimental sparse-sparse product
2011-09-08 13:43:32 +02:00
Gael Guennebaud
7706bafcfd
add the possibility to reserve room for inner vector in SparseMatrix
2011-09-08 13:42:54 +02:00
Jitse Niesen
477d3e5726
Update docs of PlainObjectBase::Map(); fixes bug #335 .
...
Also fix some typos.
2011-09-03 15:18:21 +01:00
Gael Guennebaud
8414be739b
fix bug #330 : Index to int conversion warning
2011-08-23 11:02:10 +02:00