Go to the documentation of this file.
44 : _r(0), _fc(fc), _tc(tc), _fr(fr), _tr(tr) {
45 if (tc >
a.width() || tr >
a.height())
47 if (fc >= tc || fr >= tr) {
48 _fc=0; _tc=0; _fr=0; _tr=0;
55 for (
int h = fr; h < tr; h++)
56 for (
int w = fc; w < tc; w++)
63 for (
int i = 0;
i < _r.
size()/2;
i++)
86 return Matrix<ArgsType>(_r, _tc-_fc, _tr-_fr);
128 :
_a(
a), _w(w), _h(h) {
129 if ((_w * _h) != _a.size())
136 :
_a(
a), _w(
n), _h(
n) {
137 if (
n*
n != _a.size())
156 if ((
c >= _w) || (
r >= _h))
164 if ((
c >= _w) || (
r >= _h))
172 return Slice<A>(*
this, fc, tc, fr, tr);
178 return slice(0, width(),
r,
r+1);
184 return slice(
c,
c+1, 0, height());
187 template<
class Char,
class Traits,
class A>
188 std::basic_ostream<Char,Traits>&
190 std::basic_ostringstream<Char,Traits> s;
191 s.copyfmt(os); s.width(0);
193 for (
int j=0; j<m.
width(); j++) {
198 return os << s.str();
201 template<
class Char,
class Traits,
class A>
202 std::basic_ostream<Char,Traits>&
204 return os << static_cast<typename Slice<A>::ArgsType>(s);
228 #ifdef GECODE_HAS_SET_VARS
Post propagator for SetVar x
Post propagator for SetVar SetOpType SetVar y
Matrix(A a, int w, int h)
Basic constructor.
void element(Home home, IntSharedArray c, IntVar x0, IntVar x1, IntPropLevel)
Post domain consistent propagator for .
int width(void) const
Return the width of the matrix.
Slice< A > row(int r) const
Access row r.
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
IntPropLevel
Propagation levels for integer propagators.
FloatVal operator+(const FloatVal &x)
ValueType & operator()(int c, int r)
Access element (c, r) of the matrix.
Gecode toplevel namespace
Exception: Sizes of arguments does not match
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
Home class for posting propagators
Post propagator for SetVar SetOpType SetVar SetRelType r
Boolean integer variables.
ArrayTraits< A >::ArgsType ArgsType
The type of the Args-array type for ValueType values.
IntRelType swap(IntRelType irt)
Return swapped relation type of irt.
Slice< A > slice(int fc, int tc, int fr, int tr) const
Access slice of the matrix.
Slice(const Matrix< A > &a, int fc, int tc, int fr, int tr)
Construct slice.
Matrix-interface for arrays.
int height(void) const
Return the height of the matrix.
const ArgsType get_array(void) const
Return an Args-array of the contents of the matrix.
ArrayTraits< A >::ValueType ValueType
The type of elements of this array.
Slice< A > col(int c) const
Access column c.
Slice & reverse(void)
Reverses the contents of the slice, and returns a reference to it.
int size(void) const
Return size of array (number of elements)
Exception: Argument out of range
Traits of arrays in Gecode.
Gecode::FloatVal c(-8, 8)
const unsigned int slice
Size of a slice in a portfolio and scale factor for restarts(in number of failures)
int n
Number of negative literals for node type.
ArrayTraits< A >::ArgsType ArgsType
The type of the Args-array type for ValueType values.
Gecode::IntArgs i({1, 2, 3, 4})
Archive & operator<<(Archive &e, FloatNumBranch nl)