#include <MRAmrange.h>
Collaboration diagram for MRAmrange:

|
|
Definition at line 188 of file MRAmrange.h. References _dim, _state, mmax, and mmin.
|
|
|
Definition at line 197 of file MRAmrange.h.
|
|
|
Definition at line 205 of file MRAmrange.h.
|
|
||||||||||||
|
Definition at line 213 of file MRAmrange.h. References MRAmlevel._dim, baddimbit, goodbit, mmax, and mmin.
|
|
|
Definition at line 229 of file MRAmrange.h. References MRAmlevel._dim, baddimbit, goodbit, mmax, and mmin.
|
|
|
Definition at line 370 of file MRAmrange.h. References baddimbit, and rdstate(). Referenced by report().
00370 { return rdstate(baddimbit) != 0; }
|
|
|
Definition at line 352 of file MRAmrange.h. References goodbit. Referenced by operator()(), and set_empty().
|
|
|
Definition at line 358 of file MRAmrange.h. Referenced by Difference(), Difference(), Intersection(), Intersection(), Union(), and Union().
00358 { _state &= ~s; }
|
|
|
Definition at line 245 of file MRAmrange.h. References _dim, _state, mmax, and mmin. Referenced by operator=().
|
|
|
Definition at line 237 of file MRAmrange.cpp. References _dim, baddimbit, clrstate(), disjoint, failbit, fragbit, good(), goodbit, interior, is_empty(), is_null(), mmax, mmin, set_empty(), and setstate(). Referenced by operator-=().
00238 {
00239 if ( !good() || !rhs.good() || is_null() || !rhs ) {
00240 clrstate(MRAmrange::goodbit);
00241 setstate(MRAmrange::failbit);
00242 } else if ( _dim != rhs._dim ) {
00243 clrstate(MRAmrange::goodbit);
00244 setstate(MRAmrange::failbit);
00245 setstate(MRAmrange::baddimbit);
00246 } else if ( is_empty() ) {
00247 return *this;
00248 } else if ( rhs.is_empty() ) {
00249 *this = rhs;
00250 } if ( disjoint( *this, rhs ) ) {
00251 return *this;;
00252 } if ( *this == rhs ) {
00253 set_empty();
00254 } if ( *this < rhs ) {
00255 set_empty();
00256 } if ( interior( *this, rhs) ) {
00257 clrstate(MRAmrange::goodbit);
00258 setstate(MRAmrange::failbit);
00259 setstate(MRAmrange::fragbit);
00260 } else {
00261 if ( interior( rhs, *this ) ) {
00262 clrstate(MRAmrange::goodbit);
00263 setstate(MRAmrange::failbit);
00264 setstate(MRAmrange::fragbit);
00265 } else {
00266 for( int d = 0; d < _dim; ++d ) {
00267 if ( rhs.mmin[d] > mmin[d] ) mmax[d] = rhs.mmin[d] - 1;
00268 if ( rhs.mmax[d] < mmax[d] ) mmin[d] = rhs.mmax[d] + 1;
00269 }
00270 }
00271 }
00272 return *this;
00273 }
|
|
|
Definition at line 394 of file MRAmrange.h. Referenced by MRAmspec.MRAmspec(), and MRAmspec.operator()().
00394 { return _dim; }
|
|
|
Definition at line 367 of file MRAmrange.h. References failbit, and rdstate(). Referenced by report().
00367 { return rdstate(failbit) != 0; }
|
|
|
Definition at line 373 of file MRAmrange.h. References fragbit, and rdstate(). Referenced by report().
00373 { return rdstate(fragbit) != 0; }
|
|
|
Definition at line 364 of file MRAmrange.h. References goodbit. Referenced by connected(), contains(), Difference(), Difference(), disjoint(), interior(), Intersection(), Intersection(), is_empty(), report(), Union(), and Union().
|
|
|
Definition at line 213 of file MRAmrange.cpp. References _dim, baddimbit, clrstate(), disjoint, failbit, good(), goodbit, is_empty(), is_null(), mmax, mmin, set_empty(), and setstate(). Referenced by operator *=().
00214 {
00215 if ( !good() || !rhs.good() || is_null() || !rhs ) {
00216 clrstate(MRAmrange::goodbit);
00217 setstate(MRAmrange::failbit);
00218 } else if ( _dim != rhs._dim ) {
00219 clrstate(MRAmrange::goodbit);
00220 setstate(MRAmrange::failbit);
00221 setstate(MRAmrange::baddimbit);
00222 } else if ( is_empty() ) {
00223 return *this;
00224 } else if ( rhs.is_empty() ) {
00225 *this = rhs;
00226 } if ( disjoint( *this, rhs ) ) {
00227 set_empty();
00228 } else {
00229 for( int d = 0; d < _dim; ++d ) {
00230 if ( rhs.mmin[d] > mmin[d] ) mmin[d] = rhs.mmin[d];
00231 if ( rhs.mmax[d] < mmax[d] ) mmax[d] = rhs.mmax[d];
00232 }
00233 }
00234 return *this;
00235 }
|
|
|
Definition at line 341 of file MRAmrange.h. References failbit, good(), mmax, and setstate(). Referenced by connected(), contains(), Difference(), Difference(), disjoint(), interior(), Intersection(), Intersection(), Union(), and Union().
|
|
|
Definition at line 316 of file MRAmrange.h. Referenced by Difference(), Intersection(), operator!(), set_empty(), and Union().
00317 {
00318 if ( _dim == 0 ) return true;
00319 return false;
00320 }
|
|
|
Definition at line 382 of file MRAmrange.h. References Intersection().
00383 {
00384 return Intersection(rhs);
00385 }
|
|
|
Definition at line 323 of file MRAmrange.h. References is_null().
00324 {
00325 return is_null();
00326 }
|
|
||||||||||||
|
Definition at line 288 of file MRAmrange.h. References MRAmlevel._dim, baddimbit, clear(), mmax, mmin, and setstate().
|
|
|
Definition at line 278 of file MRAmrange.h. References clear(), mmax, and mmin.
|
|
|
Definition at line 268 of file MRAmrange.h.
|
|
|
Definition at line 258 of file MRAmrange.h. References _dim, _state, mmax, and mmin.
|
|
|
Definition at line 376 of file MRAmrange.h. References Union().
00377 {
00378 return Union(rhs);
00379 }
|
|
|
Definition at line 388 of file MRAmrange.h. References Difference().
00389 {
00390 return Difference(rhs);
00391 }
|
|
|
Definition at line 423 of file MRAmrange.h. References write().
00424 {
00425 write(buffer);
00426 return *this;
00427 }
|
|
|
Definition at line 255 of file MRAmrange.h. References copy().
00255 { return copy(rhs); }
|
|
|
Definition at line 437 of file MRAmrange.h. References read().
00438 {
00439 read(buffer);
00440 return *this;
00441 }
|
|
|
Definition at line 361 of file MRAmrange.h. Referenced by baddim(), fail(), and frag().
00361 { return (_state & s); }
|
|
|
Definition at line 451 of file MRAmrange.h.
|
|
|
Definition at line 430 of file MRAmrange.h. Referenced by operator<<(), and operator>>().
|
|
|
Definition at line 400 of file MRAmrange.h. References baddim(), fail(), frag(), good(), mmax, and mmin. Referenced by MRAsbObject.check_mpart(), MRAmspec.report(), and MRAsbObject.set_mpart().
00400 {
00401 os << "MRAmrange::report(){\n";
00402 os << "state = " << _state << " = 0b0000"<<frag()<<baddim()<<fail()<<good()<< '\n';
00403 os << "dim = " << _dim;
00404 if ( _dim == 0 ) cout << " ==> is null\n";
00405 else cout << "\n";
00406 for( int d = 0; d < _dim; ++d ) {
00407 os << "mmin[] = " << mmin[d]
00408 << " mmax[] = " << mmax[d];
00409 if ( mmin[d] > mmax[d] ) cout << " ==> is_empty\n";
00410 else cout << "\n";
00411 }
00412 os << "}\n";
00413 }
|
|
|
Definition at line 329 of file MRAmrange.h. References clear(), failbit, is_null(), mmax, mmin, and setstate(). Referenced by Difference(), Difference(), Intersection(), Intersection(), MRAsbObject.MRAsbObject(), MRAsbObject.operator()(), and MRAsbObject.set_empty().
00330 {
00331 if ( !is_null() ) {
00332 clear();
00333 mmin = MRAmlevel::mmax_limit;
00334 mmax = MRAmlevel::mmin_limit;
00335 } else {
00336 setstate(failbit);
00337 }
00338 }
|
|
|
Definition at line 307 of file MRAmrange.h.
|
|
|
Definition at line 355 of file MRAmrange.h. Referenced by Difference(), Difference(), Intersection(), Intersection(), is_empty(), operator()(), set_empty(), Union(), and Union().
00355 { _state |= s; }
|
|
|
Definition at line 397 of file MRAmrange.h. References mmax, mmin, and MRAmlevel.sizeb(). Referenced by MRAmspec.sizeb().
|
|
|
Definition at line 187 of file MRAmrange.cpp. References _dim, baddimbit, clrstate(), connected, failbit, fragbit, good(), goodbit, is_empty(), is_null(), mmax, mmin, and setstate(). Referenced by operator+=().
00188 {
00189 if ( !good() || !rhs.good() || is_null() || !rhs ) {
00190 clrstate(MRAmrange::goodbit);
00191 setstate(MRAmrange::failbit);
00192 } else if ( _dim != rhs._dim ) {
00193 clrstate(MRAmrange::goodbit);
00194 setstate(MRAmrange::failbit);
00195 setstate(MRAmrange::baddimbit);
00196 } else if ( rhs.is_empty() ) {
00197 return *this;
00198 } else if ( is_empty() ) {
00199 *this = rhs;
00200 } if ( !connected( *this, rhs ) ) {
00201 clrstate(MRAmrange::goodbit);
00202 setstate(MRAmrange::failbit);
00203 setstate(MRAmrange::fragbit);
00204 } else {
00205 for( int d = 0; d < _dim; ++d ) {
00206 if ( rhs.mmin[d] < mmin[d] ) mmin[d] = rhs.mmin[d];
00207 if ( rhs.mmax[d] > mmin[d] ) mmax[d] = rhs.mmax[d];
00208 }
00209 }
00210 return *this;
00211 }
|
|
|
Definition at line 444 of file MRAmrange.h.
|
|
|
Definition at line 416 of file MRAmrange.h. Referenced by operator<<(), and operator>>().
|
|
||||||||||||
|
Definition at line 58 of file MRAmrange.cpp. Referenced by Union().
00059 {
00060 if ( !lhs.good() || !rhs.good() || !lhs || !rhs ) return false;
00061 if ( lhs._dim != rhs._dim ) return false;
00062 // if ( lhs.is_empty() || rhs.is_empty() ) return false;
00063 if ( lhs.is_empty() || rhs.is_empty() ) return true;
00064 if ( lhs <= rhs || lhs >= rhs ) return true;
00065 for( int d = 0; d < lhs._dim; ++d ) {
00066 if ( lhs.mmin[d] <= rhs.mmin[d] && lhs.mmax[d] >= rhs.mmin[d] - 1 )
00067 return true;
00068 if ( lhs.mmax[d] >= rhs.mmax[d] && lhs.mmin[d] <= rhs.mmax[d] + 1 )
00069 return true;
00070 }
00071 return false;
00072 }
|
|
||||||||||||
|
Definition at line 30 of file MRAmrange.cpp.
00031 {
00032 if ( !lhs.good() || !rhs.good() || !lhs || !rhs ) return false;
00033 if ( lhs._dim != rhs._dim ) return false;
00034 if ( rhs.is_empty() ) return true;
00035 if ( lhs.is_empty() ) return false;
00036 for( int d = 0; d < lhs._dim; ++d ) {
00037 if ( rhs.mmin[d] < lhs.mmin[d] || rhs.mmax[d] > lhs.mmax[d] )
00038 return false;
00039 }
00040 return true;
00041 }
|
|
||||||||||||
|
Definition at line 142 of file MRAmrange.cpp.
00143 {
00144 MRAmrange mrange;
00145 if ( !lhs.good() || !rhs.good() || !lhs || !rhs ) {
00146 mrange.clrstate(MRAmrange::goodbit);
00147 mrange.setstate(MRAmrange::failbit);
00148 } else if ( lhs._dim != rhs._dim ) {
00149 mrange.clrstate(MRAmrange::goodbit);
00150 mrange.setstate(MRAmrange::failbit);
00151 mrange.setstate(MRAmrange::baddimbit);
00152 } else if ( lhs.is_empty() ) {
00153 mrange = lhs;
00154 } else if ( rhs.is_empty() ) {
00155 mrange = rhs;
00156 } if ( disjoint( lhs, rhs ) ) {
00157 mrange = lhs;
00158 } if ( lhs == rhs ) {
00159 mrange(lhs._dim);
00160 mrange.set_empty();
00161 } if ( lhs < rhs ) {
00162 mrange(lhs._dim);
00163 mrange.set_empty();
00164 } if ( interior( lhs, rhs) ) {
00165 mrange.clrstate(MRAmrange::goodbit);
00166 mrange.setstate(MRAmrange::failbit);
00167 mrange.setstate(MRAmrange::fragbit);
00168 } else {
00169 if ( interior( rhs, lhs ) ) {
00170 mrange = lhs;
00171 mrange.clrstate(MRAmrange::goodbit);
00172 mrange.setstate(MRAmrange::failbit);
00173 mrange.setstate(MRAmrange::fragbit);
00174 } else {
00175 mrange = lhs;
00176 for( int d = 0; d < lhs._dim; ++d ) {
00177 if ( rhs.mmin[d] > lhs.mmin[d] ) mrange.mmax[d] = rhs.mmin[d] - 1;
00178 if ( rhs.mmax[d] < lhs.mmax[d] ) mrange.mmin[d] = rhs.mmax[d] + 1;
00179 }
00180 }
00181 }
00182 return mrange;
00183 }
|
|
||||||||||||
|
Definition at line 43 of file MRAmrange.cpp. Referenced by Difference(), and Intersection().
00044 {
00045 if ( !lhs.good() || !rhs.good() || !lhs || !rhs ) return false;
00046 if ( lhs._dim != rhs._dim ) return false;
00047 if ( lhs.is_empty() || rhs.is_empty() ) return false;
00048 if ( lhs <= rhs || lhs >= rhs ) return false;
00049 for( int d = 0; d < lhs._dim; ++d ) {
00050 if ( lhs.mmin[d] < rhs.mmin[d] && lhs.mmax[d] < rhs.mmin[d] )
00051 return true;
00052 if ( lhs.mmin[d] > rhs.mmax[d] && lhs.mmax[d] > rhs.mmax[d] )
00053 return true;
00054 }
00055 return false;
00056 }
|
|
||||||||||||
|
Definition at line 21 of file MRAmrange.cpp.
|
|
||||||||||||
|
Definition at line 74 of file MRAmrange.cpp. Referenced by Difference().
00075 {
00076 if ( !lhs.good() || !rhs.good() || !lhs || !rhs ) return false;
00077 if ( lhs._dim != rhs._dim ) return false;
00078 if ( lhs.is_empty() || rhs.is_empty() ) return false;
00079 if ( lhs >= rhs || disjoint( lhs, rhs ) ) return false;
00080 for( int d = 0; d < lhs._dim; ++d ) {
00081 if ( lhs.mmin[d] <= rhs.mmin[d] || lhs.mmax[d] >= rhs.mmax[d] )
00082 return false;
00083 }
00084 return true;
00085 }
|
|
||||||||||||
|
Definition at line 115 of file MRAmrange.cpp.
00116 {
00117 MRAmrange mrange;
00118 if ( !lhs.good() || !rhs.good() || !lhs || !rhs ) {
00119 mrange.clrstate(MRAmrange::goodbit);
00120 mrange.setstate(MRAmrange::failbit);
00121 } else if ( lhs._dim != rhs._dim ) {
00122 mrange.clrstate(MRAmrange::goodbit);
00123 mrange.setstate(MRAmrange::failbit);
00124 mrange.setstate(MRAmrange::baddimbit);
00125 } else if ( lhs.is_empty() ) {
00126 mrange = lhs;
00127 } else if ( rhs.is_empty() ) {
00128 mrange = rhs;
00129 } if ( disjoint( lhs, rhs ) ) {
00130 mrange(lhs._dim);
00131 mrange.set_empty();
00132 } else {
00133 mrange = lhs;
00134 for( int d = 0; d < lhs._dim; ++d ) {
00135 if ( rhs.mmin[d] > mrange.mmin[d] ) mrange.mmin[d] = rhs.mmin[d];
00136 if ( rhs.mmax[d] < mrange.mmax[d] ) mrange.mmax[d] = rhs.mmax[d];
00137 }
00138 }
00139 return mrange;
00140 }
|
|
||||||||||||
|
Definition at line 172 of file MRAmrange.h.
00173 {
00174 return Intersection( lhs, rhs );
00175 }
|
|
||||||||||||
|
Definition at line 124 of file MRAmrange.h.
00125 {
00126 return !equal( rhs, lhs );
00127 }
|
|
||||||||||||
|
Definition at line 164 of file MRAmrange.h.
00165 {
00166 return Union( lhs, rhs );
00167 }
|
|
||||||||||||
|
Definition at line 180 of file MRAmrange.h.
00181 {
00182 return Difference( lhs, rhs );
00183 }
|
|
||||||||||||
|
Definition at line 132 of file MRAmrange.h.
00133 {
00134 return contains( rhs, lhs ) && lhs != rhs;
00135 }
|
|
||||||||||||
|
Definition at line 481 of file MRAmrange.h.
00482 {
00483 mrange.read(os);
00484 return os;
00485 }
|
|
||||||||||||
|
Definition at line 467 of file MRAmrange.h.
00468 {
00469 mrange.read(buffer);
00470 return buffer;
00471 }
|
|
||||||||||||
|
Definition at line 144 of file MRAmrange.h.
00145 {
00146 return contains( rhs, lhs );
00147 }
|
|
||||||||||||
|
Definition at line 118 of file MRAmrange.h.
00119 {
00120 return equal( rhs, lhs );
00121 }
|
|
||||||||||||
|
Definition at line 138 of file MRAmrange.h.
00139 {
00140 return contains( lhs, rhs ) && lhs != rhs;
00141 }
|
|
||||||||||||
|
Definition at line 150 of file MRAmrange.h.
00151 {
00152 return contains( lhs, rhs );
00153 }
|
|
||||||||||||
|
Definition at line 474 of file MRAmrange.h.
00475 {
00476 mrange.write(is);
00477 return is;
00478 }
|
|
||||||||||||
|
Definition at line 460 of file MRAmrange.h.
00461 {
00462 mrange.write(buffer);
00463 return buffer;
00464 }
|
|
||||||||||||
|
Definition at line 87 of file MRAmrange.cpp.
00088 {
00089 MRAmrange mrange;
00090 if ( !lhs.good() || !rhs.good() || !lhs || !rhs ) {
00091 mrange.clrstate(MRAmrange::goodbit);
00092 mrange.setstate(MRAmrange::failbit);
00093 } else if ( lhs._dim != rhs._dim ) {
00094 mrange.clrstate(MRAmrange::goodbit);
00095 mrange.setstate(MRAmrange::failbit);
00096 mrange.setstate(MRAmrange::baddimbit);
00097 } else if ( rhs.is_empty() ) {
00098 mrange = lhs;
00099 } else if ( lhs.is_empty() ) {
00100 mrange = rhs;
00101 } if ( !connected( lhs, rhs ) ) {
00102 mrange.clrstate(MRAmrange::goodbit);
00103 mrange.setstate(MRAmrange::failbit);
00104 mrange.setstate(MRAmrange::fragbit);
00105 } else {
00106 mrange = lhs;
00107 for( int d = 0; d < lhs._dim; ++d ) {
00108 if ( rhs.mmin[d] < mrange.mmin[d] ) mrange.mmin[d] = rhs.mmin[d];
00109 if ( rhs.mmax[d] > mrange.mmin[d] ) mrange.mmax[d] = rhs.mmax[d];
00110 }
00111 }
00112 return mrange;
00113 }
|
|
|
Definition at line 86 of file MRAmrange.h. Referenced by connected(), contains(), copy(), Difference(), Difference(), disjoint(), equal(), interior(), Intersection(), Intersection(), MRAmrange(), operator()(), Union(), and Union(). |
|
|
Definition at line 85 of file MRAmrange.h. Referenced by copy(), equal(), MRAmrange(), and operator()(). |
|
|
Definition at line 26 of file MRAmrange.h. Referenced by baddim(), Difference(), Intersection(), MRAmrange(), operator()(), and Union(). |
|
|
Definition at line 25 of file MRAmrange.h. Referenced by Difference(), fail(), Intersection(), is_empty(), set_empty(), and Union(). |
|
|
Definition at line 27 of file MRAmrange.h. Referenced by Difference(), frag(), and Union(). |
|
|
Definition at line 24 of file MRAmrange.h. Referenced by clear(), Difference(), good(), Intersection(), MRAmrange(), and Union(). |
|
|
Definition at line 29 of file MRAmrange.h. Referenced by connected(), contains(), copy(), Difference(), Difference(), disjoint(), equal(), interior(), Intersection(), Intersection(), is_empty(), MRAsbObject.mpart(), MRAmrange(), operator()(), read(), report(), set_empty(), MRAsbBase.set_mspec(), MCFTPrequest.set_mspec(), MCFTPquote.set_mspec(), set_null(), sizeb(), Union(), Union(), and write(). |
|
|
Definition at line 29 of file MRAmrange.h. Referenced by connected(), contains(), copy(), Difference(), Difference(), disjoint(), equal(), interior(), Intersection(), Intersection(), MRAmrange(), operator()(), read(), report(), set_empty(), MRAsbBase.set_mspec(), MCFTPrequest.set_mspec(), MCFTPquote.set_mspec(), set_null(), sizeb(), Union(), Union(), and write(). |
1.3.6