code: def make_subdivision_matrices(degree):
      
      left = np.zeros((degree + 1, degree + 1), order="F")
      right = np.zeros((degree + 1, degree + 1), order="F")
      left[0, 0] = 1.0
      right[-1, -1] = 1.0
      for col in six.moves.xrange(1, degree + 1):
          half_prev = 0.5 * left[:col, col - 1]
          left[:col, col] = half_prev
          left[1 : col + 1, col] += half_prev  # noqa: E203
          # Populate the complement col (in right) as well.
          complement = degree - col
          # NOTE: We "should" reverse the results when using
          #       the complement, but they are symmetric so
          #       that would be a waste.
          right[-(col + 1) :, complement] = left[: col + 1, col]  # noqa: E203
      return left, right
docs: Make the matrix used to subdivide a curve.
  
      .. note::
  
          This is a helper for :func:`_subdivide_nodes`. It does not have a
          Fortran speedup because it is **only** used by a function which has
          a Fortran speedup.
  
      Args:
          degree (int): The degree of the curve.
  
      Returns:
          Tuple[numpy.ndarray, numpy.ndarray]: The matrices used to convert
             the nodes into left and right nodes, respectively.