Provided by: gmt-common_5.2.1+dfsg-3build1_all bug

NAME

       gmtmath - Reverse Polish Notation (RPN) calculator for data tables

SYNOPSIS

       gmtmath  [ t_f(t).d[+e][+s|w] ] [ cols ] [ eigen ] [  ] [ n_col[/t_col] ] [  ] [ [f|l] ] [
       t_min/t_max/t_inc[+]|tfile ] [ [level] ] [ -b<binary> ] [ -d<nodata> ]  [  -f<flags>  ]  [
       -g<gaps>  ]  [ -h<headers> ] [ -i<flags> ] [ -o<flags> ] [ -s<flags> ] operand [ operand ]
       OPERATOR [ operand ] OPERATOR ...  = [ outfile ]

       Note: No space is allowed between the option flag and the associated arguments.

DESCRIPTION

       gmtmath will perform operations like add, subtract, multiply, and divide on  one  or  more
       table  data  files  or  constants  using  Reverse  Polish  Notation  (RPN)  syntax  (e.g.,
       Hewlett-Packard calculator-style).  Arbitrarily complicated expressions may  therefore  be
       evaluated;  the  final  result  is  written  to  an output file [or standard output]. Data
       operations are element-by-element, not matrix manipulations  (except  where  noted).  Some
       operators  only  require  one  operand  (see  below).  If  no  data tables are used in the
       expression then options -T, -N can be set (and optionally -bo to indicate  the  data  type
       for  binary  tables). If STDIN is given, the standard input will be read and placed on the
       stack as if a file with that content had been given on the command line. By  default,  all
       columns  except  the  "time"  column  are  operated  on, but this can be changed (see -C).
       Complicated or frequently occurring expressions may be coded as a macro for future use  or
       stored and recalled via named memory locations.

REQUIRED ARGUMENTS

       operand
              If operand can be opened as a file it will be read as an ASCII (or binary, see -bi)
              table data file. If not a file, it is interpreted as  a  numerical  constant  or  a
              special  symbol  (see  below).  The special argument STDIN means that stdin will be
              read and placed on the stack; STDIN can appear more than once if necessary.

       outfile
              The name of a table data file that will hold the final result. If  not  given  then
              the output is sent to stdout.

OPTIONAL ARGUMENTS

       -At_f(t).d[+e][+s|w]
              Requires  -N  and will partially initialize a table with values from the given file
              containing t and f(t) only. The t is placed in column t_col while  f(t)  goes  into
              column  n_col  -  1  (see  -N).   If  used with operators LSQFIT and SVDFIT you can
              optionally append the modifier +e which will  instead  evaluate  the  solution  and
              write  a  data set with four columns: t, f(t), the model solution at t, and the the
              residuals at t, respectively [Default writes one column with  model  coefficients].
              Append +w if t_f(t).d has a third column with weights, or append +s if t_f(t).d has
              a third column with 1-sigma.  In those two cases we  find  the  weighted  solution.
              The weights (or sigmas) will be output as the last column when +e is in effect.

       -Ccols Select  the  columns  that  will  be  operated on until next occurrence of -C. List
              columns separated by commas; ranges like 1,3-5,7 are  allowed.  -C  (no  arguments)
              resets  the  default  action  of using all columns except time column (see -N). -Ca
              selects all columns, including  time  column,  while  -Cr  reverses  (toggles)  the
              current  choices.   When -C is in effect it also controls which columns from a file
              will be placed on the stack.

       -Eeigen
              Sets the minimum eigenvalue used by operators LSQFIT and  SVDFIT  [1e-7].   Smaller
              eigenvalues are set to zero and will not be considered in the solution.

       -I     Reverses the output row sequence from ascending time to descending [ascending].

       -Nn_col[/t_col]
              Select  the  number  of  columns and optionally the column number that contains the
              "time" variable [0]. Columns are numbered starting at 0 [2/0]. If input  files  are
              specified then -N will add any missing columns.

       -Q     Quick mode for scalar calculation. Shorthand for -Ca -N1/0  -T0/0/1.

       -S[f|l]
              Only  report  the  first  or last row of the results [Default is all rows]. This is
              useful if you have computed a statistic (say the MODE) and only want  to  report  a
              single  number  instead  of numerous records with identical values. Append l to get
              the last row and f to get the first row only [Default].

       -Tt_min/t_max/t_inc[+]|tfile
              Required when no input files are given. Sets the t-coordinates  of  the  first  and
              last  point  and  the equidistant sampling interval for the "time" column (see -N).
              Append + if you are specifying the number of equidistant points instead.  If  there
              is no time column (only data columns), give -T with no arguments; this also implies
              -Ca. Alternatively, give the name of a file whose first column contains the desired
              t-coordinates which may be irregular.

       -V[level] (more ...)
              Select verbosity level [c].

       -bi[ncols][t] (more ...)
              Select native binary input.

       -bo[ncols][type] (more ...)
              Select native binary output. [Default is same as input, but see -o]

       -d[i|o]nodata (more ...)
              Replace input columns that equal nodata with NaN and do the reverse on output.

       -f[i|o]colinfo (more ...)
              Specify data types of input and/or output columns.

       -g[a]x|y|d|X|Y|D|[col]z[+|-]gap[u] (more ...)
              Determine data gaps and line breaks.

       -h[i|o][n][+c][+d][+rremark][+rtitle] (more ...)
              Skip or produce header record(s).

       -icols[l][sscale][ooffset][,...] (more ...)
              Select input columns (0 is first column).

       -ocols[,...] (more ...)
              Select output columns (0 is first column).

       -s[cols][a|r] (more ...)
              Set handling of NaN records.

       -^ or just -
              Print a short message about the syntax of the command, then exits (NOTE: on Windows
              use just -).

       -+ or just +
              Print  an  extensive  usage  (help)  message,  including  the  explanation  of  any
              module-specific option (but not the GMT common options), then exits.

       -? or no arguments
              Print  a  complete usage (help) message, including the explanation of options, then
              exits.

       --version
              Print GMT version and exit.

       --show-datadir
              Print full path to GMT share directory and exit.

OPERATORS

       Choose among the following 146 operators. "args"  are  the  number  of  input  and  output
       arguments.

                             ┌──────────┬──────┬──────────────────────────┐
                             │Operator  │ args │ Returns                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │ABS       │ 1 1  │ abs (A)                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │ACOS      │ 1 1  │ acos (A)                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │ACOSH     │ 1 1  │ acosh (A)                │
                             ├──────────┼──────┼──────────────────────────┤
                             │ACSC      │ 1 1  │ acsc (A)                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │ACOT      │ 1 1  │ acot (A)                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │ADD       │ 2 1  │ A + B                    │
                             ├──────────┼──────┼──────────────────────────┤
                             │AND       │ 2 1  │ B if A == NaN, else A    │
                             ├──────────┼──────┼──────────────────────────┤
                             │ASEC      │ 1 1  │ asec (A)                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │ASIN      │ 1 1  │ asin (A)                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │ASINH     │ 1 1  │ asinh (A)                │
                             ├──────────┼──────┼──────────────────────────┤
                             │ATAN      │ 1 1  │ atan (A)                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │ATAN2     │ 2 1  │ atan2 (A, B)             │
                             ├──────────┼──────┼──────────────────────────┤
                             │ATANH     │ 1 1  │ atanh (A)                │
                             ├──────────┼──────┼──────────────────────────┤
                             │BCDF      │ 3 1  │ Binomial      cumulative │
                             │          │      │ distribution    function │
                             │          │      │ for  p = A, n = B, and x │
                             │          │      │ = C                      │
                             ├──────────┼──────┼──────────────────────────┤
                             │BPDF      │ 3 1  │ Binomial     probability │
                             │          │      │ density function for p = │
                             │          │      │ A, n = B, and x = C      │
                             ├──────────┼──────┼──────────────────────────┤
                             │BEI       │ 1 1  │ bei (A)                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │BER       │ 1 1  │ ber (A)                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │BITAND    │ 2 1  │ A  &  B   (bitwise   AND │
                             │          │      │ operator)                │
                             ├──────────┼──────┼──────────────────────────┤
                             │BITLEFT   │ 2 1  │ A    <<    B    (bitwise │
                             │          │      │ left-shift operator)     │
                             ├──────────┼──────┼──────────────────────────┤
                             │BITNOT    │ 1 1  │ ~A     (bitwise      NOT │
                             │          │      │ operator,  i.e.,  return │
                             │          │      │ two's complement)        │
                             ├──────────┼──────┼──────────────────────────┤
                             │BITOR     │ 2 1  │ A  |   B   (bitwise   OR │
                             │          │      │ operator)                │
                             ├──────────┼──────┼──────────────────────────┤
                             │BITRIGHT  │ 2 1  │ A    >>    B    (bitwise │
                             │          │      │ right-shift operator)    │
                             ├──────────┼──────┼──────────────────────────┤
                             │BITTEST   │ 2 1  │ 1 if bit B of A is  set, │
                             │          │      │ else   0  (bitwise  TEST │
                             │          │      │ operator)                │
                             ├──────────┼──────┼──────────────────────────┤
                             │BITXOR    │ 2 1  │ A  ^  B   (bitwise   XOR │
                             │          │      │ operator)                │
                             └──────────┴──────┴──────────────────────────┘

                             │CEIL      │ 1 1  │ ceil    (A)    (smallest │
                             │          │      │ integer >= A)            │
                             ├──────────┼──────┼──────────────────────────┤
                             │CHICRIT   │ 2 1  │ Chi-squared distribution │
                             │          │      │ critical value for alpha │
                             │          │      │ = A and nu = B           │
                             ├──────────┼──────┼──────────────────────────┤
                             │CHICDF    │ 2 1  │ Chi-squared   cumulative │
                             │          │      │ distribution    function │
                             │          │      │ for chi2 = A and nu = B  │
                             ├──────────┼──────┼──────────────────────────┤
                             │CHIPDF    │ 2 1  │ Chi-squared  probability │
                             │          │      │ density   function   for │
                             │          │      │ chi2 = A and nu = B      │
                             ├──────────┼──────┼──────────────────────────┤
                             │COL       │ 1 1  │ Places column A  on  the │
                             │          │      │ stack                    │
                             ├──────────┼──────┼──────────────────────────┤
                             │COMB      │ 2 1  │ Combinations n_C_r, with │
                             │          │      │ n = A and r = B          │
                             ├──────────┼──────┼──────────────────────────┤
                             │CORRCOEFF │ 2 1  │ Correlation  coefficient │
                             │          │      │ r(A, B)                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │COS       │ 1 1  │ cos (A) (A in radians)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │COSD      │ 1 1  │ cos (A) (A in degrees)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │COSH      │ 1 1  │ cosh (A)                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │COT       │ 1 1  │ cot (A) (A in radians)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │COTD      │ 1 1  │ cot (A) (A in degrees)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │CSC       │ 1 1  │ csc (A) (A in radians)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │CSCD      │ 1 1  │ csc (A) (A in degrees)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │DDT       │ 1 1  │ d(A)/dt    Central   1st │
                             │          │      │ derivative               │
                             ├──────────┼──────┼──────────────────────────┤
                             │D2DT2     │ 1 1  │ d^2(A)/dt^2          2nd │
                             │          │      │ derivative               │
                             ├──────────┼──────┼──────────────────────────┤
                             │D2R       │ 1 1  │ Converts    Degrees   to │
                             │          │      │ Radians                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │DENAN     │ 2 1  │ Replace NaNs in  A  with │
                             │          │      │ values from B            │
                             ├──────────┼──────┼──────────────────────────┤
                             │DILOG     │ 1 1  │ dilog (A)                │
                             ├──────────┼──────┼──────────────────────────┤
                             │DIFF      │ 1 1  │ Difference       between │
                             │          │      │ adjacent elements  of  A │
                             │          │      │ (A[1]-A[0],   A[2]-A[1], │
                             │          │      │ ..., 0)                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │DIV       │ 2 1  │ A / B                    │
                             ├──────────┼──────┼──────────────────────────┤
                             │DUP       │ 1 2  │ Places duplicate of A on │
                             │          │      │ the stack                │
                             ├──────────┼──────┼──────────────────────────┤
                             │ECDF      │ 2 1  │ Exponential   cumulative │
                             │          │      │ distribution    function │
                             │          │      │ for x = A and lambda = B │
                             └──────────┴──────┴──────────────────────────┘

                             │ECRIT     │ 2 1  │ Exponential distribution │
                             │          │      │ critical value for alpha │
                             │          │      │ = A and lambda = B       │
                             ├──────────┼──────┼──────────────────────────┤
                             │EPDF      │ 2 1  │ Exponential  probability │
                             │          │      │ density function for x = │
                             │          │      │ A and lambda = B         │
                             ├──────────┼──────┼──────────────────────────┤
                             │ERF       │ 1 1  │ Error function erf (A)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │ERFC      │ 1 1  │ Complementary      Error │
                             │          │      │ function erfc (A)        │
                             ├──────────┼──────┼──────────────────────────┤
                             │ERFINV    │ 1 1  │ Inverse  error  function │
                             │          │      │ of A                     │
                             ├──────────┼──────┼──────────────────────────┤
                             │EQ        │ 2 1  │ 1 if A == B, else 0      │
                             ├──────────┼──────┼──────────────────────────┤
                             │EXCH      │ 2 2  │ Exchanges A and B on the │
                             │          │      │ stack                    │
                             ├──────────┼──────┼──────────────────────────┤
                             │EXP       │ 1 1  │ exp (A)                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │FACT      │ 1 1  │ A! (A factorial)         │
                             ├──────────┼──────┼──────────────────────────┤
                             │FCDF      │ 3 1  │ F             cumulative │
                             │          │      │ distribution    function │
                             │          │      │ for F = A, nu1 = B,  and │
                             │          │      │ nu2 = C                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │FCRIT     │ 3 1  │ F  distribution critical │
                             │          │      │ value for alpha = A, nu1 │
                             │          │      │ = B, and nu2 = C         │
                             ├──────────┼──────┼──────────────────────────┤
                             │FLIPUD    │ 1 1  │ Reverse  order  of  each │
                             │          │      │ column                   │
                             ├──────────┼──────┼──────────────────────────┤
                             │FLOOR     │ 1 1  │ floor   (A)    (greatest │
                             │          │      │ integer <= A)            │
                             ├──────────┼──────┼──────────────────────────┤
                             │FMOD      │ 2 1  │ A  %  B (remainder after │
                             │          │      │ truncated division)      │
                             ├──────────┼──────┼──────────────────────────┤
                             │FPDF      │ 3 1  │ F  probability   density │
                             │          │      │ function  for F = A, nu1 │
                             │          │      │ = B, and nu2 = C         │
                             ├──────────┼──────┼──────────────────────────┤
                             │GE        │ 2 1  │ 1 if A >= B, else 0      │
                             ├──────────┼──────┼──────────────────────────┤
                             │GT        │ 2 1  │ 1 if A > B, else 0       │
                             ├──────────┼──────┼──────────────────────────┤
                             │HYPOT     │ 2 1  │ hypot (A, B) = sqrt (A*A │
                             │          │      │ + B*B)                   │
                             ├──────────┼──────┼──────────────────────────┤
                             │I0        │ 1 1  │ Modified Bessel function │
                             │          │      │ of A (1st kind, order 0) │
                             ├──────────┼──────┼──────────────────────────┤
                             │I1        │ 1 1  │ Modified Bessel function │
                             │          │      │ of A (1st kind, order 1) │
                             ├──────────┼──────┼──────────────────────────┤
                             │IFELSE    │ 3 1  │ B if A != 0, else C      │
                             ├──────────┼──────┼──────────────────────────┤
                             │IN        │ 2 1  │ Modified Bessel function │
                             │          │      │ of A (1st kind, order B) │
                             ├──────────┼──────┼──────────────────────────┤
                             │INRANGE   │ 3 1  │ 1 if B <= A <= C, else 0 │
                             └──────────┴──────┴──────────────────────────┘

                             │INT       │ 1 1  │ Numerically integrate A  │
                             ├──────────┼──────┼──────────────────────────┤
                             │INV       │ 1 1  │ 1 / A                    │
                             ├──────────┼──────┼──────────────────────────┤
                             │ISFINITE  │ 1 1  │ 1 if A is finite, else 0 │
                             ├──────────┼──────┼──────────────────────────┤
                             │ISNAN     │ 1 1  │ 1 if A == NaN, else 0    │
                             ├──────────┼──────┼──────────────────────────┤
                             │J0        │ 1 1  │ Bessel  function  of   A │
                             │          │      │ (1st kind, order 0)      │
                             ├──────────┼──────┼──────────────────────────┤
                             │J1        │ 1 1  │ Bessel   function  of  A │
                             │          │      │ (1st kind, order 1)      │
                             ├──────────┼──────┼──────────────────────────┤
                             │JN        │ 2 1  │ Bessel  function  of   A │
                             │          │      │ (1st kind, order B)      │
                             ├──────────┼──────┼──────────────────────────┤
                             │K0        │ 1 1  │ Modified Kelvin function │
                             │          │      │ of A (2nd kind, order 0) │
                             ├──────────┼──────┼──────────────────────────┤
                             │K1        │ 1 1  │ Modified Bessel function │
                             │          │      │ of A (2nd kind, order 1) │
                             ├──────────┼──────┼──────────────────────────┤
                             │KN        │ 2 1  │ Modified Bessel function │
                             │          │      │ of A (2nd kind, order B) │
                             ├──────────┼──────┼──────────────────────────┤
                             │KEI       │ 1 1  │ kei (A)                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │KER       │ 1 1  │ ker (A)                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │KURT      │ 1 1  │ Kurtosis of A            │
                             ├──────────┼──────┼──────────────────────────┤
                             │LCDF      │ 1 1  │ Laplace       cumulative │
                             │          │      │ distribution    function │
                             │          │      │ for z = A                │
                             ├──────────┼──────┼──────────────────────────┤
                             │LCRIT     │ 1 1  │ Laplace     distribution │
                             │          │      │ critical value for alpha │
                             │          │      │ = A                      │
                             ├──────────┼──────┼──────────────────────────┤
                             │LE        │ 2 1  │ 1 if A <= B, else 0      │
                             ├──────────┼──────┼──────────────────────────┤
                             │LMSSCL    │ 1 1  │ LMS scale estimate  (LMS │
                             │          │      │ STD) of A                │
                             ├──────────┼──────┼──────────────────────────┤
                             │LOG       │ 1 1  │ log (A) (natural log)    │
                             ├──────────┼──────┼──────────────────────────┤
                             │LOG10     │ 1 1  │ log10 (A) (base 10)      │
                             ├──────────┼──────┼──────────────────────────┤
                             │LOG1P     │ 1 1  │ log  (1+A) (accurate for │
                             │          │      │ small A)                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │LOG2      │ 1 1  │ log2 (A) (base 2)        │
                             ├──────────┼──────┼──────────────────────────┤
                             │LOWER     │ 1 1  │ The   lowest   (minimum) │
                             │          │      │ value of A               │
                             ├──────────┼──────┼──────────────────────────┤
                             │LPDF      │ 1 1  │ Laplace      probability │
                             │          │      │ density function for z = │
                             │          │      │ A                        │
                             ├──────────┼──────┼──────────────────────────┤
                             │LRAND     │ 2 1  │ Laplace   random   noise │
                             │          │      │ with  mean  A  and  std. │
                             │          │      │ deviation B              │
                             └──────────┴──────┴──────────────────────────┘

                             │LSQFIT    │ 1 0  │ Let  current table be [A │
                             │          │      │ |   b]   return    least │
                             │          │      │ squares solution x = A \ │
                             │          │      │ b                        │
                             ├──────────┼──────┼──────────────────────────┤
                             │LT        │ 2 1  │ 1 if A < B, else 0       │
                             ├──────────┼──────┼──────────────────────────┤
                             │MAD       │ 1 1  │ Median          Absolute │
                             │          │      │ Deviation (L1 STD) of A  │
                             ├──────────┼──────┼──────────────────────────┤
                             │MAX       │ 2 1  │ Maximum of A and B       │
                             ├──────────┼──────┼──────────────────────────┤
                             │MEAN      │ 1 1  │ Mean value of A          │
                             ├──────────┼──────┼──────────────────────────┤
                             │MED       │ 1 1  │ Median value of A        │
                             ├──────────┼──────┼──────────────────────────┤
                             │MIN       │ 2 1  │ Minimum of A and B       │
                             ├──────────┼──────┼──────────────────────────┤
                             │MOD       │ 2 1  │ A mod B (remainder after │
                             │          │      │ floored division)        │
                             ├──────────┼──────┼──────────────────────────┤
                             │MODE      │ 1 1  │ Mode value (Least Median │
                             │          │      │ of Squares) of A         │
                             ├──────────┼──────┼──────────────────────────┤
                             │MUL       │ 2 1  │ A * B                    │
                             ├──────────┼──────┼──────────────────────────┤
                             │NAN       │ 2 1  │ NaN if A == B, else A    │
                             ├──────────┼──────┼──────────────────────────┤
                             │NEG       │ 1 1  │ -A                       │
                             ├──────────┼──────┼──────────────────────────┤
                             │NEQ       │ 2 1  │ 1 if A != B, else 0      │
                             ├──────────┼──────┼──────────────────────────┤
                             │NORM      │ 1 1  │ Normalize     (A)     so │
                             │          │      │ max(A)-min(A) = 1        │
                             ├──────────┼──────┼──────────────────────────┤
                             │NOT       │ 1 1  │ NaN if A == NaN, 1 if  A │
                             │          │      │ == 0, else 0             │
                             ├──────────┼──────┼──────────────────────────┤
                             │NRAND     │ 2 1  │ Normal,   random  values │
                             │          │      │ with  mean  A  and  std. │
                             │          │      │ deviation B              │
                             ├──────────┼──────┼──────────────────────────┤
                             │OR        │ 2 1  │ NaN if B == NaN, else A  │
                             ├──────────┼──────┼──────────────────────────┤
                             │PCDF      │ 2 1  │ Poisson       cumulative │
                             │          │      │ distribution    function │
                             │          │      │ for x = A and lambda = B │
                             ├──────────┼──────┼──────────────────────────┤
                             │PERM      │ 2 1  │ Permutations n_P_r, with │
                             │          │      │ n = A and r = B          │
                             ├──────────┼──────┼──────────────────────────┤
                             │PPDF      │ 2 1  │ Poisson     distribution │
                             │          │      │ P(x,lambda),  with x = A │
                             │          │      │ and lambda = B           │
                             ├──────────┼──────┼──────────────────────────┤
                             │PLM       │ 3 1  │ Associated      Legendre │
                             │          │      │ polynomial P(A) degree B │
                             │          │      │ order C                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │PLMg      │ 3 1  │ Normalized    associated │
                             │          │      │ Legendre polynomial P(A) │
                             │          │      │ degree   B    order    C │
                             │          │      │ (geophysical convention) │
                             ├──────────┼──────┼──────────────────────────┤
                             │POP       │ 1 0  │ Delete  top element from │
                             │          │      │ the stack                │
                             └──────────┴──────┴──────────────────────────┘

                             │POW       │ 2 1  │ A ^ B                    │
                             ├──────────┼──────┼──────────────────────────┤
                             │PQUANT    │ 2 1  │ The    B'th     Quantile │
                             │          │      │ (0-100%) of A            │
                             ├──────────┼──────┼──────────────────────────┤
                             │PSI       │ 1 1  │ Psi (or Digamma) of A    │
                             ├──────────┼──────┼──────────────────────────┤
                             │PV        │ 3 1  │ Legendre  function Pv(A) │
                             │          │      │ of degree v = real(B)  + │
                             │          │      │ imag(C)                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │QV        │ 3 1  │ Legendre  function Qv(A) │
                             │          │      │ of degree v = real(B)  + │
                             │          │      │ imag(C)                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │R2        │ 2 1  │ R2 = A^2 + B^2           │
                             ├──────────┼──────┼──────────────────────────┤
                             │R2D       │ 1 1  │ Convert    Radians    to │
                             │          │      │ Degrees                  │
                             ├──────────┼──────┼──────────────────────────┤
                             │RAND      │ 2 1  │ Uniform  random   values │
                             │          │      │ between A and B          │
                             ├──────────┼──────┼──────────────────────────┤
                             │RCDF      │ 1 1  │ Rayleigh      cumulative │
                             │          │      │ distribution    function │
                             │          │      │ for z = A                │
                             ├──────────┼──────┼──────────────────────────┤
                             │RCRIT     │ 1 1  │ Rayleigh    distribution │
                             │          │      │ critical value for alpha │
                             │          │      │ = A                      │
                             ├──────────┼──────┼──────────────────────────┤
                             │RINT      │ 1 1  │ rint   (A)   (round   to │
                             │          │      │ integral  value  nearest │
                             │          │      │ to A)                    │
                             ├──────────┼──────┼──────────────────────────┤
                             │RPDF      │ 1 1  │ Rayleigh     probability │
                             │          │      │ density function for z = │
                             │          │      │ A                        │
                             ├──────────┼──────┼──────────────────────────┤
                             │ROLL      │ 2 0  │ Cyclicly  shifts the top │
                             │          │      │ A  stack  items  by   an │
                             │          │      │ amount B                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │ROTT      │ 2 1  │ Rotate    A    by    the │
                             │          │      │ (constant)  shift  B  in │
                             │          │      │ the t-direction          │
                             ├──────────┼──────┼──────────────────────────┤
                             │SEC       │ 1 1  │ sec (A) (A in radians)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │SECD      │ 1 1  │ sec (A) (A in degrees)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │SIGN      │ 1 1  │ sign (+1 or -1) of A     │
                             ├──────────┼──────┼──────────────────────────┤
                             │SIN       │ 1 1  │ sin (A) (A in radians)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │SINC      │ 1 1  │ sinc       (A)      (sin │
                             │          │      │ (pi*A)/(pi*A))           │
                             ├──────────┼──────┼──────────────────────────┤
                             │SIND      │ 1 1  │ sin (A) (A in degrees)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │SINH      │ 1 1  │ sinh (A)                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │SKEW      │ 1 1  │ Skewness of A            │
                             ├──────────┼──────┼──────────────────────────┤
                             │SQR       │ 1 1  │ A^2                      │
                             ├──────────┼──────┼──────────────────────────┤
                             │SQRT      │ 1 1  │ sqrt (A)                 │
                             └──────────┴──────┴──────────────────────────┘

                             │STD       │ 1 1  │ Standard deviation of A  │
                             ├──────────┼──────┼──────────────────────────┤
                             │STEP      │ 1 1  │ Heaviside step  function │
                             │          │      │ H(A)                     │
                             ├──────────┼──────┼──────────────────────────┤
                             │STEPT     │ 1 1  │ Heaviside  step function │
                             │          │      │ H(t-A)                   │
                             ├──────────┼──────┼──────────────────────────┤
                             │SUB       │ 2 1  │ A - B                    │
                             ├──────────┼──────┼──────────────────────────┤
                             │SUM       │ 1 1  │ Cumulative sum of A      │
                             ├──────────┼──────┼──────────────────────────┤
                             │TAN       │ 1 1  │ tan (A) (A in radians)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │TAND      │ 1 1  │ tan (A) (A in degrees)   │
                             ├──────────┼──────┼──────────────────────────┤
                             │TANH      │ 1 1  │ tanh (A)                 │
                             ├──────────┼──────┼──────────────────────────┤
                             │TAPER     │ 1 1  │ Unit             weights │
                             │          │      │ cosine-tapered  to  zero │
                             │          │      │ within A of end margins  │
                             ├──────────┼──────┼──────────────────────────┤
                             │TN        │ 2 1  │ Chebyshev     polynomial │
                             │          │      │ Tn(-1<A<+1) of degree B  │
                             ├──────────┼──────┼──────────────────────────┤
                             │TCRIT     │ 2 1  │ Student's t distribution │
                             │          │      │ critical value for alpha │
                             │          │      │ = A and nu = B           │
                             ├──────────┼──────┼──────────────────────────┤
                             │TPDF      │ 2 1  │ Student's  t probability │
                             │          │      │ density function for t = │
                             │          │      │ A, and nu = B            │
                             ├──────────┼──────┼──────────────────────────┤
                             │TCDF      │ 2 1  │ Student's  t  cumulative │
                             │          │      │ distribution    function │
                             │          │      │ for t = A, and nu = B    │
                             ├──────────┼──────┼──────────────────────────┤
                             │UPPER     │ 1 1  │ The   highest  (maximum) │
                             │          │      │ value of A               │
                             ├──────────┼──────┼──────────────────────────┤
                             │WCDF      │ 3 1  │ Weibull       cumulative │
                             │          │      │ distribution    function │
                             │          │      │ for x = A,  scale  =  B, │
                             │          │      │ and shape = C            │
                             ├──────────┼──────┼──────────────────────────┤
                             │WCRIT     │ 3 1  │ Weibull     distribution │
                             │          │      │ critical value for alpha │
                             │          │      │ =  A,  scale  =  B,  and │
                             │          │      │ shape = C                │
                             ├──────────┼──────┼──────────────────────────┤
                             │WPDF      │ 3 1  │ Weibull          density │
                             │          │      │ distribution             │
                             │          │      │ P(x,scale,shape), with x │
                             │          │      │ =  A,  scale  =  B,  and │
                             │          │      │ shape = C                │
                             ├──────────┼──────┼──────────────────────────┤
                             │XOR       │ 2 1  │ B if A == NaN, else A    │
                             ├──────────┼──────┼──────────────────────────┤
                             │Y0        │ 1 1  │ Bessel  function  of   A │
                             │          │      │ (2nd kind, order 0)      │
                             ├──────────┼──────┼──────────────────────────┤
                             │Y1        │ 1 1  │ Bessel   function  of  A │
                             │          │      │ (2nd kind, order 1)      │
                             ├──────────┼──────┼──────────────────────────┤
                             │YN        │ 2 1  │ Bessel  function  of   A │
                             │          │      │ (2nd kind, order B)      │
                             └──────────┴──────┴──────────────────────────┘

                             │ZCDF      │ 1 1  │ Normal        cumulative │
                             │          │      │ distribution    function │
                             │          │      │ for z = A                │
                             ├──────────┼──────┼──────────────────────────┤
                             │ZPDF      │ 1 1  │ Normal       probability │
                             │          │      │ density function for z = │
                             │          │      │ A                        │
                             ├──────────┼──────┼──────────────────────────┤
                             │ZCRIT     │ 1 1  │ Normal      distribution │
                             │          │      │ critical value for alpha │
                             │          │      │ = A                      │
                             ├──────────┼──────┼──────────────────────────┤
                             │ROOTS     │ 2 1  │ Treats col A as f(t) = 0 │
                             │          │      │ and returns its roots    │
                             └──────────┴──────┴──────────────────────────┘

SYMBOLS

       The following symbols have special meaning:

                              ┌───────┬──────────────────────────────────┐
                              │PI     │ 3.1415926...                     │
                              ├───────┼──────────────────────────────────┤
                              │E      │ 2.7182818...                     │
                              ├───────┼──────────────────────────────────┤
                              │EULER  │ 0.5772156...                     │
                              ├───────┼──────────────────────────────────┤
                              │EPS_F  │ 1.192092896e-07 (sgl. prec. eps) │
                              ├───────┼──────────────────────────────────┤
                              │EPS_D  │ 2.2204460492503131e-16     (dbl. │
                              │       │ prec. eps)                       │
                              ├───────┼──────────────────────────────────┤
                              │TMIN   │ Minimum t value                  │
                              ├───────┼──────────────────────────────────┤
                              │TMAX   │ Maximum t value                  │
                              ├───────┼──────────────────────────────────┤
                              │TRANGE │ Range of t values                │
                              ├───────┼──────────────────────────────────┤
                              │TINC   │ t increment                      │
                              ├───────┼──────────────────────────────────┤
                              │N      │ The number of records            │
                              ├───────┼──────────────────────────────────┤
                              │T      │ Table with t-coordinates         │
                              ├───────┼──────────────────────────────────┤
                              │TNORM  │ Table       with      normalized │
                              │       │ t-coordinates                    │
                              ├───────┼──────────────────────────────────┤
                              │TROW   │ Table with  row  numbers  1,  2, │
                              │       │ ..., N-1                         │
                              └───────┴──────────────────────────────────┘

ASCII FORMAT PRECISION

       The  ASCII  output formats of numerical data are controlled by parameters in your gmt.conf
       file. Longitude and latitude are formatted  according  to  FORMAT_GEO_OUT,  whereas  other
       values are formatted according to FORMAT_FLOAT_OUT. Be aware that the format in effect can
       lead to loss of precision in the output, which can lead to various problems downstream. If
       you  find  the  output  is not written with enough precision, consider switching to binary
       output (-bo if available) or specify more decimals using the FORMAT_FLOAT_OUT setting.

NOTES ON OPERATORS

       1. The operators PLM and PLMg calculate the associated Legendre polynomial of degree L and
       order  M  in x which must satisfy -1 <= x <= +1 and 0 <= M <= L. x, L, and M are the three
       arguments preceding the operator. PLM is not normalized and includes  the  Condon-Shortley
       phase  (-1)^M. PLMg is normalized in the way that is most commonly used in geophysics. The
       C-S phase can be added by using -M as argument.  PLM  will  overflow  at  higher  degrees,
       whereas PLMg is stable until ultra high degrees (at least 3000).

       2.  Files  that  have the same names as some operators, e.g., ADD, SIGN, =, etc. should be
       identified by prepending the current directory (i.e., ./).

       3. The stack depth limit is hard-wired to 100.

       4. All functions expecting a positive  radius  (e.g.,  LOG,  KEI,  etc.)  are  passed  the
       absolute value of their argument.

       5. The DDT and D2DT2 functions only work on regularly spaced data.

       6.  All  derivatives  are  based  on  central  finite  differences,  with natural boundary
       conditions.

       7. ROOTS must be the last operator on the stack, only followed by =.

STORE, RECALL AND CLEAR

       You may store intermediate calculations to a named variable that you may recall and  place
       on  the  stack  at  a later time. This is useful if you need access to a computed quantity
       many times in your expression as it  will  shorten  the  overall  expression  and  improve
       readability.  To  save a result you use the special operator STO@label, where label is the
       name you choose to give the quantity. To recall the stored result to the stack at a  later
       time,  use [RCL]@label, i.e., RCL is optional. To clear memory you may use CLR@label. Note
       that STO and CLR leave the stack unchanged.

       8. The bitwise operators (BITAND, BITLEFT, BITNOT, BITOR, BITRIGHT, BITTEST,  and  BITXOR)
       convert  a tables's double precision values to unsigned 64-bit ints to perform the bitwise
       operations. Consequently, the largest whole integer value that can be stored in  a  double
       precision  value is 2^53 or 9,007,199,254,740,992. Any higher result will be masked to fit
       in the lower 54 bits.  Thus, bit operations are  effectively  limited  to  54  bits.   All
       bitwise operators return NaN if given NaN arguments or bit-settings <= 0.

       9. TAPER will interpret its argument to be a width in the same units as the time-axis, but
       if no time is provided (i.e., plain data tables) then the width is taken to  be  given  in
       number of rows.

MACROS

       Users  may save their favorite operator combinations as macros via the file gmtmath.macros
       in their current or user directory. The file may contain any number  of  macros  (one  per
       record);  comment  lines  starting with # are skipped. The format for the macros is name =
       arg1 arg2 ... arg2 [ : comment] where name is how  the  macro  will  be  used.  When  this
       operator  appears  on the command line we simply replace it with the listed argument list.
       No macro may call another macro. As an example,  the  following  macro  expects  that  the
       time-column   contains  seafloor  ages  in  Myr  and  computes  the  predicted  half-space
       bathymetry:

       DEPTH = SQRT 350 MUL 2500 ADD NEG : usage: DEPTH to return half-space seafloor depths

       Note: Because geographic or time constants may be present in a macro, it is required  that
       the  optional comment flag (:) must be followed by a space.  As another example, we show a
       macro GPSWEEK which determines which GPS week a timestamp belongs to:

       GPSWEEK = 1980-01-06T00:00:00 SUB 86400 DIV 7 DIV FLOOR : GPS week without rollover

EXAMPLES

       To take the square root of the content of the  second  data  column  being  piped  through
       gmtmath by process1 and pipe it through a 3rd process, use

              process1 | gmt math STDIN SQRT = | process3

       To take log10 of the average of 2 data files, use

              gmt math file1.d file2.d ADD 0.5 MUL LOG10 = file3.d

       Given  the  file samples.d, which holds seafloor ages in m.y. and seafloor depth in m, use
       the relation depth(in m) = 2500 + 350 * sqrt (age) to print the depth anomalies:

              gmt math samples.d T SQRT 350 MUL 2500 ADD SUB = | lpr

       To take the average of columns 1 and 4-6 in the three  data  sets  sizes.1,  sizes.2,  and
       sizes.3, use

              gmt math -C1,4-6 sizes.1 sizes.2 ADD sizes.3 ADD 3 DIV = ave.d

       To  take  the  1-column  data  set ages.d and calculate the modal value and assign it to a
       variable, try

              gmt set mode_age = `gmt math -S -T ages.d MODE =`

       To evaluate the dilog(x) function for coordinates given in the file t.d:

              gmt math -Tt.d T DILOG = dilog.d

       To demonstrate the use of stored variables, consider  this  sum  of  the  first  3  cosine
       harmonics where we store and repeatedly recall the trigonometric argument (2*pi*T/360):

              gmt math -T0/360/1 2 PI MUL 360 DIV T MUL STO@kT COS @kT 2 MUL COS ADD \
                          @kT 3 MUL COS ADD = harmonics.d

       To  use  gmtmath as a RPN Hewlett-Packard calculator on scalars (i.e., no input files) and
       calculate arbitrary expressions, use the -Q option.  As an example, we will calculate  the
       value of Kei (((1 + 1.75)/2.2) + cos (60)) and store the result in the shell variable z:

              set z = `gmt math -Q 1 1.75 ADD 2.2 DIV 60 COSD ADD KEI =`

       To  use gmtmath as a general least squares equation solver, imagine that the current table
       is the augmented matrix [ A | b ] and you want the least squares solution x to the  matrix
       equation  A  * x = b. The operator LSQFIT does this; it is your job to populate the matrix
       correctly first. The -A option will facilitate this. Suppose you have a 2-column file ty.d
       with  t and b(t) and you would like to fit a the model y(t) = a + b*t + c*H(t-t0), where H
       is the Heaviside step function for a given t0 = 1.55. Then, you need a 4-column  augmented
       table  loaded  with  t  in  column  1  and your observed y(t) in column 3. The calculation
       becomes

              gmt math -N4/1 -Aty.d -C0 1 ADD -C2 1.55 STEPT ADD -Ca LSQFIT = solution.d

       Note we use the -C option to select which columns we are working on, then make active  all
       the  columns  we  need  (here all of them, with -Ca) before calling LSQFIT. The second and
       fourth columns (col numbers 1 and 3) are preloaded with  t  and  y(t),  respectively,  the
       other  columns  are  zero.  If  you already have a pre-calculated table with the augmented
       matrix [ A | b ] in a file (say lsqsys.d), the least squares solution is simply

              gmt math -T lsqsys.d LSQFIT = solution.d

       Users must be aware that when -C controls which columns  are  to  be  active  the  control
       extends  to placing columns from files as well.  Contrast the different result obtained by
       these very similar commands:

          echo 1 2 3 4 | gmt math STDIN -C3 1 ADD =
          1    2    3    5

       versus

          echo 1 2 3 4 | gmt math -C3 STDIN 1 ADD =
          0    0    0    5

REFERENCES

       Abramowitz, M., and I. A.  Stegun,  1964,  Handbook  of  Mathematical  Functions,  Applied
       Mathematics Series, vol. 55, Dover, New York.

       Holmes,  S. A., and W. E. Featherstone, 2002, A unified approach to the Clenshaw summation
       and the recursive computation of very high degree and order normalized associated Legendre
       functions. Journal of Geodesy, 76, 279-299.

       Press,  W.  H.,  S.  A.  Teukolsky,  W. T. Vetterling, and B. P. Flannery, 1992, Numerical
       Recipes, 2nd edition, Cambridge Univ., New York.

       Spanier, J., and K. B. Oldman, 1987, An Atlas of Functions, Hemisphere Publishing Corp.

SEE ALSO

       gmt, grdmath

COPYRIGHT

       2015, P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis, and F. Wobbe