def visit_Operator(self, node: Operator): op = node.op left = self.visit(node.left) right = self.visit(node.right) if type(left) == sympy.Symbol: self.backward_table_manager.current_table.can_replace_varables.append( left.name) elif type(right) == sympy.Symbol: self.backward_table_manager.current_table.can_replace_varables.append( right.name) node.time_complexity = node.left.time_complexity + node.right.time_complexity if op == '+': return operator.add(left, right) elif op == '-': return operator.sub(left, right) elif op == '*': return operator.mul(left, right) elif op == '/': return operator.truediv(left, right) elif op == '**': return left**right elif op == '<<': return left * 2**right elif op == '>>': return left / (2**right) elif op == '//': return left // right elif op == '>>': return left / (2**right) elif op == '%': return left % right elif op == '>>': return left / (2**right) elif op == '|': return left | right elif op == '&': return left & right elif op == '>>': return left / (2**right) elif op == '@': return left @ right
def visit_Operator(self, node: Operator): op = node.op left = self.visit(node.left) right = self.visit(node.right) node.time_complexity = node.left.time_complexity + node.right.time_complexity if op == '+': return operator.add(left, right) elif op == '-': return operator.sub(left, right) elif op == '*': return operator.mul(left, right) elif op == '/': return operator.truediv(left, right) elif op == '<<': return left * 2**right elif op == '>>': return left / (2**right)