navigation map

Chapters:
  1: Introduction
  2: Simple example
  3: Invocation
  4: Finer Control
  5: X-Y Plots
  6: Contour Plots
  7: Image Plots
  8: Examples
  9: Gri Commands
  10: Programming
  11: Environment
  12: Emacs Mode
  13: History
  14: Installation
  15: Gri Bugs
  16: Test Suite
  17: Gri in Press
  18: Acknowledgments
  19: License

Indices:
  Concepts
  Commands
  Variables
index.html#Top ReversePolishMath.html#rpnMathematics Gri: RPN column manipulation Gri: Text in Gri index.html#Top Gri: Text in Gri

10.9.8: rpn Examples

Here are some reverse-polish expressions and the corresponding algebraic interpretations:

  • `{rpn 1 2 + 10 / }' = (1+2)/10

  • `{rpn .a. .b. + .c. + .d. / }' = (.a.+.b.+.c.)/.d.

  • `{rpn e 2 / }' = e/2 (Gri knows values of ``e'' and ``pi'')

  • `{rpn 23 sin 100 * 12 cos + }' = cos(12) + 100sin(23)

  • `{rpn 5 2 power }' = 25

  • `{rpn 2 log exp }' = exp(log 2)

  • `{rpn 2 ln exp10 }' = 10^ln2

  • `{rpn 1.7 floor }' = 1 (rounds down to nearest integer. Note that the floor of -1.7 is -2)

  • `{rpn 10.1 2 remainder }' = 0.1 (remainder of 10.1 after division by 2; see C function `remainder(x,y)')

  • `{rpn -10.1 2 remainder }' = -0.1

  • `{rpn -10.1 -2 remainder }' = -0.1

  • `{rpn .num. 10 > }' = 1 if 10 exceeds .num., or 0 otherwise

NOTES:

  • The units of `sin', `cos', etc, are degrees, not radians.
  • The scales of the plot are accessible to `rpn'. For example, with the command

    
    draw label "hi" at 10 20
    

    you draw the indicated string at the indicated location in user coordinates. To put it 0.15 centimetres to the right of this location and 0.1 centimetres lower, you could do as follows:

    
    draw label "\label" at \
        {rpn .x. xusertocm 0.15 + xcmtouser} \
        {rpn .y. yusertocm 0.10 - ycmtouser}
    

    (Note that the x and y scales have individual translations from "user" to "cm" coordinates.)

  • Some conversion factors are built into `rpn'; `cmtopt' converts from centimetres to points (by dividing by 28.45; the conversion factor to inches is 72.27) while `pttocm' converts from points to centimetres. For example, here is how to label a data curve with a label placed near the last y-value of the data set:

    
    draw curve
    .y. = {rpn ..ylast.. yusertocm 0.5 - ycmtouser}
    draw label "Smoothed" at ..xlast.. .y.
    

navigation map