summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2021-10-11 17:32:31 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2021-10-13 11:50:02 +0200
commit53d2deca802922aa70d574c9b60c028abf44987f (patch)
treee65eadaaca4513cefc0240aacf383161158e9419 /src
parent56fa18c2a493ed5db6b53841072d12950ac634ab (diff)
Use ratios of natural logs rather than to base ten
Natural log is marginally cheaper to compute and a ratio of logs, to a given base, doesn't actually depend on the base; log(a)/log(b) is the logarithm of a to base b. Tidy up some duplication into a use of a ternary expression to simplify one use of this, in the process. Change-Id: Ic91dc0b4e9255f20f2f6e3d71c32a37f759d623d Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/charts/axis/chartaxiselement.cpp7
-rw-r--r--src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp4
-rw-r--r--src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp4
-rw-r--r--src/charts/axis/logvalueaxis/polarchartlogvalueaxisangular.cpp6
-rw-r--r--src/charts/axis/logvalueaxis/polarchartlogvalueaxisradial.cpp6
-rw-r--r--src/charts/domain/logxlogydomain.cpp30
-rw-r--r--src/charts/domain/logxlogypolardomain.cpp22
-rw-r--r--src/charts/domain/logxydomain.cpp14
-rw-r--r--src/charts/domain/logxypolardomain.cpp12
-rw-r--r--src/charts/domain/xlogydomain.cpp14
-rw-r--r--src/charts/domain/xlogypolardomain.cpp12
11 files changed, 63 insertions, 68 deletions
diff --git a/src/charts/axis/chartaxiselement.cpp b/src/charts/axis/chartaxiselement.cpp
index 1155257b..692400ea 100644
--- a/src/charts/axis/chartaxiselement.cpp
+++ b/src/charts/axis/chartaxiselement.cpp
@@ -555,12 +555,7 @@ QStringList ChartAxisElement::createLogValueLabels(qreal min, qreal max, qreal b
if (max <= min || ticks < 1)
return labels;
- int firstTick;
- if (base > 1)
- firstTick = qCeil(std::log10(min) / std::log10(base));
- else
- firstTick = qCeil(std::log10(max) / std::log10(base));
-
+ const int firstTick = qCeil(qLn(base > 1 ? min : max) / qLn(base));
if (format.isEmpty()) {
int n = 0;
if (ticks > 1)
diff --git a/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp b/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp
index f20c9942..43abf724 100644
--- a/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp
+++ b/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp
@@ -53,8 +53,8 @@ QList<qreal> ChartLogValueAxisX::calculateLayout() const
QList<qreal> points;
points.resize(m_axis->tickCount());
- const qreal logMax = std::log10(m_axis->max()) / std::log10(m_axis->base());
- const qreal logMin = std::log10(m_axis->min()) / std::log10(m_axis->base());
+ const qreal logMax = qLn(m_axis->max()) / qLn(m_axis->base());
+ const qreal logMin = qLn(m_axis->min()) / qLn(m_axis->base());
const qreal leftEdge = qMin(logMin, logMax);
const qreal ceilEdge = std::ceil(leftEdge);
diff --git a/src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp b/src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp
index 6f7b92af..8c65aa54 100644
--- a/src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp
+++ b/src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp
@@ -53,8 +53,8 @@ QList<qreal> ChartLogValueAxisY::calculateLayout() const
QList<qreal> points;
points.resize(m_axis->tickCount());
- const qreal logMax = std::log10(m_axis->max()) / std::log10(m_axis->base());
- const qreal logMin = std::log10(m_axis->min()) / std::log10(m_axis->base());
+ const qreal logMax = qLn(m_axis->max()) / qLn(m_axis->base());
+ const qreal logMin = qLn(m_axis->min()) / qLn(m_axis->base());
const qreal leftEdge = qMin(logMin, logMax);
const qreal ceilEdge = std::ceil(leftEdge);
diff --git a/src/charts/axis/logvalueaxis/polarchartlogvalueaxisangular.cpp b/src/charts/axis/logvalueaxis/polarchartlogvalueaxisangular.cpp
index ad864796..aed8d9fc 100644
--- a/src/charts/axis/logvalueaxis/polarchartlogvalueaxisangular.cpp
+++ b/src/charts/axis/logvalueaxis/polarchartlogvalueaxisangular.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Charts module of the Qt Toolkit.
@@ -55,8 +55,8 @@ QList<qreal> PolarChartLogValueAxisAngular::calculateLayout() const
QList<qreal> points;
points.resize(logValueAxis->tickCount());
- const qreal logMax = std::log10(logValueAxis->max()) / std::log10(logValueAxis->base());
- const qreal logMin = std::log10(logValueAxis->min()) / std::log10(logValueAxis->base());
+ const qreal logMax = qLn(logValueAxis->max()) / qLn(logValueAxis->base());
+ const qreal logMin = qLn(logValueAxis->min()) / qLn(logValueAxis->base());
const qreal startEdge = qMin(logMin, logMax);
const qreal delta = 360.0 / qAbs(logMax - logMin);
const qreal initialSpan = (std::ceil(startEdge) - startEdge) * delta;
diff --git a/src/charts/axis/logvalueaxis/polarchartlogvalueaxisradial.cpp b/src/charts/axis/logvalueaxis/polarchartlogvalueaxisradial.cpp
index 122125c0..92d5664d 100644
--- a/src/charts/axis/logvalueaxis/polarchartlogvalueaxisradial.cpp
+++ b/src/charts/axis/logvalueaxis/polarchartlogvalueaxisradial.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Charts module of the Qt Toolkit.
@@ -54,8 +54,8 @@ QList<qreal> PolarChartLogValueAxisRadial::calculateLayout() const
QList<qreal> points;
points.resize(logValueAxis->tickCount());
- const qreal logMax = std::log10(logValueAxis->max()) / std::log10(logValueAxis->base());
- const qreal logMin = std::log10(logValueAxis->min()) / std::log10(logValueAxis->base());
+ const qreal logMax = qLn(logValueAxis->max()) / qLn(logValueAxis->base());
+ const qreal logMin = qLn(logValueAxis->min()) / qLn(logValueAxis->base());
const qreal innerEdge = logMin < logMax ? logMin : logMax;
const qreal delta = (axisGeometry().width() / 2.0) / qAbs(logMax - logMin);
const qreal initialSpan = (std::ceil(innerEdge) - innerEdge) * delta;
diff --git a/src/charts/domain/logxlogydomain.cpp b/src/charts/domain/logxlogydomain.cpp
index 575de135..2660ea18 100644
--- a/src/charts/domain/logxlogydomain.cpp
+++ b/src/charts/domain/logxlogydomain.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Charts module of the Qt Toolkit.
@@ -62,8 +62,8 @@ void LogXLogYDomain::setRange(qreal minX, qreal maxX, qreal minY, qreal maxY)
m_minX = minX;
m_maxX = maxX;
axisXChanged = true;
- qreal logMinX = std::log10(m_minX) / std::log10(m_logBaseX);
- qreal logMaxX = std::log10(m_maxX) / std::log10(m_logBaseX);
+ qreal logMinX = qLn(m_minX) / qLn(m_logBaseX);
+ qreal logMaxX = qLn(m_maxX) / qLn(m_logBaseX);
m_logLeftX = logMinX < logMaxX ? logMinX : logMaxX;
m_logRightX = logMinX > logMaxX ? logMinX : logMaxX;
if(!m_signalsBlocked)
@@ -74,8 +74,8 @@ void LogXLogYDomain::setRange(qreal minX, qreal maxX, qreal minY, qreal maxY)
m_minY = minY;
m_maxY = maxY;
axisYChanged = true;
- qreal logMinY = std::log10(m_minY) / std::log10(m_logBaseY);
- qreal logMaxY = std::log10(m_maxY) / std::log10(m_logBaseY);
+ qreal logMinY = qLn(m_minY) / qLn(m_logBaseY);
+ qreal logMaxY = qLn(m_maxY) / qLn(m_logBaseY);
m_logLeftY = logMinY < logMaxY ? logMinY : logMaxY;
m_logRightY = logMinY > logMaxY ? logMinY : logMaxY;
if (!m_signalsBlocked)
@@ -166,18 +166,18 @@ QPointF LogXLogYDomain::calculateGeometryPoint(const QPointF &point, bool &ok) c
qreal x(0);
qreal y(0);
if (point.x() > 0 && point.y() > 0) {
- x = ((std::log10(point.x()) / std::log10(m_logBaseX)) - m_logLeftX) * deltaX;
- y = ((std::log10(point.y()) / std::log10(m_logBaseY)) - m_logLeftY) * deltaY;
+ x = ((qLn(point.x()) / qLn(m_logBaseX)) - m_logLeftX) * deltaX;
+ y = ((qLn(point.y()) / qLn(m_logBaseY)) - m_logLeftY) * deltaY;
ok = true;
} else {
qWarning() << "Logarithms of zero and negative values are undefined.";
ok = false;
if (point.x() > 0)
- x = ((std::log10(point.x()) / std::log10(m_logBaseX)) - m_logLeftX) * deltaX;
+ x = ((qLn(point.x()) / qLn(m_logBaseX)) - m_logLeftX) * deltaX;
else
x = 0;
if (point.y() > 0)
- y = ((std::log10(point.y()) / std::log10(m_logBaseY)) - m_logLeftY) * deltaY;
+ y = ((qLn(point.y()) / qLn(m_logBaseY)) - m_logLeftY) * deltaY;
else
y = 0;
}
@@ -198,10 +198,10 @@ QList<QPointF> LogXLogYDomain::calculateGeometryPoints(const QList<QPointF> &lis
for (int i = 0; i < list.count(); ++i) {
if (list[i].x() > 0 && list[i].y() > 0) {
- qreal x = ((std::log10(list[i].x()) / std::log10(m_logBaseX)) - m_logLeftX) * deltaX;
+ qreal x = ((qLn(list[i].x()) / qLn(m_logBaseX)) - m_logLeftX) * deltaX;
if (m_reverseX)
x = m_size.width() - x;
- qreal y = ((std::log10(list[i].y()) / std::log10(m_logBaseY)) - m_logLeftY) * deltaY;
+ qreal y = ((qLn(list[i].y()) / qLn(m_logBaseY)) - m_logLeftY) * deltaY;
if (!m_reverseY)
y = m_size.height() - y;
result[i].setX(x);
@@ -260,8 +260,8 @@ bool LogXLogYDomain::detachAxis(QAbstractAxis *axis)
void LogXLogYDomain::handleVerticalAxisBaseChanged(qreal baseY)
{
m_logBaseY = baseY;
- qreal logMinY = std::log10(m_minY) / std::log10(m_logBaseY);
- qreal logMaxY = std::log10(m_maxY) / std::log10(m_logBaseY);
+ qreal logMinY = qLn(m_minY) / qLn(m_logBaseY);
+ qreal logMaxY = qLn(m_maxY) / qLn(m_logBaseY);
m_logLeftY = logMinY < logMaxY ? logMinY : logMaxY;
m_logRightY = logMinY > logMaxY ? logMinY : logMaxY;
emit updated();
@@ -270,8 +270,8 @@ void LogXLogYDomain::handleVerticalAxisBaseChanged(qreal baseY)
void LogXLogYDomain::handleHorizontalAxisBaseChanged(qreal baseX)
{
m_logBaseX = baseX;
- qreal logMinX = std::log10(m_minX) / std::log10(m_logBaseX);
- qreal logMaxX = std::log10(m_maxX) / std::log10(m_logBaseX);
+ qreal logMinX = qLn(m_minX) / qLn(m_logBaseX);
+ qreal logMaxX = qLn(m_maxX) / qLn(m_logBaseX);
m_logLeftX = logMinX < logMaxX ? logMinX : logMaxX;
m_logRightX = logMinX > logMaxX ? logMinX : logMaxX;
emit updated();
diff --git a/src/charts/domain/logxlogypolardomain.cpp b/src/charts/domain/logxlogypolardomain.cpp
index 1654b946..fc128851 100644
--- a/src/charts/domain/logxlogypolardomain.cpp
+++ b/src/charts/domain/logxlogypolardomain.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Charts module of the Qt Toolkit.
@@ -62,8 +62,8 @@ void LogXLogYPolarDomain::setRange(qreal minX, qreal maxX, qreal minY, qreal max
m_minX = minX;
m_maxX = maxX;
axisXChanged = true;
- qreal logMinX = std::log10(m_minX) / std::log10(m_logBaseX);
- qreal logMaxX = std::log10(m_maxX) / std::log10(m_logBaseX);
+ qreal logMinX = qLn(m_minX) / qLn(m_logBaseX);
+ qreal logMaxX = qLn(m_maxX) / qLn(m_logBaseX);
m_logLeftX = logMinX < logMaxX ? logMinX : logMaxX;
m_logRightX = logMinX > logMaxX ? logMinX : logMaxX;
if (!m_signalsBlocked)
@@ -74,8 +74,8 @@ void LogXLogYPolarDomain::setRange(qreal minX, qreal maxX, qreal minY, qreal max
m_minY = minY;
m_maxY = maxY;
axisYChanged = true;
- qreal logMinY = std::log10(m_minY) / std::log10(m_logBaseY);
- qreal logMaxY = std::log10(m_maxY) / std::log10(m_logBaseY);
+ qreal logMinY = qLn(m_minY) / qLn(m_logBaseY);
+ qreal logMaxY = qLn(m_maxY) / qLn(m_logBaseY);
m_logInnerY = logMinY < logMaxY ? logMinY : logMaxY;
m_logOuterY = logMinY > logMaxY ? logMinY : logMaxY;
if (!m_signalsBlocked)
@@ -155,7 +155,7 @@ qreal LogXLogYPolarDomain::toAngularCoordinate(qreal value, bool &ok) const
} else {
ok = true;
const qreal tickSpan = 360.0 / qAbs(m_logRightX - m_logLeftX);
- const qreal logValue = std::log10(value) / std::log10(m_logBaseX);
+ const qreal logValue = qLn(value) / qLn(m_logBaseX);
const qreal valueDelta = logValue - m_logLeftX;
retVal = valueDelta * tickSpan;
@@ -172,7 +172,7 @@ qreal LogXLogYPolarDomain::toRadialCoordinate(qreal value, bool &ok) const
} else {
ok = true;
const qreal tickSpan = m_radius / qAbs(m_logOuterY - m_logInnerY);
- const qreal logValue = std::log10(value) / std::log10(m_logBaseY);
+ const qreal logValue = qLn(value) / qLn(m_logBaseY);
const qreal valueDelta = logValue - m_logInnerY;
retVal = valueDelta * tickSpan;
@@ -234,8 +234,8 @@ bool LogXLogYPolarDomain::detachAxis(QAbstractAxis *axis)
void LogXLogYPolarDomain::handleHorizontalAxisBaseChanged(qreal baseX)
{
m_logBaseX = baseX;
- qreal logMinX = std::log10(m_minX) / std::log10(m_logBaseX);
- qreal logMaxX = std::log10(m_maxX) / std::log10(m_logBaseX);
+ qreal logMinX = qLn(m_minX) / qLn(m_logBaseX);
+ qreal logMaxX = qLn(m_maxX) / qLn(m_logBaseX);
m_logLeftX = logMinX < logMaxX ? logMinX : logMaxX;
m_logRightX = logMinX > logMaxX ? logMinX : logMaxX;
emit updated();
@@ -244,8 +244,8 @@ void LogXLogYPolarDomain::handleHorizontalAxisBaseChanged(qreal baseX)
void LogXLogYPolarDomain::handleVerticalAxisBaseChanged(qreal baseY)
{
m_logBaseY = baseY;
- qreal logMinY = std::log10(m_minY) / std::log10(m_logBaseY);
- qreal logMaxY = std::log10(m_maxY) / std::log10(m_logBaseY);
+ qreal logMinY = qLn(m_minY) / qLn(m_logBaseY);
+ qreal logMaxY = qLn(m_maxY) / qLn(m_logBaseY);
m_logInnerY = logMinY < logMaxY ? logMinY : logMaxY;
m_logOuterY = logMinY > logMaxY ? logMinY : logMaxY;
emit updated();
diff --git a/src/charts/domain/logxydomain.cpp b/src/charts/domain/logxydomain.cpp
index 09f474c3..5a09fee8 100644
--- a/src/charts/domain/logxydomain.cpp
+++ b/src/charts/domain/logxydomain.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Charts module of the Qt Toolkit.
@@ -58,8 +58,8 @@ void LogXYDomain::setRange(qreal minX, qreal maxX, qreal minY, qreal maxY)
m_minX = minX;
m_maxX = maxX;
axisXChanged = true;
- qreal logMinX = std::log10(m_minX) / std::log10(m_logBaseX);
- qreal logMaxX = std::log10(m_maxX) / std::log10(m_logBaseX);
+ qreal logMinX = qLn(m_minX) / qLn(m_logBaseX);
+ qreal logMaxX = qLn(m_maxX) / qLn(m_logBaseX);
m_logLeftX = logMinX < logMaxX ? logMinX : logMaxX;
m_logRightX = logMinX > logMaxX ? logMinX : logMaxX;
if(!m_signalsBlocked)
@@ -162,7 +162,7 @@ QPointF LogXYDomain::calculateGeometryPoint(const QPointF &point, bool &ok) cons
if (!m_reverseY)
y = m_size.height() - y;
if (point.x() > 0) {
- x = ((std::log10(point.x()) / std::log10(m_logBaseX)) - m_logLeftX) * deltaX;
+ x = ((qLn(point.x()) / qLn(m_logBaseX)) - m_logLeftX) * deltaX;
if (m_reverseX)
x = m_size.width() - x;
ok = true;
@@ -184,7 +184,7 @@ QList<QPointF> LogXYDomain::calculateGeometryPoints(const QList<QPointF> &list)
for (int i = 0; i < list.count(); ++i) {
if (list[i].x() > 0) {
- qreal x = ((std::log10(list[i].x()) / std::log10(m_logBaseX)) - m_logLeftX) * deltaX;
+ qreal x = ((qLn(list[i].x()) / qLn(m_logBaseX)) - m_logLeftX) * deltaX;
if (m_reverseX)
x = m_size.width() - x;
qreal y = (list[i].y() - m_minY) * deltaY;
@@ -239,8 +239,8 @@ bool LogXYDomain::detachAxis(QAbstractAxis *axis)
void LogXYDomain::handleHorizontalAxisBaseChanged(qreal baseX)
{
m_logBaseX = baseX;
- qreal logMinX = std::log10(m_minX) / std::log10(m_logBaseX);
- qreal logMaxX = std::log10(m_maxX) / std::log10(m_logBaseX);
+ qreal logMinX = qLn(m_minX) / qLn(m_logBaseX);
+ qreal logMaxX = qLn(m_maxX) / qLn(m_logBaseX);
m_logLeftX = logMinX < logMaxX ? logMinX : logMaxX;
m_logRightX = logMinX > logMaxX ? logMinX : logMaxX;
emit updated();
diff --git a/src/charts/domain/logxypolardomain.cpp b/src/charts/domain/logxypolardomain.cpp
index 3c0140dc..11236d38 100644
--- a/src/charts/domain/logxypolardomain.cpp
+++ b/src/charts/domain/logxypolardomain.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Charts module of the Qt Toolkit.
@@ -58,8 +58,8 @@ void LogXYPolarDomain::setRange(qreal minX, qreal maxX, qreal minY, qreal maxY)
m_minX = minX;
m_maxX = maxX;
axisXChanged = true;
- qreal logMinX = std::log10(m_minX) / std::log10(m_logBaseX);
- qreal logMaxX = std::log10(m_maxX) / std::log10(m_logBaseX);
+ qreal logMinX = qLn(m_minX) / qLn(m_logBaseX);
+ qreal logMaxX = qLn(m_maxX) / qLn(m_logBaseX);
m_logLeftX = logMinX < logMaxX ? logMinX : logMaxX;
m_logRightX = logMinX > logMaxX ? logMinX : logMaxX;
if (!m_signalsBlocked)
@@ -148,7 +148,7 @@ qreal LogXYPolarDomain::toAngularCoordinate(qreal value, bool &ok) const
} else {
ok = true;
const qreal tickSpan = 360.0 / qAbs(m_logRightX - m_logLeftX);
- const qreal logValue = std::log10(value) / std::log10(m_logBaseX);
+ const qreal logValue = qLn(value) / qLn(m_logBaseX);
const qreal valueDelta = logValue - m_logLeftX;
retVal = valueDelta * tickSpan;
@@ -213,8 +213,8 @@ bool LogXYPolarDomain::detachAxis(QAbstractAxis *axis)
void LogXYPolarDomain::handleHorizontalAxisBaseChanged(qreal baseX)
{
m_logBaseX = baseX;
- qreal logMinX = std::log10(m_minX) / std::log10(m_logBaseX);
- qreal logMaxX = std::log10(m_maxX) / std::log10(m_logBaseX);
+ qreal logMinX = qLn(m_minX) / qLn(m_logBaseX);
+ qreal logMaxX = qLn(m_maxX) / qLn(m_logBaseX);
m_logLeftX = logMinX < logMaxX ? logMinX : logMaxX;
m_logRightX = logMinX > logMaxX ? logMinX : logMaxX;
emit updated();
diff --git a/src/charts/domain/xlogydomain.cpp b/src/charts/domain/xlogydomain.cpp
index 21f7d761..c8bbcce9 100644
--- a/src/charts/domain/xlogydomain.cpp
+++ b/src/charts/domain/xlogydomain.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Charts module of the Qt Toolkit.
@@ -66,8 +66,8 @@ void XLogYDomain::setRange(qreal minX, qreal maxX, qreal minY, qreal maxY)
m_minY = minY;
m_maxY = maxY;
axisYChanged = true;
- qreal logMinY = std::log10(m_minY) / std::log10(m_logBaseY);
- qreal logMaxY = std::log10(m_maxY) / std::log10(m_logBaseY);
+ qreal logMinY = qLn(m_minY) / qLn(m_logBaseY);
+ qreal logMaxY = qLn(m_maxY) / qLn(m_logBaseY);
m_logLeftY = logMinY < logMaxY ? logMinY : logMaxY;
m_logRightY = logMinY > logMaxY ? logMinY : logMaxY;
if (!m_signalsBlocked)
@@ -162,7 +162,7 @@ QPointF XLogYDomain::calculateGeometryPoint(const QPointF &point, bool &ok) cons
x = m_size.width() - x;
qreal y(0);
if (point.y() > 0) {
- y = ((std::log10(point.y()) / std::log10(m_logBaseY)) - m_logLeftY) * deltaY;
+ y = ((qLn(point.y()) / qLn(m_logBaseY)) - m_logLeftY) * deltaY;
if (!m_reverseY)
y = m_size.height() - y;
ok = true;
@@ -187,7 +187,7 @@ QList<QPointF> XLogYDomain::calculateGeometryPoints(const QList<QPointF> &list)
qreal x = (list[i].x() - m_minX) * deltaX;
if (m_reverseX)
x = m_size.width() - x;
- qreal y = ((std::log10(list[i].y()) / std::log10(m_logBaseY)) - m_logLeftY) * deltaY;
+ qreal y = ((qLn(list[i].y()) / qLn(m_logBaseY)) - m_logLeftY) * deltaY;
if (!m_reverseY)
y = m_size.height() - y;
result[i].setX(x);
@@ -236,8 +236,8 @@ bool XLogYDomain::detachAxis(QAbstractAxis *axis)
void XLogYDomain::handleVerticalAxisBaseChanged(qreal baseY)
{
m_logBaseY = baseY;
- qreal logMinY = std::log10(m_minY) / std::log10(m_logBaseY);
- qreal logMaxY = std::log10(m_maxY) / std::log10(m_logBaseY);
+ qreal logMinY = qLn(m_minY) / qLn(m_logBaseY);
+ qreal logMaxY = qLn(m_maxY) / qLn(m_logBaseY);
m_logLeftY = logMinY < logMaxY ? logMinY : logMaxY;
m_logRightY = logMinY > logMaxY ? logMinY : logMaxY;
emit updated();
diff --git a/src/charts/domain/xlogypolardomain.cpp b/src/charts/domain/xlogypolardomain.cpp
index 0b72ff84..3c05245f 100644
--- a/src/charts/domain/xlogypolardomain.cpp
+++ b/src/charts/domain/xlogypolardomain.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Charts module of the Qt Toolkit.
@@ -66,8 +66,8 @@ void XLogYPolarDomain::setRange(qreal minX, qreal maxX, qreal minY, qreal maxY)
m_minY = minY;
m_maxY = maxY;
axisYChanged = true;
- qreal logMinY = std::log10(m_minY) / std::log10(m_logBaseY);
- qreal logMaxY = std::log10(m_maxY) / std::log10(m_logBaseY);
+ qreal logMinY = qLn(m_minY) / qLn(m_logBaseY);
+ qreal logMaxY = qLn(m_maxY) / qLn(m_logBaseY);
m_logInnerY = logMinY < logMaxY ? logMinY : logMaxY;
m_logOuterY = logMinY > logMaxY ? logMinY : logMaxY;
if (!m_signalsBlocked)
@@ -156,7 +156,7 @@ qreal XLogYPolarDomain::toRadialCoordinate(qreal value, bool &ok) const
} else {
ok = true;
const qreal tickSpan = m_radius / qAbs(m_logOuterY - m_logInnerY);
- const qreal logValue = std::log10(value) / std::log10(m_logBaseY);
+ const qreal logValue = qLn(value) / qLn(m_logBaseY);
const qreal valueDelta = logValue - m_logInnerY;
retVal = valueDelta * tickSpan;
@@ -208,8 +208,8 @@ bool XLogYPolarDomain::detachAxis(QAbstractAxis *axis)
void XLogYPolarDomain::handleVerticalAxisBaseChanged(qreal baseY)
{
m_logBaseY = baseY;
- qreal logMinY = std::log10(m_minY) / std::log10(m_logBaseY);
- qreal logMaxY = std::log10(m_maxY) / std::log10(m_logBaseY);
+ qreal logMinY = qLn(m_minY) / qLn(m_logBaseY);
+ qreal logMaxY = qLn(m_maxY) / qLn(m_logBaseY);
m_logInnerY = logMinY < logMaxY ? logMinY : logMaxY;
m_logOuterY = logMinY > logMaxY ? logMinY : logMaxY;
emit updated();