X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=doc%2Frrdgraph_rpn.src;fp=doc%2Frrdgraph_rpn.src;h=0000000000000000000000000000000000000000;hp=b79e4e2db3b42d7f7be588aaeee6cf91423beccd;hb=1ed31d581dfed23377a61d4df88bb9c2b9b2c94b;hpb=09fa22ce43438f77625e759d7b29d8ae6bc56084 diff --git a/doc/rrdgraph_rpn.src b/doc/rrdgraph_rpn.src deleted file mode 100644 index b79e4e2..0000000 --- a/doc/rrdgraph_rpn.src +++ /dev/null @@ -1,275 +0,0 @@ -=head1 NAME - -rrdgraph_rpn - About RPN Math in rrdtool graph - -=head1 SYNOPSIS - -I:=I|I|I[,I] - -=head1 DESCRIPTION - -If you have ever used a traditional HP calculator you already know -B. The idea behind B is that you have a stack and push -your data onto this stack. Whenever you execute an operation, it -takes as many elements from the stack as needed. Pushing is done -implicit so whenever you specify a number or a variable, it gets -pushed automatically. - -At the end of the calculation there should be one and exactly one -value left on the stack. This is the outcome of the function and -this is what is put into the I. For B instructions, -the stack is processed for each data point on the graph. B -instructions work on an entire data set in one run. - -Example: C - -This will set variable "maximum" which you now can use in the rest -of your RRD script. - -Example: C - -This means: push variable I, push the number 8, execute -the operator I<+>. The operator needs two elements and uses those -to return one value. This value is then stored in I. -As you may have guessed, this instruction means nothing more than -I. The real power of B lies in the -fact that it is always clear in which order to process the input. -For expressions like C you need to multiply 3 with -5 first before you add I to get I. However, with parentheses -you could change this order: C. In B, you -would do C and need no parentheses. - -=head1 OPERATORS - -=over 4 - -=item Boolean operators - -B - -Pop two elements from the stack, compare them for the selected condition -and return 1 for true or 0 for false. Comparing an I or an -I value will always result in 0 (false). - -B - -Pop one element from the stack, compare this to I respectively -to I. Returns 1 for true or 0 for false. - -B - -Pops three elements from the stack. If the last element is 0 (false), -the first value is pushed back onto the stack, otherwise the second -popped value is pushed back. This does, indeed, mean that any value -other than 0 is considered to be true. - -Example: C should be read as C - -Z<> - -=item Comparing values - -B - -Pops two elements from the stack and returns the lesser or larger. -The two numbers shouldn't be I or I, if they are -that value is pushed back onto the stack as the result. - -B - -Pops two elements from the stack and uses them to define a range. -Then it pops another element and if it falls inside the range, it -is pushed back. If not, an I is pushed. - -The range defined includes the two boundaries (so: a number equal -to one of the boundaries will be pushed back). If any of the three -numbers involved is either I or I this function -will always return an I - -Example: C will return I if -alpha is lower than 0 or if it is higher than 100. - -Z<> - -=item Arithmetics - -B<+, -, *, /, %> - -Add, subtract, multiply, divide, modulo - -B - -Sine, cosine (input in radians), log, exp (natural logarithm), square root - -B - -Arctangent. Output in radians. - -B - -Round down,up to the nearest integer - -Z<> - -=item Set Operations - -B - -Pop one element from the stack. This is the I of items to be sorted -(or reversed). The top I of the remaining elements are then sorted -(or reversed) in place on the stack. - -Example: C will -compute the average of the values v1..v6 after removing the smallest and -largest. - -B - -Create a "sliding window" average of another data series. - -Usage: -CDEF:smoothed=x,1800,TREND - -This will create a half-hour (1800 second) sliding window average of x. The -average is essentially computed as shown here: - - +---!---!---!---!---!---!---!---!---> - now - delay t0 - <---------------> - delay t1 - <---------------> - delay t2 - <---------------> - - - Value at sample (t0) will be the average between (t0-delay) and (t0) - Value at sample (t1) will be the average between (t1-delay) and (t1) - Value at sample (t2) will be the average between (t2-delay) and (t2) - -=item Special values - -B - -Pushes an unknown value on the stack - -B - -Pushes a positive or negative infinite value on the stack. When -such a value is graphed, it appears at the top or bottom of the -graph, no matter what the actual value on the y-axis is. - -B - -Pushes an I value if this is the first value of a data -set or otherwise the result of this B at the previous time -step. This allows you to do calculations across the data. This -function cannot be used in B instructions. - -B - -Pushes an I value if this is the first value of a data -set or otherwise the result of vname variable at the previous time -step. This allows you to do calculations across the data. This -function cannot be used in B instructions. - -B - -Pushes the number 1 if this is the first value of the data set, the -number 2 if it is the second, and so on. This special value, allows -you to make calculations based on the position of the value within -the data set. This function cannot be used in B instructions. - -Z<> - -=item Time - -Time inside RRDtool is measured in seconds since the epoch. This -epoch is defined to be S>. - -B - -Pushes the current time on the stack. - -B