A set of benchmarks to compare a new prototype MiniZinc implementation
1/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */ 2 3/* 4 * Main authors: 5 * Guido Tack <guido.tack@monash.edu> 6 */ 7 8/* This Source Code Form is subject to the terms of the Mozilla Public 9 * License, v. 2.0. If a copy of the MPL was not distributed with this 10 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 11 12#ifndef __MINIZINC_OUTPUT_HH__ 13#define __MINIZINC_OUTPUT_HH__ 14 15#include <minizinc/flatten_internal.hh> 16 17namespace MiniZinc { 18 19/// Remove all output annotations from \a vd 20void removeIsOutput(VarDecl* vd); 21 22/// Copy output item to FlatZinc model 23void copyOutput(EnvI& e); 24 25/// Copy all dependent variable declarations 26void outputVarDecls(EnvI& env, Item* ci, Expression* e); 27 28/// Create initial output model 29void createOutput(EnvI& e, std::vector<VarDecl*>& deletedFlatVarDecls, 30 FlatteningOptions::OutputMode outputMode, bool outputObjective, 31 bool includeOutputItem); 32/// Finalise output model after flattening is complete 33void finaliseOutput(EnvI& e, std::vector<VarDecl*>& deletedFlatVarDecls); 34 35/// Remove all links to variables in flat model from output model in \a env 36void cleanupOutput(EnvI& env); 37 38ArrayLit* createJSONOutput(EnvI& env, bool outputObjective, bool includeOutputItem); 39 40} // namespace MiniZinc 41 42#endif