1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
Jip J. Dekker b5f0d64642 Squashed 'prototype/' content from commit 91f7db00
git-subtree-dir: prototype
git-subtree-split: 91f7db00d45e7f991b5587ee07f09977ae311ee7
2021-07-29 14:28:24 +10:00

158 lines
4.1 KiB
C++

/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
/*
* Main authors:
* Jip J. Dekker <jip.dekker@monash.edu>
*/
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef __MINIZINC_GEAS_CONSTRAINTS_HH__
#define __MINIZINC_GEAS_CONSTRAINTS_HH__
#include <minizinc/ast.hh>
#include <minizinc/solver_instance_base.hh>
namespace MiniZinc {
namespace GeasConstraints {
#define PosterImpl(X) void X(SolverInstanceBase& s, const Definition* ce)
PosterImpl(p_mk_intvar);
/* Integer Comparison Constraints */
PosterImpl(p_int_eq);
PosterImpl(p_int_le);
PosterImpl(p_int_lt);
/* Integer Arithmetic Constraints */
PosterImpl(p_int_abs);
PosterImpl(p_int_times);
PosterImpl(p_int_div);
PosterImpl(p_int_max);
PosterImpl(p_int_min);
/* Integer Linear Constraints */
PosterImpl(p_int_lin_eq);
PosterImpl(p_int_lin_ne);
PosterImpl(p_int_lin_le);
PosterImpl(p_int_lin_eq_imp);
PosterImpl(p_int_lin_ne_imp);
PosterImpl(p_int_lin_le_imp);
PosterImpl(p_int_lin_eq_reif);
PosterImpl(p_int_lin_ne_reif);
PosterImpl(p_int_lin_le_reif);
/* Boolean Comparison Constraints */
PosterImpl(p_bool_eq);
PosterImpl(p_bool_ne);
PosterImpl(p_bool_le);
PosterImpl(p_bool_lt);
PosterImpl(p_bool_eq_imp);
PosterImpl(p_bool_ne_imp);
PosterImpl(p_bool_le_imp);
PosterImpl(p_bool_lt_imp);
PosterImpl(p_bool_eq_reif);
PosterImpl(p_bool_ne_reif);
PosterImpl(p_bool_le_reif);
PosterImpl(p_bool_lt_reif);
/* Boolean Arithmetic Constraints */
PosterImpl(p_bool_or);
PosterImpl(p_bool_and);
PosterImpl(p_bool_xor);
PosterImpl(p_bool_not);
PosterImpl(p_bool_or_imp);
PosterImpl(p_bool_and_imp);
PosterImpl(p_bool_xor_imp);
PosterImpl(p_bool_clause);
PosterImpl(p_array_bool_or);
PosterImpl(p_array_bool_and);
PosterImpl(p_bool_clause_imp);
PosterImpl(p_array_bool_or_imp);
PosterImpl(p_array_bool_and_imp);
PosterImpl(p_bool_clause_reif);
/* Boolean Linear Constraints */
PosterImpl(p_bool_lin_eq);
PosterImpl(p_bool_lin_ne);
PosterImpl(p_bool_lin_le);
PosterImpl(p_bool_lin_eq_imp);
PosterImpl(p_bool_lin_ne_imp);
PosterImpl(p_bool_lin_le_imp);
PosterImpl(p_bool_lin_lt_imp);
PosterImpl(p_bool_lin_eq_reif);
PosterImpl(p_bool_lin_ne_reif);
PosterImpl(p_bool_lin_le_reif);
/* Coercion Constraints */
PosterImpl(p_bool2int);
/* Element Constraints */
PosterImpl(p_array_int_element);
PosterImpl(p_array_bool_element);
PosterImpl(p_array_int_maximum);
PosterImpl(p_array_int_minimum);
PosterImpl(p_array_var_int_element);
PosterImpl(p_array_var_bool_element);
/* Global Constraints */
PosterImpl(p_all_different);
PosterImpl(p_all_different_except_0);
PosterImpl(p_at_most);
PosterImpl(p_at_most1);
PosterImpl(p_cumulative);
PosterImpl(p_disjunctive);
PosterImpl(p_global_cardinality);
PosterImpl(p_table_int);
/**** NOT YET SUPPORTED: ****/
/* Boolean Arithmetic Constraints */
// PosterImpl(p_array_bool_xor);
// PosterImpl(p_array_bool_xor_imp);
/* Floating Point Comparison Constraints */
// PosterImpl(p_float_eq);
// PosterImpl(p_float_ne);
// PosterImpl(p_float_le);
// PosterImpl(p_float_lt);
// PosterImpl(p_float_eq_reif);
// PosterImpl(p_float_le_reif)
// PosterImpl(p_float_lt_reif);
/* Floating Point Arithmetic Constraints */
// PosterImpl(p_float_times);
// PosterImpl(p_float_div);
// PosterImpl(p_float_plus) ;
// PosterImpl(p_float_sqrt);
// PosterImpl(p_float_abs);;
// PosterImpl(p_float_max);
// PosterImpl(p_float_min);
// PosterImpl(p_float_acos);
// PosterImpl(p_float_asin);
// PosterImpl(p_float_atan);
// PosterImpl(p_float_cos);
// PosterImpl(p_float_exp);
// PosterImpl(p_float_sin);
// PosterImpl(p_float_tan);
// PosterImpl(p_float_ln);
// PosterImpl(p_float_log10);
// PosterImpl(p_float_log2);
/* Floating Linear Constraints */
// PosterImpl(p_float_lin_eq);
// PosterImpl(p_float_lin_eq_reif);
// PosterImpl(p_float_lin_le);
// PosterImpl(p_float_lin_le_reif);
/* Coercion Constraints */
// PosterImpl(p_int2float);
} // namespace GeasConstraints
} // namespace MiniZinc
#endif // __MINIZINC_GEAS_CONSTRAINTS_HH__