mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-12-27 07:29:52 +08:00
e72dfeb8b9
It seems *sometimes* with aggressive optimizations the combination `psub(padd(a, b), b)` trick to force rounding is compiled away. Here we replace with inline assembly to prevent this (I tried `volatile`, but that leads to additional loads from memory). Also fixed an edge case for large inputs `a` where adding `b` bumps the value up a power of two and ends up rounding away more than just the fractional part. If we are over `2^digits` then just return the input. This edge case was missed in the test since the test was comparing approximate equality, which was still satisfied. Adding a strict equality option catches it. |
||
---|---|---|
bench | ||
blas | ||
ci | ||
cmake | ||
debug | ||
demos | ||
doc | ||
Eigen | ||
failtest | ||
lapack | ||
scripts | ||
test | ||
unsupported | ||
.gitignore | ||
.gitlab-ci.yml | ||
.hgeol | ||
CMakeLists.txt | ||
COPYING.APACHE | ||
COPYING.BSD | ||
COPYING.GPL | ||
COPYING.LGPL | ||
COPYING.MINPACK | ||
COPYING.MPL2 | ||
COPYING.README | ||
CTestConfig.cmake | ||
CTestCustom.cmake.in | ||
eigen3.pc.in | ||
INSTALL | ||
README.md | ||
signature_of_eigen3_matrix_library |
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
For more information go to http://eigen.tuxfamily.org/.
For pull request, bug reports, and feature requests, go to https://gitlab.com/libeigen/eigen.