fmat <num: # of rows> <num: # of columns> [<num: init values> ...] - matrix of floats
{
  print - print matrix values
  schema 'row|col' [<schema: row/col names>] - set or get row or column schema
  clear - erase all rows (keeps number of columns)
  zero [<num: onset (0)> [<num: range (size)>]] - set all values to 0. (from given onset for given range)
  fill <num: value> - fill matrix with given value
  fill <any|expr: value or expression> [<any: values or expression arguments> ...] - fill matrix with sequence of given values or with given expression and arguments (using $self, $row, $col)
  random [[<num: lower limit (0)>] <num: upper limit (1)>] - fill matrix with random values within given limits (lo <= x < up)
  ramp [<num: start value> [<num: end value>]] - fill fmat with linear sequence of values going from start to one before end
  rampinc [<num: start value> [<num: end value>]] - fill fmat with linear sequence of values going from start to end (inclusive)
  get <num: row index> <num: column index> - get value at given index
  iget <num: float row index> <num: float column index> - get (linearly) interpolated value at given float index
  getrow <int: row> [<int: offset>] [<int: size>] get row as tuple
  getcol <int: col> [<int: offset>] [<int: size>] get column as tuple
  set <num: value> - fill with given value
  set <num: row index> <num: column index> [<num: value> ...] - set values starting from indicated element (row by row)
  set <fmat: values> - set values from another fmat
  set <fvec: values> - set values from a vector
  set <bpf: values> - set values from bpf (two columns)
  set <mat: values> - set values from mat
  set <dict: values> copy numerical keys and values to first and second column
  setindexed <dict: values> - sparse copy from dict (index and values): copy dict values with int key i or tuple key {i j} to fmat row i, col j (col 0 if only int key given)
  set <sequence: values> - set values from sequence (two columns)
  set <track: values> - set values from track (two columns)
  setrow <num: index> <tuple|fmat|fvec|any: values> [<num: values> ...] - set values of given row (grow fmat rows if necessary)
  setcol <num: index> <tuple|fmat|fvec|any: values> [<num: values> ...] - set values of given column (grow fmat columns if necessary)
  colref <num: index> - get column reference (creates fvec object)
  rowref <num: index> - row reference (creates fvec object)
  diagref <num: index> - diagonal reference (creates fvec object)
  mvavrg <fmat: values> [<num: order>] - calculate central moving average of given fmat
  unwrapping [<num: range (2π)>] - (phase) unwrapping with given range
  append <list: values> - append row with given values
  append <fmat: rows> - append rows from given fmat
  append <fmat: row values> - append row from given fmat
  insert [<num: index> [<num: number>]] - insert a given number of empty rows at given index [0 1]
  insertcols [<num: index> [<num: number>]] - insert a given number empty columns at given index [0 1]
  delete [<num: index> [<num: number>]] - delete the given number rows from given index [0 1]
  deletecols [<num: index> [<num: number>]] - delete the given number of columns from given index [0 1]
  size - get number of rows and columns as a tuple
  rows - get number of rows
  cols - get number of columns
  size <num: # of rows> <num: # of columns> - set matrix dimensions
  rows <num: # of rows> - set number of rows
  cols <num: # of columns> - set number of columns
  min - get minimum value
  max - get maximum value
  absmax - get maximum absolute value
  sum - get sum of all values
  mean - get mean value of all values
  zc - get number of zerocrossings
  prod - get product of all values
  quantile [<num: q>] - get quantile (assuming sum is normaized to 1.0) [0.5]
  add <fmat: right operand> - add given scalar or fmat (element by element)
  add <num: right sclar operand> - add given scalar or fmat (element by element)
  sub <fmat: right operand> - substract given scalar or fmat (element by element)
  sub <num: right sclar operand> - substract given scalar or fmat (element by element)
  mul <fmat: right operand> - multiply current values by given scalar or fmat (element by element)
  mul <num: right sclar operand> - multiply current values by given scalar or fmat (element by element)
  div <fmat: right operand> - divide current values by given scalar or fmat (element by element)
  div <num: right sclar operand> - divide current values by given scalar or fmat (element by element)
  pow <fmat: right operand> - take current values to the power of the given scalar or fmat (element by element)
  pow <num: right sclar operand> - take current values to the power of the given scalar or fmat (element by element)
  bus <fmat: right operand> - subtract current values from given scalar or fmat (element by element)
  bus <num: right sclar operand> - subtract current values from given scalar or fmat (element by element)
  vid <fmat: right operand> - divide given scalar or fmat (element by element) by current values
  vid <num: right sclar operand> - divide given scalar or fmat (element by element) by current values
  ee <fmat: right operand> - replace current values by result of == comparison (0 or 1) with given scalar or fmat (element by element)
  ee <num: right sclar operand> - replace current values by result of == comparison (0 or 1) with given scalar or fmat (element by element)
  eq <fmat: right operand> - replace current values by result of == comparison (0 or 1) with given scalar or fmat (element by element)
  eq <num: right sclar operand> - replace current values by result of == comparison (0 or 1) with given scalar or fmat (element by element)
  ne <fmat: right operand> - replace current values by result of != comparison (0 or 1) with given scalar or fmat (element by element)
  ne <num: right sclar operand> - replace current values by result of != comparison (0 or 1) with given scalar or fmat (element by element)
  gt <fmat: right operand> - replace current values by result of > comparison (0 or 1) with given scalar or fmat (element by element)
  gt <num: right sclar operand> - replace current values by result of > comparison (0 or 1) with given scalar or fmat (element by element)
  ge <fmat: right operand> - replace current values by result of >= comparison (0 or 1) with given scalar or fmat (element by element)
  ge <num: right sclar operand> - replace current values by result of >= comparison (0 or 1) with given scalar or fmat (element by element)
  lt <fmat: right operand> - replace current values by result of < comparison (0 or 1) with given scalar or fmat (element by element)
  lt <num: right sclar operand> - replace current values by result of < comparison (0 or 1) with given scalar or fmat (element by element)
  le <fmat: right operand> - replace current values by result of <= comparison (0 or 1) with given scalar or fmat (element by element)
  le <num: right sclar operand> - replace current values by result of <= comparison (0 or 1) with given scalar or fmat (element by element)
  gauss <num: mu> <num: sigma> - calculate gaussian curve
  equals <fmat: other> return 1 if fmats are equal size and all values are equal
  sin  - calculate sin of each element of fmat
  cos  - calculate cos of each element of fmat
  tan  - calculate tan of each element of fmat
  asin  - calculate asin of each element of fmat
  acos  - calculate acos of each element of fmat
  atan  - calculate atan of each element of fmat
  sinh  - calculate sinh of each element of fmat
  cosh  - calculate cosh of each element of fmat
  tanh  - calculate tanh of each element of fmat
  abs  - calculate abs of each element of fmat: get absolute value
  log  - calculate log of each element of fmat
  logabs  - calculate logabs of each element of fmat: logarithm of absolute value
  log10  - calculate log10 of each element of fmat
  exp  - calculate exp of each element of fmat
  sqrt  - calculate sqrt of each element of fmat
  trunc  - calculate trunc of each element of fmat: truncate to integer value
  round  - calculate round of each element of fmat: round to integer value nearest to current value
  ceil  - calculate ceil of each element of fmat: round to smallest integral value not less than current value
  floor  - calculate floor of each element of fmat: round to largest integral value not less than current value
  lin2db  - calculate lin2db of each element of fmat: convert linear amplitude value to value in decibel
  db2lin  - calculate db2lin of each element of fmat: convert value in decibel to linear amplitude value
  lin2cent  - calculate lin2cent of each element of fmat: convert linear value to value in cent
  cent2lin  - calculate cent2lin of each element of fmat: convert value in cent to linear value
  linscale <num: min_in> <num: max_in> <num: min_out> <num: max_out> - linear segment going from min_out to max_out for x between min_in and max_in - apply mapping linscale to each element of fmat
  exscale <num: min_in> <num: max_in> <num: min_out> <num: max_out> <num: base> - exponential scale going from min_out to max_out for x between min_in and max_in - apply mapping exscale to each element of fmat
  delta <num: min_in> <num: max_in> <num: min_out> <num: max_out> <num: midpoint> <num: width = 0> - delta shape with peak of given width at midpoint - apply mapping delta to each element of fmat
  sqrabs - calulate square of absolute values of current values
  mod - calulate division remainder of current values on argument
  rect - convert complex polar vector to complex rectangular vector (matrix of 2 columns)
  polar - convert complex rectangular vector to complex polar vector (matrix of 2 columns)
  cmul <fmat: right operand> - multiply current values of complex vector by given scalar or complex vector fmat (element by element)
  cmul <num: right sclar operand> - multiply current values of complex vector by given scalar or complex vector fmat (element by element)
  cabs - calulate absolute values of current complex values
  clogabs - calulate logarithm of absolute values of current complex values
  clog - calulate lograrithm of current complex values
  cexp - calulate exponent function of current complex values
  csqrabs - calulate square of absolute values of current complex values
  fft - calulate inplace FFT of real or complex vector
  ifft - calulate inplace inverse FFT of complex vector
  rifft - calulate inplace real inverse FFT of complex vector
  xmul <fmat: operand> - calculate matrix multiplication of operand M with current matrix C so that C' = M x C
  dot <fmat: operand> - get dot product of column vector with given vector
  clip [<num: lower limit>] <num: upper limit> - clip values within given limits
  normalize [<num: abs max>] - normalize to given maximum absolute value [1]
  cumsum - calculate cumulative sum
  normsum [<num: sum>] - normalize sum [1]
  env <fmat: envelope> - multiply given envelope function to each column
  env <fvec: envelope> - multiply given envelope function to each column
  env <bpf: envelope> - multiply given envelope function to each column
  lookup <fmat: function> - apply function given by fmat to each value (by linear interpolation)
  lookup <fvec: function> - apply function given by fvec to each value (by linear interpolation)
  lookup <bpf: function> - apply function given by bpf to each value (by linear interpolation)
  apply <expr: expression> [<any: arguments> ...] - apply expression with given arguments to each value (using $self and $x)
  find <expr: expression> [<any: arguments to expression> ...] - leave indices where expression is true (use $x, $i and $self: the predefined super-local variable $x = the value of the element being tested, $i = its index, and $self
... = the reference to the fmat itself. Otherwise, only global definitions are visible within the expression.)
  sort - sort rows by ascending values of first column
  sort [<num: index of column>] - sort rows by ascending values of given column
  tros - sort rows by descending values of first column
  tros [<num: index of column>] - sort rows by descending values of given column
  unique - remove rows with repeated values in first column (sort before to leave only unique values)
  unique <int: column> remove rows with repeated values in given column (sort before to leave only unique values)
  rotate - rotate by one row
  rotate [<num: # of rows>] - rotate by given number of rows
  rotate [<num: # of rows>] [<num: # of cols>] - rotate rows and columns by given numbers
  reverse - reverse order of rows
  scramble - scramble rows randomly
  transpose - transpose column or row vector
  reshape - change matrix dimensions (without adapting content)
  import <sym: file name> [<list: additional args>] - import values from file (file type is derived from suffix)
  importas <sym: file type/suffix> <sym: file name> [<list: additional args>] - import values from file of given type
  export <sym: file name> [<any: additional args> ...] - export values to file (file type is derived from suffix)
  exportas <sym: file type/suffix> <sym: file name> [<any: additional args> ...] - export values to file of given type
}