Commit 48d79b69 authored by Oliver Sander's avatar Oliver Sander

[!566] Improvement of Float128

Merge branch 'issue/quadmath_improvements' into 'master'

ref:core/dune-common

### Summary

Add missing AddQuadMathFlags.cmake, clean up the implementation of
numeric_limits, and add a specialization of the pow() function with integer
exponents.

### Motivation

Addresses some issues of [#127], e.g. the missing add_quadmath_flags cmake
function. Additionally the numeric_limits are cleaned up, following now some
the boost::multiprecision implementation.

While benchmarking some quadrature rules with Float128 I found out, that the
`pow(Float128, int)` implementation is very slow, since it calls the
`powq(Float128, Float128)` function. There was no specialization for integer
exponents. This is added now and is much faster. The implementation is derived
from boost::multiprecision library.

### TODO

-   [x] Add reference to boost implementation

Closes [#127] Closes [#129]

See merge request [!566]

  [#127]: gitlab.dune-project.org/NoneNone/issues/127
  [#129]: gitlab.dune-project.org/NoneNone/issues/129
  [!566]: gitlab.dune-project.org/core/dune-common/merge_requests/566


Closes #129 and #127
parents c99d941d e41ce765
Pipeline #21041 passed with stage
in 5 minutes and 33 seconds