def METHOD_NAME(self, node, options=None):
    '''Apply this transformation to the supplied node.
    :param node: the node to transform.
    :type node: :py:class:`psyclone.psyir.nodes.Routine`
    :param options: a dictionary with options for transformations.
    :type options: Optional[Dict[str, Any]]
    '''
    routine = node
    self.validate(routine, options)
    def is_conditional_return(node):
        '''
        :param node: node to evaluate.
        :type node: :py:class:`psyclone.psyir.nodes.Node`
        :returns: whether the given node represents a conditional return \
                  expression.
        '''
        if not isinstance(node, IfBlock):
            return False
        if node.else_body is not None:
            return False
        return isinstance(node.if_body[0], Return)
    for statement in routine[:]:
        if is_conditional_return(statement):
            # Reverse condition adding a NOT operator
            new_condition = UnaryOperation.create(
                UnaryOperation.Operator.NOT,
                statement.condition.copy())
            statement.children[0] = new_condition
            # Remove return statement (and any dead code inside the loop)
            statement.if_body.children = []
            # Then move any remaining statement after the conditional
            # statement inside the loop body
            while len(statement.parent.children) > statement.position + 1:
                move = statement.parent.children.pop()
                statement.if_body.children.insert(0, move)