26 #ifndef _CXSC_CVECTOR_HPP_INCLUDED 27 #define _CXSC_CVECTOR_HPP_INCLUDED 29 #include "xscclass.hpp" 33 #include "complex.hpp" 35 #include "rvector.hpp" 69 double* to_blas_array()
const {
return (
double*)dat; }
71 #ifdef _CXSC_FRIEND_TPL 74 template <
class V,
class MS,
class S>
friend void _vmsconstr(V &v,
const MS &m)
76 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<MS>);
80 template <
class V,
class M,
class S>
friend void _vmconstr(V &v,
const M &m)
82 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<M>);
86 template <
class V>
friend void _vresize(V &rv)
throw();
87 template <
class V,
class S>
friend void _vresize(V &rv,
const int &len)
89 throw(ERROR__WRONG_BOUNDARIES<V>);
93 template <
class V,
class S>
friend void _vresize(V &rv,
const int &lb,
const int &ub)
95 throw(ERROR__WRONG_BOUNDARIES<V>);
99 template <
class V1,
class V2,
class S>
friend V1 &_vvassign(V1 &rv1,
const V2 &rv2)
throw();
100 template <
class V,
class S>
friend V & _vsassign(V &rv,
const S &r)
throw();
101 template <
class V,
class VS,
class S>
friend V & _vvsassign(V &rv,
const VS &sl)
throw();
102 template <
class VS,
class V>
friend VS & _vsvassign(VS &sl,
const V &rv)
103 #if(CXSC_INDEX_CHECK) 104 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
108 template <
class V,
class M,
class S>
friend V &_vmassign(V &v,
const M &m)
109 #if(CXSC_INDEX_CHECK) 110 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<M>);
114 template <
class M,
class V,
class S>
friend M &_mvassign(M &m,
const V &v)
throw();
115 template <
class V>
friend V _vconj(
const V &rv)
throw();
116 template <
class VS,
class E>
friend E _vsconj(
const VS &sl)
throw();
117 template <
class V,
class E>
friend E _vabs(
const V &rv)
throw();
118 template <
class VS,
class E>
friend E _vsabs(
const VS &sl)
throw();
119 template <
class MV,
class V>
friend V _mvabs(
const MV &mv)
throw();
120 template <
class V,
class E>
friend E _vim(
const V &rv)
throw();
121 template <
class V,
class E>
friend E _vre(
const V &rv)
throw();
122 template <
class V1,
class V2>
friend V1 &_vvsetim(V1 &rv1,
const V2 &rv2)
123 #if(CXSC_INDEX_CHECK) 124 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
128 template <
class V1,
class V2>
friend V1 &_vvsetre(V1 &rv1,
const V2 &rv2)
129 #if(CXSC_INDEX_CHECK) 130 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
134 template <
class V,
class VS>
friend V &_vvssetim(V &rv,
const VS &sl)
135 #if(CXSC_INDEX_CHECK) 136 throw(ERROR__OP_WITH_WRONG_DIM<V>);
140 template <
class V,
class VS>
friend V &_vvssetre(V &rv,
const VS &sl)
141 #if(CXSC_INDEX_CHECK) 142 throw(ERROR__OP_WITH_WRONG_DIM<V>);
146 template <
class V,
class MV>
friend V &_vmvsetim(V &rv,
const MV &v)
147 #if(CXSC_INDEX_CHECK) 148 throw(ERROR__OP_WITH_WRONG_DIM<V>);
152 template <
class V,
class MV>
friend V &_vmvsetre(V &rv,
const MV &v)
153 #if(CXSC_INDEX_CHECK) 154 throw(ERROR__OP_WITH_WRONG_DIM<V>);
158 template <
class V,
class S>
friend V &_vssetre(V &v,
const S &s)
throw();
159 template <
class V,
class S>
friend V &_vssetim(V &v,
const S &s)
throw();
162 template <
class DP,
class V1,
class V2>
friend void _vvaccu(DP &dp,
const V1 & rv1,
const V2 &rv2)
163 #if(CXSC_INDEX_CHECK) 164 throw(OP_WITH_WRONG_DIM);
168 template <
class DP,
class VS,
class V>
friend void _vsvaccu(DP &dp,
const VS & sl,
const V &rv)
169 #if(CXSC_INDEX_CHECK) 170 throw(OP_WITH_WRONG_DIM);
174 template <
class V1,
class V2,
class E>
friend E _vvcmult(
const V1 & rv1,
const V2 &rv2)
175 #if(CXSC_INDEX_CHECK) 176 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
180 template <
class VS,
class V,
class E>
friend E _vsvcmult(
const VS & sl,
const V &rv)
181 #if(CXSC_INDEX_CHECK) 182 throw(ERROR__OP_WITH_WRONG_DIM<V>);
186 template <
class V,
class S>
friend V &_vsmultassign(V &rv,
const S &r)
throw();
187 template <
class V1,
class V2,
class E>
friend E _vvplus(
const V1 &rv1,
const V2 &rv2)
188 #if(CXSC_INDEX_CHECK) 189 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
193 template <
class V,
class VS,
class E>
friend E _vvsplus(
const V &rv,
const VS &sl)
194 #if(CXSC_INDEX_CHECK) 195 throw(ERROR__OP_WITH_WRONG_DIM<V>);
199 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
200 #if(CXSC_INDEX_CHECK) 201 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
205 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
206 #if(CXSC_INDEX_CHECK) 207 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
211 template <
class V1,
class V2>
friend V1 &_vvplusassign(V1 &rv1,
const V2 &rv2)
212 #if(CXSC_INDEX_CHECK) 213 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
217 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
218 #if(CXSC_INDEX_CHECK) 219 throw(ERROR__OP_WITH_WRONG_DIM<V>);
223 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
224 #if(CXSC_INDEX_CHECK) 225 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
229 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
230 #if(CXSC_INDEX_CHECK) 231 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
235 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
236 #if(CXSC_INDEX_CHECK) 237 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
241 template <
class V1,
class V2>
friend V1 &_vvminusassign(V1 &rv1,
const V2 &rv2)
242 #if(CXSC_INDEX_CHECK) 243 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
247 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
248 #if(CXSC_INDEX_CHECK) 249 throw(ERROR__OP_WITH_WRONG_DIM<V>);
253 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
254 #if(CXSC_INDEX_CHECK) 255 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
259 template <
class V>
friend V _vminus(
const V &rv)
throw();
260 template <
class VS,
class V>
friend V _vsminus(
const VS &sl)
throw();
261 template <
class V1,
class V2,
class E>
friend E _vvminus(
const V1 &rv1,
const V2 &rv2)
262 #if(CXSC_INDEX_CHECK) 263 throw(ERROR__OP_WITH_WRONG_DIM<E>);
267 template <
class V,
class VS,
class E>
friend E _vvsminus(
const V &rv,
const VS &sl)
268 #if(CXSC_INDEX_CHECK) 269 throw(ERROR__OP_WITH_WRONG_DIM<E>);
273 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
274 #if(CXSC_INDEX_CHECK) 275 throw(ERROR__OP_WITH_WRONG_DIM<E>);
279 template <
class V,
class MV,
class S>
friend S _vmvcmult(
const V &rv1,
const MV &rv2)
280 #if(CXSC_INDEX_CHECK) 281 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
285 template <
class V,
class MV,
class S>
friend S _vmvcimult(
const V &rv1,
const MV &rv2)
286 #if(CXSC_INDEX_CHECK) 287 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
291 template <
class V1,
class V2,
class E>
friend E _vvconv(
const V1 &rv1,
const V2 &rv2)
292 #if(CXSC_INDEX_CHECK) 293 throw(ERROR__OP_WITH_WRONG_DIM<E>);
297 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
298 #if(CXSC_INDEX_CHECK) 299 throw(ERROR__OP_WITH_WRONG_DIM<E>);
303 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
304 #if(CXSC_INDEX_CHECK) 305 throw(ERROR__OP_WITH_WRONG_DIM<E>);
310 template <
class V,
class S,
class E>
friend E _vsdiv(
const V &rv,
const S &s)
throw();
311 template <
class V,
class S>
friend V &_vsdivassign(V &rv,
const S &r)
throw();
312 template <
class VS,
class S,
class E>
friend E _vssdiv(
const VS &sl,
const S &s)
throw();
313 template <
class V,
class S,
class E>
friend E _vsmult(
const V &rv,
const S &s)
throw();
314 template <
class VS,
class S,
class E>
friend E _vssmult(
const VS &sl,
const S &s)
throw();
315 template <
class MV,
class S,
class E>
friend E _mvsmult(
const MV &rv,
const S &s)
throw();
316 template <
class MV1,
class MV2,
class E>
friend E _mvmvplus(
const MV1 &rv1,
const MV2 &rv2)
317 #if(CXSC_INDEX_CHECK) 318 throw(ERROR__OP_WITH_WRONG_DIM<E>);
322 template <
class MV,
class V,
class E>
friend E _mvvplus(
const MV &rv1,
const V &rv2)
323 #if(CXSC_INDEX_CHECK) 324 throw(ERROR__OP_WITH_WRONG_DIM<E>);
328 template <
class MV,
class V,
class E>
friend E _mvvminus(
const MV &rv1,
const V &rv2)
329 #if(CXSC_INDEX_CHECK) 330 throw(ERROR__OP_WITH_WRONG_DIM<E>);
334 template <
class V,
class MV,
class E>
friend E _vmvminus(
const V &rv1,
const MV &rv2)
335 #if(CXSC_INDEX_CHECK) 336 throw(ERROR__OP_WITH_WRONG_DIM<E>);
340 template <
class MV1,
class MV2,
class E>
friend E _mvmvminus(
const MV1 &rv1,
const MV2 &rv2)
341 #if(CXSC_INDEX_CHECK) 342 throw(ERROR__OP_WITH_WRONG_DIM<E>);
346 template <
class MV,
class V>
friend MV &_mvvplusassign(MV &v,
const V &rv)
347 #if(CXSC_INDEX_CHECK) 348 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
352 template <
class MV,
class V>
friend MV &_mvvminusassign(MV &v,
const V &rv)
353 #if(CXSC_INDEX_CHECK) 354 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
358 template <
class MV,
class S,
class E>
friend E _mvsdiv(
const MV &rv,
const S &s)
throw();
359 template <
class MV,
class V>
friend MV &_mvvassign(MV &v,
const V &rv)
360 #if(CXSC_INDEX_CHECK) 361 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
365 template <
class DP,
class V,
class SV>
friend void _vmvaccu(DP &dp,
const V & rv1,
const SV &rv2)
366 #if(CXSC_INDEX_CHECK) 367 throw(OP_WITH_WRONG_DIM);
372 template <
class V1,
class V2>
friend bool _vveq(
const V1 &rv1,
const V2 &rv2)
throw();
373 template <
class VS,
class V>
friend bool _vsveq(
const VS &sl,
const V &rv)
throw();
374 template <
class V1,
class V2>
friend bool _vvneq(
const V1 &rv1,
const V2 &rv2)
throw();
375 template <
class VS,
class V>
friend bool _vsvneq(
const VS &sl,
const V &rv)
throw();
376 template <
class V1,
class V2>
friend bool _vvless(
const V1 &rv1,
const V2 &rv2)
throw();
377 template <
class VS,
class V>
friend bool _vsvless(
const VS &sl,
const V &rv)
throw();
378 template <
class V1,
class V2>
friend bool _vvleq(
const V1 &rv1,
const V2 &rv2)
throw();
379 template <
class VS,
class V>
friend bool _vsvleq(
const VS &sl,
const V &rv)
throw();
380 template <
class V,
class VS>
friend bool _vvsless(
const V &rv,
const VS &sl)
throw();
381 template <
class V,
class VS>
friend bool _vvsleq(
const V &rv,
const VS &sl)
throw();
382 template <
class V>
friend bool _vnot(
const V &rv)
throw();
383 template <
class V>
friend void *_vvoid(
const V &rv)
throw();
384 template <
class VS1,
class VS2>
friend bool _vsvseq(
const VS1 &sl1,
const VS2 &sl2)
throw();
385 template <
class VS1,
class VS2>
friend bool _vsvsneq(
const VS1 &sl1,
const VS2 &sl2)
throw();
386 template <
class VS1,
class VS2>
friend bool _vsvsless(
const VS1 &sl1,
const VS2 &sl2)
throw();
387 template <
class VS1,
class VS2>
friend bool _vsvsleq(
const VS1 &sl1,
const VS2 &sl2)
throw();
388 template <
class VS>
friend bool _vsnot(
const VS &sl)
throw();
389 template <
class VS>
friend void *_vsvoid(
const VS &sl)
throw();
390 template <
class V>
friend std::ostream &_vout(std::ostream &s,
const V &rv)
throw();
391 template <
class V>
friend std::istream &_vin(std::istream &s, V &rv)
throw();
394 template <
class V,
class MV2,
class S>
friend V &_vmvassign(V &v,
const MV2 &rv)
throw();
395 template <
class M,
class V,
class E>
friend E _mvcmult(
const M &m,
const V &v)
396 #if(CXSC_INDEX_CHECK) 397 throw(ERROR__OP_WITH_WRONG_DIM<M>);
401 template <
class M,
class V,
class E>
friend E _mvcimult(
const M &m,
const V &v)
402 #if(CXSC_INDEX_CHECK) 403 throw(ERROR__OP_WITH_WRONG_DIM<M>);
407 template <
class V,
class M,
class E>
friend E _vmcmult(
const V &v,
const M &m)
408 #if(CXSC_INDEX_CHECK) 409 throw(ERROR__OP_WITH_WRONG_DIM<M>);
413 template <
class V,
class M,
class E>
friend E _vmcimult(
const V &v,
const M &m)
414 #if(CXSC_INDEX_CHECK) 415 throw(ERROR__OP_WITH_WRONG_DIM<M>);
419 template <
class V,
class M,
class S>
friend V &_vmcmultassign(V &v,
const M &m)
420 #if(CXSC_INDEX_CHECK) 421 throw(ERROR__OP_WITH_WRONG_DIM<M>);
425 template <
class V,
class M,
class S>
friend V &_vmcimultassign(V &v,
const M &m)
426 #if(CXSC_INDEX_CHECK) 427 throw(ERROR__OP_WITH_WRONG_DIM<M>);
431 template <
class MS,
class V,
class E>
friend E _msvcmult(
const MS &ms,
const V &v)
432 #if(CXSC_INDEX_CHECK) 433 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
437 template <
class MS,
class V,
class E>
friend E _msvcimult(
const MS &ms,
const V &v)
438 #if(CXSC_INDEX_CHECK) 439 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
443 template <
class V,
class MS,
class E>
friend E _vmscmult(
const V &v,
const MS &ms)
444 #if(CXSC_INDEX_CHECK) 445 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
449 template <
class V,
class MS,
class E>
friend E _vmscimult(
const V &v,
const MS &ms)
450 #if(CXSC_INDEX_CHECK) 451 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
455 template <
class V,
class MS,
class S>
friend V &_vmscmultassign(V &v,
const MS &ms)
456 #if(CXSC_INDEX_CHECK) 457 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
461 template <
class V,
class MS,
class S>
friend V &_vmscimultassign(V &v,
const MS &ms)
462 #if(CXSC_INDEX_CHECK) 463 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
475 template <
class V1,
class V2,
class E>
friend E _vvcimult(
const V1 & rv1,
const V2 &rv2)
476 #if(CXSC_INDEX_CHECK) 477 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
481 template <
class VS,
class V,
class E>
friend E _vsvcimult(
const VS & sl,
const V &rv)
482 #if(CXSC_INDEX_CHECK) 483 throw(ERROR__OP_WITH_WRONG_DIM<V>);
487 template <
class VS1,
class VS2,
class E>
friend E _vsvscimult(
const VS1 & sl1,
const VS2 &sl2)
488 #if(CXSC_INDEX_CHECK) 489 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
493 template <
class V1,
class V2,
class E>
friend E _vvsect(
const V1 &rv1,
const V2 &rv2)
494 #if(CXSC_INDEX_CHECK) 495 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
499 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
500 #if(CXSC_INDEX_CHECK) 501 throw(ERROR__OP_WITH_WRONG_DIM<E>);
505 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
506 #if(CXSC_INDEX_CHECK) 507 throw(ERROR__OP_WITH_WRONG_DIM<E>);
514 template <
class V1,
class V2>
friend V1 &_vvsetinf(V1 &rv1,
const V2 &rv2)
515 #if(CXSC_INDEX_CHECK) 516 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
520 template <
class V1,
class V2>
friend V1 &_vvsetsup(V1 &rv1,
const V2 &rv2)
521 #if(CXSC_INDEX_CHECK) 522 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
526 template <
class V1,
class V2>
friend V1 &_vvusetinf(V1 &rv1,
const V2 &rv2)
527 #if(CXSC_INDEX_CHECK) 528 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
532 template <
class V1,
class V2>
friend V1 &_vvusetsup(V1 &rv1,
const V2 &rv2)
533 #if(CXSC_INDEX_CHECK) 534 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
538 template <
class VS,
class V>
friend VS &_vsvsetinf(VS &sl,
const V &rv)
539 #if(CXSC_INDEX_CHECK) 540 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
544 template <
class VS,
class V>
friend VS &_vsvsetsup(VS &sl,
const V &rv)
545 #if(CXSC_INDEX_CHECK) 546 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
550 template <
class VS,
class V>
friend VS &_vsvusetinf(VS &sl,
const V &rv)
551 #if(CXSC_INDEX_CHECK) 552 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
556 template <
class VS,
class V>
friend VS &_vsvusetsup(VS &sl,
const V &rv)
557 #if(CXSC_INDEX_CHECK) 558 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
562 template <
class MV,
class V>
friend MV &_mvvsetinf(MV &v,
const V &rv)
563 #if(CXSC_INDEX_CHECK) 564 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
568 template <
class MV,
class V>
friend MV &_mvvsetsup(MV &v,
const V &rv)
569 #if(CXSC_INDEX_CHECK) 570 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
574 template <
class MV,
class V>
friend MV &_mvvusetinf(MV &v,
const V &rv)
575 #if(CXSC_INDEX_CHECK) 576 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
580 template <
class MV,
class V>
friend MV &_mvvusetsup(MV &v,
const V &rv)
581 #if(CXSC_INDEX_CHECK) 582 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
586 template <
class V,
class E>
friend E _vmid(
const V &rv)
throw();
587 template <
class V,
class E>
friend E _vinf(
const V &rv)
throw();
588 template <
class V,
class E>
friend E _vsup(
const V &rv)
throw();
589 template <
class V,
class E>
friend E _vdiam(
const V &rv)
throw();
590 template <
class VS,
class E>
friend E _vsmid(
const VS &sl)
throw();
591 template <
class VS,
class E>
friend E _vsinf(
const VS &sl)
throw();
592 template <
class VS,
class E>
friend E _vssup(
const VS &sl)
throw();
593 template <
class VS,
class E>
friend E _vsdiam(
const VS &sl)
throw();
594 template <
class MV,
class V>
friend V _mvdiam(
const MV &mv)
throw();
595 template <
class MV,
class V>
friend V _mvmid(
const MV &mv)
throw();
596 template <
class MV,
class V>
friend V _mvinf(
const MV &mv)
throw();
597 template <
class MV,
class V>
friend V _mvsup(
const MV &mv)
throw();
600 template <
class V1,
class V2>
friend V1 &_vvconvassign(V1 &rv1,
const V2 &rv2)
601 #if(CXSC_INDEX_CHECK) 602 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
606 template <
class V1,
class V2>
friend V1 &_vvsectassign(V1 &rv1,
const V2 &rv2)
607 #if(CXSC_INDEX_CHECK) 608 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
612 template <
class VS,
class V>
friend VS &_vsvconvassign(VS &sl,
const V &rv)
613 #if(CXSC_INDEX_CHECK) 614 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
618 template <
class VS,
class V>
friend VS &_vsvsectassign(VS &sl,
const V &rv)
619 #if(CXSC_INDEX_CHECK) 620 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
624 template <
class MV,
class V>
friend MV &_mvvconvassign(MV &v,
const V &rv)
625 #if(CXSC_INDEX_CHECK) 626 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
630 template <
class MV,
class V>
friend MV &_mvvsectassign(MV &v,
const V &rv)
631 #if(CXSC_INDEX_CHECK) 632 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
644 explicit cvector(
const int &i)
throw();
646 explicit cvector(
const class index &i)
throw();
649 explicit cvector(
const int &i1,
const int &i2)
651 #if(CXSC_INDEX_CHECK) 652 throw(ERROR_CVECTOR_WRONG_BOUNDARIES,ERROR_CVECTOR_NO_MORE_MEMORY);
662 #if(CXSC_INDEX_CHECK) 663 throw(ERROR_CMATRIX_TYPE_CAST_OF_THICK_OBJ);
669 #if(CXSC_INDEX_CHECK) 670 throw(ERROR_CMATRIX_TYPE_CAST_OF_THICK_OBJ);
695 #if(CXSC_INDEX_CHECK) 696 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
702 #if(CXSC_INDEX_CHECK) 703 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
723 #if(CXSC_INDEX_CHECK) 724 throw(ERROR_CMATRIX_TYPE_CAST_OF_THICK_OBJ);
730 #if(CXSC_INDEX_CHECK) 731 throw(ERROR_CMATRIX_TYPE_CAST_OF_THICK_OBJ);
750 #if(CXSC_INDEX_CHECK) 751 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
757 #if(CXSC_INDEX_CHECK) 758 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
780 INLINE ~
cvector() {
delete [] dat; }
785 #if(CXSC_INDEX_CHECK) 786 throw(ERROR_CVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_CVECTOR_USE_OF_UNINITIALIZED_OBJ);
790 friend INLINE
int Lb(
const cvector &rv)
throw() {
return rv.l; }
793 friend INLINE
int Ub(
const cvector &rv)
throw() {
return rv.u; }
802 #if(CXSC_INDEX_CHECK) 803 throw(ERROR_CVECTOR_ELEMENT_NOT_IN_VEC);
810 #if(CXSC_INDEX_CHECK) 811 throw(ERROR_CVECTOR_ELEMENT_NOT_IN_VEC);
820 #if(CXSC_INDEX_CHECK) 821 throw(ERROR_CVECTOR_SUB_ARRAY_TOO_BIG);
827 #if(CXSC_INDEX_CHECK) 828 throw(ERROR_CVECTOR_SUB_ARRAY_TOO_BIG);
832 operator void*()
throw();
857 #ifdef _CXSC_FRIEND_TPL 861 template <
class VS1,
class VS2>
friend VS1 & _vsvsassign(VS1 &sl1,
const VS2 &sl2)
862 #if(CXSC_INDEX_CHECK) 863 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
868 template <
class V,
class VS,
class S>
friend V & _vvsassign(V &rv,
const VS &sl)
throw();
870 template <
class VS,
class V>
friend VS & _vsvassign(VS &sl,
const V &rv)
871 #if(CXSC_INDEX_CHECK) 872 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
877 template <
class VS,
class S>
friend VS & _vssassign(VS &sl,
const S &r)
throw();
879 template <
class DP,
class VS,
class V>
friend void _vsvaccu(DP &dp,
const VS & sl,
const V &rv)
880 #if(CXSC_INDEX_CHECK) 881 throw(OP_WITH_WRONG_DIM);
885 template <
class DP,
class VS1,
class VS2>
friend void _vsvsaccu(DP &dp,
const VS1 & sl1,
const VS2 &sl2)
886 #if(CXSC_INDEX_CHECK) 887 throw(OP_WITH_WRONG_DIM);
892 template <
class VS,
class S,
class E>
friend E _vssdiv(
const VS &sl,
const S &s)
throw();
893 template <
class VS,
class S,
class E>
friend E _vssmult(
const VS &sl,
const S &s)
throw();
895 template <
class VS,
class V,
class E>
friend E _vsvcmult(
const VS & sl,
const V &rv)
896 #if(CXSC_INDEX_CHECK) 897 throw(ERROR__OP_WITH_WRONG_DIM<V>);
901 template <
class VS,
class S>
friend VS &_vssmultassign(VS &rv,
const S &r)
throw();
902 template <
class VS,
class S>
friend VS &_vssdivassign(VS &rv,
const S &r)
throw();
903 template <
class V,
class VS,
class E>
friend E _vvsplus(
const V &rv,
const VS &sl)
904 #if(CXSC_INDEX_CHECK) 905 throw(ERROR__OP_WITH_WRONG_DIM<V>);
909 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
910 #if(CXSC_INDEX_CHECK) 911 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
915 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
916 #if(CXSC_INDEX_CHECK) 917 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
921 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
922 #if(CXSC_INDEX_CHECK) 923 throw(ERROR__OP_WITH_WRONG_DIM<V>);
927 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
928 #if(CXSC_INDEX_CHECK) 929 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
933 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
934 #if(CXSC_INDEX_CHECK) 935 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
939 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
940 #if(CXSC_INDEX_CHECK) 941 throw(ERROR__OP_WITH_WRONG_DIM<V>);
946 template <
class VS,
class V>
friend V _vsminus(
const VS &sl)
throw();
948 template <
class V,
class VS,
class E>
friend E _vvsminus(
const V &rv,
const VS &sl)
949 #if(CXSC_INDEX_CHECK) 950 throw(ERROR__OP_WITH_WRONG_DIM<E>);
954 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
955 #if(CXSC_INDEX_CHECK) 956 throw(ERROR__OP_WITH_WRONG_DIM<E>);
960 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
961 #if(CXSC_INDEX_CHECK) 962 throw(ERROR__OP_WITH_WRONG_DIM<E>);
966 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
967 #if(CXSC_INDEX_CHECK) 968 throw(ERROR__OP_WITH_WRONG_DIM<E>);
972 template <
class VS,
class V>
friend bool _vsveq(
const VS &sl,
const V &rv)
throw();
973 template <
class VS,
class V>
friend bool _vsvneq(
const VS &sl,
const V &rv)
throw();
974 template <
class VS,
class V>
friend bool _vsvless(
const VS &sl,
const V &rv)
throw();
975 template <
class VS,
class V>
friend bool _vsvleq(
const VS &sl,
const V &rv)
throw();
976 template <
class V,
class VS>
friend bool _vvsless(
const V &rv,
const VS &sl)
throw();
977 template <
class V,
class VS>
friend bool _vvsleq(
const V &rv,
const VS &sl)
throw();
978 template <
class VS,
class E>
friend E _vsconj(
const VS &sl)
throw();
979 template <
class VS,
class E>
friend E _vsabs(
const VS &sl)
throw();
981 template <
class VS1,
class VS2,
class E>
friend E _vsvscmult(
const VS1 & sl1,
const VS2 &sl2)
982 #if(CXSC_INDEX_CHECK) 983 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
988 template <
class VS1,
class VS2>
friend bool _vsvseq(
const VS1 &sl1,
const VS2 &sl2)
throw();
989 template <
class VS1,
class VS2>
friend bool _vsvsneq(
const VS1 &sl1,
const VS2 &sl2)
throw();
990 template <
class VS1,
class VS2>
friend bool _vsvsless(
const VS1 &sl1,
const VS2 &sl2)
throw();
991 template <
class VS1,
class VS2>
friend bool _vsvsleq(
const VS1 &sl1,
const VS2 &sl2)
throw();
992 template <
class VS>
friend bool _vsnot(
const VS &sl)
throw();
993 template <
class VS>
friend void *_vsvoid(
const VS &sl)
throw();
994 template <
class V>
friend std::ostream &_vsout(std::ostream &s,
const V &rv)
throw();
995 template <
class V>
friend std::istream &_vsin(std::istream &s, V &rv)
throw();
996 template <
class VS,
class E>
friend E _vsim(
const VS &sl)
throw();
997 template <
class VS,
class E>
friend E _vsre(
const VS &sl)
throw();
998 template <
class VS,
class V>
friend VS &_vsvsetim(VS &sl,
const V &rv)
999 #if(CXSC_INDEX_CHECK) 1000 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1004 template <
class VS,
class V>
friend VS &_vsvsetre(VS &sl,
const V &rv)
1005 #if(CXSC_INDEX_CHECK) 1006 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1010 template <
class VS1,
class VS2>
friend VS1 &_vsvssetim(VS1 &sl1,
const VS2 &sl2)
1011 #if(CXSC_INDEX_CHECK) 1012 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1016 template <
class VS1,
class VS2>
friend VS1 &_vsvssetre(VS1 &sl1,
const VS2 &sl2)
1017 #if(CXSC_INDEX_CHECK) 1018 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1033 template <
class VS,
class S>
friend VS &_vsssetim(VS &vs,
const S &s)
throw();
1034 template <
class VS,
class S>
friend VS &_vsssetre(VS &vs,
const S &s)
throw();
1036 template <
class VS,
class M,
class S>
friend VS &_vsmcmultassign(VS &v,
const M &m)
1037 #if(CXSC_INDEX_CHECK) 1038 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1044 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
1045 #if(CXSC_INDEX_CHECK) 1046 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1050 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
1051 #if(CXSC_INDEX_CHECK) 1052 throw(ERROR__OP_WITH_WRONG_DIM<VS>);
1056 template <
class V,
class MS,
class E>
friend E _vmscmult(
const V &v,
const MS &ms)
1057 #if(CXSC_INDEX_CHECK) 1058 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1063 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
1064 #if(CXSC_INDEX_CHECK) 1065 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1069 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
1070 #if(CXSC_INDEX_CHECK) 1071 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1077 template <
class V1,
class V2,
class E>
friend E _vvcimult(
const V1 & rv1,
const V2 &rv2)
1078 #if(CXSC_INDEX_CHECK) 1079 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
1083 template <
class VS,
class V,
class E>
friend E _vsvcimult(
const VS & sl,
const V &rv)
1084 #if(CXSC_INDEX_CHECK) 1085 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1089 template <
class VS1,
class VS2,
class E>
friend E _vsvscimult(
const VS1 & sl1,
const VS2 &sl2)
1090 #if(CXSC_INDEX_CHECK) 1091 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1095 template <
class V1,
class V2,
class E>
friend E _vvplus(
const V1 &rv1,
const V2 &rv2)
1096 #if(CXSC_INDEX_CHECK) 1097 throw(ERROR__OP_WITH_WRONG_DIM<V1>);
1101 template <
class V1,
class V2,
class E>
friend E _vvminus(
const V1 &rv1,
const V2 &rv2)
1102 #if(CXSC_INDEX_CHECK) 1103 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1125 template <
class V,
class VS>
friend V &_vvsconvassign(V &rv,
const VS &sl)
1126 #if(CXSC_INDEX_CHECK) 1127 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1131 template <
class V,
class VS>
friend V &_vvssectassign(V &rv,
const VS &sl)
1132 #if(CXSC_INDEX_CHECK) 1133 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1137 template <
class VS1,
class VS2>
friend VS1 &_vsvsconvassign(VS1 &sl1,
const VS2 &sl2)
1138 #if(CXSC_INDEX_CHECK) 1139 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1143 template <
class VS1,
class VS2>
friend VS1 &_vsvssectassign(VS1 &sl1,
const VS2 &sl2)
1144 #if(CXSC_INDEX_CHECK) 1145 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1153 explicit INLINE
cvector_slice(
cvector &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) { }
1155 explicit INLINE
cvector_slice(
cvector_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) { }
1168 #if(CXSC_INDEX_CHECK) 1169 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1175 #if(CXSC_INDEX_CHECK) 1176 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1184 #if(CXSC_INDEX_CHECK) 1185 throw(ERROR__OP_WITH_WRONG_DIM<cvector>,ERROR_CMATRIX_TYPE_CAST_OF_THICK_OBJ);
1191 #if(CXSC_INDEX_CHECK) 1192 throw(ERROR__OP_WITH_WRONG_DIM<cvector>,ERROR_CMATRIX_TYPE_CAST_OF_THICK_OBJ);
1206 #if(CXSC_INDEX_CHECK) 1207 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1212 #if(CXSC_INDEX_CHECK) 1213 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1221 #if(CXSC_INDEX_CHECK) 1222 throw(ERROR__OP_WITH_WRONG_DIM<rvector>,ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
1228 #if(CXSC_INDEX_CHECK) 1229 throw(ERROR__OP_WITH_WRONG_DIM<rvector>,ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ);
1237 template <
class V,
class VS>
friend V &_vvssetinf(V &rv,
const VS &sl)
1238 #if(CXSC_INDEX_CHECK) 1239 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1243 template <
class V,
class VS>
friend V &_vvssetsup(V &rv,
const VS &sl)
1244 #if(CXSC_INDEX_CHECK) 1245 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1249 template <
class V,
class VS>
friend V &_vvsusetinf(V &rv,
const VS &sl)
1250 #if(CXSC_INDEX_CHECK) 1251 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1255 template <
class V,
class VS>
friend V &_vvsusetsup(V &rv,
const VS &sl)
1256 #if(CXSC_INDEX_CHECK) 1257 throw(ERROR__OP_WITH_WRONG_DIM<V>);
1261 template <
class VS1,
class VS2>
friend VS1 &_vsvssetinf(VS1 &sl1,
const VS2 &sl2)
1262 #if(CXSC_INDEX_CHECK) 1263 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1267 template <
class VS1,
class VS2>
friend VS1 &_vsvssetsup(VS1 &sl1,
const VS2 &sl2)
1268 #if(CXSC_INDEX_CHECK) 1269 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1273 template <
class VS1,
class VS2>
friend VS1 &_vsvsusetinf(VS1 &sl1,
const VS2 &sl2)
1274 #if(CXSC_INDEX_CHECK) 1275 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1279 template <
class VS1,
class VS2>
friend VS1 &_vsvsusetsup(VS1 &sl1,
const VS2 &sl2)
1280 #if(CXSC_INDEX_CHECK) 1281 throw(ERROR__OP_WITH_WRONG_DIM<VS1>);
1287 template <
class V,
class MS,
class E>
friend E _vmscimult(
const V &v,
const MS &ms)
1288 #if(CXSC_INDEX_CHECK) 1289 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1298 #if(CXSC_INDEX_CHECK) 1299 throw(ERROR_CVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_CVECTOR_USE_OF_UNINITIALIZED_OBJ);
1303 friend INLINE
int Lb(
const cvector_slice &sl)
throw() {
return sl.start; }
1311 #if(CXSC_INDEX_CHECK) 1312 throw(ERROR_CVECTOR_ELEMENT_NOT_IN_VEC);
1319 #if(CXSC_INDEX_CHECK) 1320 throw(ERROR_CVECTOR_ELEMENT_NOT_IN_VEC);
1329 #if(CXSC_INDEX_CHECK) 1330 throw(ERROR_CVECTOR_SUB_ARRAY_TOO_BIG);
1336 #if(CXSC_INDEX_CHECK) 1337 throw(ERROR_CVECTOR_SUB_ARRAY_TOO_BIG);
1350 #if(CXSC_INDEX_CHECK) 1351 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1357 #if(CXSC_INDEX_CHECK) 1358 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM);
1366 #if(CXSC_INDEX_CHECK) 1367 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1373 #if(CXSC_INDEX_CHECK) 1374 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1380 #if(CXSC_INDEX_CHECK) 1381 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1387 #if(CXSC_INDEX_CHECK) 1388 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1394 #if(CXSC_INDEX_CHECK) 1395 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1401 #if(CXSC_INDEX_CHECK) 1402 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1408 #if(CXSC_INDEX_CHECK) 1409 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1415 #if(CXSC_INDEX_CHECK) 1416 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1423 #if(CXSC_INDEX_CHECK) 1424 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1430 #if(CXSC_INDEX_CHECK) 1431 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1437 #if(CXSC_INDEX_CHECK) 1438 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1444 #if(CXSC_INDEX_CHECK) 1445 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1451 #if(CXSC_INDEX_CHECK) 1452 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1458 #if(CXSC_INDEX_CHECK) 1459 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1465 #if(CXSC_INDEX_CHECK) 1466 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1472 #if(CXSC_INDEX_CHECK) 1473 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1477 INLINE
operator void*()
throw();
1512 #if(CXSC_INDEX_CHECK) 1513 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1519 #if(CXSC_INDEX_CHECK) 1520 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1526 #if(CXSC_INDEX_CHECK) 1527 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1533 #if(CXSC_INDEX_CHECK) 1534 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1541 #if(CXSC_INDEX_CHECK) 1542 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1548 #if(CXSC_INDEX_CHECK) 1549 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1555 #if(CXSC_INDEX_CHECK) 1556 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1562 #if(CXSC_INDEX_CHECK) 1563 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1581 #if(CXSC_INDEX_CHECK) 1582 throw(ERROR__WRONG_BOUNDARIES<cvector>);
1586 INLINE
void Resize(
cvector &rv,
const int &lb,
const int &ub)
1588 #if(CXSC_INDEX_CHECK) 1589 throw(ERROR__WRONG_BOUNDARIES<cvector>);
1612 INLINE
bool operator !(
const cvector &rv)
throw();
1676 INLINE std::ostream &operator <<(std::ostream &s,
const cvector &rv)
throw();
1678 INLINE std::ostream &operator <<(std::ostream &o,
const cvector_slice &sl)
throw();
1680 INLINE std::istream &operator >>(std::istream &s,
cvector &rv)
throw();
1682 INLINE std::istream &operator >>(std::istream &s,
cvector_slice &rv)
throw();
1694 #if(CXSC_INDEX_CHECK) 1695 throw(OP_WITH_WRONG_DIM);
1705 #if(CXSC_INDEX_CHECK) 1706 throw(OP_WITH_WRONG_DIM);
1716 #if(CXSC_INDEX_CHECK) 1717 throw(OP_WITH_WRONG_DIM);
1727 #if(CXSC_INDEX_CHECK) 1728 throw(OP_WITH_WRONG_DIM);
1738 #if(CXSC_INDEX_CHECK) 1739 throw(OP_WITH_WRONG_DIM);
1749 #if(CXSC_INDEX_CHECK) 1750 throw(OP_WITH_WRONG_DIM);
1760 #if(CXSC_INDEX_CHECK) 1761 throw(OP_WITH_WRONG_DIM);
1771 #if(CXSC_INDEX_CHECK) 1772 throw(OP_WITH_WRONG_DIM);
1778 #if(CXSC_INDEX_CHECK) 1779 throw(OP_WITH_WRONG_DIM);
1785 #if(CXSC_INDEX_CHECK) 1786 throw(OP_WITH_WRONG_DIM);
1792 #if(CXSC_INDEX_CHECK) 1793 throw(OP_WITH_WRONG_DIM);
1799 #if(CXSC_INDEX_CHECK) 1800 throw(OP_WITH_WRONG_DIM);
1806 #if(CXSC_INDEX_CHECK) 1807 throw(OP_WITH_WRONG_DIM);
1813 #if(CXSC_INDEX_CHECK) 1814 throw(OP_WITH_WRONG_DIM);
1822 #if(CXSC_INDEX_CHECK) 1823 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1829 #if(CXSC_INDEX_CHECK) 1830 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1836 #if(CXSC_INDEX_CHECK) 1837 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1843 #if(CXSC_INDEX_CHECK) 1844 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1856 #if(CXSC_INDEX_CHECK) 1857 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1863 #if(CXSC_INDEX_CHECK) 1864 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1870 #if(CXSC_INDEX_CHECK) 1871 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1877 #if(CXSC_INDEX_CHECK) 1878 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1884 #if(CXSC_INDEX_CHECK) 1885 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1891 #if(CXSC_INDEX_CHECK) 1892 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1903 #if(CXSC_INDEX_CHECK) 1904 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1910 #if(CXSC_INDEX_CHECK) 1911 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1917 #if(CXSC_INDEX_CHECK) 1918 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1924 #if(CXSC_INDEX_CHECK) 1925 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1931 #if(CXSC_INDEX_CHECK) 1932 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1938 #if(CXSC_INDEX_CHECK) 1939 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1945 INLINE
bool operator ==(
const cvector &rv1,
const cvector &rv2)
throw();
1953 INLINE
bool operator !=(
const cvector &rv1,
const cvector &rv2)
throw();
1982 #if(CXSC_INDEX_CHECK) 1983 throw(OP_WITH_WRONG_DIM);
1994 #if(CXSC_INDEX_CHECK) 1995 throw(OP_WITH_WRONG_DIM);
2005 #if(CXSC_INDEX_CHECK) 2006 throw(OP_WITH_WRONG_DIM);
2016 #if(CXSC_INDEX_CHECK) 2017 throw(OP_WITH_WRONG_DIM);
2027 #if(CXSC_INDEX_CHECK) 2028 throw(OP_WITH_WRONG_DIM);
2038 #if(CXSC_INDEX_CHECK) 2039 throw(OP_WITH_WRONG_DIM);
2049 #if(CXSC_INDEX_CHECK) 2050 throw(OP_WITH_WRONG_DIM);
2060 #if(CXSC_INDEX_CHECK) 2061 throw(OP_WITH_WRONG_DIM);
2071 #if(CXSC_INDEX_CHECK) 2072 throw(OP_WITH_WRONG_DIM);
2082 #if(CXSC_INDEX_CHECK) 2083 throw(OP_WITH_WRONG_DIM);
2093 #if(CXSC_INDEX_CHECK) 2094 throw(OP_WITH_WRONG_DIM);
2104 #if(CXSC_INDEX_CHECK) 2105 throw(OP_WITH_WRONG_DIM);
2115 #if(CXSC_INDEX_CHECK) 2116 throw(OP_WITH_WRONG_DIM);
2126 #if(CXSC_INDEX_CHECK) 2127 throw(OP_WITH_WRONG_DIM);
2137 #if(CXSC_INDEX_CHECK) 2138 throw(OP_WITH_WRONG_DIM);
2148 #if(CXSC_INDEX_CHECK) 2149 throw(OP_WITH_WRONG_DIM);
2159 #if(CXSC_INDEX_CHECK) 2160 throw(OP_WITH_WRONG_DIM);
2170 #if(CXSC_INDEX_CHECK) 2171 throw(OP_WITH_WRONG_DIM);
2181 #if(CXSC_INDEX_CHECK) 2182 throw(OP_WITH_WRONG_DIM);
2188 #if(CXSC_INDEX_CHECK) 2189 throw(OP_WITH_WRONG_DIM);
2195 #if(CXSC_INDEX_CHECK) 2196 throw(OP_WITH_WRONG_DIM);
2202 #if(CXSC_INDEX_CHECK) 2203 throw(OP_WITH_WRONG_DIM);
2209 #if(CXSC_INDEX_CHECK) 2210 throw(OP_WITH_WRONG_DIM);
2216 #if(CXSC_INDEX_CHECK) 2217 throw(OP_WITH_WRONG_DIM);
2223 #if(CXSC_INDEX_CHECK) 2224 throw(OP_WITH_WRONG_DIM);
2230 #if(CXSC_INDEX_CHECK) 2231 throw(OP_WITH_WRONG_DIM);
2237 #if(CXSC_INDEX_CHECK) 2238 throw(OP_WITH_WRONG_DIM);
2244 #if(CXSC_INDEX_CHECK) 2245 throw(OP_WITH_WRONG_DIM);
2251 #if(CXSC_INDEX_CHECK) 2252 throw(OP_WITH_WRONG_DIM);
2258 #if(CXSC_INDEX_CHECK) 2259 throw(OP_WITH_WRONG_DIM);
2265 #if(CXSC_INDEX_CHECK) 2266 throw(OP_WITH_WRONG_DIM);
2272 #if(CXSC_INDEX_CHECK) 2273 throw(OP_WITH_WRONG_DIM);
2279 #if(CXSC_INDEX_CHECK) 2280 throw(OP_WITH_WRONG_DIM);
2286 #if(CXSC_INDEX_CHECK) 2287 throw(OP_WITH_WRONG_DIM);
2293 #if(CXSC_INDEX_CHECK) 2294 throw(OP_WITH_WRONG_DIM);
2300 #if(CXSC_INDEX_CHECK) 2301 throw(OP_WITH_WRONG_DIM);
2307 #if(CXSC_INDEX_CHECK) 2308 throw(OP_WITH_WRONG_DIM);
2314 #if(CXSC_INDEX_CHECK) 2315 throw(OP_WITH_WRONG_DIM);
2321 #if(CXSC_INDEX_CHECK) 2322 throw(OP_WITH_WRONG_DIM);
2328 #if(CXSC_INDEX_CHECK) 2329 throw(OP_WITH_WRONG_DIM);
2335 #if(CXSC_INDEX_CHECK) 2336 throw(OP_WITH_WRONG_DIM);
2342 #if(CXSC_INDEX_CHECK) 2343 throw(OP_WITH_WRONG_DIM);
2349 #if(CXSC_INDEX_CHECK) 2350 throw(OP_WITH_WRONG_DIM);
2356 #if(CXSC_INDEX_CHECK) 2357 throw(OP_WITH_WRONG_DIM);
2364 #if(CXSC_INDEX_CHECK) 2365 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2371 #if(CXSC_INDEX_CHECK) 2372 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2378 #if(CXSC_INDEX_CHECK) 2379 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2385 #if(CXSC_INDEX_CHECK) 2386 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2393 #if(CXSC_INDEX_CHECK) 2394 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2400 #if(CXSC_INDEX_CHECK) 2401 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2407 #if(CXSC_INDEX_CHECK) 2408 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2414 #if(CXSC_INDEX_CHECK) 2415 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2422 #if(CXSC_INDEX_CHECK) 2423 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2429 #if(CXSC_INDEX_CHECK) 2430 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2436 #if(CXSC_INDEX_CHECK) 2437 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2443 #if(CXSC_INDEX_CHECK) 2444 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2451 #if(CXSC_INDEX_CHECK) 2452 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2458 #if(CXSC_INDEX_CHECK) 2459 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2465 #if(CXSC_INDEX_CHECK) 2466 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2472 #if(CXSC_INDEX_CHECK) 2473 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2480 #if(CXSC_INDEX_CHECK) 2481 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2487 #if(CXSC_INDEX_CHECK) 2488 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2495 #if(CXSC_INDEX_CHECK) 2496 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2502 #if(CXSC_INDEX_CHECK) 2503 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2509 #if(CXSC_INDEX_CHECK) 2510 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2516 #if(CXSC_INDEX_CHECK) 2517 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2524 #if(CXSC_INDEX_CHECK) 2525 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2531 #if(CXSC_INDEX_CHECK) 2532 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2538 #if(CXSC_INDEX_CHECK) 2539 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2545 #if(CXSC_INDEX_CHECK) 2546 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2552 #if(CXSC_INDEX_CHECK) 2553 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2559 #if(CXSC_INDEX_CHECK) 2560 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2567 #ifdef _CXSC_INCL_INL 2568 #include "vector.inl" 2569 #include "cvector.inl" 2572 #ifdef _CXSC_RMATRIX_HPP_INCLUDED 2573 # ifdef _CXSC_INCL_INL 2574 # include "cvecrmat.inl" 2576 # include "cvecrmat.hpp" 2580 #ifdef _CXSC_IMATRIX_HPP_INCLUDED 2581 # ifdef _CXSC_INCL_INL 2582 # include "cvecimat.inl" 2584 # include "cvecimat.hpp" 2588 #ifdef _CXSC_IVECTOR_HPP_INCLUDED 2589 # ifdef _CXSC_INCL_INL 2590 # include "iveccvec.inl" 2592 # include "iveccvec.hpp" 2596 #ifdef CXSC_USE_BLAS 2597 #define _CXSC_BLAS_CVECTOR 2598 #include "cxsc_blas.inl" The Data Type rmatrix_slice.
cimatrix & operator/=(cimatrix &m, const cinterval &c)
Implementation of division and allocation operation.
friend int Lb(const cvector &rv)
Returns the lower bound of the vector.
Helper class for slices of sparse vectors.
friend cvector & SetLb(cvector &rv, const int &l)
Sets the lower bound of the vector.
The namespace cxsc, providing all functionality of the class library C-XSC.
civector operator*(const cimatrix_subv &rv, const cinterval &s)
Implementation of multiplication operation.
friend int Ub(const cvector &rv)
Returns the upper bound of the vector.
friend int Ub(const cvector_slice &sl)
Returns the upper bound of the vector.
void accumulate_approx(cdotprecision &dp, const cmatrix_subv &rv1, const cmatrix_subv &rv2)
The accurate scalar product of the last two arguments added to the value of the first argument (witho...
cvector & operator()()
Operator for accessing the whole vector.
cvector & operator=(const cvector &rv)
Implementation of standard assigning operator.
cvector_slice(cvector_slice &a, const int &lb, const int &ub)
Constructor of class cvector_slice.
The Data Type ivector_slice.
The Data Type cidotprecision.
The Data Type rvector_slice.
cvector_slice(cvector &a, const int &lb, const int &ub)
Constructor of class cvector_slice.
The Data Type rmatrix_subv.
friend int VecLen(const cvector_slice &sl)
Returns the dimension of the vector.
complex & operator[](const int &i) const
Operator for accessing the single elements of the vector (read-only)
The Data Type cdotprecision.
void Resize(cimatrix &A)
Resizes the matrix.
friend int VecLen(const cvector &rv)
Returns the dimension of the vector.
The Data Type cmatrix_subv.
cvector()
Constructor of class cvector.
The Data Type cmatrix_slice.
friend cvector & SetUb(cvector &rv, const int &u)
Sets the upper bound of the vector.
complex(void)
Constructor of class complex.
Helper class for slices of sparse vectors.
civector operator/(const cimatrix_subv &rv, const cinterval &s)
Implementation of division operation.
The Data Type cvector_slice.
cimatrix & operator*=(cimatrix &m, const cinterval &c)
Implementation of multiplication and allocation operation.
cvector_slice(const cvector_slice &a)
Constructor of class cvector_slice.
ivector abs(const cimatrix_subv &mv)
Returns the absolute value of the matrix.