code: function _config (options) {
      if (options) {
        const prev = mapObject(config, clone)
  
        // validate some of the options
        validateOption(options, 'matrix', MATRIX_OPTIONS)
        validateOption(options, 'number', NUMBER_OPTIONS)
  
        // merge options
        deepExtend(config, options)
  
        const curr = mapObject(config, clone)
  
        const changes = mapObject(options, clone)
  
        // emit 'config' event
        emit('config', curr, prev, changes)
  
        return curr
      } else {
        return mapObject(config, clone)
      }
    }
docs: Set configuration options for math.js, and get current options.
  Will emit a 'config' event, with arguments (curr, prev, changes).
  
  Syntax:
  
  math.config(config: Object): Object
  
  Examples:
  
  math.config().number                // outputs 'number'
  math.evaluate('0.4')                // outputs number 0.4
  math.config({number: 'Fraction'})
  math.evaluate('0.4')                // outputs Fraction 2/5
  
  @param {Object} [options] Available options:
  {number} epsilon
  Minimum relative difference between two
  compared values, used by all comparison functions.
  {string} matrix
  A string 'Matrix' (default) or 'Array'.
  {string} number
  A string 'number' (default), 'BigNumber', or 'Fraction'
  {number} precision
  The number of significant digits for BigNumbers.
  Not applicable for Numbers.
  {string} parenthesis
  How to display parentheses in LaTeX and string
  output.
  {string} randomSeed
  Random seed for seeded pseudo random number generator.
  Set to null to randomly seed.
  @return {Object} Returns the current configuration