In Torrus framework, RPN expressions are the superset of those
in RRDtool version 1.0. See the `rrdtool graph`

manual at
<http://oss.oetiker.ch/rrdtool/doc/rrdgraph_rpn.en.html>.

**NE**Pops two arguments from stack, and pushes 0 if the arguments are equal, and 1 otherwise.

**AND, OR**These functions pop two arguments from stack, and push back the result of logical operation. Unlike C operators,

**NOT**Pops one value from stack and pushes 0 if the argument is nonzero, otherwise 1.

**ABS**Pops one value from stack and pushes the absolute value of it.

**NOW**Pushes the current time, in seconds since Epoch.

**TOD**Pushes the time-of-day value: the number of seconds since midnight in th ecurrent time zone.

**WDAY**Pushes the day of the week number (0=Sunday).

**MOFRI**Pushes 1 if today is Monday to Friday, or 0 otherwise.

**MOD**Equivalent of

`%`

, the modulo operator. In Torrus parameter value, percent sign is reserved for parameter substitution.**NUM**Returns zero if the argument is undefined, and the argument's numeric value otherwise

**INF, NEGINF**Returns the positive or negative infinity.

In certain context, the values of the datasources can be evaluated into RPN expression.

The general format for data access is following:

{FUNC@PATH(-OFFSET)}

`FUNC@`

specifies a special function to be performed on the
data being accessed.

For monitor expressions, `T@`

returns the timestamp of the data source.

For `rrd-cdef`

leaf types and for `rrd-multigraph`

datasource types,
the following functions affect the graph shape: `AVERAGE@`

, `MIN@`

,
`MAX@`

, and `LAST@`

. They cause the corresponding Consolidation Function
being used when creating a graph.

`PATH`

specifies the relative name for the data source. If omitted,
the current leaf value is taken. If starts with `/`

, the path is
considered as absolute. Path starting with letter denotes the child of
the parent subtree. Double dot (`../`

) in the beginning of the path is
interpreted as current parent's parent subtree. If `PATH`

starts with a
string enclosed in double square brackets (`[[`

and `]]`

), the string
is interpreted as a NodeID value for referring to the node in the
datasource tree.

`(OFFSET)`

determines the time reference, as described in `rrdtool fetch`

manual. In addition, the word `LAST`

refers to the latest data timestamp
available.

`(OFFSET)`

is currently supported in Monitor expressions only.

Copyright (c) 2002-2004 Stanislav Sinyagin <ssinyagin@k-open.com>