aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
Commit message (Collapse)AuthorAge
* Fix detection of vector-at-time: use Rows/Cols instead of MaxRow/MaxCols.Gravatar Gael Guennebaud2019-01-15
| | | | This fix VectorXd(n).middleCol(0,0).outerSize() which was equal to 1.
* TypoGravatar Gael Guennebaud2019-01-15
|
* Merged in rmlarsen/eigen (pull request PR-570)Gravatar Rasmus Larsen2019-01-14
|\ | | | | | | Add support for inverse hyperbolic functions. Fix cost of division.
* | bug #1652: fix position of EIGEN_ALIGN16 attributes in Neon and AltivecGravatar Gael Guennebaud2019-01-14
| |
| * Merged eigen/eigen into defaultGravatar Rasmus Larsen2019-01-14
| |\ | |/ |/|
* | AVX512: fix pgather/pscatter for Packet4cd and unaligned pointersGravatar Gael Guennebaud2019-01-14
| |
* | AVX512 (r)sqrt(double) was mistakenly disabled with clang and othersGravatar Gael Guennebaud2019-01-14
| |
* | fix warningGravatar Gael Guennebaud2019-01-14
| |
* | Doc: add Isometry in the list of supported Mode of Transform<>Gravatar Gael Guennebaud2019-01-14
| |
* | Initialize isometric transforms like affine transforms.Gravatar Greg Coombe2019-01-11
| | | | | | | | | | | | The isometric transform, like the affine transform, has an implicit last row of [0, 0, 0, 1]. This was not being properly initialized, as verified by a new test function.
* | PR 571: Implements an accurate argument reduction algorithm for huge inputs ↵Gravatar Gael Guennebaud2019-01-14
| | | | | | | | | | | | | | | | | | of sin/cos and call it instead of falling back to std::sin/std::cos. This makes both the small and huge argument cases faster because: - for small inputs this removes the last pselect - for large inputs only the reduction part follows a scalar path, the rest use the same SIMD path as the small-argument case.
* | Fix StorageIndex FIXME in dense LU solversGravatar Gael Guennebaud2019-01-13
| |
| * Merge.Gravatar Rasmus Munk Larsen2019-01-11
| |\
| * | Add support for inverse hyperbolic functions.Gravatar Rasmus Munk Larsen2019-01-11
| | | | | | | | | | | | Fix cost of division.
| * | Fix warnings in ptrue for complex and half types.Gravatar Rasmus Munk Larsen2019-01-11
| | |
* | | Replace compiler's alignas/alignof extension by respective c++11 keywords ↵Gravatar Gael Guennebaud2019-01-11
| |/ |/| | | | | when available. This also fix a compilation issue with gcc-4.7.
* | Fix warnings in ptrue for complex and half types.Gravatar Rasmus Munk Larsen2019-01-11
|/
* Fix merge.Gravatar Rasmus Munk Larsen2019-01-11
|
* Merge.Gravatar Rasmus Munk Larsen2019-01-11
|\
| * Merged eigen/eigen into defaultGravatar Rasmus Larsen2019-01-11
| |\
| | * Remove reinterpret_cast from AVX512 complex implementationGravatar Mark D Ryan2019-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reinterpret_casts used in ptranspose(PacketBlock<Packet8cf,4>&) ptranspose(PacketBlock<Packet8cf,8>&) don't appear to be working correctly. They're used to convert the kernel parameters to PacketBlock<Packet8d,T>& so that the complex number versions of ptranspose can be written using the existing double implementations. Unfortunately, they don't seem to work and are responsible for 9 unit test failures in the AVX512 build of tensorflow master. This commit fixes the issue by manually initialising PacketBlock<Packet8d,T> variables with the contents of the kernel parameter before calling the double version of ptranspose, and then copying the resulting values back into the kernel parameter before returning.
* | | Rename pones -> ptrue. Use _CMP_TRUE_UQ where appropriate.Gravatar Rasmus Munk Larsen2019-01-09
|\ \ \
| | * | Collapsed revisionGravatar Rasmus Munk Larsen2019-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add packet up "pones". Write pnot(a) as pxor(pones(a), a). * Collapsed revision * Simplify a bit. * Undo useless diffs. * Fix typo.
| * | | Fix typo.Gravatar Rasmus Munk Larsen2019-01-09
| | | |
* | | | Collapsed revisionGravatar Rasmus Munk Larsen2019-01-09
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | * Collapsed revision * Add packet up "pones". Write pnot(a) as pxor(pones(a), a). * Collapsed revision * Simplify a bit. * Undo useless diffs. * Fix typo.
| * | Undo useless diffs.Gravatar Rasmus Munk Larsen2019-01-09
| | |
| * | Simplify a bit.Gravatar Rasmus Munk Larsen2019-01-09
| | |
| * | Add packet up "pones". Write pnot(a) as pxor(pones(a), a).Gravatar Rasmus Munk Larsen2019-01-09
|/ /
* | Merged eigen/eigen into defaultGravatar Rasmus Larsen2019-01-09
|\|
| * bug #1654: fix compilation with cuda and no c++11Gravatar Gael Guennebaud2019-01-09
| |
| * fix plog(+inf) with AVX512Gravatar Gael Guennebaud2019-01-09
| |
| * Add dedicated implementations of predux_any for AVX512, NEON, and Altivec/VSEGravatar Gael Guennebaud2019-01-09
| |
| * fix warningGravatar Gael Guennebaud2019-01-09
| |
| * Add missing pcmp_lt and others for AVX512Gravatar Gael Guennebaud2019-01-09
| |
| * bug #1652: implements a much more accurate version of vectorized sin/cos. ↵Gravatar Gael Guennebaud2019-01-09
| | | | | | | | | | | | | | This new version achieve same speed for SSE/AVX, and is slightly faster with FMA. Guarantees are as follows: - no FMA: 1ULP up to 3pi, 2ULP up to sin(25966) and cos(18838), fallback to std::sin/cos for larger inputs - FMA: 1ULP up to sin(117435.992) and cos(71476.0625), fallback to std::sin/cos for larger inputs
* | Add support for pcmp_eq and pnot, including for complex types.Gravatar Rasmus Munk Larsen2019-01-07
|/
* Explicitly set fill character when printing aligned data to ostreamGravatar Eugene Zhulenev2019-01-03
|
* PR560: Fix the AVX512f only buildsGravatar Mark D Ryan2019-01-03
| | | | | | | | | | | | | | | Commit c53eececb0415834b961cb61cd466907261b4b2f introduced AVX512 support for complex numbers but required avx512dq to build. Commit 1d683ae2f5a340a6e2681c8cd0782f4db6b807ea fixed some but not, it would seem all, of the hard avx512dq dependencies. Build failures are still evident on Eigen and TensorFlow when compiling with just avx512f and no avx512dq using gcc 7.3. Looking at the code there does indeed seem to be a problem. Commit c53eececb0415834b961cb61cd466907261b4b2f calls avx512dq intrinsics directly, e.g, _mm512_extractf32x8_ps and _mm512_and_ps. This commit fixes the issue by replacing the direct intrinsic calls with the various wrapper functions that are safe to use on avx512f only builds.
* One more stupid AVX 512 fix (I don't have direct access to AVX512 machines)Gravatar Gael Guennebaud2018-12-24
|
* Add EIGEN_STRONG_INLINE where requiredGravatar Gael Guennebaud2018-12-24
|
* Add missing pcmp_lt_or_nan for AVX512Gravatar Gael Guennebaud2018-12-23
|
* Implement a faster fix for sin/cos of large entries that also correctly ↵Gravatar Gael Guennebaud2018-12-23
| | | | handle INF input.
* Make sure that psin/pcos return number in [-1,1] for large inputs (though ↵Gravatar Gael Guennebaud2018-12-23
| | | | sin/cos on large entries is quite useless because it's inaccurate)
* Fix plog(+INF): it returned ~87 instead of +INFGravatar Gael Guennebaud2018-12-23
|
* Make code compile again for older compilers.Gravatar Christoph Hertzberg2018-12-22
| | | | See https://stackoverflow.com/questions/7411515/
* bug #1615: slightly increase the default unrolling limit to compensate for ↵Gravatar Gael Guennebaud2018-12-13
| | | | | | | changeset 101ea26f5e18919972b321b5f7e3ef4e07be3fd6 . This solves a performance regression with clang and 3x3 matrix products.
* Fix compilation with expression template scalar type.Gravatar Gael Guennebaud2018-12-12
|
* bug #1557: fix RealSchur and EigenSolver for matrices with only zeros on the ↵Gravatar Gael Guennebaud2018-12-12
| | | | diagonal.
* bug #1644: fix warningGravatar Gael Guennebaud2018-12-11
|
* Artificially increase l1-blocking size for AVX512. +10% speedup with current ↵Gravatar Gael Guennebaud2018-12-11
| | | | | | kernels. With a 6pX4 kernel (not committed yet), this provides a +20% speedup.