QCPRange Class Reference
Author: Emanuel Eichhammer

· · · ·
Public Functions | Public Members | Static Public Functions | Static Public Members | Friends
QCPRange Class Reference

Represents the range an axis is encompassing. More...

## Public Functions
| QCPRange ()
| QCPRange (double lower, double upper)
bool | operator== (const QCPRange &other) const
bool | operator!= (const QCPRange &other) const
QCPRange & | operator+= (const double &value)
QCPRange & | operator-= (const double &value)
QCPRange & | operator*= (const double &value)
QCPRange & | operator/= (const double &value)
double | size () const
double | center () const
void | normalize ()
void | expand (const QCPRange &otherRange)
QCPRange | expanded (const QCPRange &otherRange) const
QCPRange | sanitizedForLogScale () const
QCPRange | sanitizedForLinScale () const
bool | contains (double value) const

## Public Members
double | lower
double | upper

## Static Public Functions
static bool | validRange (double lower, double upper)
static bool | validRange (const QCPRange &range)

## Static Public Members
static const double | minRange = 1e-280
static const double | maxRange = 1e250

## Friends
const QCPRange | operator+ (const QCPRange &, double)
const QCPRange | operator+ (double, const QCPRange &)
const QCPRange | operator- (const QCPRange &range, double value)
const QCPRange | operator* (const QCPRange &range, double value)
const QCPRange | operator* (double value, const QCPRange &range)
const QCPRange | operator/ (const QCPRange &range, double value)

## Detailed Description

Represents the range an axis is encompassing.

contains a lower and upper double value and provides convenience input, output and modification functions.

See Also
  QCPAxis::setRange

## Constructor & Destructor Documentation

QCPRange::QCPRange | ( |  | ) |

Constructs a range with lower and upper set to zero.

QCPRange::QCPRange | ( | double | lower,
|  | double | upper
| ) |  |

This is an overloaded function. Constructs a range with the specified lower and upper values.

## Member Function Documentation

QCPRange & QCPRange::operator+= | ( | const double & | value | ) |
| inline

Adds value to both boundaries of the range.

QCPRange & QCPRange::operator-= | ( | const double & | value | ) |
| inline

Subtracts value from both boundaries of the range.

QCPRange & QCPRange::operator*= | ( | const double & | value | ) |
| inline

Multiplies both boundaries of the range by value.

QCPRange & QCPRange::operator/= | ( | const double & | value | ) |
| inline

Divides both boundaries of the range by value.

double QCPRange::size | ( |  | ) | const

Returns the size of the range, i.e. upper-lower

double QCPRange::center | ( |  | ) | const

Returns the center of the range, i.e. (upper+lower)*0.5

void QCPRange::normalize | ( |  | ) |

Makes sure lower is numerically smaller than upper. If this is not the case, the values are swapped.

void QCPRange::expand | ( | const QCPRange & | otherRange | ) |

Expands this range such that otherRange is contained in the new range. It is assumed that both this range and otherRange are normalized (see normalize).

If otherRange is already inside the current range, this function does nothing.

See Also
  expanded

QCPRange QCPRange::expanded | ( | const QCPRange & | otherRange | ) | const

Returns an expanded range that contains this and otherRange. It is assumed that both this range and otherRange are normalized (see normalize).

See Also
  expand

QCPRange QCPRange::sanitizedForLogScale | ( |  | ) | const

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 lower will always be numerically smaller (or equal) to upper.

If the original range does span positive and negative sign domains or contains zero, the returned range will try to approximate the original range as good as possible. If the positive interval of the original range is wider than the negative interval, the returned range will only contain the positive interval, with lower bound set to rangeFac or rangeFac *upper, whichever is closer to zero. Same procedure is used if the negative interval is wider than the positive interval, this time by changing the upper bound.

QCPRange QCPRange::sanitizedForLinScale | ( |  | ) | const

Returns a sanitized version of the range. Sanitized means for linear scales, that lower will always be numerically smaller (or equal) to upper.

bool QCPRange::contains | ( | double | value | ) | const

Returns true when value lies within or exactly on the borders of the range.

bool QCPRange::validRange | ( | double | lower,
|  | double | upper
| ) |  |
| static

Checks, whether the specified range is within valid bounds, which are defined as QCPRange::maxRange and QCPRange::minRange. A valid range means:

- range bounds within -maxRange and maxRange
- range size above minRange
- range size below maxRange

bool QCPRange::validRange | ( | const QCPRange & | range | ) |
| static

This is an overloaded function. Checks, whether the specified range is within valid bounds, which are defined as QCPRange::maxRange and QCPRange::minRange. A valid range means:

- range bounds within -maxRange and maxRange
- range size above minRange
- range size below maxRange

## Field Documentation

const double QCPRange::minRange = 1e-280
| static

Minimum range size (upper - lower) the range changing functions will accept. Smaller intervals would cause errors due to the 11-bit exponent of double precision numbers, corresponding to a minimum magnitude of roughly 1e-308.

See Also
  validRange, maxRange

const double QCPRange::maxRange = 1e250
| static

Maximum values (negative and positive) the range will accept in range-changing functions. Larger absolute values would cause errors due to the 11-bit exponent of double precision numbers, corresponding to a maximum magnitude of roughly 1e308. Since the number of planck-volumes in the entire visible universe is only ~1e183, this should be enough.

See Also
  validRange, minRange

## Friends And Related Function Documentation

const QCPRange operator+ | ( | const QCPRange & | range,
|  | double | value
| ) |  |
| friend

Adds value to both boundaries of the range.

const QCPRange operator+ | ( | double | value,
|  | const QCPRange & | range
| ) |  |
| friend

Adds value to both boundaries of the range.

const QCPRange operator- | ( | const QCPRange & | range,
|  | double | value
| ) |  |
| friend

Subtracts value from both boundaries of the range.

const QCPRange operator* | ( | const QCPRange & | range,
|  | double | value
| ) |  |
| friend

Multiplies both boundaries of the range by value.

const QCPRange operator* | ( | double | value,
|  | const QCPRange & | range
| ) |  |
| friend

Multiplies both boundaries of the range by value.

const QCPRange operator/ | ( | const QCPRange & | range,
|  | double | value
| ) |  |
| friend

Divides both boundaries of the range by value.

The documentation for this class was generated from the following files:

- src/range.h
- src/range.cpp