gecoder 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. data/CHANGES +7 -0
  2. data/README +10 -1
  3. data/example/sudoku-set.rb +16 -13
  4. data/ext/extconf.rb +26 -9
  5. data/ext/missing.cpp +1 -1
  6. data/ext/missing.h +1 -1
  7. data/ext/vararray.h +4 -4
  8. data/lib/gecoder/bindings.rb +21 -1
  9. data/lib/gecoder/bindings/bindings.rb +408 -731
  10. data/lib/gecoder/interface/binding_changes.rb +1 -1
  11. data/lib/gecoder/interface/branch.rb +25 -25
  12. data/lib/gecoder/interface/constraints.rb +47 -4
  13. data/lib/gecoder/interface/constraints/bool/boolean.rb +18 -16
  14. data/lib/gecoder/interface/constraints/bool_enum/boolean.rb +13 -11
  15. data/lib/gecoder/interface/constraints/int/arithmetic.rb +5 -4
  16. data/lib/gecoder/interface/constraints/int/domain.rb +8 -9
  17. data/lib/gecoder/interface/constraints/int/linear.rb +10 -8
  18. data/lib/gecoder/interface/constraints/int_enum/arithmetic.rb +4 -4
  19. data/lib/gecoder/interface/constraints/int_enum/channel.rb +2 -2
  20. data/lib/gecoder/interface/constraints/int_enum/count.rb +4 -5
  21. data/lib/gecoder/interface/constraints/int_enum/distinct.rb +7 -2
  22. data/lib/gecoder/interface/constraints/int_enum/element.rb +2 -2
  23. data/lib/gecoder/interface/constraints/int_enum/equality.rb +6 -3
  24. data/lib/gecoder/interface/constraints/int_enum/sort.rb +17 -5
  25. data/lib/gecoder/interface/constraints/set_enum/distinct.rb +0 -36
  26. data/lib/gecoder/interface/constraints/set_var_constraints.rb +5 -0
  27. data/lib/gecoder/interface/model.rb +3 -3
  28. data/lib/gecoder/interface/search.rb +5 -4
  29. data/lib/gecoder/version.rb +1 -1
  30. data/specs/branch.rb +27 -27
  31. data/specs/constraints/arithmetic.rb +48 -30
  32. data/specs/constraints/bool_enum.rb +39 -19
  33. data/specs/constraints/boolean.rb +10 -10
  34. data/specs/constraints/cardinality.rb +12 -9
  35. data/specs/constraints/channel.rb +6 -6
  36. data/specs/constraints/connection.rb +22 -26
  37. data/specs/constraints/constraint_helper.rb +125 -41
  38. data/specs/constraints/count.rb +22 -15
  39. data/specs/constraints/distinct.rb +10 -64
  40. data/specs/constraints/element.rb +14 -12
  41. data/specs/constraints/equality.rb +4 -4
  42. data/specs/constraints/int_domain.rb +8 -7
  43. data/specs/constraints/int_relation.rb +12 -8
  44. data/specs/constraints/linear.rb +4 -4
  45. data/specs/constraints/reification_sugar.rb +22 -4
  46. data/specs/constraints/selection.rb +2 -2
  47. data/specs/constraints/set_domain.rb +7 -3
  48. data/specs/constraints/set_operation.rb +2 -2
  49. data/specs/constraints/set_relation.rb +2 -6
  50. data/specs/constraints/sort.rb +20 -16
  51. data/specs/distribution.rb +14 -0
  52. data/specs/model.rb +4 -4
  53. data/tasks/dependencies.txt +21 -0
  54. data/tasks/distribution.rake +81 -8
  55. data/tasks/svn.rake +6 -3
  56. data/vendor/rust/include/rust_checks.hh +2 -1
  57. data/vendor/rust/include/rust_conversions.hh +2 -2
  58. data/vendor/rust/rust/attribute.rb +2 -2
  59. data/vendor/rust/rust/class.rb +2 -2
  60. data/vendor/rust/rust/cxxclass.rb +0 -2
  61. data/vendor/rust/rust/function.rb +2 -2
  62. data/vendor/rust/rust/templates/AttributeDefinition.rusttpl +1 -1
  63. data/vendor/rust/rust/templates/StandaloneClassDeclarations.rusttpl +1 -1
  64. data/vendor/rust/rust/templates/VariableFunctionCall.rusttpl +1 -1
  65. data/vendor/rust/rust/type.rb +1 -1
  66. metadata +159 -157
data/CHANGES CHANGED
@@ -1,3 +1,10 @@
1
+ == Version 0.8.0
2
+ This release makes the jump from using Gecode 1.3.1 to using Gecode 2.1.1 .
3
+ The following changes have been made to the interface as a result of the jump.
4
+
5
+ * The distinct constraint for sets has been removed.
6
+ * Added the propagation kind option to the non-set constraints.
7
+
1
8
  == Version 0.7.1
2
9
  This release adds boolean linear constraints.
3
10
 
data/README CHANGED
@@ -13,14 +13,23 @@ people to play with it and give feedback.
13
13
 
14
14
  == Installation
15
15
 
16
- Gecode/R requires Gecode 1.3.1, which can be downloaded from
16
+ Gecode/R requires Gecode 2.1.1, which can be downloaded from
17
17
  http://www.gecode.org/download.html . See
18
18
  http://www.gecode.org/gecode-doc-latest/PageComp.html for the installation
19
19
  instructions.
20
20
 
21
21
  === Installing from gem
22
22
 
23
+ There are two gems. The first includes only Gecode/R, and assumes that you have
24
+ installed Gecode yourself. The second includes both Gecode/R and Gecode. If you
25
+ use Windows then you're recommended to use the second one, even though you
26
+ already have Gecode, as the other one does not come in a pre-compiled variant.
27
+
28
+ Gecode/R only:
23
29
  gem install gecoder
30
+
31
+ Gecode/R and Gecode:
32
+ gem install gecoder-with-gecode
24
33
 
25
34
  === Installing from source using gem
26
35
 
@@ -8,14 +8,13 @@ class SudokuSet < Gecode::Model
8
8
  # Takes a 9x9 matrix of values in the initial sudoku, 0 if the square is
9
9
  # empty.
10
10
  def initialize(predefined_values)
11
- unless predefined_values.column_size == 9 and
12
- predefined_values.row_size == 9
13
- raise ArgumentError, 'The matrix with predefined values must have ' +
14
- 'dimensions 9x9.'
15
- end
16
-
11
+ # Verify that the input is of a valid size.
17
12
  @size = n = predefined_values.row_size
18
- sub_matrix_size = Math.sqrt(n).round
13
+ block_size = Math.sqrt(n).round
14
+ unless predefined_values.square? and block_size**2 == n
15
+ raise ArgumentError, 'Incorrect value matrix size.'
16
+ end
17
+ sub_count = block_size
19
18
 
20
19
  # Create one set per assignable number (i.e. 1..9). Each set contains the
21
20
  # position of all squares that the number is located in. The squares are
@@ -39,18 +38,22 @@ class SudokuSet < Gecode::Model
39
38
  rows = []
40
39
  columns = []
41
40
  n.times do |i|
42
- rows << ((i*n + 1)..(i*n + 9))
43
- columns << [1, 10, 19, 28, 37, 46, 55, 64, 73].map{ |e| e + i }
41
+ rows << ((i*n + 1)..(i*n + n))
42
+ columns << (0...n).map{ |e| e*n + 1 + i }
44
43
  end
45
44
 
46
45
  # Build arrays containing the square positions of each block.
47
46
  blocks = []
48
- sub_matrix_size.times do |i|
49
- sub_matrix_size.times do |j|
50
- blocks << [1, 2, 3, 10, 11, 12, 19, 20, 21].map{ |e| e + (j*27)+(i*3) }
47
+ # The square numbers of the first block.
48
+ first_block = (0...block_size).map do |e|
49
+ ((n*e+1)..(n*e+block_size)).to_a
50
+ end.flatten
51
+ block_size.times do |i|
52
+ block_size.times do |j|
53
+ blocks << first_block.map{ |e| e + (j*n*block_size)+(i*block_size) }
51
54
  end
52
55
  end
53
-
56
+
54
57
  # All sets must be pairwise disjoint since two numbers can't be assigned to
55
58
  # the same square.
56
59
  n.times do |i|
data/ext/extconf.rb CHANGED
@@ -1,26 +1,43 @@
1
1
  require 'mkmf'
2
2
  require 'pathname'
3
3
 
4
- # Find the Gecode libraries.
5
- find_library("gecodeint", "" )
6
- find_library("gecodekernel", "")
7
- find_library("gecodeminimodel", "")
8
- find_library("gecodesearch", "")
9
- find_library("gecodeset", "")
10
-
11
4
  # Set up some important locations.
12
5
  ROOT = Pathname.new(File.dirname(__FILE__) + '/..').realpath
13
6
  RUST_INCLUDES = "#{ROOT}/vendor/rust/include"
14
7
  BINDINGS_DIR = "#{ROOT}/lib/gecoder/bindings"
15
8
  EXT_DIR = "#{ROOT}/ext"
16
9
  ORIGINAL_DIR = Pathname.new('.').realpath
10
+ # The Gecode libraries are placed in the lib directory when using the
11
+ # gecoder-with-gecode distribution.
12
+ GECODE_LIB_DIR = "#{ROOT}/lib/lib"
13
+ GECODE_INCLUDE_DIR = "#{ROOT}/lib/include"
14
+ distributed_with_gecode = File.exist?(GECODE_LIB_DIR) and
15
+ File.exist?(GECODE_INCLUDE_DIR)
16
+
17
+ # Find the Gecode libraries.
18
+ find_library("gecodesupport", "", GECODE_LIB_DIR)
19
+ find_library("gecodekernel", "", GECODE_LIB_DIR)
20
+ find_library("gecodeint", "", GECODE_LIB_DIR)
21
+ find_library("gecodeset", "", GECODE_LIB_DIR)
22
+ find_library("gecodesearch", "", GECODE_LIB_DIR)
23
+ find_library("gecodeminimodel", "", GECODE_LIB_DIR)
17
24
 
18
25
  cppflags = "-I#{RUST_INCLUDES} -I#{EXT_DIR}"
26
+ cppflags << " -I#{GECODE_INCLUDE_DIR}" if distributed_with_gecode
19
27
  with_cppflags(cppflags) {
20
- find_header("rust_conversions.hh", RUST_INCLUDES)
21
- find_header("rust_checks.hh", RUST_INCLUDES)
28
+ find_header("rust_conversions.hh", RUST_INCLUDES)
29
+ find_header("rust_checks.hh", RUST_INCLUDES)
22
30
  }
23
31
 
32
+ if distributed_with_gecode
33
+ # This is an ugly way to set LD_RUN_PATH. I couldn't see any other way provided
34
+ # by mkmf or RubyGems.
35
+ alias old_configuration configuration
36
+ def configuration(srcdir)
37
+ old_configuration(srcdir) << "export LD_RUN_PATH=#{GECODE_LIB_DIR}"
38
+ end
39
+ end
40
+
24
41
  # Load the specification of the bindings. This creates the headers in the
25
42
  # current directory.
26
43
  load "#{BINDINGS_DIR}/bindings.rb"
data/ext/missing.cpp CHANGED
@@ -271,7 +271,7 @@ MDFS::~MDFS()
271
271
 
272
272
 
273
273
  // BAB
274
- MBAB::MBAB(MSpace *space, unsigned int c_d, unsigned int a_d, Search::Stop* st) : Gecode::BAB<MSpace>(space, c_d, a_d, st)
274
+ MBAB::MBAB(MSpace *space, const Search::Options &o) : Gecode::BAB<MSpace>(space, o)
275
275
  {
276
276
  }
277
277
 
data/ext/missing.h CHANGED
@@ -87,7 +87,7 @@ class MDFS : public Gecode::Search::DFS
87
87
  class MBAB : public Gecode::BAB<MSpace>
88
88
  {
89
89
  public:
90
- MBAB(MSpace* space, unsigned int c_d, unsigned int a_d, Search::Stop* st = 0);
90
+ MBAB(MSpace* space, const Search::Options &o);
91
91
  ~MBAB();
92
92
  };
93
93
 
data/ext/vararray.h CHANGED
@@ -111,13 +111,13 @@ class MSetVarArray : public MVarArray
111
111
  MSetVarArray(const Gecode::SetVarArray &arr);
112
112
 
113
113
  MSetVarArray(Space *home, int n);
114
- MSetVarArray(Space *home, int n, int glbMin, int glbMax, int lubMin, int lubMax, unsigned int minCard=0, unsigned int maxCard=Limits::Set::card_max);
114
+ MSetVarArray(Space *home, int n, int glbMin, int glbMax, int lubMin, int lubMax, unsigned int minCard=0, unsigned int maxCard=Set::Limits::card);
115
115
 
116
- MSetVarArray(Space *home, int n, const IntSet &glb, int lubMin, int lubMax, unsigned int minCard=0, unsigned int maxCard=Limits::Set::card_max);
116
+ MSetVarArray(Space *home, int n, const IntSet &glb, int lubMin, int lubMax, unsigned int minCard=0, unsigned int maxCard=Set::Limits::card);
117
117
 
118
- MSetVarArray(Space *home, int n, int glbMin, int glbMax, const IntSet &lub, unsigned int minCard=0, unsigned int maxCard=Limits::Set::card_max);
118
+ MSetVarArray(Space *home, int n, int glbMin, int glbMax, const IntSet &lub, unsigned int minCard=0, unsigned int maxCard=Set::Limits::card);
119
119
 
120
- MSetVarArray(Space *home, int n, const IntSet &glb, const IntSet &lub, unsigned int minCard=0, unsigned int maxCard=Limits::Set::card_max);
120
+ MSetVarArray(Space *home, int n, const IntSet &glb, const IntSet &lub, unsigned int minCard=0, unsigned int maxCard=Set::Limits::card);
121
121
 
122
122
  ~MSetVarArray();
123
123
 
@@ -1,5 +1,25 @@
1
- require 'gecode.so'
2
1
  module Gecode
2
+ # Loads the binding libraries. This is done as a method in order to be easier
3
+ # to test.
4
+ def self.load_bindings_lib #:nodoc:
5
+ # Workaround to get the precompiled DLLs into the DLL search path on
6
+ # Windows.
7
+ dll_dir = File.dirname(__FILE__) + '/../../vendor/gecode/win32/lib'
8
+ if RUBY_PLATFORM =~ /mswin/ and File.exists? dll_dir
9
+ # Switch directory while loading libraries so that the DLLs are in the
10
+ # work directory.
11
+ require 'fileutils'
12
+ FileUtils.cd dll_dir do
13
+ require 'gecode'
14
+ end
15
+ else
16
+ require 'gecode'
17
+ end
18
+ end
19
+
20
+ # Load the bindings library.
21
+ load_bindings_lib
22
+
3
23
  # The Gecode::Raw module is what the interface should use to access methods
4
24
  # in Gecode. The actual bindings are located in ::GecodeRaw.
5
25
 
@@ -74,6 +74,7 @@ end_custom_definition
74
74
  Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
75
75
  b.include_header 'gecode/kernel.hh', Rust::Bindings::HeaderGlobal
76
76
  b.include_header 'gecode/int.hh', Rust::Bindings::HeaderGlobal
77
+ b.include_header 'gecode/set.hh', Rust::Bindings::HeaderGlobal
77
78
  b.include_header 'gecode/search.hh', Rust::Bindings::HeaderGlobal
78
79
  b.include_header 'gecode/minimodel.hh', Rust::Bindings::HeaderGlobal
79
80
  b.include_header 'missing.h', Rust::Bindings::HeaderLocal
@@ -85,42 +86,41 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
85
86
  # Gecode::Raw instead of GecodeRaw here (and avoid the hidious renaming)
86
87
  # when requiring them.
87
88
  b.add_namespace "GecodeRaw", "Gecode" do |ns|
88
- ns.add_enum "BvarSel" do |enum|
89
- enum.add_value "BVAR_NONE"
90
- enum.add_value "BVAR_MIN_MIN"
91
- enum.add_value "BVAR_MIN_MAX"
92
- enum.add_value "BVAR_MAX_MIN"
93
- enum.add_value "BVAR_MAX_MAX"
94
- enum.add_value "BVAR_SIZE_MIN"
95
- enum.add_value "BVAR_SIZE_MAX"
96
- enum.add_value "BVAR_DEGREE_MAX"
97
- enum.add_value "BVAR_DEGREE_MIN"
98
- enum.add_value "BVAR_REGRET_MIN_MIN"
99
- enum.add_value "BVAR_REGRET_MIN_MAX"
100
- enum.add_value "BVAR_REGRET_MAX_MIN"
101
- enum.add_value "BVAR_REGRET_MAX_MAX"
102
- end
103
-
104
- ns.add_enum "SetBvarSel" do |enum|
105
- enum.add_value "SETBVAR_NONE"
106
- enum.add_value "SETBVAR_MIN_CARD"
107
- enum.add_value "SETBVAR_MAX_CARD"
108
- enum.add_value "SETBVAR_MIN_UNKNOWN_ELEM"
109
- enum.add_value "SETBVAR_MAX_UNKNOWN_ELEM"
110
- end
111
-
112
- ns.add_enum "SetBvalSel" do |enum|
113
- enum.add_value "SETBVAL_MIN"
114
- enum.add_value "SETBVAL_MAX"
115
- end
116
-
117
-
118
- ns.add_enum "BvalSel" do |enum|
119
- enum.add_value "BVAL_MIN"
120
- enum.add_value "BVAL_MED"
121
- enum.add_value "BVAL_MAX"
122
- enum.add_value "BVAL_SPLIT_MIN"
123
- enum.add_value "BVAL_SPLIT_MAX"
89
+ ns.add_enum "IntVarBranch" do |enum|
90
+ enum.add_value "INT_VAR_NONE"
91
+ enum.add_value "INT_VAR_MIN_MIN"
92
+ enum.add_value "INT_VAR_MIN_MAX"
93
+ enum.add_value "INT_VAR_MAX_MIN"
94
+ enum.add_value "INT_VAR_MAX_MAX"
95
+ enum.add_value "INT_VAR_SIZE_MIN"
96
+ enum.add_value "INT_VAR_SIZE_MAX"
97
+ enum.add_value "INT_VAR_DEGREE_MAX"
98
+ enum.add_value "INT_VAR_DEGREE_MIN"
99
+ enum.add_value "INT_VAR_REGRET_MIN_MIN"
100
+ enum.add_value "INT_VAR_REGRET_MIN_MAX"
101
+ enum.add_value "INT_VAR_REGRET_MAX_MIN"
102
+ enum.add_value "INT_VAR_REGRET_MAX_MAX"
103
+ end
104
+
105
+ ns.add_enum "IntValBranch" do |enum|
106
+ enum.add_value "INT_VAL_MIN"
107
+ enum.add_value "INT_VAL_MED"
108
+ enum.add_value "INT_VAL_MAX"
109
+ enum.add_value "INT_VAL_SPLIT_MIN"
110
+ enum.add_value "INT_VAL_SPLIT_MAX"
111
+ end
112
+
113
+ ns.add_enum "SetVarBranch" do |enum|
114
+ enum.add_value "SET_VAR_NONE"
115
+ enum.add_value "SET_VAR_MIN_CARD"
116
+ enum.add_value "SET_VAR_MAX_CARD"
117
+ enum.add_value "SET_VAR_MIN_UNKNOWN_ELEM"
118
+ enum.add_value "SET_VAR_MAX_UNKNOWN_ELEM"
119
+ end
120
+
121
+ ns.add_enum "SetValBranch" do |enum|
122
+ enum.add_value "SET_VAL_MIN"
123
+ enum.add_value "SET_VAL_MAX"
124
124
  end
125
125
 
126
126
  ns.add_enum "IntRelType" do |enum|
@@ -132,6 +132,14 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
132
132
  enum.add_value "IRT_GR"
133
133
  end
134
134
 
135
+ ns.add_enum "BoolOpType" do |enum|
136
+ enum.add_value "BOT_AND"
137
+ enum.add_value "BOT_OR"
138
+ enum.add_value "BOT_IMP"
139
+ enum.add_value "BOT_EQV"
140
+ enum.add_value "BOT_XOR"
141
+ end
142
+
135
143
  ns.add_enum "SetRelType" do |enum|
136
144
  enum.add_value "SRT_EQ"
137
145
  enum.add_value "SRT_NQ"
@@ -155,16 +163,22 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
155
163
  enum.add_value "ICL_DEF"
156
164
  end
157
165
 
166
+ ns.add_enum "PropKind" do |enum|
167
+ enum.add_value "PK_DEF"
168
+ enum.add_value "PK_SPEED"
169
+ enum.add_value "PK_MEMORY"
170
+ end
171
+
158
172
  ns.add_enum "SpaceStatus" do |enum|
159
173
  enum.add_value "SS_FAILED"
160
174
  enum.add_value "SS_SOLVED"
161
175
  enum.add_value "SS_BRANCH"
162
176
  end
163
177
 
164
- ns.add_enum "AvalSel" do |enum|
165
- enum.add_value "AVAL_MIN"
166
- enum.add_value "AVAL_MED"
167
- enum.add_value "AVAL_MAX"
178
+ ns.add_enum "IntAssign" do |enum|
179
+ enum.add_value "INT_ASSIGN_MIN"
180
+ enum.add_value "INT_ASSIGN_MED"
181
+ enum.add_value "INT_ASSIGN_MAX"
168
182
  end
169
183
 
170
184
  ns.add_cxx_class "MIntVarArray" do |klass|
@@ -378,9 +392,11 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
378
392
  klass.add_method "propagators", "int"
379
393
  klass.add_method "branchings", "int"
380
394
  klass.add_method "failed", "bool"
381
- klass.add_method "cached", "int"
382
395
 
383
- klass.add_method "mdescription", "Gecode::MBranchingDesc *", "description"
396
+ # The description method is commented out because it overlaps with the
397
+ # description method used by rspec, and isn't used directly in the
398
+ # interface.
399
+ #klass.add_method "mdescription", "Gecode::MBranchingDesc *", "description"
384
400
 
385
401
  klass.add_method "commit" do |method|
386
402
  method.add_parameter "Gecode::MBranchingDesc", "desc" do |param|
@@ -390,18 +406,19 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
390
406
  end
391
407
  end
392
408
 
393
- ns.add_namespace "Limits" do |limitsns|
394
- limitsns.add_namespace "Int" do |intns|
395
- intns.add_constant "INT_MAX", "Gecode::Limits::Int::int_max"
396
- intns.add_constant "INT_MIN", "Gecode::Limits::Int::int_min"
397
- intns.add_constant "DOUBLE_MAX", "Gecode::Limits::Int::double_max"
398
- intns.add_constant "DOUBLE_MIN", "Gecode::Limits::Int::double_min"
399
- end
400
- limitsns.add_namespace "Set" do |setns|
401
- setns.add_constant "INT_MAX", "Gecode::Limits::Set::int_max"
402
- setns.add_constant "INT_MIN", "Gecode::Limits::Set::int_min"
403
- setns.add_constant "CARD_MAX", "Gecode::Limits::Set::card_max"
404
- end
409
+ # The namespace structure doesn't completely mimic Gecode's namespace
410
+ # structure. This is because there's apparently some limitation that
411
+ # prevents two namespaces from having the same name (Limits), regardless
412
+ # of if they have the same parent or not.
413
+ ns.add_namespace "IntLimits" do |limitsns|
414
+ limitsns.add_constant "MAX", "Gecode::Int::Limits::max"
415
+ limitsns.add_constant "MIN", "Gecode::Int::Limits::min"
416
+ end
417
+
418
+ ns.add_namespace "SetLimits" do |limitsns|
419
+ limitsns.add_constant "MAX", "Gecode::Set::Limits::max"
420
+ limitsns.add_constant "MIN", "Gecode::Set::Limits::min"
421
+ limitsns.add_constant "CARD", "Gecode::Set::Limits::card"
405
422
  end
406
423
 
407
424
  ns.add_cxx_class "IntSet" do |klass|
@@ -465,23 +482,23 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
465
482
  method.add_parameter "Gecode::IntVar", "x"
466
483
  end
467
484
 
468
- klass.add_operator "+", "Gecode::MiniModel::LinExpr" do |operator|
485
+ klass.add_operator "+", "Gecode::MiniModel::LinExpr<Gecode::IntVar>" do |operator|
469
486
  operator.add_parameter("int", "i")
470
487
  end
471
488
 
472
- klass.add_operator "-", "Gecode::MiniModel::LinExpr" do |operator|
489
+ klass.add_operator "-", "Gecode::MiniModel::LinExpr<Gecode::IntVar>" do |operator|
473
490
  operator.add_parameter("int", "i")
474
491
  end
475
492
 
476
- klass.add_operator "*", "Gecode::MiniModel::LinExpr" do |operator|
493
+ klass.add_operator "*", "Gecode::MiniModel::LinExpr<Gecode::IntVar>" do |operator|
477
494
  operator.add_parameter("int", "i")
478
495
  end
479
496
 
480
- klass.add_operator "!=", "Gecode::MiniModel::LinRel", "different" do |operator|
497
+ klass.add_operator "!=", "Gecode::MiniModel::LinRel<Gecode::IntVar>", "different" do |operator|
481
498
  operator.add_parameter("Gecode::IntVar", "other")
482
499
  end
483
500
 
484
- klass.add_operator "==", "Gecode::MiniModel::LinRel", "equal" do |operator|
501
+ klass.add_operator "==", "Gecode::MiniModel::LinRel<Gecode::IntVar>", "equal" do |operator|
485
502
  operator.add_parameter("Gecode::IntVar", "other")
486
503
  end
487
504
 
@@ -494,9 +511,6 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
494
511
  method.add_parameter "int", "min"
495
512
  method.add_parameter "int", "max"
496
513
  end
497
- klass.add_constructor do |method|
498
- method.add_parameter "Gecode::IntVar", "x"
499
- end
500
514
 
501
515
  klass.add_method "max", "int"
502
516
 
@@ -519,24 +533,24 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
519
533
  method.add_parameter "Gecode::BoolVar", "x"
520
534
  end
521
535
 
522
- klass.add_operator "+", "Gecode::MiniModel::LinExpr" do |operator|
536
+ klass.add_operator "+", "Gecode::MiniModel::LinExpr<Gecode::BoolVar>" do |operator|
523
537
  operator.add_parameter("int", "i")
524
538
  end
525
539
 
526
- klass.add_operator "-", "Gecode::MiniModel::LinExpr" do |operator|
540
+ klass.add_operator "-", "Gecode::MiniModel::LinExpr<Gecode::BoolVar>" do |operator|
527
541
  operator.add_parameter("int", "i")
528
542
  end
529
543
 
530
- klass.add_operator "*", "Gecode::MiniModel::LinExpr" do |operator|
544
+ klass.add_operator "*", "Gecode::MiniModel::LinExpr<Gecode::BoolVar>" do |operator|
531
545
  operator.add_parameter("int", "i")
532
546
  end
533
547
 
534
- klass.add_operator "!=", "Gecode::MiniModel::LinRel", "different" do |operator|
535
- operator.add_parameter("Gecode::IntVar", "other")
548
+ klass.add_operator "!=", "Gecode::MiniModel::LinRel<Gecode::BoolVar>", "different" do |operator|
549
+ operator.add_parameter("Gecode::BoolVar", "other")
536
550
  end
537
551
 
538
- klass.add_operator "==", "Gecode::MiniModel::LinRel", "equal" do |operator|
539
- operator.add_parameter("Gecode::IntVar", "other")
552
+ klass.add_operator "==", "Gecode::MiniModel::LinRel<Gecode::BoolVar>", "equal" do |operator|
553
+ operator.add_parameter("Gecode::BoolVar", "other")
540
554
  end
541
555
  end
542
556
 
@@ -625,9 +639,7 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
625
639
  klass.bindname = "BAB"
626
640
  klass.add_constructor do |method|
627
641
  method.add_parameter "Gecode::MSpace *", "s"
628
- method.add_parameter "int", "c_d"
629
- method.add_parameter "int", "a_d"
630
- method.add_parameter "Gecode::Search::MStop *", "st"
642
+ method.add_parameter "Gecode::Search::Options", "o"
631
643
  end
632
644
 
633
645
  klass.add_method "next", "Gecode::MSpace *"
@@ -651,6 +663,13 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
651
663
  klass.add_attribute "commit", "int"
652
664
  end
653
665
 
666
+ searchns.add_cxx_class "Options" do |klass|
667
+ klass.add_constructor
668
+ klass.add_attribute "c_d", "int"
669
+ klass.add_attribute "a_d", "int"
670
+ klass.add_attribute "stop", "Gecode::Search::MStop*"
671
+ end
672
+
654
673
  searchns.add_namespace "Config" do |intns|
655
674
  intns.add_constant "ADAPTIVE_DISTANCE", "Gecode::Search::Config::a_d"
656
675
  intns.add_constant "MINIMAL_DISTANCE", "Gecode::Search::Config::c_d"
@@ -660,68 +679,74 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
660
679
  # MINIMODEL NAMESPACE
661
680
 
662
681
  ns.add_namespace "MiniModel" do |minimodelns|
663
- minimodelns.add_cxx_class "LinExpr" do |klass|
664
- klass.add_constructor
665
-
666
- klass.add_method "post" do |method|
667
- method.add_parameter "Gecode::MSpace *", "home"
668
- method.add_parameter "Gecode::IntRelType", "irt"
669
- method.add_parameter "Gecode::IntConLevel", "icl"
670
- end
671
-
672
- klass.add_method "post" do |method|
673
- method.add_parameter "Gecode::MSpace *", "home"
674
- method.add_parameter "Gecode::IntRelType", "irt"
675
- method.add_parameter "Gecode::BoolVar", "b"
676
- end
677
-
678
- klass.add_operator "+", "Gecode::MiniModel::LinExpr" do |operator|
679
- operator.add_parameter("Gecode::MiniModel::LinExpr", "exp")
680
- end
681
-
682
- klass.add_operator "+", "Gecode::MiniModel::LinExpr" do |operator|
683
- operator.add_parameter("Gecode::IntVar", "exp")
684
- end
685
-
686
- klass.add_operator "+", "Gecode::MiniModel::LinExpr" do |operator|
687
- operator.add_parameter("int", "c")
688
- end
689
-
690
- klass.add_operator "-", "Gecode::MiniModel::LinExpr" do |operator|
691
- operator.add_parameter("Gecode::MiniModel::LinExpr", "exp")
692
- end
693
-
694
- klass.add_operator "-", "Gecode::MiniModel::LinExpr" do |operator|
695
- operator.add_parameter("Gecode::IntVar", "exp")
696
- end
697
-
698
- klass.add_operator "-", "Gecode::MiniModel::LinExpr" do |operator|
699
- operator.add_parameter("int", "c")
700
- end
701
-
702
- klass.add_operator "*", "Gecode::MiniModel::LinExpr" do |operator|
703
- operator.add_parameter("int", "c")
704
- end
705
-
706
- klass.add_operator "==", "Gecode::MiniModel::LinRel", "equal" do |operator|
707
- operator.add_parameter "Gecode::MiniModel::LinExpr", "other"
708
- end
682
+ ['Gecode::IntVar', 'Gecode::BoolVar'].each do |template_type|
683
+ minimodelns.add_cxx_class "LinExpr<#{template_type}>" do |klass|
684
+ klass.add_constructor
709
685
 
710
- klass.add_operator "!=", "Gecode::MiniModel::LinRel", "different" do |operator|
711
- operator.add_parameter "Gecode::MiniModel::LinExpr", "other"
686
+ klass.add_method "post" do |method|
687
+ method.add_parameter "Gecode::MSpace *", "home"
688
+ method.add_parameter "Gecode::IntRelType", "irt"
689
+ method.add_parameter "Gecode::IntConLevel", "icl"
690
+ method.add_parameter "Gecode::PropKind", "pk"
691
+ end
692
+
693
+ klass.add_method "post" do |method|
694
+ method.add_parameter "Gecode::MSpace *", "home"
695
+ method.add_parameter "Gecode::IntRelType", "irt"
696
+ method.add_parameter "Gecode::BoolVar", "b"
697
+ method.add_parameter "Gecode::IntConLevel", "icl"
698
+ method.add_parameter "Gecode::PropKind", "pk"
699
+ end
700
+
701
+ klass.add_operator "+", "Gecode::MiniModel::LinExpr<#{template_type}>" do |operator|
702
+ operator.add_parameter("Gecode::MiniModel::LinExpr<#{template_type}>", "exp")
703
+ end
704
+
705
+ klass.add_operator "+", "Gecode::MiniModel::LinExpr<#{template_type}>" do |operator|
706
+ operator.add_parameter(template_type, "exp")
707
+ end
708
+
709
+ klass.add_operator "+", "Gecode::MiniModel::LinExpr<#{template_type}>" do |operator|
710
+ operator.add_parameter("int", "c")
711
+ end
712
+
713
+ klass.add_operator "-", "Gecode::MiniModel::LinExpr<#{template_type}>" do |operator|
714
+ operator.add_parameter("Gecode::MiniModel::LinExpr<#{template_type}>", "exp")
715
+ end
716
+
717
+ klass.add_operator "-", "Gecode::MiniModel::LinExpr<#{template_type}>" do |operator|
718
+ operator.add_parameter(template_type, "exp")
719
+ end
720
+
721
+ klass.add_operator "-", "Gecode::MiniModel::LinExpr<#{template_type}>" do |operator|
722
+ operator.add_parameter("int", "c")
723
+ end
724
+
725
+ klass.add_operator "*", "Gecode::MiniModel::LinExpr<#{template_type}>" do |operator|
726
+ operator.add_parameter("int", "c")
727
+ end
728
+
729
+ klass.add_operator "==", "Gecode::MiniModel::LinRel<#{template_type}>", "equal" do |operator|
730
+ operator.add_parameter "Gecode::MiniModel::LinExpr<#{template_type}>", "other"
731
+ end
732
+
733
+ klass.add_operator "!=", "Gecode::MiniModel::LinRel<#{template_type}>", "different" do |operator|
734
+ operator.add_parameter "Gecode::MiniModel::LinExpr<#{template_type}>", "other"
735
+ end
712
736
  end
713
737
  end
714
738
 
715
739
  minimodelns.add_cxx_class "BoolExpr" do |klass| # TODO
716
740
  klass.add_enum "NodeType" do |enum|
717
- enum.add_value "BT_VAR"
718
- enum.add_value "BT_NOT"
719
- enum.add_value "BT_AND"
720
- enum.add_value "BT_OR"
721
- enum.add_value "BT_IMP"
722
- enum.add_value "BT_XOR"
723
- enum.add_value "BT_EQV"
724
- enum.add_value "BT_RLIN"
741
+ enum.add_value "NT_VAR"
742
+ enum.add_value "NT_NOT"
743
+ enum.add_value "NT_AND"
744
+ enum.add_value "NT_OR"
745
+ enum.add_value "NT_IMP"
746
+ enum.add_value "NT_XOR"
747
+ enum.add_value "NT_EQV"
748
+ enum.add_value "NT_RLIN_INT"
749
+ enum.add_value "NT_RLIN_BOOL"
725
750
  end
726
751
  klass.add_constructor do |method|
727
752
  method.add_parameter "Gecode::MiniModel::BoolExpr", "e"
@@ -743,16 +768,24 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
743
768
  end
744
769
 
745
770
  klass.add_constructor do |method|
746
- method.add_parameter "Gecode::MiniModel::LinRel", "e"
771
+ method.add_parameter "Gecode::MiniModel::LinRel<Gecode::IntVar>", "e"
747
772
  end
748
773
 
774
+ klass.add_constructor do |method|
775
+ method.add_parameter "Gecode::MiniModel::LinRel<Gecode::BoolVar>", "e"
776
+ end
777
+
749
778
  klass.add_method "post" do |method|
750
779
  method.add_parameter "Gecode::MSpace *", "home"
780
+ method.add_parameter "Gecode::IntConLevel", "icl"
781
+ method.add_parameter "Gecode::PropKind", "pk"
751
782
  end
752
783
 
753
784
  klass.add_method "post" do |method|
754
785
  method.add_parameter "Gecode::MSpace *", "home"
755
786
  method.add_parameter "bool", "t"
787
+ method.add_parameter "Gecode::IntConLevel", "icl"
788
+ method.add_parameter "Gecode::PropKind", "pk"
756
789
  end
757
790
  end
758
791
 
@@ -763,40 +796,42 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
763
796
  end
764
797
  end
765
798
 
766
- minimodelns.add_cxx_class "LinRel" do |klass|
767
- klass.add_constructor
799
+ ['Gecode::IntVar', 'Gecode::BoolVar'].each do |template_type|
800
+ minimodelns.add_cxx_class "LinRel<#{template_type}>" do |klass|
801
+ klass.add_constructor
768
802
 
769
- klass.add_constructor do |method|
770
- method.add_parameter "Gecode::MiniModel::LinExpr", "l"
771
- method.add_parameter "Gecode::IntRelType", "irt"
772
- method.add_parameter "Gecode::MiniModel::LinExpr", "r"
773
- end
803
+ klass.add_constructor do |method|
804
+ method.add_parameter "Gecode::MiniModel::LinExpr<#{template_type}>", "l"
805
+ method.add_parameter "Gecode::IntRelType", "irt"
806
+ method.add_parameter "Gecode::MiniModel::LinExpr<#{template_type}>", "r"
807
+ end
774
808
 
775
- klass.add_constructor do |method|
776
- method.add_parameter "Gecode::MiniModel::LinExpr", "l"
777
- method.add_parameter "Gecode::IntRelType", "irt"
778
- method.add_parameter "int", "r"
779
- end
780
-
781
- klass.add_constructor do |method|
782
- method.add_parameter "int", "l"
783
- method.add_parameter "Gecode::IntRelType", "irt"
784
- method.add_parameter "Gecode::MiniModel::LinExpr", "r"
785
- end
786
-
787
- klass.add_method "post", "void" do |method|
788
- method.add_parameter "Gecode::MSpace*", "home"
789
- method.add_parameter "bool", "t"
790
- method.add_parameter "Gecode::IntConLevel", "icl"
809
+ klass.add_constructor do |method|
810
+ method.add_parameter "Gecode::MiniModel::LinExpr<#{template_type}>", "l"
811
+ method.add_parameter "Gecode::IntRelType", "irt"
812
+ method.add_parameter "int", "r"
813
+ end
814
+
815
+ klass.add_constructor do |method|
816
+ method.add_parameter "int", "l"
817
+ method.add_parameter "Gecode::IntRelType", "irt"
818
+ method.add_parameter "Gecode::MiniModel::LinExpr<#{template_type}>", "r"
819
+ end
820
+
821
+ klass.add_method "post", "void" do |method|
822
+ method.add_parameter "Gecode::MSpace*", "home"
823
+ method.add_parameter "bool", "t"
824
+ method.add_parameter "Gecode::IntConLevel", "icl"
825
+ method.add_parameter "Gecode::PropKind", "pk"
826
+ end
827
+
828
+ klass.add_method "post", "void" do |method|
829
+ method.add_parameter "Gecode::MSpace*", "home"
830
+ method.add_parameter "Gecode::BoolVar", "b"
831
+ method.add_parameter "Gecode::IntConLevel", "icl"
832
+ method.add_parameter "Gecode::PropKind", "pk"
833
+ end
791
834
  end
792
- klass.add_method "post", "void" do |method|
793
- method.add_parameter "Gecode::MSpace*", "home"
794
- method.add_parameter "Gecode::BoolVar", "b"
795
- end
796
-
797
- # klass.add_operator "==", "Gecode::MiniModel::LinRel", "equal" do |operator|
798
- # operator.add_parameter "int", "i"
799
- # end
800
835
  end
801
836
  end
802
837
 
@@ -808,7 +843,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
808
843
  func.add_parameter "Gecode::MSpace *", "home"
809
844
  func.add_parameter "Gecode::IntVar", "x0"
810
845
  func.add_parameter "Gecode::IntVar", "x1"
811
- func.add_parameter "Gecode::IntConLevel", "icl", true
846
+ func.add_parameter "Gecode::IntConLevel", "icl"
847
+ func.add_parameter "Gecode::PropKind", "pk"
812
848
  end
813
849
 
814
850
  ns.add_function "max" do |func|
@@ -816,7 +852,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
816
852
  func.add_parameter "Gecode::IntVar", "x0"
817
853
  func.add_parameter "Gecode::IntVar", "x1"
818
854
  func.add_parameter "Gecode::IntVar", "x2"
819
- func.add_parameter "Gecode::IntConLevel", "icl", true
855
+ func.add_parameter "Gecode::IntConLevel", "icl"
856
+ func.add_parameter "Gecode::PropKind", "pk"
820
857
  end
821
858
 
822
859
  ns.add_function "max" do |func|
@@ -825,7 +862,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
825
862
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 1)->ptr()"
826
863
  end
827
864
  func.add_parameter "Gecode::IntVar", "y"
828
- func.add_parameter "Gecode::IntConLevel", "icl", true
865
+ func.add_parameter "Gecode::IntConLevel", "icl"
866
+ func.add_parameter "Gecode::PropKind", "pk"
829
867
  end
830
868
 
831
869
  ns.add_function "min" do |func|
@@ -833,7 +871,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
833
871
  func.add_parameter "Gecode::IntVar", "x0"
834
872
  func.add_parameter "Gecode::IntVar", "x1"
835
873
  func.add_parameter "Gecode::IntVar", "x2"
836
- func.add_parameter "Gecode::IntConLevel", "icl", true
874
+ func.add_parameter "Gecode::IntConLevel", "icl"
875
+ func.add_parameter "Gecode::PropKind", "pk"
837
876
  end
838
877
 
839
878
  ns.add_function "min" do |func|
@@ -842,7 +881,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
842
881
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 1)->ptr()"
843
882
  end
844
883
  func.add_parameter "Gecode::IntVar", "y"
845
- func.add_parameter "Gecode::IntConLevel", "icl", true
884
+ func.add_parameter "Gecode::IntConLevel", "icl"
885
+ func.add_parameter "Gecode::PropKind", "pk"
846
886
  end
847
887
 
848
888
  ns.add_function "mult" do |func|
@@ -850,150 +890,17 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
850
890
  func.add_parameter "Gecode::IntVar", "x0"
851
891
  func.add_parameter "Gecode::IntVar", "x1"
852
892
  func.add_parameter "Gecode::IntVar", "x2"
853
- func.add_parameter "Gecode::IntConLevel", "icl", true
854
- end
855
-
856
- # Bool post functions
857
-
858
- ns.add_function "bool_not" do |func|
859
- func.add_parameter "Gecode::MSpace *", "home"
860
- func.add_parameter "Gecode::BoolVar", "b0"
861
- func.add_parameter "Gecode::BoolVar", "b1"
862
- func.add_parameter "Gecode::IntConLevel", "icl", true
863
- end
864
-
865
- ns.add_function "bool_eq" do |func|
866
- func.add_parameter "Gecode::MSpace *", "home"
867
- func.add_parameter "Gecode::BoolVar", "b0"
868
- func.add_parameter "Gecode::BoolVar", "b1"
869
- func.add_parameter "Gecode::IntConLevel", "icl", true
870
- end
871
-
872
- ns.add_function "bool_and" do |func|
873
- func.add_parameter "Gecode::MSpace *", "home"
874
- func.add_parameter "Gecode::BoolVar", "b0"
875
- func.add_parameter "Gecode::BoolVar", "b1"
876
- func.add_parameter "Gecode::BoolVar", "b2"
877
- func.add_parameter "Gecode::IntConLevel", "icl", true
878
- end
879
-
880
- ns.add_function "bool_and" do |func|
881
- func.add_parameter "Gecode::MSpace *", "home"
882
- func.add_parameter "Gecode::BoolVar", "b0"
883
- func.add_parameter "Gecode::BoolVar", "b1"
884
- func.add_parameter "bool", "b2"
885
- func.add_parameter "Gecode::IntConLevel", "icl", true
886
- end
887
-
888
- ns.add_function "bool_and" do |func|
889
- func.add_parameter "Gecode::MSpace *", "home"
890
- func.add_parameter "Gecode::MBoolVarArray", "b0" do |param|
891
- param.custom_conversion = "*reinterpret_cast<Gecode::BoolVarArgs *>(ruby2Gecode_MBoolVarArrayPtr(argv[1], 1)->ptr())"
892
- end
893
- func.add_parameter "Gecode::BoolVar", "c"
894
- func.add_parameter "Gecode::IntConLevel", "icl", true
895
- end
896
-
897
- ns.add_function "bool_and" do |func|
898
- func.add_parameter "Gecode::MSpace *", "home"
899
- func.add_parameter "Gecode::MBoolVarArray", "b0" do |param|
900
- param.custom_conversion = "*reinterpret_cast<Gecode::BoolVarArgs *>(ruby2Gecode_MBoolVarArrayPtr(argv[1], 1)->ptr())"
901
- end
902
- func.add_parameter "bool", "c"
903
- func.add_parameter "Gecode::IntConLevel", "icl", true
904
- end
905
-
906
- ns.add_function "bool_or" do |func|
907
- func.add_parameter "Gecode::MSpace *", "home"
908
- func.add_parameter "Gecode::BoolVar", "b0"
909
- func.add_parameter "Gecode::BoolVar", "b1"
910
- func.add_parameter "Gecode::BoolVar", "b2"
911
- func.add_parameter "Gecode::IntConLevel", "icl", true
912
- end
913
-
914
- ns.add_function "bool_or" do |func|
915
- func.add_parameter "Gecode::MSpace *", "home"
916
- func.add_parameter "Gecode::BoolVar", "b0"
917
- func.add_parameter "Gecode::BoolVar", "b1"
918
- func.add_parameter "bool", "b2"
919
- func.add_parameter "Gecode::IntConLevel", "icl", true
920
- end
921
-
922
- ns.add_function "bool_or" do |func|
923
- func.add_parameter "Gecode::MSpace *", "home"
924
- func.add_parameter "Gecode::MBoolVarArray", "b" do |param|
925
- param.custom_conversion = "*reinterpret_cast<Gecode::BoolVarArgs *>(ruby2Gecode_MBoolVarArrayPtr(argv[1], 2)->ptr())"
926
- end
927
- func.add_parameter "Gecode::BoolVar", "c"
928
- func.add_parameter "Gecode::IntConLevel", "icl", true
929
- end
930
-
931
- ns.add_function "bool_or" do |func|
932
- func.add_parameter "Gecode::MSpace *", "home"
933
- func.add_parameter "Gecode::MBoolVarArray", "b" do |param|
934
- param.custom_conversion = "*reinterpret_cast<Gecode::BoolVarArgs *>(ruby2Gecode_MBoolVarArrayPtr(argv[1], 2)->ptr())"
935
- end
936
- func.add_parameter "bool", "c"
937
- func.add_parameter "Gecode::IntConLevel", "icl", true
938
- end
939
-
940
- ns.add_function "bool_imp" do |func|
941
- func.add_parameter "Gecode::MSpace *", "home"
942
- func.add_parameter "Gecode::BoolVar", "b0"
943
- func.add_parameter "Gecode::BoolVar", "b1"
944
- func.add_parameter "Gecode::BoolVar", "b2"
945
- func.add_parameter "Gecode::IntConLevel", "icl", true
946
- end
947
-
948
- ns.add_function "bool_imp" do |func|
949
- func.add_parameter "Gecode::MSpace *", "home"
950
- func.add_parameter "Gecode::BoolVar", "b0"
951
- func.add_parameter "Gecode::BoolVar", "b1"
952
- func.add_parameter "bool", "b2"
953
- func.add_parameter "Gecode::IntConLevel", "icl", true
954
- end
955
-
956
- ns.add_function "bool_eqv" do |func|
957
- func.add_parameter "Gecode::MSpace *", "home"
958
- func.add_parameter "Gecode::BoolVar", "b0"
959
- func.add_parameter "Gecode::BoolVar", "b1"
960
- func.add_parameter "Gecode::BoolVar", "b2"
961
- func.add_parameter "Gecode::IntConLevel", "icl", true
962
- end
963
-
964
- ns.add_function "bool_eqv" do |func|
965
- func.add_parameter "Gecode::MSpace *", "home"
966
- func.add_parameter "Gecode::BoolVar", "b0"
967
- func.add_parameter "Gecode::BoolVar", "b1"
968
- func.add_parameter "bool", "b2"
969
- func.add_parameter "Gecode::IntConLevel", "icl", true
970
- end
971
-
972
- ns.add_function "bool_xor" do |func|
973
- func.add_parameter "Gecode::MSpace *", "home"
974
- func.add_parameter "Gecode::BoolVar", "b0"
975
- func.add_parameter "Gecode::BoolVar", "b1"
976
- func.add_parameter "Gecode::BoolVar", "b2"
977
- func.add_parameter "Gecode::IntConLevel", "icl", true
978
- end
979
-
980
- ns.add_function "bool_xor" do |func|
981
- func.add_parameter "Gecode::MSpace *", "home"
982
- func.add_parameter "Gecode::BoolVar", "b0"
983
- func.add_parameter "Gecode::BoolVar", "b1"
984
- func.add_parameter "bool", "b2"
985
- func.add_parameter "Gecode::IntConLevel", "icl", true
893
+ func.add_parameter "Gecode::IntConLevel", "icl"
894
+ func.add_parameter "Gecode::PropKind", "pk"
986
895
  end
987
896
 
988
- #
989
-
990
897
  ns.add_function "branch" do |func|
991
898
  func.add_parameter "Gecode::MSpace *", "home"
992
899
  func.add_parameter "Gecode::MIntVarArray *", "iva" do |param|
993
900
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
994
901
  end
995
- func.add_parameter "Gecode::BvarSel", "vars"
996
- func.add_parameter "Gecode::BvalSel", "vals"
902
+ func.add_parameter "Gecode::IntVarBranch", "vars"
903
+ func.add_parameter "Gecode::IntValBranch", "vals"
997
904
  end
998
905
 
999
906
  ns.add_function "branch" do |func|
@@ -1001,8 +908,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1001
908
  func.add_parameter "Gecode::MBoolVarArray *", "iva" do |param|
1002
909
  param.custom_conversion = "*ruby2Gecode_MBoolVarArrayPtr(argv[1], 2)->ptr()"
1003
910
  end
1004
- func.add_parameter "Gecode::BvarSel", "vars"
1005
- func.add_parameter "Gecode::BvalSel", "vals"
911
+ func.add_parameter "Gecode::IntVarBranch", "vars"
912
+ func.add_parameter "Gecode::IntValBranch", "vals"
1006
913
  end
1007
914
 
1008
915
  ns.add_function "branch" do |func|
@@ -1010,8 +917,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1010
917
  func.add_parameter "Gecode::MSetVarArray *", "sva" do |param|
1011
918
  param.custom_conversion = "*ruby2Gecode_MSetVarArrayPtr(argv[1], 2)->ptr()"
1012
919
  end
1013
- func.add_parameter "Gecode::SetBvarSel", "vars"
1014
- func.add_parameter "Gecode::SetBvalSel", "vals"
920
+ func.add_parameter "Gecode::SetVarBranch", "vars"
921
+ func.add_parameter "Gecode::SetValBranch", "vals"
1015
922
  end
1016
923
 
1017
924
  ns.add_function "assign" do |func|
@@ -1019,7 +926,7 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1019
926
  func.add_parameter "Gecode::MIntVarArray *", "iva" do |param|
1020
927
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(iva, 1)->ptr()"
1021
928
  end
1022
- func.add_parameter "Gecode::AvalSel", "vals"
929
+ func.add_parameter "Gecode::IntAssign", "vals"
1023
930
  end
1024
931
 
1025
932
  ns.add_function "channel" do |func|
@@ -1030,7 +937,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1030
937
  func.add_parameter "Gecode::MIntVarArray *", "y" do |param|
1031
938
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1032
939
  end
1033
- func.add_parameter "Gecode::IntConLevel", "icl", true
940
+ func.add_parameter "Gecode::IntConLevel", "icl"
941
+ func.add_parameter "Gecode::PropKind", "pk"
1034
942
  end
1035
943
 
1036
944
  ns.add_function "count" do |func|
@@ -1042,7 +950,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1042
950
  func.add_parameter "int", "y"
1043
951
  func.add_parameter "Gecode::IntRelType", "r"
1044
952
  func.add_parameter "int", "m"
1045
- func.add_parameter "Gecode::IntConLevel", "icl", true
953
+ func.add_parameter "Gecode::IntConLevel", "icl"
954
+ func.add_parameter "Gecode::PropKind", "pk"
1046
955
  end
1047
956
 
1048
957
  ns.add_function "count" do |func|
@@ -1054,7 +963,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1054
963
  func.add_parameter "Gecode::IntVar", "y"
1055
964
  func.add_parameter "Gecode::IntRelType", "r"
1056
965
  func.add_parameter "int", "m"
1057
- func.add_parameter "Gecode::IntConLevel", "icl", true
966
+ func.add_parameter "Gecode::IntConLevel", "icl"
967
+ func.add_parameter "Gecode::PropKind", "pk"
1058
968
  end
1059
969
 
1060
970
  ns.add_function "count" do |func|
@@ -1066,7 +976,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1066
976
  func.add_parameter "int", "y"
1067
977
  func.add_parameter "Gecode::IntRelType", "r"
1068
978
  func.add_parameter "Gecode::IntVar", "m"
1069
- func.add_parameter "Gecode::IntConLevel", "icl", true
979
+ func.add_parameter "Gecode::IntConLevel", "icl"
980
+ func.add_parameter "Gecode::PropKind", "pk"
1070
981
  end
1071
982
 
1072
983
  ns.add_function "count" do |func|
@@ -1078,140 +989,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1078
989
  func.add_parameter "Gecode::IntVar", "y"
1079
990
  func.add_parameter "Gecode::IntRelType", "r"
1080
991
  func.add_parameter "Gecode::IntVar", "m"
1081
- func.add_parameter "Gecode::IntConLevel", "icl", true
1082
- end
1083
-
1084
-
1085
- ns.add_function "cumulatives", "void" do |method|
1086
- method.add_parameter "Gecode::MSpace*", "home"
1087
- method.add_parameter "Gecode::IntArgs&", "machine" do |param|
1088
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1089
- end
1090
- method.add_parameter "Gecode::MIntVarArray", "start" do |param|
1091
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1092
- end
1093
- method.add_parameter "Gecode::MIntVarArray", "duration" do |param|
1094
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[3], 4)->ptr()"
1095
- end
1096
- method.add_parameter "Gecode::MIntVarArray", "end" do |param|
1097
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[4], 5)->ptr()"
1098
- end
1099
- method.add_parameter "Gecode::MIntVarArray", "height" do |param|
1100
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[5], 6)->ptr()"
1101
- end
1102
- method.add_parameter "Gecode::IntArgs&", "limit"
1103
- method.add_parameter "bool", "at_most"
1104
- method.add_parameter "Gecode::IntConLevel", "icl", true
1105
- end
1106
-
1107
- ns.add_function "cumulatives", "void" do |method|
1108
- method.add_parameter "Gecode::MSpace*", "home"
1109
- method.add_parameter "Gecode::IntArgs&", "machine" do |param|
1110
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1111
- end
1112
- method.add_parameter "Gecode::MIntVarArray", "start" do |param|
1113
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1114
- end
1115
- method.add_parameter "Gecode::IntArgs&", "duration"
1116
- method.add_parameter "Gecode::MIntVarArray", "end" do |param|
1117
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[4], 5)->ptr()"
1118
- end
1119
- method.add_parameter "Gecode::MIntVarArray", "height" do |param|
1120
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[5], 6)->ptr()"
1121
- end
1122
- method.add_parameter "Gecode::IntArgs&", "limit"
1123
- method.add_parameter "bool", "at_most"
1124
- method.add_parameter "Gecode::IntConLevel", "icl", true
1125
- end
1126
-
1127
- ns.add_function "cumulatives", "void" do |method|
1128
- method.add_parameter "Gecode::MSpace*", "home"
1129
- method.add_parameter "Gecode::IntArgs&", "machine"
1130
- method.add_parameter "Gecode::MIntVarArray", "start" do |param|
1131
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1132
- end
1133
- method.add_parameter "Gecode::IntArgs&", "duration"
1134
- method.add_parameter "Gecode::MIntVarArray", "end" do |param|
1135
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[4], 5)->ptr()"
1136
- end
1137
- method.add_parameter "Gecode::MIntVarArray", "height" do |param|
1138
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[5], 6)->ptr()"
1139
- end
1140
- method.add_parameter "Gecode::IntArgs&", "limit"
1141
- method.add_parameter "bool", "at_most"
1142
- method.add_parameter "Gecode::IntConLevel", "icl", true
1143
- end
1144
-
1145
- ns.add_function "cumulatives", "void" do |method|
1146
- method.add_parameter "Gecode::MSpace*", "home"
1147
- method.add_parameter "Gecode::IntArgs&", "machine" do |param|
1148
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1149
- end
1150
- method.add_parameter "Gecode::MIntVarArray", "start" do |param|
1151
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1152
- end
1153
- method.add_parameter "Gecode::MIntVarArray", "duration" do |param|
1154
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[3], 4)->ptr()"
1155
- end
1156
- method.add_parameter "Gecode::MIntVarArray", "end" do |param|
1157
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[4], 5)->ptr()"
1158
- end
1159
- method.add_parameter "Gecode::IntArgs&", "height"
1160
- method.add_parameter "Gecode::IntArgs&", "limit"
1161
- method.add_parameter "bool", "at_most"
1162
- method.add_parameter "Gecode::IntConLevel", "icl", true
1163
- end
1164
-
1165
- ns.add_function "cumulatives", "void" do |method|
1166
- method.add_parameter "Gecode::MSpace*", "home"
1167
- method.add_parameter "Gecode::IntArgs&", "machine"
1168
- method.add_parameter "Gecode::MIntVarArray", "start" do |param|
1169
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1170
- end
1171
- method.add_parameter "Gecode::MIntVarArray", "duration" do |param|
1172
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[3], 4)->ptr()"
1173
- end
1174
- method.add_parameter "Gecode::MIntVarArray", "end" do |param|
1175
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[4], 5)->ptr()"
1176
- end
1177
- method.add_parameter "Gecode::IntArgs&", "height"
1178
- method.add_parameter "Gecode::IntArgs&", "limit"
1179
- method.add_parameter "bool", "at_most"
1180
- method.add_parameter "Gecode::IntConLevel", "icl"
1181
- end
1182
-
1183
- ns.add_function "cumulatives", "void" do |method|
1184
- method.add_parameter "Gecode::MSpace*", "home"
1185
- method.add_parameter "Gecode::IntArgs&", "machine" do |param|
1186
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1187
- end
1188
- method.add_parameter "Gecode::MIntVarArray", "start" do |param|
1189
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1190
- end
1191
- method.add_parameter "Gecode::IntArgs&", "duration"
1192
- method.add_parameter "Gecode::MIntVarArray", "end" do |param|
1193
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[4], 5)->ptr()"
1194
- end
1195
- method.add_parameter "Gecode::IntArgs&", "height"
1196
- method.add_parameter "Gecode::IntArgs&", "limit"
1197
- method.add_parameter "bool", "at_most"
1198
- method.add_parameter "Gecode::IntConLevel", "icl"
1199
- end
1200
-
1201
- ns.add_function "cumulatives", "void" do |method|
1202
- method.add_parameter "Gecode::MSpace*", "home"
1203
- method.add_parameter "Gecode::IntArgs&", "machine"
1204
- method.add_parameter "Gecode::MIntVarArray", "start" do |param|
1205
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1206
- end
1207
- method.add_parameter "Gecode::IntArgs&", "duration"
1208
- method.add_parameter "Gecode::MIntVarArray", "end" do |param|
1209
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[4], 5)->ptr()"
1210
- end
1211
- method.add_parameter "Gecode::IntArgs&", "height"
1212
- method.add_parameter "Gecode::IntArgs&", "limit"
1213
- method.add_parameter "bool", "at_most"
1214
- method.add_parameter "Gecode::IntConLevel", "icl", true
992
+ func.add_parameter "Gecode::IntConLevel", "icl"
993
+ func.add_parameter "Gecode::PropKind", "pk"
1215
994
  end
1216
995
 
1217
996
  ns.add_function "distinct" do |func|
@@ -1219,7 +998,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1219
998
  func.add_parameter "Gecode::MIntVarArray *", "iva" do |param|
1220
999
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1221
1000
  end
1222
- func.add_parameter "Gecode::IntConLevel", "icl", true
1001
+ func.add_parameter "Gecode::IntConLevel", "icl"
1002
+ func.add_parameter "Gecode::PropKind", "pk"
1223
1003
  end
1224
1004
 
1225
1005
  ns.add_function "distinct" do |func|
@@ -1228,16 +1008,18 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1228
1008
  func.add_parameter "Gecode::MIntVarArray *", "iva" do |param|
1229
1009
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1230
1010
  end
1231
- func.add_parameter "Gecode::IntConLevel", "icl", true
1011
+ func.add_parameter "Gecode::IntConLevel", "icl"
1012
+ func.add_parameter "Gecode::PropKind", "pk"
1232
1013
  end
1233
1014
 
1234
1015
 
1235
1016
  ns.add_function "dom" do |func|
1236
- func.add_parameter "Gecode::MSpace*", "home"
1237
- func.add_parameter "Gecode::IntVar", "x"
1238
- func.add_parameter "int", "l"
1239
- func.add_parameter "int", "m"
1240
- func.add_parameter "Gecode::IntConLevel", "icl"
1017
+ func.add_parameter "Gecode::MSpace*", "home"
1018
+ func.add_parameter "Gecode::IntVar", "x"
1019
+ func.add_parameter "int", "l"
1020
+ func.add_parameter "int", "m"
1021
+ func.add_parameter "Gecode::IntConLevel", "icl"
1022
+ func.add_parameter "Gecode::PropKind", "pk"
1241
1023
  end
1242
1024
 
1243
1025
  ns.add_function "dom" do |func|
@@ -1248,39 +1030,44 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1248
1030
  func.add_parameter "int", "l"
1249
1031
  func.add_parameter "int", "m"
1250
1032
  func.add_parameter "Gecode::IntConLevel", "icl"
1033
+ func.add_parameter "Gecode::PropKind", "pk"
1251
1034
  end
1252
1035
 
1253
1036
  ns.add_function "dom" do |func|
1254
- func.add_parameter "Gecode::MSpace*", "home"
1255
- func.add_parameter "Gecode::IntVar", "x"
1256
- func.add_parameter "Gecode::IntSet", "s"
1257
- func.add_parameter "Gecode::IntConLevel", "icl"
1037
+ func.add_parameter "Gecode::MSpace*", "home"
1038
+ func.add_parameter "Gecode::IntVar", "x"
1039
+ func.add_parameter "Gecode::IntSet", "s"
1040
+ func.add_parameter "Gecode::IntConLevel", "icl"
1041
+ func.add_parameter "Gecode::PropKind", "pk"
1258
1042
  end
1259
1043
 
1260
1044
  ns.add_function "dom" do |func|
1261
- func.add_parameter "Gecode::MSpace*", "home"
1045
+ func.add_parameter "Gecode::MSpace*", "home"
1262
1046
  func.add_parameter "Gecode::MIntVarArray *", "iva" do |param|
1263
1047
  param.custom_conversion = "*reinterpret_cast<Gecode::IntVarArgs *>(ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr())"
1264
1048
  end
1265
- func.add_parameter "Gecode::IntSet", "s"
1266
- func.add_parameter "Gecode::IntConLevel", "icl"
1049
+ func.add_parameter "Gecode::IntSet", "s"
1050
+ func.add_parameter "Gecode::IntConLevel", "icl"
1051
+ func.add_parameter "Gecode::PropKind", "pk"
1267
1052
  end
1268
1053
 
1269
1054
  ns.add_function "dom" do |func|
1270
- func.add_parameter "Gecode::MSpace*", "home"
1271
- func.add_parameter "Gecode::IntVar", "x"
1272
- func.add_parameter "int", "l"
1273
- func.add_parameter "int", "m"
1274
- func.add_parameter "Gecode::BoolVar", "b"
1275
- func.add_parameter "Gecode::IntConLevel", "icl"
1055
+ func.add_parameter "Gecode::MSpace*", "home"
1056
+ func.add_parameter "Gecode::IntVar", "x"
1057
+ func.add_parameter "int", "l"
1058
+ func.add_parameter "int", "m"
1059
+ func.add_parameter "Gecode::BoolVar", "b"
1060
+ func.add_parameter "Gecode::IntConLevel", "icl"
1061
+ func.add_parameter "Gecode::PropKind", "pk"
1276
1062
  end
1277
1063
 
1278
1064
  ns.add_function "dom" do |func|
1279
- func.add_parameter "Gecode::MSpace*", "home"
1280
- func.add_parameter "Gecode::IntVar", "x"
1281
- func.add_parameter "Gecode::IntSet", "s"
1282
- func.add_parameter "Gecode::BoolVar", "b"
1283
- func.add_parameter "Gecode::IntConLevel", "icl"
1065
+ func.add_parameter "Gecode::MSpace*", "home"
1066
+ func.add_parameter "Gecode::IntVar", "x"
1067
+ func.add_parameter "Gecode::IntSet", "s"
1068
+ func.add_parameter "Gecode::BoolVar", "b"
1069
+ func.add_parameter "Gecode::IntConLevel", "icl"
1070
+ func.add_parameter "Gecode::PropKind", "pk"
1284
1071
  end
1285
1072
 
1286
1073
  ns.add_function "element", "void" do |func|
@@ -1288,7 +1075,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1288
1075
  func.add_parameter "Gecode::IntArgs&", "x"
1289
1076
  func.add_parameter "Gecode::IntVar", "y0"
1290
1077
  func.add_parameter "Gecode::IntVar", "y1"
1291
- func.add_parameter "Gecode::IntConLevel", "icl", true
1078
+ func.add_parameter "Gecode::IntConLevel", "icl"
1079
+ func.add_parameter "Gecode::PropKind", "pk"
1292
1080
  end
1293
1081
 
1294
1082
  ns.add_function "element", "void" do |func|
@@ -1298,83 +1086,7 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1298
1086
  end
1299
1087
  func.add_parameter "Gecode::IntVar", "y0"
1300
1088
  func.add_parameter "Gecode::IntVar", "y1"
1301
- func.add_parameter "Gecode::IntConLevel", "icl", true
1302
- end
1303
-
1304
- ns.add_function "gcc", "void" do |func|
1305
- func.add_parameter "Gecode::MSpace*", "home"
1306
- func.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1307
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1308
- end
1309
- func.add_parameter "Gecode::IntArgs", "c"
1310
- func.add_parameter "int", "m"
1311
- func.add_parameter "int", "unspec_low"
1312
- func.add_parameter "int", "unspec_up"
1313
- func.add_parameter "int", "min"
1314
- func.add_parameter "int", "max"
1315
- func.add_parameter "Gecode::IntConLevel", "icl", true
1316
- end
1317
-
1318
- ns.add_function "gcc", "void" do |func|
1319
- func.add_parameter "Gecode::MSpace*", "home"
1320
- func.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1321
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1322
- end
1323
- func.add_parameter "Gecode::IntArgs", "c"
1324
- func.add_parameter "int", "m"
1325
- func.add_parameter "int", "unspec"
1326
- func.add_parameter "int", "min"
1327
- func.add_parameter "int", "max"
1328
- func.add_parameter "Gecode::IntConLevel", "icl", true
1329
- end
1330
-
1331
- ns.add_function "gcc", "void" do |func|
1332
- func.add_parameter "Gecode::MSpace*", "home"
1333
- func.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1334
- param.custom_conversion = "*reinterpret_cast<Gecode::IntVarArgs *>(ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr())"
1335
- end
1336
- func.add_parameter "int", "lb"
1337
- func.add_parameter "int", "ub"
1338
- func.add_parameter "Gecode::IntConLevel", "icl", true
1339
- end
1340
-
1341
- ns.add_function "gcc", "void" do |func|
1342
- func.add_parameter "Gecode::MSpace*", "home"
1343
- func.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1344
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1345
- end
1346
- func.add_parameter "int", "ub"
1347
- func.add_parameter "Gecode::IntConLevel", "icl", true
1348
- end
1349
-
1350
- ns.add_function "gcc", "void" do |func|
1351
- func.add_parameter "Gecode::MSpace*", "home"
1352
- func.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1353
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1354
- end
1355
- func.add_parameter "Gecode::MIntVarArray *", "c" do |param|
1356
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1357
- end
1358
- func.add_parameter "int", "min"
1359
- func.add_parameter "int", "max"
1360
- func.add_parameter "Gecode::IntConLevel", "icl", true
1361
- end
1362
-
1363
- ns.add_function "gcc", "void" do |func|
1364
- func.add_parameter "Gecode::MSpace*", "home"
1365
- func.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1366
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1367
- end
1368
- func.add_parameter "Gecode::IntArgs", "v"
1369
- func.add_parameter "Gecode::MIntVarArray *", "c" do |param|
1370
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[3], 4)->ptr()"
1371
- end
1372
- func.add_parameter "int", "m"
1373
- func.add_parameter "int", "unspec"
1374
- func.add_parameter "bool", "all"
1375
- func.add_parameter "int", "min"
1376
- func.add_parameter "int", "max"
1377
- func.add_parameter "Gecode::IntConLevel", "icl", true
1089
+ func.add_parameter "Gecode::IntConLevel", "icl"
1378
1090
  end
1379
1091
 
1380
1092
  ns.add_function "linear", "void" do |func|
@@ -1384,7 +1096,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1384
1096
  end
1385
1097
  func.add_parameter "Gecode::IntRelType", "r"
1386
1098
  func.add_parameter "int", "c"
1387
- func.add_parameter "Gecode::IntConLevel", "icl", true
1099
+ func.add_parameter "Gecode::IntConLevel", "icl"
1100
+ func.add_parameter "Gecode::PropKind", "pk"
1388
1101
  end
1389
1102
  ns.add_function "linear", "void" do |func|
1390
1103
  func.add_parameter "Gecode::MSpace*", "home"
@@ -1394,7 +1107,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1394
1107
  func.add_parameter "Gecode::IntRelType", "r"
1395
1108
  func.add_parameter "int", "c"
1396
1109
  func.add_parameter "Gecode::BoolVar", "b"
1397
- func.add_parameter "Gecode::IntConLevel", "icl", true
1110
+ func.add_parameter "Gecode::IntConLevel", "icl"
1111
+ func.add_parameter "Gecode::PropKind", "pk"
1398
1112
  end
1399
1113
 
1400
1114
  ns.add_function "linear", "void" do |func|
@@ -1405,7 +1119,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1405
1119
  end
1406
1120
  func.add_parameter "Gecode::IntRelType", "r"
1407
1121
  func.add_parameter "int", "c"
1408
- func.add_parameter "Gecode::IntConLevel", "icl", true
1122
+ func.add_parameter "Gecode::IntConLevel", "icl"
1123
+ func.add_parameter "Gecode::PropKind", "pk"
1409
1124
  end
1410
1125
 
1411
1126
  ns.add_function "linear", "void" do |func|
@@ -1417,7 +1132,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1417
1132
  func.add_parameter "Gecode::IntRelType", "r"
1418
1133
  func.add_parameter "int", "c"
1419
1134
  func.add_parameter "Gecode::BoolVar", "b"
1420
- func.add_parameter "Gecode::IntConLevel", "icl", true
1135
+ func.add_parameter "Gecode::IntConLevel", "icl"
1136
+ func.add_parameter "Gecode::PropKind", "pk"
1421
1137
  end
1422
1138
 
1423
1139
  ns.add_function "linear", "void" do |func|
@@ -1427,7 +1143,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1427
1143
  end
1428
1144
  func.add_parameter "Gecode::IntRelType", "r"
1429
1145
  func.add_parameter "Gecode::IntVar", "c"
1430
- func.add_parameter "Gecode::IntConLevel", "icl", true
1146
+ func.add_parameter "Gecode::IntConLevel", "icl"
1147
+ func.add_parameter "Gecode::PropKind", "pk"
1431
1148
  end
1432
1149
 
1433
1150
  ns.add_function "linear", "void" do |func|
@@ -1438,7 +1155,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1438
1155
  func.add_parameter "Gecode::IntRelType", "r"
1439
1156
  func.add_parameter "Gecode::IntVar", "c"
1440
1157
  func.add_parameter "Gecode::BoolVar", "b"
1441
- func.add_parameter "Gecode::IntConLevel", "icl", true
1158
+ func.add_parameter "Gecode::IntConLevel", "icl"
1159
+ func.add_parameter "Gecode::PropKind", "pk"
1442
1160
  end
1443
1161
 
1444
1162
 
@@ -1450,7 +1168,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1450
1168
  end
1451
1169
  func.add_parameter "Gecode::IntRelType", "r"
1452
1170
  func.add_parameter "Gecode::IntVar", "y"
1453
- func.add_parameter "Gecode::IntConLevel", "icl", true
1171
+ func.add_parameter "Gecode::IntConLevel", "icl"
1172
+ func.add_parameter "Gecode::PropKind", "pk"
1454
1173
  end
1455
1174
 
1456
1175
  ns.add_function "linear", "void" do |func|
@@ -1462,7 +1181,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1462
1181
  func.add_parameter "Gecode::IntRelType", "r"
1463
1182
  func.add_parameter "Gecode::IntVar", "y"
1464
1183
  func.add_parameter "Gecode::BoolVar", "b"
1465
- func.add_parameter "Gecode::IntConLevel", "icl", true
1184
+ func.add_parameter "Gecode::IntConLevel", "icl"
1185
+ func.add_parameter "Gecode::PropKind", "pk"
1466
1186
  end
1467
1187
 
1468
1188
  ns.add_function "linear", "void" do |func|
@@ -1472,7 +1192,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1472
1192
  end
1473
1193
  func.add_parameter "Gecode::IntRelType", "r"
1474
1194
  func.add_parameter "int", "y"
1475
- func.add_parameter "Gecode::IntConLevel", "icl", true
1195
+ func.add_parameter "Gecode::IntConLevel", "icl"
1196
+ func.add_parameter "Gecode::PropKind", "pk"
1476
1197
  end
1477
1198
 
1478
1199
  ns.add_function "linear", "void" do |func|
@@ -1482,7 +1203,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1482
1203
  end
1483
1204
  func.add_parameter "Gecode::IntRelType", "r"
1484
1205
  func.add_parameter "Gecode::IntVar", "y"
1485
- func.add_parameter "Gecode::IntConLevel", "icl", true
1206
+ func.add_parameter "Gecode::IntConLevel", "icl"
1207
+ func.add_parameter "Gecode::PropKind", "pk"
1486
1208
  end
1487
1209
 
1488
1210
  # ns.add_function "regular", "void" do |func|
@@ -1496,9 +1218,7 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1496
1218
 
1497
1219
  ns.add_function "bab", "Gecode::MSpace*" do |func|
1498
1220
  func.add_parameter "Gecode::MSpace*", "home"
1499
- func.add_parameter "int", "c_d"
1500
- func.add_parameter "int", "a_d"
1501
- func.add_parameter "Gecode::Search::MStop *", "st"
1221
+ func.add_parameter "Gecode::Search::Options", "o"
1502
1222
  end
1503
1223
 
1504
1224
  ns.add_function "rel" do |func|
@@ -1506,7 +1226,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1506
1226
  func.add_parameter "Gecode::IntVar", "x0"
1507
1227
  func.add_parameter "Gecode::IntRelType", "r"
1508
1228
  func.add_parameter "int", "c"
1509
- func.add_parameter "Gecode::IntConLevel", "icl", true
1229
+ func.add_parameter "Gecode::IntConLevel", "icl"
1230
+ func.add_parameter "Gecode::PropKind", "pk"
1510
1231
  end
1511
1232
 
1512
1233
  ns.add_function "rel" do |func|
@@ -1514,7 +1235,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1514
1235
  func.add_parameter "Gecode::IntVar", "x0"
1515
1236
  func.add_parameter "Gecode::IntRelType", "r"
1516
1237
  func.add_parameter "Gecode::IntVar", "x1"
1517
- func.add_parameter "Gecode::IntConLevel", "icl", true
1238
+ func.add_parameter "Gecode::IntConLevel", "icl"
1239
+ func.add_parameter "Gecode::PropKind", "pk"
1518
1240
  end
1519
1241
 
1520
1242
  ns.add_function "rel" do |func|
@@ -1523,7 +1245,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1523
1245
  func.add_parameter "Gecode::IntRelType", "r"
1524
1246
  func.add_parameter "Gecode::IntVar", "x1"
1525
1247
  func.add_parameter "Gecode::BoolVar", "b"
1526
- func.add_parameter "Gecode::IntConLevel", "icl", true
1248
+ func.add_parameter "Gecode::IntConLevel", "icl"
1249
+ func.add_parameter "Gecode::PropKind", "pk"
1527
1250
  end
1528
1251
 
1529
1252
  ns.add_function "rel" do |func|
@@ -1532,7 +1255,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1532
1255
  func.add_parameter "Gecode::IntRelType", "r"
1533
1256
  func.add_parameter "int", "c"
1534
1257
  func.add_parameter "Gecode::BoolVar", "b"
1535
- func.add_parameter "Gecode::IntConLevel", "icl", true
1258
+ func.add_parameter "Gecode::IntConLevel", "icl"
1259
+ func.add_parameter "Gecode::PropKind", "pk"
1536
1260
  end
1537
1261
 
1538
1262
  ns.add_function "rel" do |func|
@@ -1544,207 +1268,164 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1544
1268
  func.add_parameter "Gecode::MIntVarArray *", "y" do |param|
1545
1269
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[3], 4)->ptr()"
1546
1270
  end
1547
- func.add_parameter "Gecode::IntConLevel", "icl", true
1271
+ func.add_parameter "Gecode::IntConLevel", "icl"
1272
+ func.add_parameter "Gecode::PropKind", "pk"
1548
1273
  end
1549
1274
 
1550
- ns.add_function "eq", "void" do |func|
1275
+ ns.add_function "rel" do |func|
1551
1276
  func.add_parameter "Gecode::MSpace*", "home"
1552
- func.add_parameter "Gecode::IntVar", "x1"
1553
- func.add_parameter "Gecode::IntVar", "x2"
1554
- func.add_parameter "Gecode::IntConLevel", "icl", true
1277
+ func.add_parameter "Gecode::BoolVar", "x0"
1278
+ func.add_parameter "Gecode::IntRelType", "r"
1279
+ func.add_parameter "int", "c"
1280
+ func.add_parameter "Gecode::IntConLevel", "icl"
1281
+ func.add_parameter "Gecode::PropKind", "pk"
1555
1282
  end
1556
1283
 
1557
- ns.add_function "eq", "void" do |func|
1284
+ ns.add_function "rel" do |func|
1558
1285
  func.add_parameter "Gecode::MSpace*", "home"
1559
- func.add_parameter "Gecode::IntVar", "x"
1560
- func.add_parameter "int", "n"
1561
- func.add_parameter "Gecode::IntConLevel", "icl", true
1286
+ func.add_parameter "Gecode::BoolVar", "x0"
1287
+ func.add_parameter "Gecode::IntRelType", "r"
1288
+ func.add_parameter "Gecode::BoolVar", "x1"
1289
+ func.add_parameter "Gecode::IntConLevel", "icl"
1290
+ func.add_parameter "Gecode::PropKind", "pk"
1562
1291
  end
1563
1292
 
1564
- ns.add_function "eq", "void" do |method|
1565
- method.add_parameter "Gecode::MSpace*", "home"
1566
- method.add_parameter "Gecode::IntVar", "x0"
1567
- method.add_parameter "Gecode::IntVar", "x1"
1568
- method.add_parameter "Gecode::BoolVar", "b"
1569
- method.add_parameter "Gecode::IntConLevel", "icl", true
1293
+ ns.add_function "rel" do |func|
1294
+ func.add_parameter "Gecode::MSpace*", "home"
1295
+ func.add_parameter "Gecode::BoolVar", "x0"
1296
+ func.add_parameter "Gecode::BoolOpType", "o"
1297
+ func.add_parameter "Gecode::BoolVar", "x1"
1298
+ func.add_parameter "Gecode::BoolVar", "x2"
1299
+ func.add_parameter "Gecode::IntConLevel", "icl"
1300
+ func.add_parameter "Gecode::PropKind", "pk"
1570
1301
  end
1571
1302
 
1572
- ns.add_function "eq", "void" do |method|
1573
- method.add_parameter "Gecode::MSpace*", "home"
1574
- method.add_parameter "Gecode::IntVar", "x"
1575
- method.add_parameter "int", "n"
1576
- method.add_parameter "Gecode::BoolVar", "b"
1577
- method.add_parameter "Gecode::IntConLevel", "icl", true
1303
+ ns.add_function "rel" do |func|
1304
+ func.add_parameter "Gecode::MSpace*", "home"
1305
+ func.add_parameter "Gecode::BoolVar", "x0"
1306
+ func.add_parameter "Gecode::BoolOpType", "o"
1307
+ func.add_parameter "Gecode::BoolVar", "x1"
1308
+ func.add_parameter "int", "n"
1309
+ func.add_parameter "Gecode::IntConLevel", "icl"
1310
+ func.add_parameter "Gecode::PropKind", "pk"
1578
1311
  end
1579
1312
 
1580
- ns.add_function "eq", "void" do |method|
1581
- method.add_parameter "Gecode::MSpace*", "home"
1582
- method.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1583
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1313
+ ns.add_function "rel" do |func|
1314
+ func.add_parameter "Gecode::MSpace*", "home"
1315
+ func.add_parameter "Gecode::BoolOpType", "o"
1316
+ func.add_parameter "Gecode::MBoolVarArray *", "x" do |param|
1317
+ param.custom_conversion = "*ruby2Gecode_MBoolVarArrayPtr(argv[2], 2)->ptr()"
1584
1318
  end
1585
- method.add_parameter "Gecode::IntConLevel", "icl", true
1319
+ func.add_parameter "int", "n"
1320
+ func.add_parameter "Gecode::IntConLevel", "icl"
1321
+ func.add_parameter "Gecode::PropKind", "pk"
1586
1322
  end
1587
1323
 
1588
- ns.add_function "sortedness", "void" do |method|
1589
- method.add_parameter "Gecode::MSpace*", "home"
1590
- method.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1324
+ ns.add_function "rel" do |func|
1325
+ func.add_parameter "Gecode::MSpace*", "home"
1326
+ func.add_parameter "Gecode::BoolOpType", "o"
1327
+ func.add_parameter "Gecode::MBoolVarArray *", "x" do |param|
1328
+ param.custom_conversion = "*ruby2Gecode_MBoolVarArrayPtr(argv[2], 2)->ptr()"
1329
+ end
1330
+ func.add_parameter "Gecode::BoolVar", "y"
1331
+ func.add_parameter "Gecode::IntConLevel", "icl"
1332
+ func.add_parameter "Gecode::PropKind", "pk"
1333
+ end
1334
+
1335
+ ns.add_function "rel" do |func|
1336
+ func.add_parameter "Gecode::MSpace*", "home"
1337
+ func.add_parameter "Gecode::MBoolVarArray *", "x" do |param|
1338
+ param.custom_conversion = "*ruby2Gecode_MBoolVarArrayPtr(argv[1], 2)->ptr()"
1339
+ end
1340
+ func.add_parameter "Gecode::IntRelType", "r"
1341
+ func.add_parameter "Gecode::MBoolVarArray *", "y" do |param|
1342
+ param.custom_conversion = "*ruby2Gecode_MBoolVarArrayPtr(argv[3], 4)->ptr()"
1343
+ end
1344
+ func.add_parameter "Gecode::IntConLevel", "icl"
1345
+ func.add_parameter "Gecode::PropKind", "pk"
1346
+ end
1347
+
1348
+ ns.add_function "sorted", "void" do |func|
1349
+ func.add_parameter "Gecode::MSpace*", "home"
1350
+ func.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1591
1351
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1592
1352
  end
1593
- method.add_parameter "Gecode::MIntVarArray *", "y" do |param|
1353
+ func.add_parameter "Gecode::MIntVarArray *", "y" do |param|
1594
1354
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1595
1355
  end
1596
- method.add_parameter "Gecode::IntConLevel", "icl", true
1356
+ func.add_parameter "Gecode::IntConLevel", "icl"
1357
+ func.add_parameter "Gecode::PropKind", "pk"
1597
1358
  end
1598
- ns.add_function "sortedness", "void" do |method|
1599
- method.add_parameter "Gecode::MSpace*", "home"
1600
- method.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1359
+
1360
+ ns.add_function "sorted", "void" do |func|
1361
+ func.add_parameter "Gecode::MSpace*", "home"
1362
+ func.add_parameter "Gecode::MIntVarArray *", "x" do |param|
1601
1363
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1602
1364
  end
1603
- method.add_parameter "Gecode::MIntVarArray *", "y" do |param|
1365
+ func.add_parameter "Gecode::MIntVarArray *", "y" do |param|
1604
1366
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[2], 3)->ptr()"
1605
1367
  end
1606
- method.add_parameter "Gecode::MIntVarArray *", "z" do |param|
1368
+ func.add_parameter "Gecode::MIntVarArray *", "z" do |param|
1607
1369
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[3], 4)->ptr()"
1608
1370
  end
1609
- method.add_parameter "Gecode::IntConLevel", "icl", true
1371
+ func.add_parameter "Gecode::IntConLevel", "icl"
1372
+ func.add_parameter "Gecode::PropKind", "pk"
1610
1373
  end
1611
1374
 
1612
1375
  ns.add_function "post", "Gecode::BoolVar" do |func|
1613
1376
  func.add_parameter "Gecode::MSpace*", "home"
1614
1377
  func.add_parameter "Gecode::MiniModel::BoolExpr", "e"
1615
- func.add_parameter "Gecode::IntConLevel", "icl", true
1378
+ func.add_parameter "Gecode::IntConLevel", "icl"
1379
+ func.add_parameter "Gecode::PropKind", "pk"
1616
1380
  end
1617
1381
 
1618
1382
  ns.add_function "post", "Gecode::BoolVar" do |func|
1619
1383
  func.add_parameter "Gecode::MSpace*", "home"
1620
1384
  func.add_parameter "Gecode::BoolVar", "e"
1621
- func.add_parameter "Gecode::IntConLevel", "icl", true
1385
+ func.add_parameter "Gecode::IntConLevel", "icl"
1386
+ func.add_parameter "Gecode::PropKind", "pk"
1622
1387
  end
1623
1388
 
1624
1389
  ns.add_function "post" do |func|
1625
1390
  func.add_parameter "Gecode::MSpace*", "home"
1626
1391
  func.add_parameter "Gecode::MiniModel::BoolRel", "r"
1627
- func.add_parameter "Gecode::IntConLevel", "icl", true
1392
+ func.add_parameter "Gecode::IntConLevel", "icl"
1393
+ func.add_parameter "Gecode::PropKind", "pk"
1628
1394
  end
1629
1395
 
1630
1396
  ns.add_function "post", "Gecode::IntVar" do |func|
1631
1397
  func.add_parameter "Gecode::MSpace*", "home"
1632
1398
  func.add_parameter "Gecode::IntVar", "e"
1633
- func.add_parameter "Gecode::IntConLevel", "icl", true
1399
+ func.add_parameter "Gecode::IntConLevel", "icl"
1400
+ func.add_parameter "Gecode::PropKind", "pk"
1634
1401
  end
1635
1402
 
1636
1403
  ns.add_function "post", "Gecode::IntVar" do |func|
1637
1404
  func.add_parameter "Gecode::MSpace*", "home"
1638
1405
  func.add_parameter "int", "n"
1639
- func.add_parameter "Gecode::IntConLevel", "icl", true
1406
+ func.add_parameter "Gecode::IntConLevel", "icl"
1407
+ func.add_parameter "Gecode::PropKind", "pk"
1640
1408
  end
1641
1409
 
1642
1410
  ns.add_function "post", "Gecode::IntVar" do |func|
1643
1411
  func.add_parameter "Gecode::MSpace*", "home"
1644
- func.add_parameter "Gecode::MiniModel::LinExpr", "e"
1645
- func.add_parameter "Gecode::IntConLevel", "icl", true
1412
+ func.add_parameter "Gecode::MiniModel::LinExpr<Gecode::IntVar>", "e"
1413
+ func.add_parameter "Gecode::IntConLevel", "icl"
1414
+ func.add_parameter "Gecode::PropKind", "pk"
1646
1415
  end
1647
1416
 
1648
1417
  ns.add_function "post" do |func|
1649
1418
  func.add_parameter "Gecode::MSpace*", "home"
1650
- func.add_parameter "Gecode::MiniModel::LinRel", "e"
1651
- func.add_parameter "Gecode::IntConLevel", "icl", true
1419
+ func.add_parameter "Gecode::MiniModel::LinRel<Gecode::IntVar>", "e"
1420
+ func.add_parameter "Gecode::IntConLevel", "icl"
1421
+ func.add_parameter "Gecode::PropKind", "pk"
1652
1422
  end
1653
1423
 
1654
1424
  ns.add_function "post" do |func|
1655
1425
  func.add_parameter "Gecode::MSpace*", "home"
1656
1426
  func.add_parameter "bool", "r"
1657
- func.add_parameter "Gecode::IntConLevel", "icl", true
1658
- end
1659
-
1660
- ns.add_function "producer_consumer" do |func|
1661
- func.add_parameter "Gecode::MSpace*", "home"
1662
- func.add_parameter "Gecode::MIntVarArray *", "produce_date" do |param|
1663
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1664
- end
1665
- func.add_parameter "Gecode::IntArgs", "produce_amount"
1666
- func.add_parameter "Gecode::MIntVarArray *", "consume_date" do |param|
1667
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[3], 4)->ptr()"
1668
- end
1669
- func.add_parameter "Gecode::IntArgs", "consume_amount"
1670
- func.add_parameter "int", "initial"
1671
- func.add_parameter "Gecode::IntConLevel", "icl", true
1672
- end
1673
-
1674
- ns.add_function "cumulative" do |func|
1675
- func.add_parameter "Gecode::MSpace*", "home"
1676
- func.add_parameter "Gecode::MIntVarArray *", "start" do |param|
1677
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1678
- end
1679
- func.add_parameter "Gecode::MIntVarArray *", "duration" do |param|
1680
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1681
- end
1682
- func.add_parameter "Gecode::MIntVarArray *", "height" do |param|
1683
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1684
- end
1685
- func.add_parameter "int", "limit"
1686
- func.add_parameter "bool", "at_most", true
1687
- func.add_parameter "Gecode::IntConLevel", "icl", true
1688
- end
1689
-
1690
- ns.add_function "cumulative" do |func|
1691
- func.add_parameter "Gecode::MSpace*", "home"
1692
- func.add_parameter "Gecode::MIntVarArray *", "start" do |param|
1693
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1694
- end
1695
- func.add_parameter "Gecode::IntArgs", "duration"
1696
- func.add_parameter "Gecode::MIntVarArray *", "height" do |param|
1697
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1698
- end
1699
- func.add_parameter "int", "limit"
1700
- func.add_parameter "bool", "at_most", true
1701
- func.add_parameter "Gecode::IntConLevel", "icl", true
1702
- end
1703
-
1704
- ns.add_function "cumulative" do |func|
1705
- func.add_parameter "Gecode::MSpace*", "home"
1706
- func.add_parameter "Gecode::MIntVarArray *", "start" do |param|
1707
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1708
- end
1709
- func.add_parameter "Gecode::MIntVarArray *", "duration" do |param|
1710
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1711
- end
1712
- func.add_parameter "Gecode::IntArgs", "height"
1713
- func.add_parameter "int", "limit"
1714
- func.add_parameter "bool", "at_most", true
1715
- func.add_parameter "Gecode::IntConLevel", "icl", true
1716
- end
1717
-
1718
- ns.add_function "cumulative" do |func|
1719
- func.add_parameter "Gecode::MSpace*", "home"
1720
- func.add_parameter "Gecode::MIntVarArray *", "start" do |param|
1721
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1722
- end
1723
- func.add_parameter "Gecode::IntArgs", "duration"
1724
- func.add_parameter "Gecode::IntArgs", "height"
1725
- func.add_parameter "int", "limit"
1726
- func.add_parameter "bool", "at_most", true
1727
- func.add_parameter "Gecode::IntConLevel", "icl", true
1728
- end
1729
-
1730
- ns.add_function "serialized" do |func|
1731
- func.add_parameter "Gecode::MSpace*", "home"
1732
- func.add_parameter "Gecode::MIntVarArray *", "start" do |param|
1733
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1734
- end
1735
- func.add_parameter "Gecode::MIntVarArray *", "duration" do |param|
1736
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1737
- end
1738
- func.add_parameter "Gecode::IntConLevel", "icl", true
1739
- end
1740
-
1741
- ns.add_function "serialized" do |func|
1742
- func.add_parameter "Gecode::MSpace*", "home"
1743
- func.add_parameter "Gecode::MIntVarArray *", "start" do |param|
1744
- param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[1], 2)->ptr()"
1745
- end
1746
- func.add_parameter "Gecode::IntArgs", "duration"
1747
- func.add_parameter "Gecode::IntConLevel", "icl", true
1427
+ func.add_parameter "Gecode::IntConLevel", "icl"
1428
+ func.add_parameter "Gecode::PropKind", "pk"
1748
1429
  end
1749
1430
 
1750
1431
  ns.add_function "atmost" do |func|
@@ -1754,7 +1435,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1754
1435
  end
1755
1436
  func.add_parameter "int", "n"
1756
1437
  func.add_parameter "int", "m"
1757
- func.add_parameter "Gecode::IntConLevel", "icl", true
1438
+ func.add_parameter "Gecode::IntConLevel", "icl"
1439
+ func.add_parameter "Gecode::PropKind", "pk"
1758
1440
  end
1759
1441
 
1760
1442
  ns.add_function "atmost" do |func|
@@ -1764,7 +1446,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1764
1446
  end
1765
1447
  func.add_parameter "Gecode::IntVar", "n"
1766
1448
  func.add_parameter "int", "m"
1767
- func.add_parameter "Gecode::IntConLevel", "icl", true
1449
+ func.add_parameter "Gecode::IntConLevel", "icl"
1450
+ func.add_parameter "Gecode::PropKind", "pk"
1768
1451
  end
1769
1452
 
1770
1453
  ns.add_function "atmost" do |func|
@@ -1774,7 +1457,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1774
1457
  end
1775
1458
  func.add_parameter "int", "n"
1776
1459
  func.add_parameter "Gecode::IntVar", "m"
1777
- func.add_parameter "Gecode::IntConLevel", "icl", true
1460
+ func.add_parameter "Gecode::IntConLevel", "icl"
1461
+ func.add_parameter "Gecode::PropKind", "pk"
1778
1462
  end
1779
1463
 
1780
1464
  ns.add_function "atmost" do |func|
@@ -1784,7 +1468,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1784
1468
  end
1785
1469
  func.add_parameter "Gecode::IntVar", "n"
1786
1470
  func.add_parameter "Gecode::IntVar", "m"
1787
- func.add_parameter "Gecode::IntConLevel", "icl", true
1471
+ func.add_parameter "Gecode::IntConLevel", "icl"
1472
+ func.add_parameter "Gecode::PropKind", "pk"
1788
1473
  end
1789
1474
 
1790
1475
  ns.add_function "atleast" do |func|
@@ -1794,7 +1479,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1794
1479
  end
1795
1480
  func.add_parameter "int", "n"
1796
1481
  func.add_parameter "int", "m"
1797
- func.add_parameter "Gecode::IntConLevel", "icl", true
1482
+ func.add_parameter "Gecode::IntConLevel", "icl"
1483
+ func.add_parameter "Gecode::PropKind", "pk"
1798
1484
  end
1799
1485
 
1800
1486
  ns.add_function "atleast" do |func|
@@ -1804,7 +1490,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1804
1490
  end
1805
1491
  func.add_parameter "Gecode::IntVar", "n"
1806
1492
  func.add_parameter "int", "m"
1807
- func.add_parameter "Gecode::IntConLevel", "icl", true
1493
+ func.add_parameter "Gecode::IntConLevel", "icl"
1494
+ func.add_parameter "Gecode::PropKind", "pk"
1808
1495
  end
1809
1496
 
1810
1497
  ns.add_function "atleast" do |func|
@@ -1814,7 +1501,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1814
1501
  end
1815
1502
  func.add_parameter "int", "n"
1816
1503
  func.add_parameter "Gecode::IntVar", "m"
1817
- func.add_parameter "Gecode::IntConLevel", "icl", true
1504
+ func.add_parameter "Gecode::IntConLevel", "icl"
1505
+ func.add_parameter "Gecode::PropKind", "pk"
1818
1506
  end
1819
1507
 
1820
1508
  ns.add_function "atleast" do |func|
@@ -1824,7 +1512,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1824
1512
  end
1825
1513
  func.add_parameter "Gecode::IntVar", "n"
1826
1514
  func.add_parameter "Gecode::IntVar", "m"
1827
- func.add_parameter "Gecode::IntConLevel", "icl", true
1515
+ func.add_parameter "Gecode::IntConLevel", "icl"
1516
+ func.add_parameter "Gecode::PropKind", "pk"
1828
1517
  end
1829
1518
 
1830
1519
  ns.add_function "exactly" do |func|
@@ -1834,7 +1523,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1834
1523
  end
1835
1524
  func.add_parameter "int", "n"
1836
1525
  func.add_parameter "int", "m"
1837
- func.add_parameter "Gecode::IntConLevel", "icl", true
1526
+ func.add_parameter "Gecode::IntConLevel", "icl"
1527
+ func.add_parameter "Gecode::PropKind", "pk"
1838
1528
  end
1839
1529
 
1840
1530
  ns.add_function "exactly" do |func|
@@ -1844,7 +1534,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1844
1534
  end
1845
1535
  func.add_parameter "Gecode::IntVar", "n"
1846
1536
  func.add_parameter "int", "m"
1847
- func.add_parameter "Gecode::IntConLevel", "icl", true
1537
+ func.add_parameter "Gecode::IntConLevel", "icl"
1538
+ func.add_parameter "Gecode::PropKind", "pk"
1848
1539
  end
1849
1540
 
1850
1541
  ns.add_function "exactly" do |func|
@@ -1854,7 +1545,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1854
1545
  end
1855
1546
  func.add_parameter "int", "n"
1856
1547
  func.add_parameter "Gecode::IntVar", "m"
1857
- func.add_parameter "Gecode::IntConLevel", "icl", true
1548
+ func.add_parameter "Gecode::IntConLevel", "icl"
1549
+ func.add_parameter "Gecode::PropKind", "pk"
1858
1550
  end
1859
1551
 
1860
1552
  ns.add_function "exactly" do |func|
@@ -1864,7 +1556,8 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1864
1556
  end
1865
1557
  func.add_parameter "Gecode::IntVar", "n"
1866
1558
  func.add_parameter "Gecode::IntVar", "m"
1867
- func.add_parameter "Gecode::IntConLevel", "icl", true
1559
+ func.add_parameter "Gecode::IntConLevel", "icl"
1560
+ func.add_parameter "Gecode::PropKind", "pk"
1868
1561
  end
1869
1562
 
1870
1563
  ns.add_function "lex" do |func|
@@ -1877,6 +1570,7 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1877
1570
  param.custom_conversion = "*ruby2Gecode_MIntVarArrayPtr(argv[3], 4)->ptr()"
1878
1571
  end
1879
1572
  func.add_parameter "Gecode::IntConLevel", "icl", true
1573
+ func.add_parameter "Gecode::PropKind", "pk", true
1880
1574
  end
1881
1575
 
1882
1576
  ns.add_function "cardinality" do |func|
@@ -1911,14 +1605,6 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
1911
1605
  func.add_parameter "int", "c"
1912
1606
  end
1913
1607
 
1914
- ns.add_function "distinct" do |func|
1915
- func.add_parameter "Gecode::MSpace*", "home"
1916
- func.add_parameter "Gecode::MSetVarArray", "x" do |param|
1917
- param.custom_conversion = "*ruby2Gecode_MSetVarArrayPtr(argv[1], 2)->ptr()"
1918
- end
1919
- func.add_parameter "int", "c"
1920
- end
1921
-
1922
1608
  ns.add_function "dom" do |func|
1923
1609
  func.add_parameter "Gecode::MSpace*", "home"
1924
1610
  func.add_parameter "Gecode::SetVar", "x"
@@ -2046,15 +1732,6 @@ Rust::Bindings::create_bindings Rust::Bindings::LangCxx, "gecode" do |b|
2046
1732
  func.add_parameter "Gecode::IntSet", "z"
2047
1733
  end
2048
1734
 
2049
- ns.add_function "rel" do |func|
2050
- func.add_parameter "Gecode::MSpace*", "home"
2051
- func.add_parameter "Gecode::IntSet", "x"
2052
- func.add_parameter "Gecode::SetOpType", "op"
2053
- func.add_parameter "Gecode::IntSet", "y"
2054
- func.add_parameter "Gecode::SetRelType", "r"
2055
- func.add_parameter "Gecode::SetVar", "z"
2056
- end
2057
-
2058
1735
  ns.add_function "rel" do |func|
2059
1736
  func.add_parameter "Gecode::MSpace*", "home"
2060
1737
  func.add_parameter "Gecode::IntSet", "x"