Fix pfrexp/pldexp for half.

The recent addition of vectorized pow (!330) relies on `pfrexp` and
`pldexp`.  This was missing for `Eigen::half` and `Eigen::bfloat16`.
Adding tests for these packet ops also exposed an issue with handling
negative values in `pfrexp`, returning an incorrect exponent.

Added the missing implementations, corrected the exponent in `pfrexp1`,
and added `packetmath` tests.
7 files changed
tree: b86944d559717eeee3589efa21dcfd30cbdd2f3d
  1. bench/
  2. blas/
  3. ci/
  4. cmake/
  5. debug/
  6. demos/
  7. doc/
  8. Eigen/
  9. failtest/
  10. lapack/
  11. scripts/
  12. test/
  13. unsupported/
  14. .gitignore
  15. .gitlab-ci.yml
  16. .hgeol
  17. CMakeLists.txt
  18. COPYING.APACHE
  19. COPYING.BSD
  20. COPYING.GPL
  21. COPYING.LGPL
  22. COPYING.MINPACK
  23. COPYING.MPL2
  24. COPYING.README
  25. CTestConfig.cmake
  26. CTestCustom.cmake.in
  27. eigen3.pc.in
  28. INSTALL
  29. README.md
  30. signature_of_eigen3_matrix_library
README.md

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.