manpagez: man pages & more
man gmtmath(1)
Home | html | info | man
```gmtmath(1)                            GMT                           gmtmath(1)

```

## 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 a| = [ 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 Pol-
ish 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 atimea 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 nec-
essary.

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  coeffi-
cients].  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 occur-
rence 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 descend-
ing [ascending].

-Nn_col[/t_col]
Select the number of columns and optionally  the  column  number
that  contains  the  atimea  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  numer-
ous  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 inter-
val for the atimea column (see -N). Append +n if you are  speci-
fying  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 a|)
Select verbosity level [c].

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

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

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

-e[~]^<i>apattern^<i>a | -e[~]/regexp/[i] (more a|)
Only accept data records that match the given pattern.

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

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

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

-icols[+l][+sscale][+ooffset][,^<i>a|] (more a|)
Select input columns and transformations (0 is first column).

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

-s[cols][a|r] (more a|)
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  explana-
tion  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. aargsa 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  func- |
|          |      | tion for p = A, n = |
|          |      | B, and x = C        |
+----------+------+---------------------+
|BPDF      | 3 1  | Binomial  probabil- |
|          |      | ity  density  func- |
|          |      | tion 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   opera- |
|          |      | tor)                |
+----------+------+---------------------+
|BITNOT    | 1 1  | ~A   (bitwise   NOT |
|          |      | operator,     i.e., |
|          |      | return  twoas  com- |
|          |      | plement)            |
+----------+------+---------------------+
|BITOR     | 2 1  | A  |  B (bitwise OR |
|          |      | operator)           |
+----------+------+---------------------+
|BITRIGHT  | 2 1  | A  >>  B   (bitwise |
|          |      | right-shift  opera- |
|          |      | tor)                |
+----------+------+---------------------+
|BITTEST   | 2 1  | 1 if bit B of A  is |
|          |      | set,  else  0 (bit- |
|          |      | wise TEST operator) |
+----------+------+---------------------+
|BITXOR    | 2 1  | A  ^ B (bitwise XOR |
|          |      | operator)           |
+----------+------+---------------------+
|CEIL      | 1 1  | ceil (A)  (smallest |
|          |      | integer >= A)       |
+----------+------+---------------------+
|CHICRIT   | 2 1  | Chi-squared distri- |
|          |      | bution     critical |
|          |      | value for alpha = A |
|          |      | and nu = B          |
+----------+------+---------------------+
|CHICDF    | 2 1  | Chi-squared cumula- |
|          |      | tive   distribution |
|          |      | function for chi2 = |
|          |      | A and nu = B        |
+----------+------+---------------------+
|CHIPDF    | 2 1  | Chi-squared  proba- |
|          |      | bility      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 coeffi- |
|          |      | cient r(A, B)       |
+----------+------+---------------------+
|COS       | 1 1  | cos (A) (A in radi- |
|          |      | ans)                |
+----------+------+---------------------+
|COSD      | 1 1  | cos   (A)   (A   in |
|          |      | degrees)            |
+----------+------+---------------------+
|COSH      | 1 1  | cosh (A)            |
+----------+------+---------------------+

|COT       | 1 1  | cot (A) (A in radi- |
|          |      | ans)                |
+----------+------+---------------------+
|COTD      | 1 1  | cot   (A)   (A   in |
|          |      | degrees)            |
+----------+------+---------------------+
|CSC       | 1 1  | csc (A) (A in radi- |
|          |      | ans)                |
+----------+------+---------------------+
|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 de- |
|          |      | rivative            |
+----------+------+---------------------+
|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], a|, NaN) |
+----------+------+---------------------+
|DIV       | 2 1  | A / B               |
+----------+------+---------------------+
|DUP       | 1 2  | Places duplicate of |
|          |      | A on the stack      |
+----------+------+---------------------+
|ECDF      | 2 1  | Exponential cumula- |
|          |      | tive   distribution |
|          |      | function for x =  A |
|          |      | and lambda = B      |
+----------+------+---------------------+
|ECRIT     | 2 1  | Exponential distri- |
|          |      | bution     critical |
|          |      | value for alpha = A |
|          |      | and lambda = B      |
+----------+------+---------------------+
|EPDF      | 2 1  | Exponential  proba- |
|          |      | bility      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 func- |
|          |      | tion 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  dis- |
|          |      | tribution  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  den- |
|          |      | sity 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   inte- |
|          |      | grate 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  func- |
|          |      | tion for z = A      |
+----------+------+---------------------+
|LCRIT     | 1 1  | Laplace   distribu- |
|          |      | tion 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  (mini- |
|          |      | mum) 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 solu- |
|          |      | tion 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 divi- |
|          |      | sion)               |
+----------+------+---------------------+
|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 val- |
|          |      | ues with mean A and |
|          |      | std. deviation B    |
+----------+------+---------------------+
|OR        | 2 1  | NaN  if  B  == NaN, |
|          |      | else A              |
+----------+------+---------------------+
|PCDF      | 2 1  | Poisson  cumulative |
|          |      | distribution  func- |
|          |      | tion for x = A  and |
|          |      | lambda = B          |
+----------+------+---------------------+
|PERM      | 2 1  | Permutations n_P_r, |
|          |      | with n = A and r  = |
|          |      | B                   |
+----------+------+---------------------+
|PPDF      | 2 1  | Poisson   distribu- |
|          |      | tion   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  associ- |
|          |      | ated Legendre poly- |
|          |      | nomial P(A)  degree |
|          |      | B order C (geophys- |
|          |      | ical convention)    |
+----------+------+---------------------+
|POP       | 1 0  | Delete top  element |
|          |      | from the stack      |
+----------+------+---------------------+
|POW       | 2 1  | A ^ B               |
+----------+------+---------------------+
|PQUANT    | 2 1  | The  Bath  quantile |
|          |      | (0-100%) of A       |
+----------+------+---------------------+
|PQUANTW   | 3 1  | The  Cath  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 val- |
|          |      | ues between A and B |
+----------+------+---------------------+

|RCDF      | 1 1  | Rayleigh cumulative |
|          |      | distribution  func- |
|          |      | tion for z = A      |
+----------+------+---------------------+
|RCRIT     | 1 1  | Rayleigh  distribu- |
|          |      | tion 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  probabil- |
|          |      | ity  density  func- |
|          |      | tion 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 radi- |
|          |      | ans)                |
+----------+------+---------------------+
|SECD      | 1 1  | sec   (A)   (A   in |
|          |      | degrees)            |
+----------+------+---------------------+
|SIGN      | 1 1  | sign (+1 or -1)  of |
|          |      | A                   |
+----------+------+---------------------+
|SIN       | 1 1  | sin (A) (A in radi- |
|          |      | ans)                |
+----------+------+---------------------+
|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 radi- |
|          |      | ans)                |
+----------+------+---------------------+
|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   polyno- |
|          |      | mial Tn(-1<A<+1) of |
|          |      | degree B            |
+----------+------+---------------------+
|TCRIT     | 2 1  | Studentas t distri- |
|          |      | bution     critical |
|          |      | value for alpha = A |
|          |      | and nu = B          |
+----------+------+---------------------+
|TPDF      | 2 1  | Studentas t  proba- |
|          |      | bility      density |
|          |      | function for t = A, |
|          |      | and nu = B          |
+----------+------+---------------------+
|TCDF      | 2 1  | Studentas t cumula- |
|          |      | tive   distribution |
|          |      | function for t = A, |
|          |      | and nu = B          |
+----------+------+---------------------+
|UPPER     | 1 1  | The highest  (maxi- |
|          |      | mum) 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  func- |
|          |      | tion  for  x  =  A, |
|          |      | scale  =   B,   and |
|          |      | shape = C           |
+----------+------+---------------------+
|WCRIT     | 3 1  | Weibull   distribu- |
|          |      | tion 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  func- |
|          |      | tion 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.1415926a|                |
+-------+----------------------------+
|E      | 2.7182818a|                |
+-------+----------------------------+
|EULER  | 0.5772156a|                |
+-------+----------------------------+
|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, a|, 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   FOR-
MAT_DATE_OUT  and FORMAT_CLOCK_OUT, whereas general floating point val-
ues are formatted according to FORMAT_FLOAT_OUT. Be aware that the for-
mat  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  set-
ting.

```

## NOTES ON OPERATORS

```       1. The operators PLM and PLMg calculate the associated Legendre polyno-
mial 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 opera-
tor. 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 natu-
ral 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  tablesas 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 preci-
sion 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 effec-
tively 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  a|
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.  Con-
trast 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  Func-
tions, 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.

```

```       gmt(1), grdmath(1)

```

```       2017, P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis, and F. Wobbe
```© manpagez.com 2000-2021