Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- return (X[0]**2 - X[1]**2, 2*X[0]*X[1])
- import ampl, sys
- class AMPLToPythonConverter:
- def __init__(self, stream):
- self.stream = stream
- def visit_reference(self, expr):
- self.stream.write(expr.name)
- def visit_binary(self, expr):
- expr.lhs.accept(self)
- self.stream.write(' {} '.format(expr.op))
- expr.rhs.accept(self)
- def visit_decl(self, decl):
- if decl.kind == 'minimize':
- self.stream.write("def {}(x):n".format(decl.name))
- self.stream.write(" return ");
- decl.body.accept(self)
- self.stream.write('n')
- compound_stmt = ampl.parse(
- """
- var x;
- minimize f: x * x;
- """, "input")
- for node in compound_stmt.nodes:
- node.accept(AMPLToPythonConverter(sys.stdout))
- def f(x):
- return x * x
Add Comment
Please, Sign In to add comment