Commit Graph

  • 302377110a Update documentation of Matrix and Array type aliases. Gael Guennebaud 2019-02-20 15:18:48 +01:00
  • 475295b5ff Enable documentation of Array's typedefs Gael Guennebaud 2019-02-20 15:18:07 +01:00
  • 44b54fa4a3 Protect c++11 type alias with Eigen's macro, and add respective unit test. Gael Guennebaud 2019-02-20 14:43:05 +01:00
  • 7195f008ce Merged in ra_bauke/eigen (pull request PR-180) Gael Guennebaud 2019-02-20 13:22:39 +00:00
  • 4e8047cdcf Fix compilation with gcc and remove TR1 stuff. Gael Guennebaud 2019-02-20 13:59:34 +01:00
  • 844e5447f8 Update documentation regarding alignment issue. Gael Guennebaud 2019-02-20 13:54:04 +01:00
  • edd413c184 bug #1409: make EIGEN_MAKE_ALIGNED_OPERATOR_NEW* macros empty in c++17 mode: - this helps clang 5 and 6 to support alignas in STL's containers. - this makes the public API of our (and users) classes cleaner Gael Guennebaud 2019-02-20 13:52:11 +01:00
  • 3b5deeb546 bug #899: make sparseqr unit test more stable by 1) trying with larger threshold and 2) relax rank computation for rank-deficient problems. Gael Guennebaud 2019-02-19 22:57:51 +01:00
  • 482c5fb321 bug #899: remove "rank-revealing" qualifier for SparseQR and warn that it is not always rank-revealing. Gael Guennebaud 2019-02-19 22:52:15 +01:00
  • 9ac1634fdf Fix conversion warnings Gael Guennebaud 2019-02-19 21:59:53 +01:00
  • 292d61970a Fix C++17 compilation Gael Guennebaud 2019-02-19 21:59:41 +01:00
  • 071629a440 Fix incorrect value of NumDimensions in TensorContraction traits. Reported here: #1671 Rasmus Munk Larsen 2019-02-19 10:49:54 -08:00
  • a1646fc960 Commas at the end of enumerator lists are not allowed in C++03 Christoph Hertzberg 2019-02-19 14:32:25 +01:00
  • 2cfc025bda fix unit compilation in c++17: std::ptr_fun has been removed. Gael Guennebaud 2019-02-19 14:05:22 +01:00
  • ab78cabd39 Add C++17 detection macro, and make sure throw(xpr) is not used if the compiler is in c++17 mode. Gael Guennebaud 2019-02-19 14:04:35 +01:00
  • 115da6a1ea Fix conversion warnings Gael Guennebaud 2019-02-19 14:00:15 +01:00
  • 7d10c78738 bug #1046: add unit tests for correct propagation of alignment through std::alignment_of Gael Guennebaud 2019-02-19 10:31:56 +01:00
  • 7580112c31 Fix harmless Scalar vs RealScalar cast. Gael Guennebaud 2019-02-18 22:12:28 +01:00
  • e23bf40dc2 Add unit test for LinSpaced and complex numbers. Gael Guennebaud 2019-02-18 22:03:47 +01:00
  • 796db94e6e bug #1194: implement slightly faster and SIMD friendly 4x4 determinant. Gael Guennebaud 2019-02-18 16:21:27 +01:00
  • 31b6e080a9 Fix regression: .conjugate() was popped out but not re-introduced. Gael Guennebaud 2019-02-18 14:45:55 +01:00
  • c69d0d08d0 Set cost of conjugate to 0 (in practice it boils down to a no-op). This is also important to make sure that A.conjugate() * B.conjugate() does not evaluate its arguments into temporaries (e.g., if A and B are fixed and small, or * fall back to lazyProduct) Gael Guennebaud 2019-02-18 14:43:07 +01:00
  • 512b74aaa1 GEMM: catch all scalar-multiple variants when falling-back to a coeff-based product. Before only s*A*B was caught which was both inconsistent with GEMM, sub-optimal, and could even lead to compilation-errors (https://stackoverflow.com/questions/54738495). Gael Guennebaud 2019-02-18 11:47:54 +01:00
  • ec032ac03b Guard C++11-style default constructor. Also, this is only needed for MSVC Christoph Hertzberg 2019-02-16 09:44:05 +01:00
  • 902a7793f7 Add possibility to bench row-major lhs and rhs Gael Guennebaud 2019-02-15 16:52:34 +01:00
  • 83309068b4 bug #1680: improve MSVC inlining by declaring many triavial constructors and accessors as STRONG_INLINE. Gael Guennebaud 2019-02-15 16:35:35 +01:00
  • 0505248f25 bug #1680: make all "block" methods strong-inline and device-functions (some were missing EIGEN_DEVICE_FUNC) Gael Guennebaud 2019-02-15 16:33:56 +01:00
  • 559320745e bug #1678: Fix lack of __FMA__ macro on MSVC with AVX512 Gael Guennebaud 2019-02-15 10:30:28 +01:00
  • d85ae650bf bug #1678: workaround MSVC compilation issues with AVX512 Gael Guennebaud 2019-02-15 10:24:17 +01:00
  • f2970819a2 bug #1679: avoid possible division by 0 in complex-schur Gael Guennebaud 2019-02-15 09:39:25 +01:00
  • 65e23ca7e9 Revert b55b5c7280 . Rasmus Munk Larsen 2019-02-14 13:46:13 -08:00
  • efeabee445 Merged in ezhulenev/eigen-01 (pull request PR-590) Rasmus Larsen 2019-02-14 21:16:12 +00:00
  • 7b837559a7 Fix signed-unsigned return in RuqQueue Eugene Zhulenev 2019-02-14 10:40:21 -08:00
  • f0d42d2265 Fix signed-unsigned comparison warning in RunQueue Eugene Zhulenev 2019-02-14 10:27:28 -08:00
  • 106ba7bb1a Do not generate no-op cast() and conjugate() expressions Eugene Zhulenev 2019-02-14 09:51:51 -08:00
  • 8c2f30c790 Speedup Tensor ThreadPool RunQueu::Empty() Eugene Zhulenev 2019-02-13 10:20:53 -08:00
  • bdcb5f3304 Let's properly use Score instead of std::abs, and remove deprecated FIXME ( a /= b does a/b and not a * (1/b) as it was a long time ago...) Gael Guennebaud 2019-02-11 22:56:19 +01:00
  • 2edfc6807d Fix compilation of empty products of the form: Mx0 * 0xN Gael Guennebaud 2019-02-11 18:24:07 +01:00
  • eb46f34a8c Speed up 2x2 LU by a factor 2, and other small fixed sizes by about 10%. Not sure that's so critical, but this does not complexify the code base much. Gael Guennebaud 2019-02-11 17:59:35 +01:00
  • dada863d23 Enable unit tests of PartialPivLU on fixed size matrices, and increase tested matrix size (blocking was not tested!) Gael Guennebaud 2019-02-11 17:56:20 +01:00
  • ab6e6edc32 Speedup PartialPivLU for small matrices by passing compile-time sizes when available. This change set also makes a better use of Map<>+OuterStride and Ref<> yielding surprising speed up for small dynamic sizes as well. The table below reports times in micro seconds for 10 random matrices: | ------ float --------- | ------- double ------- | size | before after ratio | before after ratio | fixed 1 | 0.34 0.11 2.93 | 0.35 0.11 3.06 | fixed 2 | 0.81 0.24 3.38 | 0.91 0.25 3.60 | fixed 3 | 1.49 0.49 3.04 | 1.68 0.55 3.01 | fixed 4 | 2.31 0.70 3.28 | 2.45 1.08 2.27 | fixed 5 | 3.49 1.11 3.13 | 3.84 2.24 1.71 | fixed 6 | 4.76 1.64 2.88 | 4.87 2.84 1.71 | dyn 1 | 0.50 0.40 1.23 | 0.51 0.40 1.26 | dyn 2 | 1.08 0.85 1.27 | 1.04 0.69 1.49 | dyn 3 | 1.76 1.26 1.40 | 1.84 1.14 1.60 | dyn 4 | 2.57 1.75 1.46 | 2.67 1.66 1.60 | dyn 5 | 3.80 2.64 1.43 | 4.00 2.48 1.61 | dyn 6 | 5.06 3.43 1.47 | 5.15 3.21 1.60 | Gael Guennebaud 2019-02-11 13:58:24 +01:00
  • 21eb97d3e0 Add PacketConv implementation for non-vectorizable src expressions Eugene Zhulenev 2019-02-08 15:47:25 -08:00
  • 1e36166ed1 Optimize TensorConversion evaluator: do not convert same type Eugene Zhulenev 2019-02-08 15:13:24 -08:00
  • 953ca5ba2f Spline.h: fix spelling "spang" -> "span" Steven Peters 2019-02-08 06:23:24 +00:00
  • 59998117bb Don't do parallel_pack if we can use thread_local memory in tensor contractions Eugene Zhulenev 2019-02-07 09:21:25 -08:00
  • 013cc3a6b3 Make GEMM fallback to GEMV for runtime vectors. This is a more general and simpler version of changeset 4c0fa6ce0f Gael Guennebaud 2019-02-07 16:24:09 +01:00
  • fa2fcb4895 Backed out changeset 4c0fa6ce0f Gael Guennebaud 2019-02-07 16:07:08 +01:00
  • b3c4344a68 bug #1676: workaround GCC's bug in c++17 mode. Gael Guennebaud 2019-02-07 15:21:35 +01:00
  • 3091c03898 Merged in ezhulenev/eigen-01 (pull request PR-581) Rasmus Larsen 2019-02-05 22:45:20 +00:00
  • 8491127082 Do not reduce parallelism too much in contractions with small number of threads Eugene Zhulenev 2019-02-04 12:59:33 -08:00
  • eb21bab769 Parallelize tensor contraction only by sharding dimension and use 'thread-local' memory for packing Eugene Zhulenev 2019-02-04 10:43:16 -08:00
  • 6d0f6265a9 Remove duplicated comment line Eugene Zhulenev 2019-02-04 10:30:25 -08:00
  • 690b2c45b1 Fix GeneralBlockPanelKernel Android compilation Eugene Zhulenev 2019-02-04 10:29:15 -08:00
  • 871e2e5339 bug #1674: disable GCC's unsafe-math-optimizations in sin/cos vectorization (results are completely wrong otherwise) Gael Guennebaud 2019-02-03 08:54:47 +01:00
  • e7b481ea74 Merged in rmlarsen/eigen (pull request PR-578) Rasmus Larsen 2019-02-02 01:53:44 +00:00
  • b55b5c7280 Speed up row-major matrix-vector product on ARM Sameer Agarwal 2019-02-01 15:23:53 -08:00
  • 4c0fa6ce0f Speed up Eigen matrix*vector and vector*matrix multiplication. Rasmus Munk Larsen 2019-01-31 14:24:08 -08:00
  • 7ef879f6bf GEBP: improves pipelining in the 1pX4 path with FMA. Prior to this change, a product with a LHS having 8 rows was faster with AVX-only than with AVX+FMA. With AVX+FMA I measured a speed up of about x1.25 in such cases. Gael Guennebaud 2019-01-30 23:45:12 +01:00
  • de77bf5d6c Fix compilation with ARM64. Gael Guennebaud 2019-01-30 16:48:20 +01:00
  • d586686924 Workaround lack of support for arbitrary packet-type in Tensor by manually loading half/quarter packets in tensor contraction mapper. Gael Guennebaud 2019-01-30 16:48:01 +01:00
  • eb4c6bb22d Fix conflicts and merge Gael Guennebaud 2019-01-30 15:57:08 +01:00
  • e3622a0396 Slightly extend discussions on auto and move the content of the Pit falls wiki page here. http://eigen.tuxfamily.org/index.php?title=Pit_Falls Gael Guennebaud 2019-01-30 13:09:21 +01:00
  • df12fae8b8 According to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89101, the previous GCC issue is fixed in GCC trunk (will be gcc 9). Gael Guennebaud 2019-01-30 11:52:28 +01:00
  • 3775926bba ARM64 & GEBP: add specialization for double +30% speed up Gael Guennebaud 2019-01-30 11:49:06 +01:00
  • be5b0f664a ARM64 & GEBP: Make use of vfmaq_laneq_f32 and workaround GCC's issue in generating good ASM Gael Guennebaud 2019-01-30 11:48:25 +01:00
  • a7779a9b42 Hide some annoying unused variable warnings in g++8.1 Christoph Hertzberg 2019-01-29 16:48:21 +01:00
  • efe02292a6 Add recent gemm related changesets and various cleanups in perf-monitoring Gael Guennebaud 2019-01-29 11:53:47 +01:00
  • 8a06c699d0 bug #1669: fix PartialPivLU/inverse with zero-sized matrices. Gael Guennebaud 2019-01-29 10:27:13 +01:00
  • a2a07e62b9 Fix compilation with c++03 (local class cannot be template arguments), and make SparseMatrix::assignDiagonal truly protected. Gael Guennebaud 2019-01-29 10:10:07 +01:00
  • f489f44519 bug #1574: implement "sparse_matrix =,+=,-= diagonal_matrix" with smart insertion strategies of missing diagonal coeffs. Gael Guennebaud 2019-01-28 17:29:50 +01:00
  • 803fa79767 Move evaluator<SparseCompressedBase>::find(i,j) to a more general and reusable SparseCompressedBase::lower_bound(i,j) functiion Gael Guennebaud 2019-01-28 17:24:44 +01:00
  • 53560f9186 bug #1672: fix unit test compilation with MSVC by adding overloads of test_is* for long long (and factorize copy/paste code through a macro) Gael Guennebaud 2019-01-28 13:47:28 +01:00
  • c9825b967e Renaming even more I identifiers Christoph Hertzberg 2019-01-26 13:22:13 +01:00
  • 5a52e35f9a Renaming some more I identifiers Christoph Hertzberg 2019-01-26 13:18:21 +01:00
  • 71429883ee Fix compilation error in NEON GEBP specializaition of madd. Rasmus Munk Larsen 2019-01-25 17:00:21 -08:00
  • 934b8a1304 Avoid I as an identifier, since it may clash with the C-header complex.h Christoph Hertzberg 2019-01-25 14:54:39 +01:00
  • ec8a387972 cleanup Gael Guennebaud 2019-01-24 10:24:45 +01:00
  • 6908ce2a15 More thoroughly check variadic template ctor of fixed-size vectors Gael Guennebaud 2019-01-24 10:24:28 +01:00
  • 237b03b372 PR 574: use variadic template instead of initializer_list to implement fixed-size vector ctor from coefficients. David Tellenbach 2019-01-23 00:07:19 +01:00
  • bd6dadcda8 Tell doxygen that cxx11 math is available Christoph Hertzberg 2019-01-24 00:14:02 +01:00
  • c64d5d3827 Bypass inline asm for non compatible compilers. Gael Guennebaud 2019-01-23 23:43:13 +01:00
  • e16913a45f Fix name of tutorial snippet. Christoph Hertzberg 2019-01-23 10:35:06 +01:00
  • 80f81f9c4b Cleanup SFINAE in Array/Matrix(initializer_list) ctors and minor doc editing. Gael Guennebaud 2019-01-22 17:08:47 +01:00
  • db152b9ee6 PR 572: Add initializer list constructors to Matrix and Array (include unit tests and doc) - {1,2,3,4,5,...} for fixed-size vectors only - {{1,2,3},{4,5,6}} for the general cases - {{1,2,3,4,5,....}} is allowed for both row and column-vector David Tellenbach 2019-01-21 16:25:57 +01:00
  • 543529da6a Add more extensive tests of Array ctors, including {} variants Gael Guennebaud 2019-01-22 15:30:50 +01:00
  • 92774f0275 Replace host_define.h with cuda_runtime_api.h nluehr 2019-01-18 16:10:09 -06:00
  • d18f49cbb3 Fix compilation of unit tests with gcc and c++17 Gael Guennebaud 2019-01-18 11:12:42 +01:00
  • da0a41b9ce Mask unused-parameter warnings, when building with NDEBUG Christoph Hertzberg 2019-01-18 10:41:14 +01:00
  • 2eccbaf3f7 Add missing logical packet ops for GPU and NEON. Rasmus Munk Larsen 2019-01-17 17:45:08 -08:00
  • d575505d25 After fixing bug #1557, boostmultiprec_7 failed with NumericalIssue instead of NoConvergence (all that matters here is no Success) Christoph Hertzberg 2019-01-17 19:14:07 +01:00
  • ee3662abc5 Remove some useless const_cast Gael Guennebaud 2019-01-17 18:27:49 +01:00
  • 0fe6b7d687 Make nestByValue works again (broken since 3.3) and add unit tests. Gael Guennebaud 2019-01-17 18:27:25 +01:00
  • 4b7cf7ff82 Extend reshaped unit tests and remove useless const_cast Gael Guennebaud 2019-01-17 17:35:32 +01:00
  • b57c9787b1 Cleanup useless const_cast and add missing broadcast assignment tests Gael Guennebaud 2019-01-17 16:55:42 +01:00
  • be05d0030d Make FullPivLU use conjugateIf<> Gael Guennebaud 2019-01-17 12:01:00 +01:00
  • bba2f05064 Boosttest only available for Boost version >= 1.53.0 Patrick Peltzer 2019-01-17 11:54:37 +01:00
  • 15e53d5d93 PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD). This changeset also includes: * add HouseholderSequence::conjugateIf * define int as the StorageIndex type for all dense solvers * dedicated unit tests, including assertion checking * _check_solve_assertion(): this method can be implemented in derived solver classes to implement custom checks * CompleteOrthogonalDecompositions: add applyZOnTheLeftInPlace, fix scalar type in applyZAdjointOnTheLeftInPlace(), add missing assertions * Cholesky: add missing assertions * FullPivHouseholderQR: Corrected Scalar type in _solve_impl() * BDCSVD: Unambiguous return type for ternary operator * SVDBase: Corrected Scalar type in _solve_impl() Patrick Peltzer 2019-01-17 01:17:39 +01:00
  • 7f32109c11 Add conjugateIf<bool> members to DesneBase, TriangularView, SelfadjointView, and make PartialPivLU use it. Gael Guennebaud 2019-01-17 11:33:43 +01:00
  • 7b35c26b1c Doc: remove link to porting guide Gael Guennebaud 2019-01-17 10:35:50 +01:00
  • 4759d9e86d Doc: add manual page on STL iterators Gael Guennebaud 2019-01-17 10:35:14 +01:00