eigen/Eigen
Rasmus Munk Larsen 25d8ae7465 Small cleanup of generic plog implementations:
Adding the term e*ln(2) is split into two step for no obvious reason.
This dates back to the original Cephes code from which the algorithm is adapted.
It appears that this was done in Cephes to prevent the compiler from reordering
the addition of the 3 terms in the approximation

  log(1+x) ~= x - 0.5*x^2 + x^3*P(x)/Q(x)

which must be added in reverse order since |x| < (sqrt(2)-1).

This allows rewriting the code to just 2 pmadd and 1 padd instructions,
which on a Skylake processor speeds up the code by 5-7%.
2020-12-03 19:40:40 +00:00
..
src Small cleanup of generic plog implementations: 2020-12-03 19:40:40 +00:00
Cholesky
CholmodSupport
Core
Dense
Eigen
Eigenvalues
Geometry
Householder
IterativeLinearSolvers
Jacobi
KLUSupport
LU Unify Inverse_SSE.h and Inverse_NEON.h into a single generic implementation using PacketMath. 2020-11-17 12:27:01 +00:00
MetisSupport
OrderingMethods
PardisoSupport
PaStiXSupport
QR
QtAlignedMalloc
Sparse
SparseCholesky
SparseCore
SparseLU
SparseQR
SPQRSupport
StdDeque
StdList
StdVector
SuperLUSupport
SVD
UmfPackSupport