docstr: 1. If dtype of X and Y is float32, then dtype float32 is returned.
  2. Else dtype float is returned.
docstr_tok: ["1",".","If","dtype","of","X","and","Y","is","float32",",","then","dtype","float32","is","returned",".","2",".","Else","dtype","float","is","returned","."]
code: def _return_float_dtype(X, Y):
      """
      1. If dtype of X and Y is float32, then dtype float32 is returned.
      2. Else dtype float is returned.
      """
  
      X = astensor(X)
  
      if Y is None:
          Y_dtype = X.dtype
      else:
          Y = astensor(Y)
          Y_dtype = Y.dtype
  
      if X.dtype == Y_dtype == np.float32:
          dtype = np.float32
      else:
          dtype = float
  
      return X, Y, dtype
  
file_path: mars/mars/learn/metrics/pairwise/core.py
imports: import itertools
  import numpy
  from ....core import recursive_tile
  from ....serialization.serializables import Int64Field
  from ....tensor.operands import TensorOperand, TensorOperandMixin
  from ....tensor import tensor
  from ....utils import has_unknown_shape
  from ...utils import check_array
label_desc: Use image node_id 1 for calling the PairwiseDistances obj's underlying member method code with example usage: obj._return_float_dtype(X, Y) and returns: X,  Y,  dtype