Man Linux: Main Page and Category List

NAME

       orpie  is  a  console-based  RPN  calculator with an interactive visual
       stack.

SYNOPSIS

       orpie

QUICK START

       CAUTION: while this manpage should be suitable as a quick reference, it
       may  be  subject  to  miscellaneous  shortcomings  in  typesetting. The
       definitive documentation is the user manual provided with Orpie in  PDF
       format.

       This  section  describes how to use Orpie in its default configuration.
       After familiarizing yourself with the basic operations as  outlined  in
       this section, you may wish to consult the orpierc(5) manpage to see how
       Orpie can be configured to better fit your needs.

   OVERVIEW
       The  interface  has  two  panels.  The  left  panel   combines   status
       information with context-sensitive help; the right panel represents the
       calculator’s stack. (Note that the left panel will be hidden  if  Orpie
       is run in a terminal with less than 80 columns.)

       In  general,  you perform calculations by first entering data on to the
       stack, then executing functions that operate on the stack data.  As  an
       example, you can hit 1<enter>2<enter>+ in order to add 1 and 2.

   ENTERING REAL NUMBERS
       To enter a real number, just type the desired digits and hit enter. The
       space bar will begin entry of a scientific notation exponent.  The  ’n’
       key is used for negation. Here are some examples:

       --------------------------------------------
       Keypresses                Resulting Entry
       --------------------------------------------
       1.23<enter>               1.23
       1.23<space>23n<enter>     1.23e-23
       1.23n<space>23<enter>     -1.23e23
       --------------------------------------------

   ENTERING COMPLEX NUMBERS
       Orpie   can   represent   complex   numbers   using   either  cartesian
       (rectangular)  or  polar  coordinates.  See  PERFORMING  BASIC  COMMAND
       OPERATIONS to see how to change the complex number display mode.

       A  complex  number  is entered by first pressing ’(’, then entering the
       real  part,  then  pressing  ’,’  followed  by  the   imaginary   part.
       Alternatively,  you  can  press ’(’ followed by the magnitude, then ’<’
       followed by the phase angle. The angle will be interpreted  in  degrees
       or  radians,  depending  on  the current setting of the angle mode (see
       PERFORMING BASIC COMMAND OPERATIONS).  Examples:

       --------------------------------------------------------------------
       Keypresses                      Resulting Entry
       --------------------------------------------------------------------
       (1.23, 4.56<enter>              (1.23, 4.56)
       (0.7072<45<enter>               (0.500065915655126, 0.50006591...
       (1.23n,4.56<space>10<enter>     (-1.23, 45600000000)
       --------------------------------------------------------------------

   ENTERING MATRICES
       You can enter matrices by pressing ’[’. The elements of the matrix  may
       then  be  entered  as described in the previous sections, and should be
       separated using ’,’. To start a new row of the matrix, press ’[’ again.
       On  the stack, each row of the matrix is enclosed in a set of brackets;
       for example, the matrix

       1     2
       3     4

       would appear on the stack as [[1, 2][3, 4]].

       Examples of matrix entry:

       ---------------------------------------------------------------------
       Keypresses                       Resulting Entry
       ---------------------------------------------------------------------
       [1,2[3,4<enter>                  [[1, 2][3, 4]]
       [1.2<space>10,0[3n,5n<enter>     [[ 12000000000, 0 ][ -3, -5 ]]
       [(1,2,3,4[5,6,7,8<enter>         [[ (1, 2), (3, 4) ][ (5, 6), (...
       ---------------------------------------------------------------------

   ENTERING DATA WITH UNITS
       Real and complex scalars and matrices can optionally  be  labeled  with
       units.  After  typing  in  the  numeric  portion of the data, press ’_’
       followed by a units string. The format of units strings is described in
       the UNITS FORMATTING section.

       Examples of entering dimensioned data:

       -------------------------------------------------------
       Keypresses                 Resulting Entry
       -------------------------------------------------------
       1.234_N*mm^2/s<enter>      1.234_N*mm^2*s^-1
       (2.3,5_s^-4<enter>         (2.3, 5)_s^-4
       [1,2[3,4_lbf*in<enter>     [[ 1, 2 ][ 3, 4 ]]_lbf*in
       _nm<enter>                 1_nm
       -------------------------------------------------------

   ENTERING EXACT INTEGERS
       An exact integer may be entered by pressing ’#’ followed by the desired
       digits. The base of the integer will be assumed to be the same  as  the
       current  calculator  base mode (see PERFORMING BASIC COMMAND OPERATIONS
       to see how to set this mode).  Alternatively, the desired base  may  be
       specified  by  pressing  space  and  appending  one of {b, o, d, h}, to
       represent binary, octal, decimal, or hexadecimal, respectively. On  the
       stack,  the  representation of the integer will be changed to match the
       current base mode. Examples:

       ---------------------------------------------
       Keypresses                 Resulting Entry
       ---------------------------------------------
       #123456<enter>             # 123456‘d
       #ffff<space>h<enter>       # 65535‘d
       #10101n<space>b<enter>     # -21‘d
       ---------------------------------------------

       Note that exact integers may  have  unlimited  length,  and  the  basic
       arithmetic operations (addition, subtraction, multiplication, division)
       will be performed  using  exact  arithmetic  when  both  arguments  are
       integers.

   ENTERING VARIABLE NAMES
       A  variable name may be entered by pressing ’@’ followed by the desired
       variable name string. The string may contain  alphanumeric  characters,
       dashes, and underscores. Example:

       ---------------------------------
       Keypresses     Resulting Entry
       ---------------------------------
       @myvar         @ myvar
       ---------------------------------

       Orpie  also  supports  autocompletion of variable names. The help panel
       displays a list of pre-existing variables that partially match the name
       currently  being entered.  You can press ’<tab>’ to iterate through the
       list of matching variables.

       As a shortcut, keys <f1>-<f4> will enter the variables  (‘‘registers’’)
       @ r01 through @ r04.

   ENTERING PHYSICAL CONSTANTS
       Orpie  includes  definitions  for  a  number  of  fundamental  physical
       constants. To enter a constant, press ’C’, followed by  the  first  few
       letters/digits  of  the constant’s symbol, then hit enter. Orpie offers
       an autocompletion feature for physical constants, so you only  need  to
       type enough of the constant to identify it uniquely. A list of matching
       constants will appear in the left panel of the display, to  assist  you
       in finding the desired choice.

       The following is a list of Orpie’s physical constant symbols:

       ----------------------------------------------
       Symbol     Physical Constant
       ----------------------------------------------
       NA         Avagadro’s number
       k          Boltzmann constant
       Vm         molar volume
       R          universal gas constant
       stdT       standard temperature
       stdP       standard pressure
       sigma      Stefan-Boltzmann constant
       c          speed of light
       eps0       permittivity of free space
       u0         permeability of free space
       g          acceleration of gravity
       G          Newtonian gravitational constant
       h          Planck’s constant
       hbar       Dirac’s constant
       e          electron charge

       me         electron mass
       mp         proton mass
       alpha      fine structure constant
       phi        magnetic flux quantum
       F          Faraday’s constant
       Rinf       ‘‘infinity’’ Rydberg constant
       a0         Bohr radius
       uB         Bohr magneton
       uN         nuclear magneton
       lam0       wavelength of a 1eV photon
       f0         frequency of a 1eV photon
       lamc       Compton wavelength
       c3         Wien’s constant
       ----------------------------------------------

       All physical constants are defined in the Orpie run-configuration file;
       consult the orpierc(5) manpage if you wish to define your own constants
       or change the existing definitions.

   ENTERING DATA WITH AN EXTERNAL EDITOR
       Orpie can also parse input entered via an external editor. You may find
       this to be a convenient method for entering  large  matrices.  Pressing
       ’E’  will launch the external editor, and the various data types may be
       entered as illustrated by the examples below:

       ----------------------------------------------------------------------------------------
       Data Type                                              Sample Input String
       ----------------------------------------------------------------------------------------
       exact integer                                          #12345678‘d, where the trailing
       letter is one of the base characters {b, o, d, h}
       real number                                            -123.45e67
       complex number                                         (1e10, 2) or (1 <90)
       real matrix                                            [[1, 2][3.1, 4.5e10]]
       complex matrix                                         [[(1, 0), 5][1e10, (2 <90)]]
       variable                                               @myvar
       ----------------------------------------------------------------------------------------

       Real and complex numbers and matrices may have units appended; just add
       a  units  string  such  as ‘‘_N*m/s’’ immediately following the numeric
       portion of the expression.

       Notice that the complex matrix input parser is quite flexible; real and
       complex  matrix  elements may be mixed, and cartesian and polar complex
       formats may be mixed as well.

       Multiple stack entries may be specified in the same file, if  they  are
       separated  by  whitespace.  For  example,  entering (1, 2) 1.5 into the
       editor will cause the complex value (1, 2) to be placed on  the  stack,
       followed by the real value 1.5.

       The  input  parser will discard whitespace where possible, so feel free
       to add any form of whitespace between  matrix  rows,  matrix  elements,
       real and complex components, etc.

   EXECUTING BASIC FUNCTION OPERATIONS
       Once  some data has been entered on the stack, you can apply operations
       to that data. For example, ’+’ will add the last two  elements  on  the
       stack.  By  default,  the  following  keys  have  been  bound  to  such
       operations:

       -----------------------------------------------------
       Keys     Operations
       -----------------------------------------------------
       +        add last two stack elements
       -        subtract element 1 from element 2
       *        multiply last two stack elements
       /        divide element 2 by element 1
       ^        raise element 2 to the power of element 1
       n        negate last element
       i        invert last element
       s        square root function
       a        absolute value function
       e        exponential function
       l        natural logarithm function
       c        complex conjugate function
       !        factorial function
       %        element 2 mod element 1
       S        store element 2 in (variable) element 1
       ;        evaluate variable to obtain contents
       -----------------------------------------------------

       As a shortcut, function operators will  automatically  enter  any  data
       that  you  were  in the process of entering. So instead of the sequence
       2<enter>2<enter>+, you could type  simply  2<enter>2+  and  the  second
       number would be entered before the addition operation is applied.

       As  an  additional  shortcut,  any  variable  names  used  as  function
       arguments will be evaluated before  application  of  the  function.  In
       other   words,  it  is  not  necessary  to  evaluate  variables  before
       performing arithmetic operations on them.

   EXECUTING FUNCTION ABBREVIATIONS
       One could bind nearly all calculator operations to specific keypresses,
       but  this  would  rapidly  get  confusing  since the PC keyboard is not
       labeled as nicely as a calculator keyboard is. For this  reason,  Orpie
       includes an abbreviation syntax.

       To  activate  an  abbreviation,  press ’’’ (quote key), followed by the
       first few letters/digits of the abbreviation,  then  hit  enter.  Orpie
       offers an autocompletion feature for abbreviations, so you only need to
       type enough of the operation to  identify  it  uniquely.  The  matching
       abbreviations  will  appear in the left panel of the display, to assist
       you in finding the appropriate operation.

       To avoid interface conflicts, abbreviations may be  entered  only  when
       the entry buffer (the bottom line of the screen) is empty.

       The following functions are available as abbreviations:

       -----------------------------------------------------------------------------------------------------
       Abbreviations     Functions
       -----------------------------------------------------------------------------------------------------
       inv               inverse function
       pow               raise element 2 to the power of element 1
       sq                square last element
       sqrt              square root function
       abs               absolute value function
       exp               exponential function
       ln                natural logarithm function
       10^               base 10 exponential function
       log10             base 10 logarithm function
       conj              complex conjugate function
       sin               sine function

       cos               cosine function
       tan               tangent function
       sinh              hyperbolic sine function
       cosh              hyperbolic cosine function
       tanh              hyperbolic tangent function
       asin              arcsine function
       acos              arccosine function
       atan              arctangent function
       asinh             inverse hyperbolic sine function
       acosh             inverse hyperbolic cosine function
       atanh             inverse hyperbolic tangent function
       re                real part of complex number
       im                imaginary part of complex number
       gamma             Euler gamma function
       lngamma           natural log of Euler gamma function
       erf               error function
       erfc              complementary error function
       fact              factorial function
       gcd               greatest common divisor function
       lcm               least common multiple function
       binom             binomial coefficient function
       perm              permutation function
       trans             matrix transpose
       trace             trace of a matrix
       solvelin          solve a linear system of the form Ax = b
       mod               element 2 mod element 1
       floor             floor function
       ceil              ceiling function
       toint             convert a real number to an integer type
       toreal            convert an integer type to a real number
       add               add last two elements
       sub               subtract element 1 from element 2
       mult              multiply last two elements
       div               divide element 2 by element 1
       neg               negate last element
       store             store element 2 in (variable) element 1
       eval              evaluate variable to obtain contents
       purge             delete a variable
       total             sum the columns of a real matrix
       mean              compute the sample means of the columns of a real matrix
       sumsq             sum the squares of the columns of a real matrix
       var               compute the unbiased sample variances of the columns of a real matrix
       varbias           compute the biased (population) sample variances of the columns of a real matrix
       stdev             compute the unbiased sample standard deviations of the columns of a real matrix
       stdevbias         compute the biased (pop.) sample standard deviations of the columns of a matrix
       min               find the minima of the columns of a real matrix
       max               find the maxima of the columns of a real matrix
       utpn              compute the upper tail probability of a normal distribution
       uconvert          convert element 2 to an equivalent expression with units matching element 1
       ustand            convert to equivalent expression using SI standard base units
       uvalue            drop the units of the last element
       -----------------------------------------------------------------------------------------------------

       Entering  abbreviations  can  become tedious when performing repetitive
       calculations.  To save some keystrokes, Orpie will  automatically  bind
       recently-used operations with no prexisting binding to keys <f5>-<f12>.
       The current autobindings can be viewed by pressing ’h’ to cycle between
       the various pages of the help panel.

   EXECUTING BASIC COMMAND OPERATIONS
       In  addition to the function operations listed in the section EXECUTING
       BASIC FUNCTION OPERATIONS, a number of basic calculator  commands  have
       been bound to single keypresses:

       -----------------------------------------------------------------------------
       Keys           Operations
       -----------------------------------------------------------------------------
       \              drop last element
       |              clear all stack elements
       <pagedown>     swap last two elements
       <enter>        duplicate last element (when entry buffer is empty)
       u              undo last operation
       r              toggle angle mode between degrees and radians
       p              toggle complex display mode between rectangular and polar
       b              cycle base display mode between binary, octal, decimal, hex
       h              cycle through multiple help windows
       v              view last stack element in a fullscreen editor
       E              create a new stack element using an external editor
       P              enter 3.14159265 on the stack
       C-L            refresh the display
       <up>           begin stack browsing mode
       Q              quit Orpie
       -----------------------------------------------------------------------------

   EXECUTING COMMAND ABBREVIATIONS
       In  addition to the function operations listed in the section EXECUTING
       FUNCTION ABBREVIATIONS, there are a large number of calculator commands
       that have been implemented using the abbreviation syntax:

       -------------------------------------------------------------------------------------
       Abbreviations     Calculator Operation
       -------------------------------------------------------------------------------------
       drop              drop last element
       clear             clear all stack elements
       swap              swap last two elements
       dup               duplicate last element
       undo              undo last operation
       rad               set angle mode to radians
       deg               set angle mode to degrees
       rect              set complex display mode to rectangular
       polar             set complex display mode to polar
       bin               set base display mode to binary
       oct               set base display mode to octal
       dec               set base display mode to decimal
       hex               set base display mode to hexidecimal
       view              view last stack element in a fullscreen editor
       edit              create a new stack element using an external editor
       pi                enter 3.14159265 on the stack
       rand              generate a random number between 0 and 1 (uniformly distributed)
       refresh           refresh the display
       about             display a nifty ‘‘About Orpie’’ screen
       quit              quit Orpie
       -------------------------------------------------------------------------------------

   BROWSING THE STACK
       Orpie   offers   a  stack  browsing  mode  to  assist  in  viewing  and
       manipulating stack data. Press <up> to enter stack browsing mode;  this
       should  highlight  the  last stack element. You can use the up and down
       arrow keys to select different stack elements. The following  keys  are
       useful in stack browsing mode:

       --------------------------------------------------------------------------------------------------
       Keys        Operations
       --------------------------------------------------------------------------------------------------
       q           quit stack browsing mode

       <left>      scroll selected entry to the left
       <right>     scroll selected entry to the right
       r           cyclically ‘‘roll’’ stack elements downward, below the selected element (inclusive)
       R           cyclically ‘‘roll’’ stack elements upward, below the selected element (inclusive)
       v           view the currently selected element in a fullscreen editor
       E           edit the currently selected element with an external editor
       <enter>     duplicate the currently selected element
       --------------------------------------------------------------------------------------------------

       The  left  and right scrolling option may prove useful for viewing very
       lengthy stack entries, such as large matrices. The edit option provides
       a  convenient  way  to  correct  data  after it has been entered on the
       stack.

   UNITS FORMATTING
       A units string is  a  list  of  units  separated  by  ’*’  to  indicate
       multiplication  and  ’/’  to  indicate division. Units may be raised to
       real-valued powers using the ’^’character. A  contrived  example  of  a
       valid unit string would be "N*nm^2*kg/s/in^-3*GHz^2.34".

       Orpie  supports the standard SI prefix set, {y, z, a, f, p, n, u, m, c,
       d, da, h, k, M, G, T, P, E, Z, Y} (note the use  of  ’u’  for  micro-).
       These  prefixes  may be applied to any of the following exhaustive sets
       of units:

       --------------------------------
       String      Length Unit
       --------------------------------
       m           meter
       ft          foot
       in          inch
       yd          yard
       mi          mile
       pc          parsec
       AU          astronomical unit
       Ang         angstrom
       furlong     furlong
       pt          PostScript point
       pica        PostScript pica
       nmi         nautical mile
       lyr         lightyear
       --------------------------------

       -----------------------------
       String     Mass Unit
       -----------------------------
       g          gram
       lb         pound mass
       oz         ounce
       slug       slug
       lbt        Troy pound
       ton        (USA) short ton
       tonl       (UK) long ton
       tonm       metric ton
       ct         carat
       gr         grain
       -----------------------------

       -----------------------
       String     Time Unit
       -----------------------

       s          second
       min        minute
       hr         hour
       day        day
       yr         year
       Hz         Hertz
       -----------------------

       ------------------------------
       String     Temperature Unit
       ------------------------------
       K          Kelvin
       R          Rankine
       ------------------------------

       Note: No, Celsius and Fahrenheit will not be supported.  Because  these
       temperature  units  do not share a common zero point, their behavior is
       ill-defined under many operations.

       ------------------------------------------
       String     ‘‘Amount of Substance’’ Unit
       ------------------------------------------
       mol        Mole
       ------------------------------------------

       -------------------------
       String     Force Unit
       -------------------------
       N          Newton
       lbf        pound force
       dyn        dyne
       kip        kip
       -------------------------

       ----------------------------------
       String     Energy Unit
       ----------------------------------
       J          Joule
       erg        erg
       cal        calorie
       BTU        british thermal unit
       eV         electron volt
       ----------------------------------

       -----------------------------
       String     Electrical Unit
       -----------------------------
       A          Ampere
       C          Coulomb
       V          volt
       Ohm        Ohm
       F          Farad
       H          Henry
       T          Tesla
       G          Gauss
       Wb         Weber
       Mx         Maxwell
       -----------------------------

       ------------------------
       String     Power Unit
       ------------------------
       W          Watt
       hp         horsepower
       ------------------------

       ------------------------------------
       String     Pressure Unit
       ------------------------------------
       Pa         Pascal
       atm        atmosphere
       bar        bar
       Ohm        Ohm
       mmHg       millimeters of mercury
       inHg       inches of mercury
       ------------------------------------

       ----------------------------
       String     Luminance Unit
       ----------------------------
       cd         candela
       lm         lumen
       lx         lux
       ----------------------------

       Note: Although the lumen is defined by 1_lm = 1_cd *  sr,  Orpie  drops
       the  steridian  because  it is a dimensionless unit and therefore is of
       questionable use to a calculator.

       ------------------------------
       String     Volume Unit
       ------------------------------
       ozfl       fluid ounce (US)
       cup        cup (US)
       pt         pint (US)
       qt         quart (US)
       gal        gallon (US)
       L          liter
       ------------------------------

       All units are defined in the Orpie run-configuration file; consult  the
       orpierc(5)  manpage  if you wish to define your own units or change the
       existing definitions.

LICENSING

       Orpie is Free Software; you can redistribute it and/or modify it  under
       the  terms  of  the  GNU  General  Public  License (GPL), Version 2, as
       published by the Free Software Foundation. You should have  received  a
       copy of the GPL along with this program, in the file ‘‘COPYING’’.

CREDITS

       Orpie  includes  portions  of  the  ocamlgsl  [1]  bindings supplied by
       Olivier Andrieu, as well as the curses bindings  from  the  OCaml  Text
       Mode  Kit  [2]  written  by Nicolas George. I would like to thank these
       authors for helping to make Orpie possible.

CONTACT INFO

       Orpie author: Paul Pelzl <pelzlpj@eecs.umich.edu>
       Orpie website: http://www.eecs.umich.edu/~pelzlpj/orpie

       Feel free to contact me if you have bugs,  feature  requests,  patches,
       etc.  I would also welcome volunteers interested in packaging Orpie for
       various platforms.

REFERENCES

       [1]     http://oandrieu.nerim.net/ocaml/gsl/
       [2]     http://www.nongnu.org/ocaml-tmk/
       [3]     http://www.gnu.org/software/gnu-arch/.

SEE ALSO

       orpierc(5), orpie-curses-keys(1)