@classmethod
def step(Class, length, origin=1):
    """
        Create a discretization of the Heaviside step function.

        :param length: the length of the resulting vector
        :type length: a positive integer
        :param origin: the position of the origin
        :type origin: an integer
        :returns: a vector ``[0, 0, ..., 0, 1, 1, ..., 1]`` with exactly
            ``max(0, min(length, origin))`` zeros
        :rtype: a vector of the specified length
        :raises: :class:`AssertionError` if `length` is not positive

        .. seealso::
            :attr:`tensors.tensor.Tensor.shape`
        """
    raise NotImplementedError
