code: def _joint_probabilities(distances, desired_perplexity, verbose):
      
      # Compute conditional probabilities such that they approximately match
      # the desired perplexity
      distances = distances.astype(np.float32, copy=False)
      conditional_P = _utils._binary_search_perplexity(
          distances, None, desired_perplexity, verbose)
      P = conditional_P + conditional_P.T
      sum_P = np.maximum(np.sum(P), MACHINE_EPSILON)
      P = np.maximum(squareform(P) / sum_P, MACHINE_EPSILON)
      return P
docs: Compute joint probabilities p_ij from distances.
  
      Parameters
      ----------
      distances : array, shape (n_samples * (n_samples-1) / 2,)
          Distances of samples are stored as condensed matrices, i.e.
          we omit the diagonal and duplicate entries and store everything
          in a one-dimensional array.
  
      desired_perplexity : float
          Desired perplexity of the joint probability distributions.
  
      verbose : int
          Verbosity level.
  
      Returns
      -------
      P : array, shape (n_samples * (n_samples-1) / 2,)
          Condensed joint probability matrix.