MCPcopy Create free account
hub / github.com/LUX-Core/lux / sanitizedForLogScale

Method sanitizedForLogScale

src/qt/qcustomplot.cpp:2033–2076  ·  view source on GitHub ↗

! Returns a sanitized version of the range. Sanitized means for logarithmic scales, that the range won't span the positive and negative sign domain, i.e. contain zero. Further \a lower will always be numerically smaller (or equal) to \a upper. If the original range does span positive and negative sign domains or contains zero, the returned range will try to approximate the original ra

Source from the content-addressed store, hash-verified

2031 is wider than the positive interval, this time by changing the \a upper bound.
2032*/
2033QCPRange QCPRange::sanitizedForLogScale() const
2034{
2035 double rangeFac = 1e-3;
2036 QCPRange sanitizedRange(lower, upper);
2037 sanitizedRange.normalize();
2038 // can't have range spanning negative and positive values in log plot, so change range to fix it
2039 //if (qFuzzyCompare(sanitizedRange.lower+1, 1) && !qFuzzyCompare(sanitizedRange.upper+1, 1))
2040 if (sanitizedRange.lower == 0.0 && sanitizedRange.upper != 0.0)
2041 {
2042 // case lower is 0
2043 if (rangeFac < sanitizedRange.upper*rangeFac)
2044 sanitizedRange.lower = rangeFac;
2045 else
2046 sanitizedRange.lower = sanitizedRange.upper*rangeFac;
2047 } //else if (!qFuzzyCompare(lower+1, 1) && qFuzzyCompare(upper+1, 1))
2048 else if (sanitizedRange.lower != 0.0 && sanitizedRange.upper == 0.0)
2049 {
2050 // case upper is 0
2051 if (-rangeFac > sanitizedRange.lower*rangeFac)
2052 sanitizedRange.upper = -rangeFac;
2053 else
2054 sanitizedRange.upper = sanitizedRange.lower*rangeFac;
2055 } else if (sanitizedRange.lower < 0 && sanitizedRange.upper > 0)
2056 {
2057 // find out whether negative or positive interval is wider to decide which sign domain will be chosen
2058 if (-sanitizedRange.lower > sanitizedRange.upper)
2059 {
2060 // negative is wider, do same as in case upper is 0
2061 if (-rangeFac > sanitizedRange.lower*rangeFac)
2062 sanitizedRange.upper = -rangeFac;
2063 else
2064 sanitizedRange.upper = sanitizedRange.lower*rangeFac;
2065 } else
2066 {
2067 // positive is wider, do same as in case lower is 0
2068 if (rangeFac < sanitizedRange.upper*rangeFac)
2069 sanitizedRange.lower = rangeFac;
2070 else
2071 sanitizedRange.lower = sanitizedRange.upper*rangeFac;
2072 }
2073 }
2074 // due to normalization, case lower>0 && upper<0 should never occur, because that implies upper<lower
2075 return sanitizedRange;
2076}
2077
2078/*!
2079 Returns a sanitized version of the range. Sanitized means for linear scales, that

Callers 7

setScaleTypeMethod · 0.80
setRangeMethod · 0.80
setRangeLowerMethod · 0.80
setRangeUpperMethod · 0.80
scaleRangeMethod · 0.80
setDataScaleTypeMethod · 0.80
setDataRangeMethod · 0.80

Calls 1

normalizeMethod · 0.80

Tested by

no test coverage detected