parameters: (*arrays)
docstring: Return a scalar type which is common to the input arrays.
  
      The return type will always be an inexact (i.e. floating point) scalar
      type, even if all the arrays are integer arrays. If one of the inputs is
      an integer array, the minimum precision type that is returned is a
      64-bit floating point dtype.
  
      All input arrays except int64 and uint64 can be safely cast to the
      returned dtype without loss of information.
  
      Parameters
      ----------
      array1, array2, ... : ndarrays
          Input arrays.
  
      Returns
      -------
      out : data type code
          Data type code.
  
      See Also
      --------
      dtype, mintypecode
  
      Examples
      --------
      >>> np.common_type(np.arange(2, dtype=np.float32))
      <class 'numpy.float32'>
      >>> np.common_type(np.arange(2, dtype=np.float32), np.arange(2))
      <class 'numpy.float64'>
      >>> np.common_type(np.arange(4), np.array([45, 6.j]), np.array([45.0]))
      <class 'numpy.complex128'>
docstring_summary: Return a scalar type which is common to the input arrays.
docstring_tokens: Return a scalar type which is common to the input arrays .
function: def common_type(*arrays):
      """
      Return a scalar type which is common to the input arrays.
  
      The return type will always be an inexact (i.e. floating point) scalar
      type, even if all the arrays are integer arrays. If one of the inputs is
      an integer array, the minimum precision type that is returned is a
      64-bit floating point dtype.
  
      All input arrays except int64 and uint64 can be safely cast to the
      returned dtype without loss of information.
  
      Parameters
      ----------
      array1, array2, ... : ndarrays
          Input arrays.
  
      Returns
      -------
      out : data type code
          Data type code.
  
      See Also
      --------
      dtype, mintypecode
  
      Examples
      --------
      >>> np.common_type(np.arange(2, dtype=np.float32))
      <class 'numpy.float32'>
      >>> np.common_type(np.arange(2, dtype=np.float32), np.arange(2))
      <class 'numpy.float64'>
      >>> np.common_type(np.arange(4), np.array([45, 6.j]), np.array([45.0]))
      <class 'numpy.complex128'>
  
      """
      is_complex = False
      precision = 0
      for a in arrays:
          t = a.dtype.type
          if iscomplexobj(a):
              is_complex = True
          if issubclass(t, _nx.integer):
              p = 2  # array_precision[_nx.double]
          else:
              p = array_precision.get(t, None)
              if p is None:
                  raise TypeError("can't get common type for non-numeric array")
          precision = max(precision, p)
      if is_complex:
          return array_type[1][precision]
      else:
          return array_type[0][precision]
function_tokens: def common_type ( * arrays ) : is_complex = False precision = 0 for a in arrays : t = a . dtype . type if iscomplexobj ( a ) : is_complex = True if issubclass ( t , _nx . integer ) : p = 2 # array_precision[_nx.double] else : p = array_precision . get ( t , None ) if p is None : raise TypeError ( "can't get common type for non-numeric array" ) precision = max ( precision , p ) if is_complex : return array_type [ 1 ] [ precision ] else : return array_type [ 0 ] [ precision ]