Commit Graph

6390 Commits

Author SHA1 Message Date
Benoit Steiner
114e863f08 Silcenced a few compilation warnings 2015-02-10 12:20:24 -08:00
Benoit Steiner
410895a7e4 Silenced several compilation warnings 2015-02-10 12:13:19 -08:00
Benoit Steiner
4716c2c666 Fixed compilation error 2015-02-10 12:06:19 -08:00
Benoit Steiner
91fe3a3004 Removed a debug printf statement. 2015-02-10 10:29:28 -08:00
Jan Blechta
c3f3580b8f Fix bug #733: step by step solving is not a good example for solveWithGuess 2015-02-10 14:24:39 +01:00
Gael Guennebaud
deecff97ed typo 2015-02-10 19:22:05 +01:00
Gael Guennebaud
c6e8caf090 Allows Lower|Upper as a template argument of CG and MINRES: in this case the full matrix will be considered. 2015-02-10 18:57:41 +01:00
Gael Guennebaud
d10d6a40dd bug #897: Update unsupported iterative solvers based on IterativeSolverBased. 2015-02-10 13:02:59 +01:00
Gael Guennebaud
87629cd639 bug #897: makes iterative sparse solvers use a Ref<SparseMatrix> instead of a SparseMatrix pointer. This fixes usage of iterative solvers with a Map<SparseMatrix>. 2015-02-09 11:41:25 +01:00
Gael Guennebaud
bde98df03f merge 2015-02-09 11:15:37 +01:00
Gael Guennebaud
d4ec48575e Make Block<SparseMatrix> inherit SparseCompressedBase in the case of an inner-panels and fix valuePtr() innerIndexPtr() 2015-02-09 11:14:36 +01:00
Gael Guennebaud
554aa9b31d Add failtests for Ref<SparseMatrix> 2015-02-09 10:24:07 +01:00
Gael Guennebaud
3af29caae8 Cleaning and add more unit tests for Ref<SparseMatrix> and Map<SparseMatrix> 2015-02-09 10:23:45 +01:00
Gael Guennebaud
f2ff8c091e Add a Ref<SparseMatrix> specialization. 2015-02-07 22:04:18 +01:00
Gael Guennebaud
f3be317614 Add a Map<SparseMatrix> specialization. 2015-02-07 22:03:25 +01:00
Gael Guennebaud
08081f8293 Make SparseTranspose inherit SparseCompressBase when possible 2015-02-07 22:02:14 +01:00
Gael Guennebaud
7838fda82c Add a SparseCompressedBase class providing (un)compressed accessors (like data()/*Stride() for dense matrices),
and a CompressedAccessBit flag (similar to DirectAccessBit for dense matrices).
2015-02-07 22:00:46 +01:00
Benoit Steiner
3ba6647398 Fixed the cxx11_meta test 2015-02-06 06:00:59 -08:00
Benoit Steiner
01f7918788 Pulled latest fixes 2015-02-06 05:30:20 -08:00
Gael Guennebaud
b50ffaddf2 merge 2015-02-06 14:27:12 +01:00
Gael Guennebaud
74e460b995 Fix symmetric product 2015-02-06 14:26:24 +01:00
Gael Guennebaud
c03c73c9b7 Fix clang compilation 2015-02-06 14:26:12 +01:00
Gael Guennebaud
668518aed6 Fix non initialized entries and comparison of very small numbers 2015-02-06 14:25:41 +01:00
Benoit Steiner
c739102ef9 Pulled the latest changes from the trunk 2015-02-06 05:25:03 -08:00
Benoit Steiner
2559fa9b0f Fixed compilation error in the tensor broadcasting test 2015-02-06 02:55:18 -08:00
Benoit Steiner
dcb2a8b184 Added the EIGEN_HAS_CONSTEXPR define
Gate the tensor index list code based on the value of EIGEN_HAS_CONSTEXPR
2015-02-06 02:51:59 -08:00
Filippo Basso
a8f2c6eec7 Using numext::pow instead of std::pow in poly_eval function. 2015-02-04 18:37:51 +00:00
Gael Guennebaud
b1eca55328 Use Ref<> to ensure that both x and b in Ax=b are compatible with Umfpack/SuperLU expectations 2015-02-03 23:46:05 +01:00
Gael Guennebaud
ebdf6a2dbb SPQR: fix default threshold value 2015-02-03 22:32:34 +01:00
Benoit Steiner
f64045a060 Silenced a few more compilation warnings 2015-01-30 19:52:01 -08:00
Benoit Steiner
590f4b0aa3 Silenced some compilation warnings 2015-01-30 19:46:30 -08:00
Benoit Jacob
5ef95fabee bug #936, patch 3/3: Properly detect FMA support on ARM (requires VFPv4)
and use it instead of MLA when available, because it's both more accurate,
and faster.
2015-01-30 17:45:03 -05:00
Benoit Jacob
0f21613698 bug #936, patch 2/3: Remove EIGEN_VECTORIZE_FMA, was redundant with EIGEN_HAS_SINGLE_INSTRUCTION_MADD 2015-01-30 17:44:26 -05:00
Benoit Jacob
340b8afb14 bug #936, patch 1.5/3: rename _FUSED_ macros to _SINGLE_INSTRUCTION_,
because this is what they are about. "Fused" means "no intermediate rounding
between the mul and the add, only one rounding at the end". Instead,
what we are concerned about here is whether a temporary register is needed,
i.e. whether the MUL and ADD are separate instructions.
Concretely, on ARM NEON, a single-instruction mul-add is always available: VMLA.
But a true fused mul-add is only available on VFPv4: VFMA.
2015-01-31 14:15:57 -05:00
Benoit Jacob
9f99f61e69 bug #936, patch 1/3: some cleanup and renaming for consistency. 2015-01-30 17:43:56 -05:00
Benoit Jacob
759bd92a85 bug #935: Add asm comments in GEBP kernels to work around a bug
in both GCC and Clang on ARM/NEON, whereby they spill registers,
severely harming performance. The reason why the asm comments
make a difference is that they prevent the compiler from
reordering code across these boundaries, which has the effect
of extending the lifetime of local variables and increasing
register pressure on this register-tight code.
2015-01-30 17:27:56 -05:00
Gael Guennebaud
f1092d2f73 bug #941: fix accuracy issue in ColPivHouseholderQR, do not stop decomposition on a small pivot 2015-01-30 19:04:04 +01:00
Gael Guennebaud
9d82f7e30d Supernodes was disabled. 2015-01-30 17:24:40 +01:00
Benoit Steiner
e896c0ade7 Marked the contraction operation as read only, since its result can't be assigned. 2015-01-29 10:29:47 -08:00
Benoit Steiner
5a6ea4edf6 Added more tests to cover tensor reductions 2015-01-28 10:02:47 -08:00
Gael Guennebaud
a727a2c4ed bug #933: RealSchur, do not consider the input matrix norm to check negligible sub-diag entries. This also makes this test consistent with the complex and self-adjoint cases. 2015-01-28 16:07:51 +01:00
Benoit Steiner
9dfdbd7e56 mproved the performance of tensor reductions that preserve the inner most dimension(s). 2015-01-27 14:15:31 -08:00
Benoit Steiner
46fc881e4a Added a few benchmarks for the tensor code 2015-01-26 17:46:40 -08:00
Gael Guennebaud
c6eb84aabc Enable vectorization of transposeInPlace for PacketSize x PacketSize matrices 2015-01-26 17:09:01 +01:00
Gael Guennebaud
e1f1091fde Add support for dense ?= diagonal 2015-01-24 10:32:49 +01:00
Gael Guennebaud
b9d314ae19 bug #329: fix typo 2015-01-17 21:55:33 +01:00
Benoit Steiner
14f537c296 gcc doesn't consider that
template<typename OtherDerived> TensorStridingOp& operator = (const OtherDerived& other)
provides a valid assignment operator for the striding operation, and therefore refuses to compile code like:
result.stride(foo) = source.stride(bar);

Added the explicit
   TensorStridingOp& operator = (const TensorStridingOp& other)

as a workaround to get the code to compile, and did the same in all the operations that can be used as lvalues.
2015-01-16 09:09:23 -08:00
Benoit Steiner
641e824c56 Added cube() operation 2015-01-15 11:11:48 -08:00
Benoit Steiner
b5124e7cfd Created many additional tests 2015-01-14 15:46:04 -08:00
Benoit Steiner
54e3633b43 Updated the list of include files 2015-01-14 15:43:38 -08:00