qt5base-lts/tests/auto/corelib/kernel
Edward Welbourne b08368d99f Add qHypot() to qmath.h, exposing and extending std::hypot()
We have plenty of places where we add some squares and take a square
root; this may be done more accurately and faster by hypot().
Introduce QHypotHelper to handle hypot with more than 3 parameters,
and with 3 when the C++17 version is missing (which it never should
be). Include an overload taking arbitrarily many valus and ensure that
we can use qHypot() with qfloat16.  Illustrate with some example uses,
add some tests.

[ChangeLog][QtCore][QMath] Header <QMath> now provides qHypot(), an
implementation of std::hypot() taking arbitrarily many numeric values,
including support for qfloat16, while avoiding the overflow and
underflow problems that arise when naively taking the square root of a
sum of squares.

Change-Id: Ia4e3913fe83fc27d17d8e7f1a52f03ad445c1fed
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-01-27 15:00:57 +01:00
..
qcoreapplication Remove .prev_CMakeLists.txt files 2021-01-12 20:59:13 +01:00
qdeadlinetimer Remove the qmake project files 2021-01-07 15:32:28 +01:00
qelapsedtimer Remove the qmake project files 2021-01-07 15:32:28 +01:00
qeventdispatcher Remove the qmake project files 2021-01-07 15:32:28 +01:00
qeventloop Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmath Add qHypot() to qmath.h, exposing and extending std::hypot() 2021-01-27 15:00:57 +01:00
qmetacontainer Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetaenum Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetamethod Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetaobject Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetaobjectbuilder Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetaproperty Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetatype Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmimedata Remove the qmake project files 2021-01-07 15:32:28 +01:00
qobject Add new special QObjectPrivate::{connect, disconnect} for QML 2021-01-18 15:54:03 +01:00
qpointer Remove the qmake project files 2021-01-07 15:32:28 +01:00
qproperty QProperty: Add private isAnyBindingEvaluating function 2021-01-21 17:00:29 +01:00
qsharedmemory Remove .prev_CMakeLists.txt files 2021-01-12 20:59:13 +01:00
qsignalblocker Remove the qmake project files 2021-01-07 15:32:28 +01:00
qsignalmapper Remove the qmake project files 2021-01-07 15:32:28 +01:00
qsocketnotifier tst_socketnotifier: Fix timeout of QTcpServer::waitForNewConnection() 2021-01-21 08:53:35 +00:00
qsystemsemaphore Remove the qmake project files 2021-01-07 15:32:28 +01:00
qtimer QTimer: port to new property system 2021-01-26 21:47:50 +01:00
qtranslator Remove the qmake project files 2021-01-07 15:32:28 +01:00
qvariant QVariant::fromValue<T>: require T to be copy constructible 2021-01-18 15:51:18 +01:00
qwineventnotifier Remove the qmake project files 2021-01-07 15:32:28 +01:00
CMakeLists.txt Android: blacklist a list of failing tests for android 2020-11-04 12:27:49 +02:00