code: def subdivide(self):
          
          left_nodes, right_nodes = _curve_helpers.subdivide_nodes(self.nodes)
          midpoint = 0.5 * (self.start + self.end)
          left = SubdividedCurve(
              left_nodes, self.original_nodes, start=self.start, end=midpoint
          )
          right = SubdividedCurve(
              right_nodes, self.original_nodes, start=midpoint, end=self.end
          )
          return left, right
docs: Split the curve into a left and right half.
  
          See :meth:`.Curve.subdivide` for more information.
  
          Returns:
              Tuple[SubdividedCurve, SubdividedCurve]: The left and right
              sub-curves.