MCPcopy Create free account
hub / github.com/Gecode/gecode / Spec

Class Spec

examples/multi-bin-packing.cpp:51–95  ·  view source on GitHub ↗

A wrapper class for instance data

Source from the content-addressed store, hash-verified

49
50 /// A wrapper class for instance data
51 class Spec {
52 protected:
53 /// Raw instance data
54 const int* data;
55 /// Instance name
56 const char* n;
57 /// Find instance by name \a s
58 static const int* find(const char* s) {
59 for (int i=0; name[i] != nullptr; i++)
60 if (!strcmp(s,name[i]))
61 return mbpp[i];
62 return nullptr;
63 }
64 public:
65 /// Initialize
66 Spec(const char* s) : data(find(s)), n(s) {}
67 /// Whether a valid specification has been found
68 bool valid(void) const {
69 return data != nullptr;
70 }
71 /// Return dimension
72 int dimension(void) const {
73 return data[0];
74 }
75 /// Return instance name
76 const char* iname(void) const {
77 return n;
78 }
79 /// Return number of items
80 int items(void) const {
81 return data[1];
82 }
83 /// Return number of bins
84 int bins(void) const {
85 return data[2];
86 }
87 /// Return item size for item \a i in dimension \a k
88 int size(int i, int k) const {
89 return data[3+i*dimension()+k];
90 }
91 /// Return maximal capacity of bin \a j
92 int capacity(int j) const {
93 return data[3+items()*dimension()+j];
94 }
95 };
96
97}
98

Callers 1

mainFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected