bionic (1) gmtmath.1gmt.gz

Provided by: gmt-common_5.4.3+dfsg-1_all bug

NAME

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

SYNOPSIS

       gmtmath  [   -At_f(t).d[+e][+s|w]  ]  [   -Ccols  ]  [   -Eeigen ] [  -I ] [  -Nn_col[/t_col] ] [  -Q ] [
       -S[f|l] ] [  -Tt_min/t_max/t_inc[+n]|tfile ] [  -V[level] ] [ -bbinary ] [ -dnodata  ]  [  -eregexp  ]  [
       -fflags  ]  [  -ggaps  ] [ -hheaders ] [ -iflags ] [ -oflags ] [ -sflags ] 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][+r][+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).  Append
              +r  to  only  place  f(t) and leave the left hand side of the matrix equation alone.  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.  In this mode, constants  may
              have  plot  units  (i.e.,  c, i, p) and if so the final answer will be reported in the unit set by
              PROJ_LENGTH_UNIT.

       -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[+n]|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 +n 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.

       -e[~]”pattern” | -e[~]/regexp/[i] (more …)
              Only accept data records that match the given pattern.

       -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 and transformations (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 just use -).

       -+ 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 all options, then exits.

OPERATORS

       Choose among the following 185 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  │ Forward  difference  between │
                                   │          │      │ adjacent   elements   of   A │
                                   │          │      │ (A[1]-A[0],  A[2]-A[1],   …, │
                                   │          │      │ NaN)                         │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │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                         │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │LMSSCLW   │ 2 1  │ Weighted LMS scale  estimate │
                                   │          │      │ (LMS  STD)  of A for weights │
                                   │          │      │ in B                         │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │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                │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │MADW      │ 2 1  │ Weighted   Median   Absolute │
                                   │          │      │ Deviation (L1 STD) of A  for │
                                   │          │      │ weights in B                 │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │MAX       │ 2 1  │ Maximum of A and B           │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │MEAN      │ 1 1  │ Mean value of A              │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │MEANW     │ 2 1  │ Weighted mean value of A for │
                                   │          │      │ weights in B                 │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │MEDIAN    │ 1 1  │ Median value of A            │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │MEDIANW   │ 2 1  │ Weighted median value  of  A │
                                   │          │      │ for weights in B             │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │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                │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │MODEW     │ 2 1  │ Weighted  mode  value (Least │
                                   │          │      │ Median of Squares) of A  for │
                                   │          │      │ weights in B                 │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │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                         │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │PQUANTW   │ 3 1  │ The C’th  weighted  quantile │
                                   │          │      │ (0-100%) of A for weights in │
                                   │          │      │ B                            │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │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)          │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │RMS       │ 1 1  │ Root-mean-square of A        │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │RMSW      │ 1 1  │ Weighted root-mean-square of │
                                   │          │      │ A for weights in B           │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │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      │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │STDW      │ 2 1  │ Weighted  standard deviation │
                                   │          │      │ of A for weights in B        │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │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                         │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │VAR       │ 1 1  │ Variance of A                │
                                   └──────────┴──────┴──────────────────────────────┘

                                   │VARW      │ 2 1  │ Weighted  variance  of A for │
                                   │          │      │ weights in B                 │
                                   ├──────────┼──────┼──────────────────────────────┤
                                   │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,  absolute  time  is  under  the  control of
       FORMAT_DATE_OUT and FORMAT_CLOCK_OUT, whereas general floating point values are  formatted  according  to
       FORMAT_FLOAT_OUT. Be aware that the format in effect can lead to loss of precision in ASCII 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

ACTIVE COLUMN SELECTION

       When -Ccols is set then any operation, including loading of data from files, will restrict which  columns
       are affected.  To avoid unexpected results, note that if you issue a -Ccols option before you load in the
       data then only those columns will be updated, hence the unspecified columns will be zero.  On  the  other
       hand, if you load the file first and then issue -Ccols then the unspecified columns will have been loaded
       but are then ignored until you undo the effect of -C.

EXAMPLES

       To add two plot dimensions of different units, we can run

              length=`gmt math -Q 15c 2i SUB =`

       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

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