code: def _reduce_pseudo_inverse(nodes):
      
      _, num_nodes = np.shape(nodes)
      if num_nodes == 2:
          reduction = _REDUCTION0
          denom = _REDUCTION_DENOM0
      elif num_nodes == 3:
          reduction = _REDUCTION1
          denom = _REDUCTION_DENOM1
      elif num_nodes == 4:
          reduction = _REDUCTION2
          denom = _REDUCTION_DENOM2
      elif num_nodes == 5:
          reduction = _REDUCTION3
          denom = _REDUCTION_DENOM3
      else:
          raise _helpers.UnsupportedDegree(num_nodes - 1, supported=(1, 2, 3, 4))
  
      result = _helpers.matrix_product(nodes, reduction)
      result /= denom
      return result
docs: Performs degree-reduction for a B |eacute| zier curve.
  
      Does so by using the pseudo-inverse of the degree elevation
      operator (which is overdetermined).
  
      .. note::
  
         There is also a Fortran implementation of this function, which
         will be used if it can be built.
  
      Args:
          nodes (numpy.ndarray): The nodes in the curve.
  
      Returns:
          numpy.ndarray: The reduced nodes.
  
      Raises:
          .UnsupportedDegree: If the degree is not 1, 2, 3 or 4.