#3.0.1
#3.1.1
#3.2.0
3.2.4
#5745:37f59e65eb6c
5891:d8652709345d  # introduce AVX
#5893:24b4dc92c6d3  # merge
5895:997c2ef9fc8b  # introduce FMA
#5904:e1eafd14eaa1  # complex and AVX
5908:f8ee3c721251  # improve packing with ptranspose
#5921:ca808bb456b0  # merge
#5927:8b1001f9e3ac
5937:5a4ca1ad8c53  # New gebp kernel: up to 3 packets x 4 register-level blocks
#5949:f3488f4e45b2  # merge
#5969:e09031dccfd9  # Disable 3pX4 kernel on Altivec
#5992:4a429f5e0483  # merge
before-evaluators
#6334:f6a45e5b8b7c  # Implement evaluator for sparse outer products
#6639:c9121c60b5c7
#6655:06f163b5221f  # Properly detect FMA support on ARM
#6677:700e023044e7   # FMA has been wrongly disabled
#6681:11d31dafb0e3
#6699:5e6e8e10aad1   # merge default to tensors
#6726:ff2d2388e7b9   # merge default to tensors
#6742:0cbd6195e829   # merge default to tensors
#6747:853d2bafeb8f   # Generalized the gebp apis
6765:71584fd55762   # Made the blocking computation aware of the l3 cache;<br/> Also optimized the blocking parameters to take<br/> into account the number of threads used for a computation.
6781:9cc5a931b2c6   # generalized gemv
6792:f6e1daab600a   # ensured that contractions that can be reduced to a matrix vector product
#6844:039efd86b75c   # merge tensor
6845:7333ed40c6ef   # change prefetching in gebp
#6856:b5be5e10eb7f   # merge index conversion
6893:c3a64aba7c70   # clean blocking size computation
6899:877facace746   # rotating kernel for ARM only
#6904:c250623ae9fa   # result_of
6921:915f1b1fc158   # fix prefetching change for ARM
6923:9ff25f6dacc6   # prefetching
6933:52572e60b5d3   # blocking size strategy
6937:c8c042f286b2   # avoid redundant pack_rhs
6981:7e5d6f78da59   # dynamic loop swapping
6984:45f26866c091   # rm dynamic loop swapping,<br/> adjust lhs's micro panel height to fully exploit L1 cache
6986:a675d05b6f8f   # blocking heuristic:<br/> block on the rhs in L1 if the lhs fit in L1.
7013:f875e75f07e5   # organize a little our default cache sizes,<br/> and use a saner default L1 outside of x86 (10% faster on Nexus 5)
7015:8aad8f35c955   # Refactor computeProductBlockingSizes to make room<br/> for the possibility of using lookup tables
7016:a58d253e8c91   # Polish lookup tables generation
7018:9b27294a8186   # actual_panel_rows computation should always be resilient<br/> to parameters not consistent with the known L1 cache size, see comment
7019:c758b1e2c073   # Provide a empirical lookup table for blocking sizes measured on a Nexus 5.<br/> Only for float, only for Android on ARM 32bit for now.
7085:627e039fba68   # Bug 986: add support for coefficient-based<br/> product with 0 depth.
7098:b6f1db9cf9ec   # Bug 992: don't select a 3p GEMM path with non-SIMD scalar types.
7591:09a8e2186610   # 3.3-alpha1
7650:b0f3c8f43025   # help clang inlining
7708:dfc6ab9d9458   # Improve numerical accuracy in LLT and triangular solve<br/> by using true scalar divisions (instead of x * (1/y))
#8744:74b789ada92a   # Improved the matrix multiplication blocking in the case<br/> where mr is not a power of 2 (e.g on Haswell CPUs)
8789:efcb912e4356   # Made the index type a template parameter to evaluateProductBlockingSizes.<br/> Use numext::mini and numext::maxi instead of <br/> std::min/std::max to compute blocking sizes.
8972:81d53c711775   # Don't optimize the processing of the last rows of<br/> a matrix matrix product in cases that violate<br/> the assumptions made by the optimized code path.
8985:d935df21a082   # Remove the rotating kernel.
8988:6c2dc56e73b3   # Bug 256: enable vectorization with unaligned loads/stores.
9148:b8b8c421e36c   # Relax mixing-type constraints for binary coeff-wise operators
9174:d228bc282ac9   # merge
9175:abc7a3600098   # Include the cost of stores in unrolling
9212:c90098affa7b   # Fix perf regression introduced in changeset 8aad8f35c955
9213:9f1c14e4694b   # Fix perf regression in dgemm introduced by changeset 81d53c711775
9361:69d418c06999   # 3.3-beta2
9445:f27ff0ad77a3   # Optimize expression matching 'd?=a-b*c' as 'd?=a; d?=b*c;'
9583:bef509908b9d   # 3.3-rc1
9593:2f24280cf59a   # Bug 1311: fix alignment logic in some cases<br/> of (scalar*small).lazyProduct(small)
9722:040d861b88b5   # Disabled part of the matrix matrix peeling code<br/> that's incompatible with 512 bit registers
9792:26667be4f70b   # 3.3.0
9891:41260bdfc23b   # Fix a performance regression in (mat*mat)*vec<br/> for which mat*mat was evaluated multiple times.
9942:b1d3eba60130   # Operators += and -= do not resize!
9943:79bb9887afd4   # Ease compiler generating clean and efficient code in mat*vec
9946:2213991340ea   # Complete rewrite of column-major-matrix * vector product<br/> to deliver higher performance of modern CPU.
9955:630471c3298c   # Improve performance of row-major-dense-matrix * vector products<br/> for recent CPUs.
9975:2eeed9de710c   # Revert vec/y to vec*(1/y) in row-major TRSM
10442:e3f17da72a40  # Bug 1435: fix aliasing issue in exressions like: A = C - B*A;
10735:6913f0cf7d06  # Adds missing EIGEN_STRONG_INLINE to support MSVC<br/> properly inlining small vector calculations
10943:4db388d946bd  # Bug 1562: optimize evaluation of small products<br/> of the form s*A*B by rewriting them as: s*(A.lazyProduct(B))<br/> to save a costly temporary.<br/> Measured speedup from 2x to 5x.
10961:5007ff66c9f6  # Introduce the macro ei_declare_local_nested_eval to<br/> help allocating on the stack local temporaries via alloca,<br/> and let outer-products makes a good use of it.
11083:30a528a984bb  # Bug 1578: Improve prefetching in matrix multiplication on MIPS.
11533:71609c41e9f8  # PR 526: Speed up multiplication of small, dynamically sized matrices
11545:6d348dc9b092  # Vectorize row-by-row gebp loop iterations on 16 packets as well
11579:efda481cbd7a  # Bug 1624: improve matrix-matrix product on ARM 64, 20% speedup
11606:b8d3f548a9d9  # do not read buffers out of bounds
11638:22f9cc0079bd  # Implement AVX512 vectorization of std::complex<float/double>
11642:9f52fde03483  # Bug 1636: fix gemm performance issue with gcc>=6 and no FMA
11648:81172653b67b  # Bug 1515: disable gebp's 3pX4 micro kernel<br/> for MSVC<=19.14 because of register spilling.
11654:b81188e099f3  # fix EIGEN_GEBP_2PX4_SPILLING_WORKAROUND<br/> for non vectorized type, and non x86/64 target
11664:71546f1a9f0c  # enable spilling workaround on architectures with SSE/AVX
11669:b500fef42ced  # Artificially increase l1-blocking size for AVX512.<br/> +10% speedup with current kernels.
11683:2ea2960f1c7f  # Make code compile again for older compilers.
11753:556fb4ceb654  # Bug: 1633: refactor gebp kernel and optimize for neon
11761:cefc1ba05596  # Bug 1661: fix regression in GEBP and AVX512
11763:1e41e70fe97b  # GEBP: cleanup logic to choose between<br/> a 4 packets of 1 packet (=209bf81aa3f3+fix)
11803:d95b5d78598b  # gebp: Add new ½ and ¼ packet rows per (peeling) round on the lhs