7 #include "EngaugeAssert.h" 8 #include "ExportAlignLinear.h" 11 const double EPSILON = 0.000001;
16 ENGAUGE_ASSERT (xMin <= xMax);
21 double powerOf10 = qPow (10.0, (
int) (log10 (qAbs (xMin)) + EPSILON));
22 int firstDigit = (int) (xMin / powerOf10);
23 double digitsCurrent = firstDigit * powerOf10;
24 while (digitsCurrent > xMin) {
25 digitsCurrent -= powerOf10;
27 double digitsHighestUnderXMin = digitsCurrent;
29 digitsCurrent = digitsHighestUnderXMin;
30 while (digitsCurrent < xMin) {
31 digitsCurrent += powerOf10;
33 if (digitsCurrent < xMin) {
34 digitsHighestUnderXMin = digitsCurrent;
38 }
while (digitsCurrent > xMax);
40 m_firstSimplestNumber = digitsCurrent;
45 return m_firstSimplestNumber;
48 double ExportAlignLinear::log10 (
double in)
const 50 return qLn (in) / qLn (10.0);
ExportAlignLinear(double xMin, double xMax)
Single constructor.
double firstSimplestNumber() const
Result.