Benoit Steiner
cbd7e98174
Merged the latest version of the code from eigen/eigen
2014-02-18 18:51:24 -08:00
Benoit Steiner
7ed9441ea4
Reverted the definition of the EIGEN_ALIGN to its former meaning (i.e. a boolean)
...
Created a new EIGEN_ALIGN_BYTES define to encode how the data should be aligned
Fixed a few remaining alignment issues exposed when the Eigen code is compiled with avx enabled.
Created a new EIGEN_ALIGN_DEFAULT define, which is set to the minimum alignment value required for the chosen instruction set. Use this value instead of EIGEN_ALIGN32 to preserve the existing alignment on SSE/Altivec/Neon.
2014-02-18 18:06:44 -08:00
Gael Guennebaud
37a1d736bf
_MatrixTypeNested must be public in sparse Block
2014-02-18 13:35:24 +01:00
Gael Guennebaud
3573a10712
Fix support for row (resp. column) of a column-major (resp. row-major) sparse matrix
2014-02-17 13:46:17 +01:00
Gael Guennebaud
4b6b3f310f
Fix a few Index to int buggy conversions
2014-02-15 09:35:23 +01:00
Gael Guennebaud
cd606bbc94
Fix infinite loop in sparselu
2014-02-14 23:10:16 +01:00
Gael Guennebaud
0508af4287
Merged in martinhofernandes/eigen (pull request PR-40)
...
Better fix for bug #503
2014-02-14 15:31:39 +01:00
Gael Guennebaud
97965dde9b
alloca is not necessarily alligned on windows
2014-02-14 00:04:38 +01:00
Gael Guennebaud
0b1430ae10
Fix propagation of index type
2014-02-13 23:58:28 +01:00
Gael Guennebaud
3291580630
Fix bug #740 : overflow issue in stableNorm
2014-02-13 15:44:01 +01:00
Jitse Niesen
7ea6ef8969
Fix documentation of MatrixBase::applyOnTheLeft (bug #739 )
...
Add examples; move methods from EigenBase.h to MatrixBase.h
2014-02-12 14:03:39 +00:00
Gael Guennebaud
31c63ef0b4
fix compilation of Transform * UniformScaling
2014-02-12 13:37:23 +01:00
Jitse Niesen
ff8d81762d
Fix bug #736 : LDLT isPositive returns false for a positive semidefinite matrix
...
Add unit test covering this case.
2014-02-06 11:06:06 +00:00
Hauke Heibel
6c527bd811
Fixed assignment from QMatrix to Transform for compact storage.
2014-02-04 07:02:34 +01:00
Benoit Steiner
64a85800bd
Added support for AVX to Eigen.
2014-01-29 11:43:05 -08:00
Gael Guennebaud
a7621809fe
Remove useless register keyword, and optimize predux_min/max for SSE4
2014-01-25 16:54:13 +01:00
Gael Guennebaud
deab937d45
NVCC: fix closed-form eigenvalue decomposition, workaround gcc4.7/nvcc5.5 issue
2014-01-24 12:50:29 +01:00
Christoph Hertzberg
66f1c56aab
sparse_solve_retval_base::defaultEvalTo created extremely oversized temporary matrices in some cases
2014-01-19 03:04:51 +01:00
Martinho Fernandes
4c08385b74
Merged eigen/eigen into default
2014-01-10 11:22:24 +01:00
Martinho Fernandes
4ccff2d028
Placement new must use void* to avoid user-specific overloads.
2014-01-10 11:20:40 +01:00
Martinho Fernandes
3a4616d6e3
Add C++11 allocator overloads to avoid implicit conversions.
2014-01-10 11:02:11 +01:00
Gael Guennebaud
92190a1caf
Add an example showing how to use C++11 random distributions
2014-01-07 20:23:35 +01:00
Gael Guennebaud
ac409f51f1
Document the fact that Random and setRandom are not reentrant (so not thread-safe)
2014-01-07 20:17:59 +01:00
Benoit Steiner
c8c81c1e74
Improved the efficiency if the block-panel matrix multiplication code: the change reduces the pressure on the L1 cache by removing the calls to gebp_traits::unpackRhs(). Instead the packetization of the rhs blocks is done on the fly in gebp_traits::loadRhs(). This adds numerous calls to pset1<ResPacket> (since we're packetizing on the fly in the inner loop) but this is more than compensated by the fact that we're decreasing the memory transfers by a factor RhsPacketSize.
2014-01-02 16:18:32 -08:00
Christoph Hertzberg
60cd361ebe
Fix bug #222 . Make temporary matrix column-major independently of EIGEN_DEFAULT_TO_ROW_MAJOR
2014-03-26 17:48:30 +01:00
Gael Guennebaud
c8bfbf4a7e
Merged in prclibo/eigen (pull request PR-49)
...
fixed a template type conversion bug in AngleAxis found by Pei Luo
2014-03-25 10:54:40 +01:00
Gael Guennebaud
01fd880424
Revert previous change and introduce a new workaround regarding gcc generating a shufps instruction instead of the more efficient pshufd instruction.
...
The trick consists in introducing a new pload1 function to be used in low level product kernels for which bug #203 does not apply.
Indeed, it turned out that using inline assembly prevents gcc of doing a good job at instructtion reordering.
2014-03-20 16:03:46 +01:00
Bo Li
e3fb190edf
merged incoming udpates
2014-03-20 22:11:13 +08:00
Bo Li
cfd3d6ce9c
fixed a template type conversion bug in AngleAxis found by Pei Luo
2014-03-20 22:05:40 +08:00
Gael Guennebaud
c39a3fa7a1
Makes gcc to generate a pshufd instruction for pset1
2014-03-20 10:14:26 +01:00
Gael Guennebaud
2a564695f0
Simpler and hopefully more future-proof fix for bug #503 (aligned_allocator with c++11)
2014-03-19 13:28:50 +01:00
Jitse Niesen
a58325ac2f
Minor corrections in QR docs.
2013-12-31 18:06:28 +00:00
Gael Guennebaud
548216b7ca
QuaternionBase::slerp was documented twice and one explanation was ambiguous.
2014-01-12 11:09:06 +01:00
Christoph Hertzberg
bbf373bbe9
Applied patch from Richard JW Roberts, resolving bug #704
2013-12-21 22:14:03 +01:00
Christoph Hertzberg
1200bd2ef0
Grafted from 5725:cdedc9e90d21099e8b3191f95425680ebe710d6f
...
and resolved conflicts
2013-12-21 21:46:27 +01:00
Christoph Hertzberg
8a49dd5626
Fixed typos in comments
2013-12-19 11:55:17 +01:00
Benoit Steiner
ce99b502ce
Use vectorization when packing row-major rhs matrices. (bug #717 )
2013-12-17 10:49:43 -08:00
Gael Guennebaud
ba2f79e680
Fix selfadjoint_matrix_vector_product for complex with packet size > 2 (e.g., AVX)
2014-03-07 23:18:20 +01:00
Gael Guennebaud
72461be962
Fix typo and formating
2014-03-07 23:13:14 +01:00
Christoph Hertzberg
d5cc083782
Fixed bug #754 . Only inserted (!defined(_WIN32_WCE)) analog to alloc and free implementation (not tested, but should be correct).
2014-03-05 14:50:00 +01:00
Gael Guennebaud
7313f32efa
Help MSVC to inline some trivial functions
2014-03-04 17:24:00 +01:00
Christoph Hertzberg
04e1e38eed
bug #289 : Removed useless static keywords
2014-03-04 15:10:29 +01:00
Gael Guennebaud
76d2ca27e5
Fix PaStiX support for Pastix 5.2
2014-02-28 13:11:39 +01:00
Gael Guennebaud
ac69d8769f
Remove early termination in LDLT: the zero on the diagonal of the input matrix does not mean the matrix is not full rank. Typical examples are matrices coming from LS with linear equality constraints.
2014-02-26 10:12:27 +01:00
Christoph Hertzberg
6b6071866b
Make pivoting HouseholderQR compatible with custom scalar types
2014-02-25 18:55:16 +01:00
Christoph Hertzberg
d61345f366
Fix bug #609 : Euler angles are in Range [0:pi]x[-pi:pi]x[-pi:pi].
...
Now the unit test verifies this (also that it is bijective in this range).
2013-11-29 19:42:11 +01:00
Gael Guennebaud
49034d1570
Fix bug #708 : add placement new/delete for array
2013-11-27 09:46:59 +01:00
Gael Guennebaud
28b2abdbea
Fix FullPivHouseholderQR ctors for non squared fixed size matrix types
2013-11-19 12:53:46 +01:00
Gael Guennebaud
654eab3bd6
Add scaling in JacobiSVD to avoid overflows
2013-11-19 11:53:48 +01:00
Gael Guennebaud
46dd1bb1be
Workaround fixing aliasing issue in x = SparseLU::solve(x)
2013-11-15 11:19:19 +01:00
Gael Guennebaud
6b471f205e
fix overflow and ambiguity in SparseLU memory allocation
2013-11-15 10:59:19 +01:00
Christoph Hertzberg
e59b38abef
Implement boolean reductions for zero-sized objects
2013-11-13 16:47:02 +01:00
Gael Guennebaud
8f2d068e84
Use the specialization of Block<SparseMatrix> for const matrices too
2013-11-10 16:16:50 +01:00
Gael Guennebaud
5c2d1b4710
Add missing nonZeros() overload in Block<SparseMatrixBase<>>
2013-11-10 15:26:07 +01:00
Leszek Swirski
b93520b1a5
Install functor folder with cmake
2013-11-08 14:07:11 +00:00
Gael Guennebaud
cb8da751a0
fix broken commit
2013-11-07 22:44:37 +01:00
Gael Guennebaud
76c230a84d
Add an option to test evaluators globally
2013-11-07 16:38:14 +01:00
Gael Guennebaud
57327cc2d5
Drop evaluators for SwapWrapper and SelfCwiseBinaryOp
2013-11-07 14:07:27 +01:00
Gael Guennebaud
5887e82729
Clean evaluator_impl_base. It will probably be removed in the future
2013-11-07 14:02:47 +01:00
Gael Guennebaud
af9851d1d7
bug #99 : move the creation of the evaluator to a central place, and make generic_dense_assignment_kernel hold the destination and source evaluators
2013-11-07 12:03:12 +01:00
Gael Guennebaud
8fe609311d
Move internal::swap to numext to fix ambiguous call with std::swap
2013-11-07 09:01:26 +01:00
Gael Guennebaud
8edc964734
bug #99 : refactor assignment and compound assignment mechanism through "assignment functors" and "assignement kernels".
...
The former is very low level and generic. The later abstarct the former for dense expressions. This refactoring permits
to get rid of the very ugly SwapWrapper and SelfCwiseBinaryOp classes.
In the future, this will also permit to simplify all these evaluation loops and perhaps to reuse them for reduxions.
That will also permit to specialize for operations like expr1 += expr2 outside Eigen, and so for any kind
of expressions (dense, sparse, tensor, etc.)
2013-11-06 18:17:59 +01:00
Gael Guennebaud
a37bdfc955
Fix static/inline order
2013-11-06 11:13:31 +01:00
Gael Guennebaud
03de5c2410
Split the huge Functors.h file
2013-11-06 10:36:10 +01:00
Gael Guennebaud
4f572e4c14
Add minimalistic unit tests for NVCC support
2013-11-05 15:41:45 +01:00
Gael Guennebaud
87aee5fda1
Allow calling attributes of dynamic size objects from device
2013-11-05 15:40:58 +01:00
Gael Guennebaud
1bb1a57ef7
merge with default branch
2013-11-05 10:31:59 +01:00
Gael Guennebaud
7c9cdd6030
SparseLU: fix estimated non-zeros in U
2013-11-05 00:12:14 +01:00
Gael Guennebaud
a236e15048
JacobiSVD: fix a 0/0 issue for complexes
2013-11-04 23:58:18 +01:00
Gael Guennebaud
019dcfc21d
JacobiSVD: move from Lapack to Matlab strategy for the default threshold
2013-11-03 13:18:56 +01:00
Gael Guennebaud
19521c83b8
bug #677 : fix usage of pld instrinsics for ccomplexes
2013-11-02 12:10:48 +01:00
Gael Guennebaud
bbd49d194a
Add a rank method with threshold control to JacobiSVD, and make solve uses it to return the minimal norm solution for rank-deficient problems
2013-11-01 18:21:46 +01:00
Gael Guennebaud
8f496cd3a3
Fix changeset 2702788da7
...
for fixed size matrices
2013-11-01 18:17:55 +01:00
Gael Guennebaud
6dc0e59b1e
Fix bug #677 : compilation issue on arm64 which does not have the PLD instruction
2013-10-31 13:52:43 +01:00
Gael Guennebaud
2702788da7
Fix bug #678 : vectors of row and columns transpositions were not properly resized in FullPivQR
2013-10-29 18:02:18 +01:00
Gael Guennebaud
58c0a6f0fd
Fix unused variable warnings
2013-10-29 17:51:19 +01:00
Christoph Hertzberg
7fae9b358d
Use aligned loads in Matrix-Vector product where possible. Fixes bug #689
2013-10-29 12:42:46 +01:00
Gael Guennebaud
e14f529dac
Merged in martinhofernandes/eigen (pull request PR-33)
...
Fix for bug #503
2013-10-29 11:39:20 +01:00
Gael Guennebaud
90b5d303db
Fix bug #672 : use exceptions in SuperLU if they are enabled only
2013-10-29 11:26:52 +01:00
Gael Guennebaud
9b863c1830
Merged in vanhoucke/eigen_vanhoucke_unused_variable (pull request PR-34)
...
Silence unused variable warning.
2013-10-29 11:04:47 +01:00
Gael Guennebaud
11fbbc51fa
Fix bug #359 : fix AlignedBit flag of CoeffBasedProduct thus enabling the vectorization of more matrix products
2013-10-28 17:48:32 +01:00
Gael Guennebaud
d3e84b747a
Clarify the meaning of AlignedBit (bug #359 )
2013-10-28 17:44:07 +01:00
Gael Guennebaud
2e606394b1
Fix bug #685 : document the range of Random and setRandom
2013-10-28 17:16:03 +01:00
Gael Guennebaud
285112fc55
Fix bug #688 : make it clearer that CG is for both dense and sparse matrices.
2013-10-28 15:56:30 +01:00
Gael Guennebaud
9f3f42d66a
fix a few "dead stores" warnings
2013-10-26 13:59:02 +02:00
Gael Guennebaud
a0e8577b49
Fix bug #684 : optimize vectorization of array-scalar and scalar-array
2013-10-18 14:56:36 +02:00
Christoph Hertzberg
36052c4911
Added comparisons scalar to array (previously only the array to scalar was possible) (Fixes bug #147 )
...
Extended the unit test for that
2013-10-17 15:37:29 +02:00
Christoph Hertzberg
3d2a3bc755
Copy all format flags (not only precision) from actual output stream when calculating the maximal width
2013-10-17 14:30:09 +02:00
Christoph Hertzberg
ad9dc05663
consider all columns for aligned output (fixes bug #616 )
2013-10-17 14:14:06 +02:00
Christoph Hertzberg
ff075def5c
Copy and paste mistake in last commit
2013-10-17 14:02:00 +02:00
Christoph Hertzberg
4d7dfafbe7
Don't add rowSpacer if columns are not to be aligned
2013-10-17 13:49:56 +02:00
Christoph Hertzberg
3390db099a
Fixes bug #681
...
Also fixed some spelling issues in the documentation
2013-10-17 00:03:00 +02:00
Gael Guennebaud
c6da881849
Fix bug #674 : typo in documentation example for BiCGSTAB. They are now proper snippet files.
2013-10-16 15:25:39 +02:00
Christoph Hertzberg
b61facb08b
Use != instead of < to check for emptiness of iterator range (fixes bug #664 )
2013-10-16 13:10:15 +02:00
Christoph Hertzberg
4a42843513
Make index type of Triplet default to SparseMatrix::Index as suggested by Kolja Brix. Fixes bug #665 .
2013-10-16 13:08:09 +02:00
Gael Guennebaud
b433fb2857
Allow .conservativeResize(rows,cols) on vectors
2013-10-16 12:07:33 +02:00
Christoph Hertzberg
0bce534c8f
Fix bug #679
2013-10-15 19:09:09 +02:00
vanhoucke
3736e00ae7
Silence unused variable warning.
2013-10-04 00:21:03 +00:00
Gael Guennebaud
40f1548b32
Sparse is stable now, so Eigen/Eigen should include Sparse
2013-10-02 23:31:59 +02:00
Desire NUENTSA
54e576c88a
Fix SPQR Solve() when assigning to a Map object
2013-09-26 15:00:22 +02:00