code: def _binary_clf_curve(y_true, y_score):
      if y_true.dtype.kind == "f" and np.any(
          y_true != y_true.astype(int)
      ):
          raise ValueError(
              "Continuous format of y_true  " "is not supported."
          )
  
      ids = cp.argsort(-y_score)
      sorted_score = y_score[ids]
  
      ones = y_true[ids].astype(
          "float32"
      )  # for calculating true positives
      zeros = 1 - ones  # for calculating predicted positives
  
      # calculate groups
      group = _group_same_scores(sorted_score)
      num = int(group[-1])
  
      tps = cp.zeros(num, dtype="float32")
      fps = cp.zeros(num, dtype="float32")
  
      tps = _addup_x_in_group(group, ones, tps)
      fps = _addup_x_in_group(group, zeros, fps)
  
      tps = cp.cumsum(tps)
      fps = cp.cumsum(fps)
      thresholds = cp.unique(y_score)
      return fps, tps, thresholds
  
file_path: cuml/python/cuml/metrics/_ranking.py
imports: import math
  from cuml.internals.input_utils import input_to_cupy_array
  from cuml.internals.array import CumlArray
  import cuml.internals
  from cuml.internals.safe_imports import cpu_only_import
  import typing
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 3 for calling a global function with example usage: _binary_clf_curve(y_true, y_score) and returns: fps,  tps,  thresholds