code: def split_de_casteljau(beta, t):
      """
      Split a Bézier segment defined by its control points *beta* into two
      separate segments divided at *t* and return their control points.
      """
      beta = np.asarray(beta)
      beta_list = [beta]
      while True:
          beta = _de_casteljau1(beta, t)
          beta_list.append(beta)
          if len(beta) == 1:
              break
      left_beta = [beta[0] for beta in beta_list]
      right_beta = [beta[-1] for beta in reversed(beta_list)]
  
      return left_beta, right_beta
  
imports: from functools import lru_cache
  import math
  import warnings
  import numpy
  from matplotlib import _api
label_desc: Use image node_id 5 for calling a global function with example usage: split_de_casteljau(beta, t) and returns: left_beta,  right_beta