-=head1 NAME
+=head1 NAME
rrdgraph_rpn - About RPN Math in rrdtool graph
implicitly, so whenever you specify a number or a variable, it gets
pushed onto the stack automatically.
-At the end of the calculation there should be one and only one
-value left on the stack. This is the outcome of the function and
-this is what is put into the I<vname>. For B<CDEF> instructions,
-the stack is processed for each data point on the graph. B<VDEF>
-instructions work on an entire data set in one run.
+At the end of the calculation there should be one and only one value left on
+the stack. This is the outcome of the function and this is what is put into
+the I<vname>. For B<CDEF> instructions, the stack is processed for each
+data point on the graph. B<VDEF> instructions work on an entire data set in
+one run. Note, that currently B<VDEF> instructions only support a limited
+list of functions.
Example: C<VDEF:maximum=mydata,MAXIMUM>
=item Comparing values
-B<MIN, MAX>
+B<MIN, MAX>
Pops two elements from the stack and returns the smaller or larger,
-respectively. The two numbers shouldn't be I<infinite> or I<unknown>,
-if they are that value is pushed back onto the stack as the result.
-
-= for comment
-XXX What happens above if both a infinite and undefined value are on the
-XXX stack? Fritz
+respectively. Note that I<infinite> is larger than anything else.
+If one of the input numbers is I<unknown> then the result of the operation will be
+I<unknown> too.
B<LIMIT>
Arctangent (output in radians).
+B<ATAN2>
+
+Arctangent of y,x components (output in radians).
+This pops one element from the stack, the x (cosine) component, and then
+a second, which is the y (sine) component.
+It then pushes the arctangent of their ratio, resolving the ambiguity between
+quadrants.
+
+Example: C<CDEF:angle=Y,X,ATAN2,RAD2DEG> will convert C<X,Y>
+components into an angle in degrees.
+
B<FLOOR, CEIL>
Round down or up to the nearest integer.
-Z<>
+B<DEG2RAD, RAD2DEG>
+
+Convert angle in degrees to radians, or radians to degrees.
=item Set Operations
delay t0
<--------------->
delay t1
- <--------------->
+ <--------------->
delay t2
<--------------->
B<COUNT>
-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
+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<VDEF> instructions.
-Z<>
-
=item Time
Time inside RRDtool is measured in seconds since the epoch. The
=head1 VARIABLES
-These operators work only on B<VDEF> statements.
+These operators work only on B<VDEF> statements. Note that currently ONLY these work for B<VDEF>.
=over 4
Example: C<VDEF:perc95=mydata,95,PERCENT>
+=item LSLSLOPE, LSLINT, LSLCORREL
+
+Return the parameters for a B<L>east B<S>quares B<L>ine I<(y = mx +b)>
+which approximate the provided dataset. LSLSLOPE is the slope I<(m)> of
+the line related to the COUNT position of the data. LSLINT is the
+y-intercept I<(b)>, which happens also to be the first data point on the
+graph. LSLCORREL is the Correlation Coefficient (also know as Pearson's
+Product Moment Correlation Coefficient). It will range from 0 to +/-1
+and represents the quality of fit for the approximation.
+
+Example: C<VDEF:slope=mydata,LSLSLOPE>
+
=back
=head1 SEE ALSO