docs: def scientificformat(value, fmt='%13.9E', sep=' ', sep2=':'):
      """
      :param value: the value to convert into a string
      :param fmt: the formatting string to use for float values
      :param sep: separator to use for vector-like values
      :param sep2: second separator to use for matrix-like values
  
      Convert a float or an array into a string by using the scientific notation
      and a fixed precision (by default 10 decimal digits). For instance:
  
      >>> scientificformat(-0E0)
      '0.000000000E+00'
      >>> scientificformat(-0.004)
      '-4.000000000E-03'
      >>> scientificformat([0.004])
      '4.000000000E-03'
      >>> scientificformat([0.01, 0.02], '%10.6E')
      '1.000000E-02 2.000000E-02'
      >>> scientificformat([[0.1, 0.2], [0.3, 0.4]], '%4.1E')
      '1.0E-01:2.0E-01 3.0E-01:4.0E-01'
      """
      if isinstance(value, numpy.bool_):
          return '1' if value else '0'
      elif isinstance(value, bytes):
          return value.decode('utf8')
      elif isinstance(value, str):
          return value
      elif hasattr(value, '__len__'):
          return sep.join((scientificformat(f, fmt, sep2) for f in value))
      elif isinstance(value, (float, numpy.float64, numpy.float32)):
          fmt_value = fmt % value
          if set(fmt_value) <= zeroset:
              # '-0.0000000E+00' is converted into '0.0000000E+00
              fmt_value = fmt_value.replace('-', '')
          return fmt_value
      return str(value)