# RPN expressions in Torrus

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>.

## New functions added

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.

## Data access

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.

# Author

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