26 #ifndef _CXSC_IVECTOR_HPP_INCLUDED
27 #define _CXSC_IVECTOR_HPP_INCLUDED
29 #include "xscclass.hpp"
33 #include "interval.hpp"
34 #include "rvector.hpp"
69 #ifdef _CXSC_FRIEND_TPL
72 template <
class V,
class MS,
class S>
friend void _vmsconstr(V &v,
const MS &m)
74 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<MS>);
78 template <
class V,
class M,
class S>
friend void _vmconstr(V &v,
const M &m)
80 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<M>);
84 template <
class V>
friend void _vresize(V &rv)
throw();
85 template <
class V,
class S>
friend void _vresize(V &rv,
const int &len)
87 throw(ERROR__WRONG_BOUNDARIES<V>);
91 template <
class V,
class S>
friend void _vresize(V &rv,
const int &lb,
const int &ub)
93 throw(ERROR__WRONG_BOUNDARIES<V>);
97 template <
class V1,
class V2,
class S>
friend V1 &_vvassign(V1 &rv1,
const V2 &rv2)
throw();
98 template <
class V,
class S>
friend V & _vsassign(V &rv,
const S &r)
throw();
99 template <
class V,
class VS,
class S>
friend V & _vvsassign(V &rv,
const VS &sl)
throw();
100 template <
class VS,
class V>
friend VS & _vsvassign(VS &sl,
const V &rv)
101 #if(CXSC_INDEX_CHECK)
102 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
106 template <
class V,
class M,
class S>
friend V &_vmassign(V &v,
const M &m)
107 #if(CXSC_INDEX_CHECK)
108 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<M>);
112 template <
class M,
class V,
class S>
friend M &_mvassign(M &m,
const V &v)
throw();
113 template <
class V1,
class V2>
friend V1 &_vvsetinf(V1 &rv1,
const V2 &rv2)
114 #if(CXSC_INDEX_CHECK)
115 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
119 template <
class V1,
class V2>
friend V1 &_vvsetsup(V1 &rv1,
const V2 &rv2)
120 #if(CXSC_INDEX_CHECK)
121 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
125 template <
class V,
class VS>
friend V &_vvssetinf(V &rv,
const VS &sl)
126 #if(CXSC_INDEX_CHECK)
127 throw(ERROR__OP_WITH_WRONG_DIM<V>);
131 template <
class V,
class VS>
friend V &_vvssetsup(V &rv,
const VS &sl)
132 #if(CXSC_INDEX_CHECK)
133 throw(ERROR__OP_WITH_WRONG_DIM<V>);
137 template <
class V,
class MV>
friend V &_vmvsetinf(V &rv,
const MV &v)
138 #if(CXSC_INDEX_CHECK)
139 throw(ERROR__OP_WITH_WRONG_DIM<V>);
143 template <
class V,
class MV>
friend V &_vmvsetsup(V &rv,
const MV &v)
144 #if(CXSC_INDEX_CHECK)
145 throw(ERROR__OP_WITH_WRONG_DIM<V>);
149 template <
class V1,
class V2>
friend V1 &_vvusetinf(V1 &rv1,
const V2 &rv2)
150 #if(CXSC_INDEX_CHECK)
151 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
155 template <
class V1,
class V2>
friend V1 &_vvusetsup(V1 &rv1,
const V2 &rv2)
156 #if(CXSC_INDEX_CHECK)
157 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
161 template <
class V,
class VS>
friend V &_vvsusetinf(V &rv,
const VS &sl)
162 #if(CXSC_INDEX_CHECK)
163 throw(ERROR__OP_WITH_WRONG_DIM<V>);
167 template <
class V,
class VS>
friend V &_vvsusetsup(V &rv,
const VS &sl)
168 #if(CXSC_INDEX_CHECK)
169 throw(ERROR__OP_WITH_WRONG_DIM<V>);
173 template <
class V,
class MV>
friend V &_vmvusetinf(V &rv,
const MV &v)
174 #if(CXSC_INDEX_CHECK)
175 throw(ERROR__OP_WITH_WRONG_DIM<V>);
179 template <
class V,
class MV>
friend V &_vmvusetsup(V &rv,
const MV &v)
180 #if(CXSC_INDEX_CHECK)
181 throw(ERROR__OP_WITH_WRONG_DIM<V>);
185 template <
class V,
class S>
friend V &_vssetinf(V &v,
const S &s)
throw();
186 template <
class V,
class S>
friend V &_vssetsup(V &v,
const S &s)
throw();
187 template <
class V,
class S>
friend V &_vsusetinf(V &v,
const S &s)
throw();
188 template <
class V,
class S>
friend V &_vsusetsup(V &v,
const S &s)
throw();
189 template <
class V,
class E>
friend E _vabs(
const V &rv)
throw();
190 template <
class VS,
class E>
friend E _vsabs(
const VS &sl)
throw();
191 template <
class MV,
class V>
friend V _mvabs(
const MV &mv)
throw();
192 template <
class V,
class E>
friend E _vdiam(
const V &rv)
throw();
193 template <
class V,
class E>
friend E _vmid(
const V &rv)
throw();
194 template <
class V,
class E>
friend E _vinf(
const V &rv)
throw();
195 template <
class V,
class E>
friend E _vsup(
const V &rv)
throw();
198 template <
class DP,
class V1,
class V2>
friend void _vvaccu(DP &dp,
const V1 & rv1,
const V2 &rv2)
199 #if(CXSC_INDEX_CHECK)
200 throw(OP_WITH_WRONG_DIM);
204 template <
class DP,
class VS,
class V>
friend void _vsvaccu(DP &dp,
const VS & sl,
const V &rv)
205 #if(CXSC_INDEX_CHECK)
206 throw(OP_WITH_WRONG_DIM);
210 template <
class V1,
class V2,
class E>
friend E _vvimult(
const V1 & rv1,
const V2 &rv2)
211 #if(CXSC_INDEX_CHECK)
212 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
216 template <
class VS,
class V,
class E>
friend E _vsvimult(
const VS & sl,
const V &rv)
217 #if(CXSC_INDEX_CHECK)
218 throw(ERROR__OP_WITH_WRONG_DIM<V>);
222 template <
class V,
class S>
friend V &_vsmultassign(V &rv,
const S &r)
throw();
223 template <
class V1,
class V2,
class E>
friend E _vvplus(
const V1 &rv1,
const V2 &rv2)
224 #if(CXSC_INDEX_CHECK)
225 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
229 template <
class V,
class VS,
class E>
friend E _vvsplus(
const V &rv,
const VS &sl)
230 #if(CXSC_INDEX_CHECK)
231 throw(ERROR__OP_WITH_WRONG_DIM<V>);
235 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
236 #if(CXSC_INDEX_CHECK)
237 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
241 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
242 #if(CXSC_INDEX_CHECK)
243 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
247 template <
class V1,
class V2>
friend V1 &_vvplusassign(V1 &rv1,
const V2 &rv2)
248 #if(CXSC_INDEX_CHECK)
249 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
253 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
254 #if(CXSC_INDEX_CHECK)
255 throw(ERROR__OP_WITH_WRONG_DIM<V>);
259 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
260 #if(CXSC_INDEX_CHECK)
261 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
265 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
266 #if(CXSC_INDEX_CHECK)
267 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
271 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
272 #if(CXSC_INDEX_CHECK)
273 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
277 template <
class V1,
class V2>
friend V1 &_vvminusassign(V1 &rv1,
const V2 &rv2)
278 #if(CXSC_INDEX_CHECK)
279 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
283 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
284 #if(CXSC_INDEX_CHECK)
285 throw(ERROR__OP_WITH_WRONG_DIM<V>);
289 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
290 #if(CXSC_INDEX_CHECK)
291 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
295 template <
class V>
friend V _vminus(
const V &rv)
throw();
296 template <
class VS,
class V>
friend V _vsminus(
const VS &sl)
throw();
297 template <
class V1,
class V2,
class E>
friend E _vvminus(
const V1 &rv1,
const V2 &rv2)
298 #if(CXSC_INDEX_CHECK)
299 throw(ERROR__OP_WITH_WRONG_DIM<E>);
303 template <
class V,
class VS,
class E>
friend E _vvsminus(
const V &rv,
const VS &sl)
304 #if(CXSC_INDEX_CHECK)
305 throw(ERROR__OP_WITH_WRONG_DIM<E>);
309 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
310 #if(CXSC_INDEX_CHECK)
311 throw(ERROR__OP_WITH_WRONG_DIM<E>);
315 template <
class V1,
class V2,
class E>
friend E _vvconv(
const V1 &rv1,
const V2 &rv2)
316 #if(CXSC_INDEX_CHECK)
317 throw(ERROR__OP_WITH_WRONG_DIM<E>);
321 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
322 #if(CXSC_INDEX_CHECK)
323 throw(ERROR__OP_WITH_WRONG_DIM<E>);
327 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
328 #if(CXSC_INDEX_CHECK)
329 throw(ERROR__OP_WITH_WRONG_DIM<E>);
333 template <
class V1,
class V2>
friend V1 &_vvconvassign(V1 &rv1,
const V2 &rv2)
334 #if(CXSC_INDEX_CHECK)
335 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
339 template <
class V,
class VS>
friend V &_vvsconvassign(V &rv,
const VS &sl)
340 #if(CXSC_INDEX_CHECK)
341 throw(ERROR__OP_WITH_WRONG_DIM<V>);
345 template <
class VS,
class V>
friend VS &_vsvconvassign(VS &sl,
const V &rv)
346 #if(CXSC_INDEX_CHECK)
347 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
351 template <
class VS1,
class VS2>
friend VS1 &_vsvsconvassign(VS1 &sl1,
const VS2 &sl2)
352 #if(CXSC_INDEX_CHECK)
353 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
357 template <
class V1,
class V2,
class E>
friend E _vvsect(
const V1 &rv1,
const V2 &rv2)
358 #if(CXSC_INDEX_CHECK)
359 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
363 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
364 #if(CXSC_INDEX_CHECK)
365 throw(ERROR__OP_WITH_WRONG_DIM<E>);
369 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
370 #if(CXSC_INDEX_CHECK)
371 throw(ERROR__OP_WITH_WRONG_DIM<E>);
375 template <
class V1,
class V2>
friend V1 &_vvsectassign(V1 &rv1,
const V2 &rv2)
376 #if(CXSC_INDEX_CHECK)
377 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
381 template <
class V,
class VS>
friend V &_vvssectassign(V &rv,
const VS &sl)
382 #if(CXSC_INDEX_CHECK)
383 throw(ERROR__OP_WITH_WRONG_DIM<V>);
387 template <
class VS,
class V>
friend VS &_vsvsectassign(VS &sl,
const V &rv)
388 #if(CXSC_INDEX_CHECK)
389 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
393 template <
class VS1,
class VS2>
friend VS1 &_vsvssectassign(VS1 &sl1,
const VS2 &sl2)
394 #if(CXSC_INDEX_CHECK)
395 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
399 template <
class MV1,
class MV2,
class E>
friend E _mvmvsect(
const MV1 &rv1,
const MV2 &rv2)
400 #if(CXSC_INDEX_CHECK)
401 throw(ERROR__OP_WITH_WRONG_DIM<E>);
405 template <
class MV,
class V,
class E>
friend E _mvvsect(
const MV &rv1,
const V &rv2)
406 #if(CXSC_INDEX_CHECK)
407 throw(ERROR__OP_WITH_WRONG_DIM<E>);
411 template <
class MV,
class V>
friend MV &_mvvsectassign(MV &v,
const V &rv)
412 #if(CXSC_INDEX_CHECK)
413 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
417 template <
class V,
class MV>
friend V &_vmvsectassign(V &rv,
const MV &v)
418 #if(CXSC_INDEX_CHECK)
419 throw(ERROR__OP_WITH_WRONG_DIM<V>);
423 template <
class MV1,
class MV2,
class E>
friend E _mvmvconv(
const MV1 &rv1,
const MV2 &rv2)
424 #if(CXSC_INDEX_CHECK)
425 throw(ERROR__OP_WITH_WRONG_DIM<E>);
429 template <
class MV,
class V,
class E>
friend E _mvvconv(
const MV &rv1,
const V &rv2)
430 #if(CXSC_INDEX_CHECK)
431 throw(ERROR__OP_WITH_WRONG_DIM<E>);
435 template <
class MV,
class V>
friend MV &_mvvconvassign(MV &v,
const V &rv)
436 #if(CXSC_INDEX_CHECK)
437 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
441 template <
class V,
class MV>
friend V &_vmvconvassign(V &rv,
const MV &v)
442 #if(CXSC_INDEX_CHECK)
443 throw(ERROR__OP_WITH_WRONG_DIM<V>);
447 template <
class V,
class MV,
class S>
friend S _vmvimult(
const V &rv1,
const MV &rv2)
448 #if(CXSC_INDEX_CHECK)
449 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
454 template <
class V,
class S,
class E>
friend E _vsdiv(
const V &rv,
const S &s)
throw();
455 template <
class V,
class S>
friend V &_vsdivassign(V &rv,
const S &r)
throw();
456 template <
class VS,
class S,
class E>
friend E _vssdiv(
const VS &sl,
const S &s)
throw();
457 template <
class V,
class S,
class E>
friend E _vsmult(
const V &rv,
const S &s)
throw();
458 template <
class VS,
class S,
class E>
friend E _vssmult(
const VS &sl,
const S &s)
throw();
459 template <
class MV,
class S,
class E>
friend E _mvsmult(
const MV &rv,
const S &s)
throw();
460 template <
class MV1,
class MV2,
class E>
friend E _mvmvplus(
const MV1 &rv1,
const MV2 &rv2)
461 #if(CXSC_INDEX_CHECK)
462 throw(ERROR__OP_WITH_WRONG_DIM<E>);
466 template <
class MV,
class V,
class E>
friend E _mvvplus(
const MV &rv1,
const V &rv2)
467 #if(CXSC_INDEX_CHECK)
468 throw(ERROR__OP_WITH_WRONG_DIM<E>);
472 template <
class MV,
class V,
class E>
friend E _mvvminus(
const MV &rv1,
const V &rv2)
473 #if(CXSC_INDEX_CHECK)
474 throw(ERROR__OP_WITH_WRONG_DIM<E>);
478 template <
class V,
class MV,
class E>
friend E _vmvminus(
const V &rv1,
const MV &rv2)
479 #if(CXSC_INDEX_CHECK)
480 throw(ERROR__OP_WITH_WRONG_DIM<E>);
484 template <
class MV1,
class MV2,
class E>
friend E _mvmvminus(
const MV1 &rv1,
const MV2 &rv2)
485 #if(CXSC_INDEX_CHECK)
486 throw(ERROR__OP_WITH_WRONG_DIM<E>);
490 template <
class MV,
class V>
friend MV &_mvvplusassign(MV &v,
const V &rv)
491 #if(CXSC_INDEX_CHECK)
492 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
496 template <
class MV,
class V>
friend MV &_mvvminusassign(MV &v,
const V &rv)
497 #if(CXSC_INDEX_CHECK)
498 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
502 template <
class MV,
class S,
class E>
friend E _mvsdiv(
const MV &rv,
const S &s)
throw();
503 template <
class MV,
class V>
friend MV &_mvvassign(MV &v,
const V &rv)
504 #if(CXSC_INDEX_CHECK)
505 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
510 template <
class V1,
class V2>
friend bool _vveq(
const V1 &rv1,
const V2 &rv2)
throw();
511 template <
class VS,
class V>
friend bool _vsveq(
const VS &sl,
const V &rv)
throw();
512 template <
class V1,
class V2>
friend bool _vvneq(
const V1 &rv1,
const V2 &rv2)
throw();
513 template <
class VS,
class V>
friend bool _vsvneq(
const VS &sl,
const V &rv)
throw();
514 template <
class V1,
class V2>
friend bool _vvless(
const V1 &rv1,
const V2 &rv2)
throw();
515 template <
class VS,
class V>
friend bool _vsvless(
const VS &sl,
const V &rv)
throw();
516 template <
class V1,
class V2>
friend bool _vvleq(
const V1 &rv1,
const V2 &rv2)
throw();
517 template <
class VS,
class V>
friend bool _vsvleq(
const VS &sl,
const V &rv)
throw();
518 template <
class V,
class VS>
friend bool _vvsless(
const V &rv,
const VS &sl)
throw();
519 template <
class V,
class VS>
friend bool _vvsleq(
const V &rv,
const VS &sl)
throw();
520 template <
class V>
friend bool _vnot(
const V &rv)
throw();
521 template <
class V>
friend void *_vvoid(
const V &rv)
throw();
522 template <
class VS1,
class VS2>
friend bool _vsvseq(
const VS1 &sl1,
const VS2 &sl2)
throw();
523 template <
class VS1,
class VS2>
friend bool _vsvsneq(
const VS1 &sl1,
const VS2 &sl2)
throw();
524 template <
class VS1,
class VS2>
friend bool _vsvsless(
const VS1 &sl1,
const VS2 &sl2)
throw();
525 template <
class VS1,
class VS2>
friend bool _vsvsleq(
const VS1 &sl1,
const VS2 &sl2)
throw();
526 template <
class VS>
friend bool _vsnot(
const VS &sl)
throw();
527 template <
class VS>
friend void *_vsvoid(
const VS &sl)
throw();
528 template <
class V>
friend std::ostream &_vout(std::ostream &s,
const V &rv)
throw();
529 template <
class V>
friend std::istream &_vin(std::istream &s, V &rv)
throw();
532 template <
class DP,
class V,
class SV>
friend void _vmvaccu(DP &dp,
const V & rv1,
const SV &rv2)
533 #if(CXSC_INDEX_CHECK)
534 throw(OP_WITH_WRONG_DIM);
539 template <
class V,
class MV2,
class S>
friend V &_vmvassign(V &v,
const MV2 &rv)
throw();
540 template <
class M,
class V,
class E>
friend E _mvimult(
const M &m,
const V &v)
541 #if(CXSC_INDEX_CHECK)
542 throw(ERROR__OP_WITH_WRONG_DIM<M>);
546 template <
class V,
class M,
class E>
friend E _vmimult(
const V &v,
const M &m)
547 #if(CXSC_INDEX_CHECK)
548 throw(ERROR__OP_WITH_WRONG_DIM<M>);
552 template <
class V,
class M,
class S>
friend V &_vmimultassign(V &v,
const M &m)
553 #if(CXSC_INDEX_CHECK)
554 throw(ERROR__OP_WITH_WRONG_DIM<M>);
558 template <
class MS,
class V,
class E>
friend E _msvimult(
const MS &ms,
const V &v)
559 #if(CXSC_INDEX_CHECK)
560 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
564 template <
class V,
class MS,
class E>
friend E _vmsimult(
const V &v,
const MS &ms)
565 #if(CXSC_INDEX_CHECK)
566 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
570 template <
class V,
class MS,
class S>
friend V &_vmsimultassign(V &v,
const MS &ms)
571 #if(CXSC_INDEX_CHECK)
572 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
585 template <
class V1,
class V2,
class E>
friend E _vvcimult(
const V1 & rv1,
const V2 &rv2)
586 #if(CXSC_INDEX_CHECK)
587 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
591 template <
class VS,
class V,
class E>
friend E _vsvcimult(
const VS & sl,
const V &rv)
592 #if(CXSC_INDEX_CHECK)
593 throw(ERROR__OP_WITH_WRONG_DIM<V>);
599 template <
class M,
class V,
class E>
friend E _mvcimult(
const M &m,
const V &v)
600 #if(CXSC_INDEX_CHECK)
601 throw(ERROR__OP_WITH_WRONG_DIM<M>);
605 template <
class MS,
class V,
class E>
friend E _msvcimult(
const MS &ms,
const V &v)
606 #if(CXSC_INDEX_CHECK)
607 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
611 template <
class V,
class M,
class E>
friend E _vmcimult(
const V &v,
const M &m)
612 #if(CXSC_INDEX_CHECK)
613 throw(ERROR__OP_WITH_WRONG_DIM<M>);
617 template <
class V,
class MS,
class E>
friend E _vmscimult(
const V &v,
const MS &ms)
618 #if(CXSC_INDEX_CHECK)
619 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
625 template <
class V1,
class V2>
friend V1 &_vvsetim(V1 &rv1,
const V2 &rv2)
626 #if(CXSC_INDEX_CHECK)
627 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
631 template <
class V1,
class V2>
friend V1 &_vvsetre(V1 &rv1,
const V2 &rv2)
632 #if(CXSC_INDEX_CHECK)
633 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
637 template <
class V,
class E>
friend E _vim(
const V &rv)
throw();
638 template <
class V,
class E>
friend E _vre(
const V &rv)
throw();
640 template <
class VS,
class V>
friend VS &_vsvsetim(VS &sl,
const V &rv)
641 #if(CXSC_INDEX_CHECK)
642 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
646 template <
class VS,
class V>
friend VS &_vsvsetre(VS &sl,
const V &rv)
647 #if(CXSC_INDEX_CHECK)
648 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
652 template <
class MV,
class V>
friend MV &_mvvsetre(MV &v,
const V &rv)
653 #if(CXSC_INDEX_CHECK)
654 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
658 template <
class MV,
class V>
friend MV &_mvvsetim(MV &v,
const V &rv)
659 #if(CXSC_INDEX_CHECK)
660 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
664 template <
class MV,
class V>
friend V _mvim(
const MV &mv)
throw();
665 template <
class MV,
class V>
friend V _mvre(
const MV &mv)
throw();
669 template <
class VS1,
class VS2,
class E>
friend E _vsvscimult(
const VS1 & sl1,
const VS2 &sl2)
670 #if(CXSC_INDEX_CHECK)
671 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
681 template <
class V1,
class V2,
class E>
friend E _vvlimult(
const V1 & rv1,
const V2 &rv2)
682 #if(CXSC_INDEX_CHECK)
683 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
687 template <
class VS,
class V,
class E>
friend E _vsvlimult(
const VS & sl,
const V &rv)
688 #if(CXSC_INDEX_CHECK)
689 throw(ERROR__OP_WITH_WRONG_DIM<V>);
695 template <
class M,
class V,
class E>
friend E _mvlimult(
const M &m,
const V &v)
696 #if(CXSC_INDEX_CHECK)
697 throw(ERROR__OP_WITH_WRONG_DIM<M>);
701 template <
class MS,
class V,
class E>
friend E _msvlimult(
const MS &ms,
const V &v)
702 #if(CXSC_INDEX_CHECK)
703 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
707 template <
class V,
class M,
class E>
friend E _vmlimult(
const V &v,
const M &m)
708 #if(CXSC_INDEX_CHECK)
709 throw(ERROR__OP_WITH_WRONG_DIM<M>);
713 template <
class V,
class MS,
class E>
friend E _vmslimult(
const V &v,
const MS &ms)
714 #if(CXSC_INDEX_CHECK)
715 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
723 template <
class VS1,
class VS2,
class E>
friend E _vsvslimult(
const VS1 & sl1,
const VS2 &sl2)
724 #if(CXSC_INDEX_CHECK)
725 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
737 explicit INLINE
ivector(
const int &i)
throw();
739 explicit INLINE
ivector(
const class index &i)
throw();
742 explicit INLINE
ivector(
const int &i1,
const int &i2)
744 #if(CXSC_INDEX_CHECK)
745 throw(ERROR_IVECTOR_WRONG_BOUNDARIES,ERROR_IVECTOR_NO_MORE_MEMORY);
756 #if(CXSC_INDEX_CHECK)
757 throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ);
763 #if(CXSC_INDEX_CHECK)
764 throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ);
791 #if(CXSC_INDEX_CHECK)
792 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
798 #if(CXSC_INDEX_CHECK)
799 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
824 #if(CXSC_INDEX_CHECK)
825 throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ);
831 #if(CXSC_INDEX_CHECK)
832 throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ);
847 #if(CXSC_INDEX_CHECK)
848 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
854 #if(CXSC_INDEX_CHECK)
855 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
897 INLINE ~
ivector() {
delete [] dat; }
902 #if(CXSC_INDEX_CHECK)
903 throw(ERROR_IVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_IVECTOR_USE_OF_UNINITIALIZED_OBJ);
907 friend INLINE
int Lb(
const ivector &rv)
throw() {
return rv.l; }
910 friend INLINE
int Ub(
const ivector &rv)
throw() {
return rv.u; }
919 #if(CXSC_INDEX_CHECK)
920 throw(ERROR_IVECTOR_ELEMENT_NOT_IN_VEC);
927 #if(CXSC_INDEX_CHECK)
928 throw(ERROR_IVECTOR_ELEMENT_NOT_IN_VEC);
937 #if(CXSC_INDEX_CHECK)
938 throw(ERROR_IVECTOR_SUB_ARRAY_TOO_BIG);
944 #if(CXSC_INDEX_CHECK)
945 throw(ERROR_IVECTOR_SUB_ARRAY_TOO_BIG);
950 INLINE
operator void*()
throw();
977 #ifdef _CXSC_FRIEND_TPL
981 template <
class VS1,
class VS2>
friend VS1 & _vsvsassign(VS1 &sl1,
const VS2 &sl2)
982 #if(CXSC_INDEX_CHECK)
983 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
987 template <
class V,
class VS,
class S>
friend V & _vvsassign(V &rv,
const VS &sl)
throw();
988 template <
class VS,
class V>
friend VS & _vsvassign(VS &sl,
const V &rv)
989 #if(CXSC_INDEX_CHECK)
990 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
994 template <
class VS,
class S>
friend VS & _vssassign(VS &sl,
const S &r)
throw();
995 template <
class VS,
class V>
friend VS &_vsvsetinf(VS &sl,
const V &rv)
996 #if(CXSC_INDEX_CHECK)
997 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1001 template <
class VS,
class V>
friend VS &_vsvsetsup(VS &sl,
const V &rv)
1002 #if(CXSC_INDEX_CHECK)
1003 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1007 template <
class VS1,
class VS2>
friend VS1 &_vsvssetinf(VS1 &sl1,
const VS2 &sl2)
1008 #if(CXSC_INDEX_CHECK)
1009 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1013 template <
class VS1,
class VS2>
friend VS1 &_vsvssetsup(VS1 &sl1,
const VS2 &sl2)
1014 #if(CXSC_INDEX_CHECK)
1015 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1019 template <
class VS,
class V>
friend VS &_vsvusetinf(VS &sl,
const V &rv)
1020 #if(CXSC_INDEX_CHECK)
1021 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1025 template <
class VS,
class V>
friend VS &_vsvusetsup(VS &sl,
const V &rv)
1026 #if(CXSC_INDEX_CHECK)
1027 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1031 template <
class VS1,
class VS2>
friend VS1 &_vsvsusetinf(VS1 &sl1,
const VS2 &sl2)
1032 #if(CXSC_INDEX_CHECK)
1033 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1037 template <
class VS1,
class VS2>
friend VS1 &_vsvsusetsup(VS1 &sl1,
const VS2 &sl2)
1038 #if(CXSC_INDEX_CHECK)
1039 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1043 template <
class VS,
class S>
friend VS &_vsssetinf(VS &vs,
const S &s)
throw();
1044 template <
class VS,
class S>
friend VS &_vsssetsup(VS &vs,
const S &s)
throw();
1045 template <
class VS,
class S>
friend VS &_vssusetinf(VS &vs,
const S &s)
throw();
1046 template <
class VS,
class S>
friend VS &_vssusetsup(VS &vs,
const S &s)
throw();
1048 template <
class DP,
class VS,
class V>
friend void _vsvaccu(DP &dp,
const VS & sl,
const V &rv)
1049 #if(CXSC_INDEX_CHECK)
1050 throw(OP_WITH_WRONG_DIM);
1054 template <
class DP,
class VS1,
class VS2>
friend void _vsvsaccu(DP &dp,
const VS1 & sl1,
const VS2 &sl2)
1055 #if(CXSC_INDEX_CHECK)
1056 throw(OP_WITH_WRONG_DIM);
1061 template <
class VS,
class S,
class E>
friend E _vssdiv(
const VS &sl,
const S &s)
throw();
1062 template <
class VS,
class S,
class E>
friend E _vssmult(
const VS &sl,
const S &s)
throw();
1064 template <
class VS,
class V,
class E>
friend E _vsvimult(
const VS & sl,
const V &rv)
1065 #if(CXSC_INDEX_CHECK)
1066 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1070 template <
class VS,
class S>
friend VS &_vssmultassign(VS &rv,
const S &r)
throw();
1071 template <
class VS,
class S>
friend VS &_vssdivassign(VS &rv,
const S &r)
throw();
1072 template <
class V,
class VS,
class E>
friend E _vvsplus(
const V &rv,
const VS &sl)
1073 #if(CXSC_INDEX_CHECK)
1074 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1078 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
1079 #if(CXSC_INDEX_CHECK)
1080 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1084 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
1085 #if(CXSC_INDEX_CHECK)
1086 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1090 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
1091 #if(CXSC_INDEX_CHECK)
1092 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1096 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
1097 #if(CXSC_INDEX_CHECK)
1098 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1102 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
1103 #if(CXSC_INDEX_CHECK)
1104 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1108 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
1109 #if(CXSC_INDEX_CHECK)
1110 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1114 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
1115 #if(CXSC_INDEX_CHECK)
1116 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1120 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
1121 #if(CXSC_INDEX_CHECK)
1122 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1126 template <
class VS,
class V>
friend V _vsminus(
const VS &sl)
throw();
1127 template <
class V,
class VS,
class E>
friend E _vvsminus(
const V &rv,
const VS &sl)
1128 #if(CXSC_INDEX_CHECK)
1129 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1133 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
1134 #if(CXSC_INDEX_CHECK)
1135 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1139 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
1140 #if(CXSC_INDEX_CHECK)
1141 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1145 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
1146 #if(CXSC_INDEX_CHECK)
1147 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1151 template <
class V,
class VS>
friend V &_vvssectassign(V &rv,
const VS &sl)
1152 #if(CXSC_INDEX_CHECK)
1153 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1157 template <
class VS,
class V>
friend VS &_vsvsectassign(VS &sl,
const V &rv)
1158 #if(CXSC_INDEX_CHECK)
1159 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1163 template <
class VS1,
class VS2>
friend VS1 &_vsvssectassign(VS1 &sl1,
const VS2 &sl2)
1164 #if(CXSC_INDEX_CHECK)
1165 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1169 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
1170 #if(CXSC_INDEX_CHECK)
1171 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1175 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
1176 #if(CXSC_INDEX_CHECK)
1177 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1181 template <
class V,
class VS>
friend V &_vvsconvassign(V &rv,
const VS &sl)
1182 #if(CXSC_INDEX_CHECK)
1183 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1187 template <
class VS,
class V>
friend VS &_vsvconvassign(VS &sl,
const V &rv)
1188 #if(CXSC_INDEX_CHECK)
1189 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1193 template <
class VS1,
class VS2>
friend VS1 &_vsvsconvassign(VS1 &sl1,
const VS2 &sl2)
1194 #if(CXSC_INDEX_CHECK)
1195 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1199 template <
class VS,
class M,
class S>
friend VS &_vsmimultassign(VS &v,
const M &m)
1200 #if(CXSC_INDEX_CHECK)
1201 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1206 template <
class VS,
class V>
friend bool _vsveq(
const VS &sl,
const V &rv)
throw();
1207 template <
class VS,
class V>
friend bool _vsvneq(
const VS &sl,
const V &rv)
throw();
1208 template <
class VS,
class V>
friend bool _vsvless(
const VS &sl,
const V &rv)
throw();
1209 template <
class VS,
class V>
friend bool _vsvleq(
const VS &sl,
const V &rv)
throw();
1210 template <
class V,
class VS>
friend bool _vvsless(
const V &rv,
const VS &sl)
throw();
1211 template <
class V,
class VS>
friend bool _vvsleq(
const V &rv,
const VS &sl)
throw();
1212 template <
class VS,
class E>
friend E _vsabs(
const VS &sl)
throw();
1213 template <
class VS,
class E>
friend E _vsdiam(
const VS &sl)
throw();
1214 template <
class VS,
class E>
friend E _vsmid(
const VS &sl)
throw();
1215 template <
class VS,
class E>
friend E _vsinf(
const VS &sl)
throw();
1216 template <
class VS,
class E>
friend E _vssup(
const VS &sl)
throw();
1217 template <
class VS1,
class VS2,
class E>
friend E _vsvsimult(
const VS1 & sl1,
const VS2 &sl2)
1218 #if(CXSC_INDEX_CHECK)
1219 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1223 template <
class VS1,
class VS2>
friend bool _vsvseq(
const VS1 &sl1,
const VS2 &sl2)
throw();
1224 template <
class VS1,
class VS2>
friend bool _vsvsneq(
const VS1 &sl1,
const VS2 &sl2)
throw();
1225 template <
class VS1,
class VS2>
friend bool _vsvsless(
const VS1 &sl1,
const VS2 &sl2)
throw();
1226 template <
class VS1,
class VS2>
friend bool _vsvsleq(
const VS1 &sl1,
const VS2 &sl2)
throw();
1227 template <
class VS>
friend bool _vsnot(
const VS &sl)
throw();
1228 template <
class VS>
friend void *_vsvoid(
const VS &sl)
throw();
1229 template <
class V>
friend std::ostream &_vsout(std::ostream &s,
const V &rv)
throw();
1230 template <
class V>
friend std::istream &_vsin(std::istream &s, V &rv)
throw();
1233 template <
class V,
class MS,
class E>
friend E _vmsimult(
const V &v,
const MS &ms)
1234 #if(CXSC_INDEX_CHECK)
1235 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1241 template <
class VS,
class V,
class E>
friend E _vsvcimult(
const VS & sl,
const V &rv)
1242 #if(CXSC_INDEX_CHECK)
1243 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1247 template <
class V,
class VS>
friend V &_vvssetim(V &rv,
const VS &sl)
1248 #if(CXSC_INDEX_CHECK)
1249 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1253 template <
class V,
class VS>
friend V &_vvssetre(V &rv,
const VS &sl)
1254 #if(CXSC_INDEX_CHECK)
1255 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1259 template <
class VS1,
class VS2>
friend VS1 &_vsvssetim(VS1 &sl1,
const VS2 &sl2)
1260 #if(CXSC_INDEX_CHECK)
1261 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1265 template <
class VS1,
class VS2>
friend VS1 &_vsvssetre(VS1 &sl1,
const VS2 &sl2)
1266 #if(CXSC_INDEX_CHECK)
1267 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1274 template <
class VS1,
class VS2,
class E>
friend E _vsvscimult(
const VS1 & sl1,
const VS2 &sl2)
1275 #if(CXSC_INDEX_CHECK)
1276 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1284 template <
class VS1,
class VS2,
class E>
friend E _vsvslimult(
const VS1 & sl1,
const VS2 &sl2)
1285 #if(CXSC_INDEX_CHECK)
1286 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1294 template <
class VS,
class V,
class E>
friend E _vsvlimult(
const VS & sl,
const V &rv)
1295 #if(CXSC_INDEX_CHECK)
1296 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1306 explicit INLINE
ivector_slice(
ivector &a,
const int &lb,
const int &ub)
throw():dat(a.dat),l(a.l),u(a.u),size(ub-lb+1),start(lb),end(ub) { }
1308 explicit INLINE
ivector_slice(
ivector_slice &a,
const int &lb,
const int &ub)
throw():dat(a.dat),l(a.l),u(a.u),size(ub-lb+1),start(lb),end(ub) { }
1325 #if(CXSC_INDEX_CHECK)
1326 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1332 #if(CXSC_INDEX_CHECK)
1333 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1341 #if(CXSC_INDEX_CHECK)
1342 throw(ERROR__OP_WITH_WRONG_DIM<ivector>,ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ);
1348 #if(CXSC_INDEX_CHECK)
1349 throw(ERROR__OP_WITH_WRONG_DIM<ivector>,ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ);
1358 #if(CXSC_INDEX_CHECK)
1359 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1365 #if(CXSC_INDEX_CHECK)
1366 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1374 #if(CXSC_INDEX_CHECK)
1375 throw(ERROR__OP_WITH_WRONG_DIM<rvector>,ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
1381 #if(CXSC_INDEX_CHECK)
1382 throw(ERROR__OP_WITH_WRONG_DIM<rvector>,ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
1392 #if(CXSC_INDEX_CHECK)
1393 throw(ERROR_IVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_IVECTOR_USE_OF_UNINITIALIZED_OBJ);
1397 friend INLINE
int Lb(
const ivector_slice &sl)
throw() {
return sl.start; }
1405 #if(CXSC_INDEX_CHECK)
1406 throw(ERROR_IVECTOR_ELEMENT_NOT_IN_VEC);
1413 #if(CXSC_INDEX_CHECK)
1414 throw(ERROR_IVECTOR_ELEMENT_NOT_IN_VEC);
1423 #if(CXSC_INDEX_CHECK)
1424 throw(ERROR_IVECTOR_SUB_ARRAY_TOO_BIG);
1430 #if(CXSC_INDEX_CHECK)
1431 throw(ERROR_IVECTOR_SUB_ARRAY_TOO_BIG);
1444 #if(CXSC_INDEX_CHECK)
1445 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1451 #if(CXSC_INDEX_CHECK)
1452 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM);
1460 #if(CXSC_INDEX_CHECK)
1461 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1467 #if(CXSC_INDEX_CHECK)
1468 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1474 #if(CXSC_INDEX_CHECK)
1475 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1481 #if(CXSC_INDEX_CHECK)
1482 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1488 #if(CXSC_INDEX_CHECK)
1489 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1495 #if(CXSC_INDEX_CHECK)
1496 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1502 #if(CXSC_INDEX_CHECK)
1503 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1509 #if(CXSC_INDEX_CHECK)
1510 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1517 #if(CXSC_INDEX_CHECK)
1518 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1524 #if(CXSC_INDEX_CHECK)
1525 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1531 #if(CXSC_INDEX_CHECK)
1532 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1538 #if(CXSC_INDEX_CHECK)
1539 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1545 #if(CXSC_INDEX_CHECK)
1546 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1552 #if(CXSC_INDEX_CHECK)
1553 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1559 #if(CXSC_INDEX_CHECK)
1560 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1566 #if(CXSC_INDEX_CHECK)
1567 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1571 INLINE
operator void*()
throw();
1610 INLINE ivector
_ivector(
const interval &r)
throw();
1614 INLINE ivector
_ivector(
const real &r)
throw();
1616 INLINE ivector
_ivector(
const rvector_slice &rs)
throw();
1618 INLINE ivector
_ivector(
const rvector &rs)
throw();
1622 INLINE ivector
_ivector(
const rmatrix_subv &rs)
throw();
1625 INLINE ivector &SetInf(ivector &iv,
const rvector &rv)
1626 #if(CXSC_INDEX_CHECK)
1627 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1631 INLINE ivector_slice &SetInf(ivector_slice &iv,
const rvector &rv)
1633 #if(CXSC_INDEX_CHECK)
1634 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1638 INLINE ivector &SetInf(ivector &iv,
const rvector_slice &rv)
1640 #if(CXSC_INDEX_CHECK)
1641 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1645 INLINE ivector_slice &SetInf(ivector_slice &iv,
const rvector_slice &rv)
1647 #if(CXSC_INDEX_CHECK)
1648 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1652 INLINE ivector &UncheckedSetInf(ivector &iv,
const rvector &rv)
1654 #if(CXSC_INDEX_CHECK)
1655 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1659 INLINE ivector_slice &UncheckedSetInf(ivector_slice &iv,
const rvector &rv)
1661 #if(CXSC_INDEX_CHECK)
1662 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1666 INLINE ivector &UncheckedSetInf(ivector &iv,
const rvector_slice &rv)
1668 #if(CXSC_INDEX_CHECK)
1669 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1673 INLINE ivector_slice &UncheckedSetInf(ivector_slice &iv,
const rvector_slice &rv)
1675 #if(CXSC_INDEX_CHECK)
1676 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1682 INLINE ivector &SetSup(ivector &iv,
const rvector &rv)
1683 #if(CXSC_INDEX_CHECK)
1684 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1688 INLINE ivector_slice &SetSup(ivector_slice &iv,
const rvector &rv)
1690 #if(CXSC_INDEX_CHECK)
1691 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1695 INLINE ivector &SetSup(ivector &iv,
const rvector_slice &rv)
1697 #if(CXSC_INDEX_CHECK)
1698 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1702 INLINE ivector_slice &SetSup(ivector_slice &iv,
const rvector_slice &rv)
1704 #if(CXSC_INDEX_CHECK)
1705 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1709 INLINE ivector &UncheckedSetSup(ivector &iv,
const rvector &rv)
1711 #if(CXSC_INDEX_CHECK)
1712 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1716 INLINE ivector_slice &UncheckedSetSup(ivector_slice &iv,
const rvector &rv)
1718 #if(CXSC_INDEX_CHECK)
1719 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1723 INLINE ivector &UncheckedSetSup(ivector &iv,
const rvector_slice &rv)
1725 #if(CXSC_INDEX_CHECK)
1726 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1730 INLINE ivector_slice &UncheckedSetSup(ivector_slice &iv,
const rvector_slice &rv)
1732 #if(CXSC_INDEX_CHECK)
1733 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM);
1739 INLINE ivector &SetSup(ivector &iv,
const real &r)
throw();
1741 INLINE ivector &SetInf(ivector &iv,
const real &r)
throw();
1743 INLINE ivector &UncheckedSetSup(ivector &iv,
const real &r)
throw();
1747 INLINE ivector_slice &SetSup(ivector_slice &iv,
const real &r)
throw();
1749 INLINE ivector_slice &SetInf(ivector_slice &iv,
const real &r)
throw();
1751 INLINE ivector_slice &UncheckedSetSup(ivector_slice &iv,
const real &r)
throw();
1753 INLINE ivector_slice &
SetUncheckedInf(ivector_slice &iv,
const real &r)
throw();
1756 INLINE
void Resize(ivector &rv)
throw();
1758 INLINE
void Resize(ivector &rv,
const int &len)
1759 #if(CXSC_INDEX_CHECK)
1760 throw(ERROR__WRONG_BOUNDARIES<ivector>);
1764 INLINE
void Resize(ivector &rv,
const int &lb,
const int &ub)
1766 #if(CXSC_INDEX_CHECK)
1767 throw(ERROR__WRONG_BOUNDARIES<ivector>);
1773 INLINE ivector
abs(
const ivector &rv)
throw();
1775 INLINE ivector
abs(
const ivector_slice &sl)
throw();
1777 INLINE rvector
absmin(
const ivector &rv)
throw();
1779 INLINE rvector
absmax(
const ivector_slice &sl)
throw();
1781 INLINE rvector
absmin(
const ivector &rv)
throw();
1783 INLINE rvector
absmax(
const ivector_slice &sl)
throw();
1785 INLINE rvector
diam(
const ivector &v)
throw();
1787 INLINE rvector
diam(
const ivector_slice &v)
throw();
1789 INLINE rvector
mid(
const ivector &v)
throw();
1791 INLINE rvector
mid(
const ivector_slice &v)
throw();
1793 INLINE rvector Inf(
const ivector &v)
throw();
1795 INLINE rvector Inf(
const ivector_slice &v)
throw();
1797 INLINE rvector Sup(
const ivector &v)
throw();
1799 INLINE rvector Sup(
const ivector_slice &v)
throw();
1801 INLINE
bool operator !(
const ivector &rv)
throw();
1803 INLINE
bool operator !(
const ivector_slice &sl)
throw();
1810 INLINE ivector
operator *(
const ivector &rv,
const interval &s)
throw();
1812 INLINE ivector
operator *(
const ivector_slice &sl,
const interval &s)
throw();
1814 INLINE ivector
operator *(
const interval &s,
const ivector &rv)
throw();
1816 INLINE ivector
operator *(
const interval &s,
const ivector_slice &sl)
throw();
1818 INLINE ivector &
operator *=(ivector &rv,
const interval &r)
throw();
1821 INLINE ivector
operator /(
const ivector &rv,
const interval &s)
throw();
1823 INLINE ivector
operator /(
const ivector_slice &sl,
const interval &s)
throw();
1825 INLINE ivector &
operator /=(ivector &rv,
const interval &r)
throw();
1830 INLINE ivector
operator *(
const ivector &rv,
const real &s)
throw();
1832 INLINE ivector
operator *(
const ivector_slice &sl,
const real &s)
throw();
1834 INLINE ivector
operator *(
const real &s,
const ivector &rv)
throw();
1836 INLINE ivector
operator *(
const real &s,
const ivector_slice &sl)
throw();
1838 INLINE ivector &
operator *=(ivector &rv,
const real &r)
throw();
1841 INLINE ivector
operator /(
const ivector &rv,
const real &s)
throw();
1843 INLINE ivector
operator /(
const ivector_slice &sl,
const real &s)
throw();
1845 INLINE ivector &
operator /=(ivector &rv,
const real &r)
throw();
1848 INLINE ivector
operator *(
const rvector &rv,
const interval &s)
throw();
1850 INLINE ivector
operator *(
const rvector_slice &sl,
const interval &s)
throw();
1852 INLINE ivector
operator *(
const interval &s,
const rvector &rv)
throw();
1854 INLINE ivector
operator *(
const interval &s,
const rvector_slice &sl)
throw();
1857 INLINE ivector
operator /(
const rvector &rv,
const interval &s)
throw();
1859 INLINE ivector
operator /(
const rvector_slice &sl,
const interval &s)
throw();
1865 INLINE std::ostream &operator <<(std::ostream &s,
const ivector &rv)
throw();
1867 INLINE std::ostream &operator <<(std::ostream &o,
const ivector_slice &sl)
throw();
1869 INLINE std::istream &operator >>(std::istream &s, ivector &rv)
throw();
1871 INLINE std::istream &operator >>(std::istream &s, ivector_slice &rv)
throw();
1876 void accumulate(idotprecision &dp,
const ivector &);
1879 void accumulate(idotprecision &dp,
const rvector &);
1882 void accumulate(idotprecision &dp,
const ivector & rv1,
const ivector &rv2)
1883 #if(CXSC_INDEX_CHECK)
1884 throw(OP_WITH_WRONG_DIM);
1888 void accumulate(idotprecision &dp,
const ivector_slice & sl,
const ivector &rv)
1890 #if(CXSC_INDEX_CHECK)
1891 throw(OP_WITH_WRONG_DIM);
1895 void accumulate(idotprecision &dp,
const ivector &rv,
const ivector_slice &sl)
1897 #if(CXSC_INDEX_CHECK)
1898 throw(OP_WITH_WRONG_DIM);
1902 void accumulate(idotprecision &dp,
const ivector & rv1,
const imatrix_subv &rv2)
1904 #if(CXSC_INDEX_CHECK)
1905 throw(OP_WITH_WRONG_DIM);
1909 void accumulate(idotprecision &dp,
const imatrix_subv & rv1,
const ivector &rv2)
1911 #if(CXSC_INDEX_CHECK)
1912 throw(OP_WITH_WRONG_DIM);
1916 void accumulate(idotprecision &dp,
const ivector_slice & rv1,
const imatrix_subv &rv2)
1918 #if(CXSC_INDEX_CHECK)
1919 throw(OP_WITH_WRONG_DIM);
1923 void accumulate(idotprecision &dp,
const imatrix_subv & rv1,
const ivector_slice &rv2)
1925 #if(CXSC_INDEX_CHECK)
1926 throw(OP_WITH_WRONG_DIM);
1930 void accumulate(idotprecision &dp,
const ivector_slice & sl1,
const ivector_slice &sl2)
1932 #if(CXSC_INDEX_CHECK)
1933 throw(OP_WITH_WRONG_DIM);
1937 void accumulate(cidotprecision &dp,
const ivector & rv1,
const ivector &rv2)
1939 #if(CXSC_INDEX_CHECK)
1940 throw(OP_WITH_WRONG_DIM);
1944 void accumulate(cidotprecision &dp,
const ivector_slice & sl,
const ivector &rv)
1946 #if(CXSC_INDEX_CHECK)
1947 throw(OP_WITH_WRONG_DIM);
1951 void accumulate(cidotprecision &dp,
const ivector &rv,
const ivector_slice &sl)
1953 #if(CXSC_INDEX_CHECK)
1954 throw(OP_WITH_WRONG_DIM);
1958 void accumulate(cidotprecision &dp,
const ivector & rv1,
const imatrix_subv &rv2)
1960 #if(CXSC_INDEX_CHECK)
1961 throw(OP_WITH_WRONG_DIM);
1965 void accumulate(cidotprecision &dp,
const imatrix_subv & rv1,
const ivector &rv2)
1967 #if(CXSC_INDEX_CHECK)
1968 throw(OP_WITH_WRONG_DIM);
1972 void accumulate(cidotprecision &dp,
const ivector_slice & sl1,
const ivector_slice &sl2)
1974 #if(CXSC_INDEX_CHECK)
1975 throw(OP_WITH_WRONG_DIM);
1981 INLINE interval
operator *(
const ivector & rv1,
const ivector &rv2)
1982 #if(CXSC_INDEX_CHECK)
1983 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1987 INLINE interval
operator *(
const ivector_slice &sl,
const ivector &rv)
1989 #if(CXSC_INDEX_CHECK)
1990 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
1994 INLINE interval
operator *(
const ivector &rv,
const ivector_slice &sl)
1996 #if(CXSC_INDEX_CHECK)
1997 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2001 INLINE interval
operator *(
const ivector_slice & sl1,
const ivector_slice &sl2)
2003 #if(CXSC_INDEX_CHECK)
2004 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2010 INLINE
const ivector &operator +(
const ivector &rv)
throw();
2012 INLINE ivector operator +(
const ivector_slice &sl)
throw();
2015 INLINE ivector operator +(
const ivector &rv1,
const ivector &rv2)
2016 #if(CXSC_INDEX_CHECK)
2017 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2021 INLINE ivector operator +(
const ivector &rv,
const ivector_slice &sl)
2023 #if(CXSC_INDEX_CHECK)
2024 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2028 INLINE ivector operator +(
const ivector_slice &sl,
const ivector &rv)
2030 #if(CXSC_INDEX_CHECK)
2031 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2035 INLINE ivector operator +(
const ivector_slice &sl1,
const ivector_slice &sl2)
2037 #if(CXSC_INDEX_CHECK)
2038 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2042 INLINE ivector &
operator +=(ivector &rv1,
const ivector &rv2)
2044 #if(CXSC_INDEX_CHECK)
2045 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2049 INLINE ivector &
operator +=(ivector &rv,
const ivector_slice &sl)
2051 #if(CXSC_INDEX_CHECK)
2052 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2058 INLINE ivector operator -(
const ivector &rv)
throw();
2060 INLINE ivector operator -(
const ivector_slice &sl)
throw();
2062 INLINE ivector operator -(
const ivector &rv1,
const ivector &rv2)
2063 #if(CXSC_INDEX_CHECK)
2064 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2068 INLINE ivector operator -(
const ivector &rv,
const ivector_slice &sl)
2070 #if(CXSC_INDEX_CHECK)
2071 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2075 INLINE ivector operator -(
const ivector_slice &sl,
const ivector &rv)
2077 #if(CXSC_INDEX_CHECK)
2078 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2082 INLINE ivector operator -(
const ivector_slice &sl1,
const ivector_slice &sl2)
2084 #if(CXSC_INDEX_CHECK)
2085 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2089 INLINE ivector & operator -=(ivector &rv1,
const ivector &rv2)
2091 #if(CXSC_INDEX_CHECK)
2092 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2096 INLINE ivector &operator -=(ivector &rv,
const ivector_slice &sl)
2098 #if(CXSC_INDEX_CHECK)
2099 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2105 INLINE ivector operator |(
const ivector &rv1,
const ivector &rv2)
2106 #if(CXSC_INDEX_CHECK)
2107 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2111 INLINE ivector operator |(
const ivector &rv,
const ivector_slice &sl)
2113 #if(CXSC_INDEX_CHECK)
2114 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2118 INLINE ivector operator |(
const ivector_slice &sl,
const ivector &rv)
2120 #if(CXSC_INDEX_CHECK)
2121 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2125 INLINE ivector operator |(
const ivector_slice &sl1,
const ivector_slice &sl2)
2127 #if(CXSC_INDEX_CHECK)
2128 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2132 INLINE ivector & operator |=(ivector &rv1,
const ivector &rv2)
2134 #if(CXSC_INDEX_CHECK)
2135 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2139 INLINE ivector &operator |=(ivector &rv,
const ivector_slice &sl)
2141 #if(CXSC_INDEX_CHECK)
2142 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2148 INLINE ivector operator &(
const ivector &rv1,
const ivector &rv2)
2149 #if(CXSC_INDEX_CHECK)
2150 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2154 INLINE ivector operator &(
const ivector &rv,
const ivector_slice &sl)
2156 #if(CXSC_INDEX_CHECK)
2157 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2161 INLINE ivector operator &(
const ivector_slice &sl,
const ivector &rv)
2163 #if(CXSC_INDEX_CHECK)
2164 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2168 INLINE ivector operator &(
const ivector_slice &sl1,
const ivector_slice &sl2)
2170 #if(CXSC_INDEX_CHECK)
2171 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2175 INLINE ivector & operator &=(ivector &rv1,
const ivector &rv2)
2177 #if(CXSC_INDEX_CHECK)
2178 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2182 INLINE ivector &operator &=(ivector &rv,
const ivector_slice &sl)
2184 #if(CXSC_INDEX_CHECK)
2185 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2191 INLINE
bool operator ==(
const ivector &rv1,
const ivector &rv2)
throw();
2193 INLINE
bool operator ==(
const ivector_slice &sl1,
const ivector_slice &sl2)
throw();
2195 INLINE
bool operator ==(
const ivector_slice &sl,
const ivector &rv)
throw();
2197 INLINE
bool operator ==(
const ivector &rv,
const ivector_slice &sl)
throw();
2199 INLINE
bool operator !=(
const ivector &rv1,
const ivector &rv2)
throw();
2201 INLINE
bool operator !=(
const ivector_slice &sl1,
const ivector_slice &sl2)
throw();
2203 INLINE
bool operator !=(
const ivector_slice &sl,
const ivector &rv)
throw();
2205 INLINE
bool operator !=(
const ivector &rv,
const ivector_slice &sl)
throw();
2207 INLINE
bool operator <(
const ivector &rv1,
const ivector &rv2)
throw();
2209 INLINE
bool operator <(
const ivector_slice &sl1,
const ivector_slice &sl2)
throw();
2211 INLINE
bool operator < (
const ivector_slice &sl,
const ivector &rv)
throw();
2213 INLINE
bool operator < (
const ivector &rv,
const ivector_slice &sl)
throw();
2215 INLINE
bool operator <=(
const ivector &rv1,
const ivector &rv2)
throw();
2217 INLINE
bool operator <=(
const ivector_slice &sl1,
const ivector_slice &sl2)
throw();
2219 INLINE
bool operator <=(
const ivector_slice &sl,
const ivector &rv)
throw();
2221 INLINE
bool operator <=(
const ivector &rv,
const ivector_slice &sl)
throw();
2223 INLINE
bool operator >(
const ivector &rv1,
const ivector &rv2)
throw();
2225 INLINE
bool operator >(
const ivector_slice &sl1,
const ivector_slice &sl2)
throw();
2227 INLINE
bool operator >(
const ivector_slice &sl,
const ivector &rv)
throw();
2229 INLINE
bool operator >(
const ivector &rv,
const ivector_slice &sl)
throw();
2231 INLINE
bool operator >=(
const ivector &rv1,
const ivector &rv2)
throw();
2233 INLINE
bool operator >=(
const ivector_slice &sl1,
const ivector_slice &sl2)
throw();
2235 INLINE
bool operator >=(
const ivector_slice &sl,
const ivector &rv)
throw();
2237 INLINE
bool operator >=(
const ivector &rv,
const ivector_slice &sl)
throw();
2242 void accumulate(idotprecision &dp,
const rvector & rv1,
const ivector &rv2)
2243 #if(CXSC_INDEX_CHECK)
2244 throw(OP_WITH_WRONG_DIM);
2248 void accumulate(idotprecision &dp,
const ivector & rv1,
const rvector &rv2)
2250 #if(CXSC_INDEX_CHECK)
2251 throw(OP_WITH_WRONG_DIM);
2255 void accumulate(idotprecision &dp,
const rvector_slice & sl,
const ivector &rv)
2257 #if(CXSC_INDEX_CHECK)
2258 throw(OP_WITH_WRONG_DIM);
2262 void accumulate(idotprecision &dp,
const ivector_slice &sl,
const rvector &rv)
2264 #if(CXSC_INDEX_CHECK)
2265 throw(OP_WITH_WRONG_DIM);
2269 void accumulate(idotprecision &dp,
const rvector &rv,
const ivector_slice &sl)
2271 #if(CXSC_INDEX_CHECK)
2272 throw(OP_WITH_WRONG_DIM);
2276 void accumulate(idotprecision &dp,
const rvector & rv1,
const imatrix_subv &rv2)
2278 #if(CXSC_INDEX_CHECK)
2279 throw(OP_WITH_WRONG_DIM);
2283 void accumulate(idotprecision &dp,
const ivector & rv1,
const rmatrix_subv &rv2)
2285 #if(CXSC_INDEX_CHECK)
2286 throw(OP_WITH_WRONG_DIM);
2290 void accumulate(idotprecision &dp,
const rvector_slice & rv1,
const imatrix_subv &rv2)
2292 #if(CXSC_INDEX_CHECK)
2293 throw(OP_WITH_WRONG_DIM);
2297 void accumulate(idotprecision &dp,
const ivector_slice & rv1,
const rmatrix_subv &rv2)
2299 #if(CXSC_INDEX_CHECK)
2300 throw(OP_WITH_WRONG_DIM);
2304 void accumulate(idotprecision &dp,
const ivector &rv,
const rvector_slice &sl)
2306 #if(CXSC_INDEX_CHECK)
2307 throw(OP_WITH_WRONG_DIM);
2311 void accumulate(idotprecision &dp,
const rmatrix_subv & rv1,
const ivector &rv2)
2313 #if(CXSC_INDEX_CHECK)
2314 throw(OP_WITH_WRONG_DIM);
2318 void accumulate(idotprecision &dp,
const imatrix_subv & rv1,
const rvector &rv2)
2320 #if(CXSC_INDEX_CHECK)
2321 throw(OP_WITH_WRONG_DIM);
2325 void accumulate(idotprecision &dp,
const rmatrix_subv & rv1,
const ivector_slice &rv2)
2327 #if(CXSC_INDEX_CHECK)
2328 throw(OP_WITH_WRONG_DIM);
2332 void accumulate(idotprecision &dp,
const imatrix_subv & rv1,
const rvector_slice &rv2)
2334 #if(CXSC_INDEX_CHECK)
2335 throw(OP_WITH_WRONG_DIM);
2339 void accumulate(idotprecision &dp,
const ivector_slice & sl1,
const rvector_slice &sl2)
2341 #if(CXSC_INDEX_CHECK)
2342 throw(OP_WITH_WRONG_DIM);
2346 void accumulate(idotprecision &dp,
const rvector_slice & sl1,
const ivector_slice &sl2)
2348 #if(CXSC_INDEX_CHECK)
2349 throw(OP_WITH_WRONG_DIM);
2353 void accumulate(cidotprecision &dp,
const rvector & rv1,
const ivector &rv2)
2355 #if(CXSC_INDEX_CHECK)
2356 throw(OP_WITH_WRONG_DIM);
2360 void accumulate(cidotprecision &dp,
const ivector & rv1,
const rvector &rv2)
2362 #if(CXSC_INDEX_CHECK)
2363 throw(OP_WITH_WRONG_DIM);
2367 void accumulate(cidotprecision &dp,
const rvector_slice & sl,
const ivector &rv)
2369 #if(CXSC_INDEX_CHECK)
2370 throw(OP_WITH_WRONG_DIM);
2374 void accumulate(cidotprecision &dp,
const ivector_slice &sl,
const rvector &rv)
2376 #if(CXSC_INDEX_CHECK)
2377 throw(OP_WITH_WRONG_DIM);
2381 void accumulate(cidotprecision &dp,
const rvector &rv,
const ivector_slice &sl)
2383 #if(CXSC_INDEX_CHECK)
2384 throw(OP_WITH_WRONG_DIM);
2388 void accumulate(cidotprecision &dp,
const rvector & rv1,
const imatrix_subv &rv2)
2390 #if(CXSC_INDEX_CHECK)
2391 throw(OP_WITH_WRONG_DIM);
2395 void accumulate(cidotprecision &dp,
const ivector & rv1,
const rmatrix_subv &rv2)
2397 #if(CXSC_INDEX_CHECK)
2398 throw(OP_WITH_WRONG_DIM);
2402 void accumulate(cidotprecision &dp,
const rvector_slice & rv1,
const imatrix_subv &rv2)
2404 #if(CXSC_INDEX_CHECK)
2405 throw(OP_WITH_WRONG_DIM);
2409 void accumulate(cidotprecision &dp,
const ivector_slice & rv1,
const rmatrix_subv &rv2)
2411 #if(CXSC_INDEX_CHECK)
2412 throw(OP_WITH_WRONG_DIM);
2416 void accumulate(cidotprecision &dp,
const ivector &rv,
const rvector_slice &sl)
2418 #if(CXSC_INDEX_CHECK)
2419 throw(OP_WITH_WRONG_DIM);
2423 void accumulate(cidotprecision &dp,
const rmatrix_subv & rv1,
const ivector &rv2)
2425 #if(CXSC_INDEX_CHECK)
2426 throw(OP_WITH_WRONG_DIM);
2430 void accumulate(cidotprecision &dp,
const imatrix_subv & rv1,
const rvector &rv2)
2432 #if(CXSC_INDEX_CHECK)
2433 throw(OP_WITH_WRONG_DIM);
2437 void accumulate(cidotprecision &dp,
const rmatrix_subv & rv1,
const ivector_slice &rv2)
2439 #if(CXSC_INDEX_CHECK)
2440 throw(OP_WITH_WRONG_DIM);
2444 void accumulate(cidotprecision &dp,
const imatrix_subv & rv1,
const rvector_slice &rv2)
2446 #if(CXSC_INDEX_CHECK)
2447 throw(OP_WITH_WRONG_DIM);
2451 void accumulate(cidotprecision &dp,
const ivector_slice & sl1,
const rvector_slice &sl2)
2453 #if(CXSC_INDEX_CHECK)
2454 throw(OP_WITH_WRONG_DIM);
2458 void accumulate(cidotprecision &dp,
const rvector_slice & sl1,
const ivector_slice &sl2)
2460 #if(CXSC_INDEX_CHECK)
2461 throw(OP_WITH_WRONG_DIM);
2467 INLINE interval
operator *(
const rvector & rv1,
const ivector &rv2)
2468 #if(CXSC_INDEX_CHECK)
2469 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2473 INLINE interval
operator *(
const rvector_slice &sl,
const ivector &rv)
2475 #if(CXSC_INDEX_CHECK)
2476 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2480 INLINE interval
operator *(
const rvector &rv,
const ivector_slice &sl)
2482 #if(CXSC_INDEX_CHECK)
2483 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2487 INLINE interval
operator *(
const rvector_slice & sl1,
const ivector_slice &sl2)
2489 #if(CXSC_INDEX_CHECK)
2490 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2496 INLINE interval
operator *(
const ivector & rv1,
const rvector &rv2)
2497 #if(CXSC_INDEX_CHECK)
2498 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2502 INLINE interval
operator *(
const ivector_slice &sl,
const rvector &rv)
2504 #if(CXSC_INDEX_CHECK)
2505 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2509 INLINE interval
operator *(
const ivector &rv,
const rvector_slice &sl)
2511 #if(CXSC_INDEX_CHECK)
2512 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2516 INLINE interval
operator *(
const ivector_slice & sl1,
const rvector_slice &sl2)
2518 #if(CXSC_INDEX_CHECK)
2519 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2525 INLINE ivector operator +(
const rvector &rv1,
const ivector &rv2)
2526 #if(CXSC_INDEX_CHECK)
2527 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2531 INLINE ivector operator +(
const rvector &rv,
const ivector_slice &sl)
2533 #if(CXSC_INDEX_CHECK)
2534 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2538 INLINE ivector operator +(
const rvector_slice &sl,
const ivector &rv)
2540 #if(CXSC_INDEX_CHECK)
2541 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2545 INLINE ivector operator +(
const rvector_slice &sl1,
const ivector_slice &sl2)
2547 #if(CXSC_INDEX_CHECK)
2548 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2554 INLINE ivector operator +(
const ivector &rv1,
const rvector &rv2)
2555 #if(CXSC_INDEX_CHECK)
2556 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2560 INLINE ivector operator +(
const ivector &rv,
const rvector_slice &sl)
2562 #if(CXSC_INDEX_CHECK)
2563 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2567 INLINE ivector operator +(
const ivector_slice &sl,
const rvector &rv)
2569 #if(CXSC_INDEX_CHECK)
2570 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2574 INLINE ivector operator +(
const ivector_slice &sl1,
const rvector_slice &sl2)
2576 #if(CXSC_INDEX_CHECK)
2577 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2583 INLINE ivector &
operator +=(ivector &rv1,
const rvector &rv2)
2584 #if(CXSC_INDEX_CHECK)
2585 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2589 INLINE ivector &
operator +=(ivector &rv,
const rvector_slice &sl)
2591 #if(CXSC_INDEX_CHECK)
2592 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2598 INLINE ivector operator -(
const rvector &rv1,
const ivector &rv2)
2599 #if(CXSC_INDEX_CHECK)
2600 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2604 INLINE ivector operator -(
const rvector &rv,
const ivector_slice &sl)
2606 #if(CXSC_INDEX_CHECK)
2607 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2611 INLINE ivector operator -(
const rvector_slice &sl,
const ivector &rv)
2613 #if(CXSC_INDEX_CHECK)
2614 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2618 INLINE ivector operator -(
const rvector_slice &sl1,
const ivector_slice &sl2)
2620 #if(CXSC_INDEX_CHECK)
2621 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2627 INLINE ivector operator -(
const ivector &rv1,
const rvector &rv2)
2628 #if(CXSC_INDEX_CHECK)
2629 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2633 INLINE ivector operator -(
const ivector &rv,
const rvector_slice &sl)
2635 #if(CXSC_INDEX_CHECK)
2636 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2640 INLINE ivector operator -(
const ivector_slice &sl,
const rvector &rv)
2642 #if(CXSC_INDEX_CHECK)
2643 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2647 INLINE ivector operator -(
const ivector_slice &sl1,
const rvector_slice &sl2)
2649 #if(CXSC_INDEX_CHECK)
2650 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2656 INLINE ivector & operator -=(ivector &rv1,
const rvector &rv2)
2657 #if(CXSC_INDEX_CHECK)
2658 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2662 INLINE ivector &operator -=(ivector &rv,
const rvector_slice &sl)
2664 #if(CXSC_INDEX_CHECK)
2665 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2671 INLINE ivector operator |(
const rvector &rv1,
const rvector &rv2)
2672 #if(CXSC_INDEX_CHECK)
2673 throw(ERROR__OP_WITH_WRONG_DIM<rvector>);
2677 INLINE ivector operator |(
const rvector &rv,
const rvector_slice &sl)
2679 #if(CXSC_INDEX_CHECK)
2680 throw(ERROR__OP_WITH_WRONG_DIM<rvector>);
2684 INLINE ivector operator |(
const rvector_slice &sl,
const rvector &rv)
2686 #if(CXSC_INDEX_CHECK)
2687 throw(ERROR__OP_WITH_WRONG_DIM<rvector>);
2691 INLINE ivector operator |(
const rvector_slice &sl1,
const rvector_slice &sl2)
2693 #if(CXSC_INDEX_CHECK)
2694 throw(ERROR__OP_WITH_WRONG_DIM<rvector>);
2698 INLINE ivector operator |(
const rvector &rv1,
const ivector &rv2)
2700 #if(CXSC_INDEX_CHECK)
2701 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2705 INLINE ivector operator |(
const rvector &rv,
const ivector_slice &sl)
2707 #if(CXSC_INDEX_CHECK)
2708 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2712 INLINE ivector operator |(
const rvector_slice &sl,
const ivector &rv)
2714 #if(CXSC_INDEX_CHECK)
2715 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2719 INLINE ivector operator |(
const rvector_slice &sl1,
const ivector_slice &sl2)
2721 #if(CXSC_INDEX_CHECK)
2722 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2728 INLINE ivector operator |(
const ivector &rv1,
const rvector &rv2)
2729 #if(CXSC_INDEX_CHECK)
2730 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2734 INLINE ivector operator |(
const ivector &rv,
const rvector_slice &sl)
2736 #if(CXSC_INDEX_CHECK)
2737 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2741 INLINE ivector operator |(
const ivector_slice &sl,
const rvector &rv)
2743 #if(CXSC_INDEX_CHECK)
2744 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2748 INLINE ivector operator |(
const ivector_slice &sl1,
const rvector_slice &sl2)
2750 #if(CXSC_INDEX_CHECK)
2751 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2757 INLINE ivector & operator |=(ivector &rv1,
const rvector &rv2)
2758 #if(CXSC_INDEX_CHECK)
2759 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2763 INLINE ivector &operator |=(ivector &rv,
const rvector_slice &sl)
2765 #if(CXSC_INDEX_CHECK)
2766 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2772 INLINE ivector operator &(
const rvector &rv1,
const ivector &rv2)
2773 #if(CXSC_INDEX_CHECK)
2774 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2778 INLINE ivector operator &(
const rvector &rv,
const ivector_slice &sl)
2780 #if(CXSC_INDEX_CHECK)
2781 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2785 INLINE ivector operator &(
const rvector_slice &sl,
const ivector &rv)
2787 #if(CXSC_INDEX_CHECK)
2788 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2792 INLINE ivector operator &(
const rvector_slice &sl1,
const ivector_slice &sl2)
2794 #if(CXSC_INDEX_CHECK)
2795 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2801 INLINE ivector operator &(
const ivector &rv1,
const rvector &rv2)
2802 #if(CXSC_INDEX_CHECK)
2803 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2807 INLINE ivector operator &(
const ivector &rv,
const rvector_slice &sl)
2809 #if(CXSC_INDEX_CHECK)
2810 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2814 INLINE ivector operator &(
const ivector_slice &sl,
const rvector &rv)
2816 #if(CXSC_INDEX_CHECK)
2817 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2821 INLINE ivector operator &(
const ivector_slice &sl1,
const rvector_slice &sl2)
2823 #if(CXSC_INDEX_CHECK)
2824 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2830 INLINE ivector & operator &=(ivector &rv1,
const rvector &rv2)
2831 #if(CXSC_INDEX_CHECK)
2832 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2836 INLINE ivector &operator &=(ivector &rv,
const rvector_slice &sl)
2838 #if(CXSC_INDEX_CHECK)
2839 throw(ERROR__OP_WITH_WRONG_DIM<ivector>);
2845 extern int in (
const ivector&,
const ivector& );
2847 extern int in (
int, ivector& );
2849 extern ivector
Blow (
const ivector&, real );
2851 extern int Disjoint ( ivector&, ivector& );
2853 extern int Zero ( ivector& );
2855 extern rvector
mid ( ivector& );
2859 extern real
MaxRelDiam (
const ivector_slice& );
2861 extern int UlpAcc ( ivector&,
int );
2868 #ifdef _CXSC_INCL_INL
2869 #include "vector.inl"
2870 #include "ivector.inl"
2873 #ifdef _CXSC_RMATRIX_HPP_INCLUDED
2874 # ifdef _CXSC_INCL_INL
2875 # include "ivecrmat.inl"
2877 # include "ivecrmat.hpp"
2881 #ifdef _CXSC_CMATRIX_HPP_INCLUDED
2882 # ifdef _CXSC_INCL_INL
2883 # include "iveccmat.inl"
2885 # include "iveccmat.hpp"
2889 #ifdef _CXSC_LRMATRIX_HPP_INCLUDED
2890 # ifdef _CXSC_INCL_INL
2891 # include "iveclrmat.inl"
2893 # include "iveclrmat.hpp"
2897 #ifdef _CXSC_CVECTOR_HPP_INCLUDED
2898 # ifdef _CXSC_INCL_INL
2899 # include "iveccvec.inl"
2901 # include "iveccvec.hpp"
2905 #ifdef _CXSC_LRVECTOR_HPP_INCLUDED
2906 # ifdef _CXSC_INCL_INL
2907 # include "lrvecivec.inl"
2909 # include "lrvecivec.hpp"
2913 #ifdef CXSC_USE_BLAS
2914 #define _CXSC_BLAS_IVECTOR
2915 #include "cxsc_blas.inl"