1 #include "EngaugeAssert.h"
2 #include "ExportAlignLinear.h"
5 const double EPSILON = 0.000001;
10 ENGAUGE_ASSERT (xMin <= xMax);
15 double powerOf10 = qPow (10.0, (
int) (log10 (qAbs (xMin)) + EPSILON));
16 int firstDigit = (int) (xMin / powerOf10);
17 double digitsCurrent = firstDigit * powerOf10;
18 while (digitsCurrent > xMin) {
19 digitsCurrent -= powerOf10;
21 double digitsHighestUnderXMin = digitsCurrent;
23 digitsCurrent = digitsHighestUnderXMin;
24 while (digitsCurrent < xMin) {
25 digitsCurrent += powerOf10;
27 if (digitsCurrent < xMin) {
28 digitsHighestUnderXMin = digitsCurrent;
32 }
while (digitsCurrent > xMax);
34 m_firstSimplestNumber = digitsCurrent;
39 return m_firstSimplestNumber;
42 double ExportAlignLinear::log10 (
double in)
const
44 return qLn (in) / qLn (10.0);
ExportAlignLinear(double xMin, double xMax)
Single constructor.
double firstSimplestNumber() const
Result.