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();
1496 INLINE cvector _cvector(
const complex &r)
throw();
1500 INLINE cvector _cvector(
const real &r)
throw();
1502 INLINE cvector _cvector(
const rvector_slice &rs)
throw();
1504 INLINE cvector _cvector(
const rvector &rs)
throw();
1508 INLINE cvector _cvector(
const rmatrix_subv &rs)
throw();
1511 INLINE cvector &SetRe(cvector &iv,
const rvector &rv)
1512 #if(CXSC_INDEX_CHECK)
1513 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1517 INLINE cvector_slice &SetRe(cvector_slice &iv,
const rvector &rv)
1519 #if(CXSC_INDEX_CHECK)
1520 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1524 INLINE cvector &SetRe(cvector &iv,
const rvector_slice &rv)
1526 #if(CXSC_INDEX_CHECK)
1527 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1531 INLINE cvector_slice &SetRe(cvector_slice &iv,
const rvector_slice &rv)
1533 #if(CXSC_INDEX_CHECK)
1534 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1540 INLINE cvector &SetIm(cvector &iv,
const rvector &rv)
1541 #if(CXSC_INDEX_CHECK)
1542 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1546 INLINE cvector_slice &SetIm(cvector_slice &iv,
const rvector &rv)
1548 #if(CXSC_INDEX_CHECK)
1549 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1553 INLINE cvector &SetIm(cvector &iv,
const rvector_slice &rv)
1555 #if(CXSC_INDEX_CHECK)
1556 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1560 INLINE cvector_slice &SetIm(cvector_slice &iv,
const rvector_slice &rv)
1562 #if(CXSC_INDEX_CHECK)
1563 throw(ERROR_CMATRIX_OP_WITH_WRONG_DIM);
1569 INLINE cvector &SetRe(cvector &iv,
const real &r)
throw();
1571 INLINE cvector &SetIm(cvector &iv,
const real &r)
throw();
1573 INLINE cvector_slice &SetRe(cvector_slice &iv,
const real &r)
throw();
1575 INLINE cvector_slice &SetIm(cvector_slice &iv,
const real &r)
throw();
1578 INLINE
void Resize(cvector &rv)
throw();
1580 INLINE
void Resize(cvector &rv,
const int &len)
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>);
1595 INLINE cvector conj(
const cvector &rv)
throw();
1597 INLINE cvector conj(
const cvector_slice &sl)
throw();
1600 INLINE rvector
abs(
const cvector &rv)
throw();
1602 INLINE rvector
abs(
const cvector_slice &sl)
throw();
1604 INLINE rvector Im(
const cvector &v)
throw();
1606 INLINE rvector Im(
const cvector_slice &v)
throw();
1608 INLINE rvector Re(
const cvector &v)
throw();
1610 INLINE rvector Re(
const cvector_slice &v)
throw();
1612 INLINE
bool operator !(
const cvector &rv)
throw();
1614 INLINE
bool operator !(
const cvector_slice &sl)
throw();
1621 INLINE cvector
operator *(
const cvector &rv,
const complex &s)
throw();
1623 INLINE cvector
operator *(
const cvector_slice &sl,
const complex &s)
throw();
1625 INLINE cvector
operator *(
const complex &s,
const cvector &rv)
throw();
1627 INLINE cvector
operator *(
const complex &s,
const cvector_slice &sl)
throw();
1629 INLINE cvector &
operator *=(cvector &rv,
const complex &r)
throw();
1632 INLINE cvector
operator /(
const cvector &rv,
const complex &s)
throw();
1634 INLINE cvector
operator /(
const cvector_slice &sl,
const complex &s)
throw();
1636 INLINE cvector &
operator /=(cvector &rv,
const complex &r)
throw();
1641 INLINE cvector
operator *(
const cvector &rv,
const real &s)
throw();
1643 INLINE cvector
operator *(
const cvector_slice &sl,
const real &s)
throw();
1645 INLINE cvector
operator *(
const real &s,
const cvector &rv)
throw();
1647 INLINE cvector
operator *(
const real &s,
const cvector_slice &sl)
throw();
1649 INLINE cvector &
operator *=(cvector &rv,
const real &r)
throw();
1652 INLINE cvector
operator /(
const cvector &rv,
const real &s)
throw();
1654 INLINE cvector
operator /(
const cvector_slice &sl,
const real &s)
throw();
1656 INLINE cvector &
operator /=(cvector &rv,
const real &r)
throw();
1659 INLINE cvector
operator *(
const rvector &rv,
const complex &s)
throw();
1661 INLINE cvector
operator *(
const rvector_slice &sl,
const complex &s)
throw();
1663 INLINE cvector
operator *(
const complex &s,
const rvector &rv)
throw();
1665 INLINE cvector
operator *(
const complex &s,
const rvector_slice &sl)
throw();
1668 INLINE cvector
operator /(
const rvector &rv,
const complex &s)
throw();
1670 INLINE cvector
operator /(
const rvector_slice &sl,
const complex &s)
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();
1687 void accumulate(cdotprecision &dp,
const cvector &);
1690 void accumulate(cdotprecision &dp,
const rvector &);
1693 void accumulate(cdotprecision &dp,
const cvector & rv1,
const cvector &rv2)
1694 #if(CXSC_INDEX_CHECK)
1695 throw(OP_WITH_WRONG_DIM);
1701 void accumulate_approx(cdotprecision &dp,
const cvector & rv1,
const cvector &rv2);
1704 void accumulate(cdotprecision &dp,
const cvector_slice & sl,
const cvector &rv)
1705 #if(CXSC_INDEX_CHECK)
1706 throw(OP_WITH_WRONG_DIM);
1712 void accumulate_approx(cdotprecision &dp,
const cvector_slice & sl,
const cvector &rv);
1715 void accumulate(cdotprecision &dp,
const cvector &rv,
const cvector_slice &sl)
1716 #if(CXSC_INDEX_CHECK)
1717 throw(OP_WITH_WRONG_DIM);
1723 void accumulate_approx(cdotprecision &dp,
const cvector &rv,
const cvector_slice &sl);
1726 void accumulate(cdotprecision &dp,
const cvector & rv1,
const cmatrix_subv &rv2)
1727 #if(CXSC_INDEX_CHECK)
1728 throw(OP_WITH_WRONG_DIM);
1734 void accumulate_approx(cdotprecision &dp,
const cvector & rv1,
const cmatrix_subv &rv2);
1737 void accumulate(cdotprecision &dp,
const cmatrix_subv & rv1,
const cvector &rv2)
1738 #if(CXSC_INDEX_CHECK)
1739 throw(OP_WITH_WRONG_DIM);
1745 void accumulate_approx(cdotprecision &dp,
const cmatrix_subv & rv1,
const cvector &rv2);
1748 void accumulate(cdotprecision &dp,
const cmatrix_subv & rv1,
const cmatrix_subv &rv2)
1749 #if(CXSC_INDEX_CHECK)
1750 throw(OP_WITH_WRONG_DIM);
1756 void accumulate_approx(cdotprecision &dp,
const cmatrix_subv & rv1,
const cmatrix_subv &rv2);
1759 void accumulate(cdotprecision &dp,
const cvector_slice & sl1,
const cvector_slice &sl2)
1760 #if(CXSC_INDEX_CHECK)
1761 throw(OP_WITH_WRONG_DIM);
1767 void accumulate_approx(cdotprecision &dp,
const cvector_slice & sl1,
const cvector_slice &sl2);
1770 void accumulate(cidotprecision &dp,
const cvector & rv1,
const cvector &rv2)
1771 #if(CXSC_INDEX_CHECK)
1772 throw(OP_WITH_WRONG_DIM);
1776 void accumulate(cidotprecision &dp,
const cvector_slice & sl,
const cvector &rv)
1778 #if(CXSC_INDEX_CHECK)
1779 throw(OP_WITH_WRONG_DIM);
1783 void accumulate(cidotprecision &dp,
const cvector &rv,
const cvector_slice &sl)
1785 #if(CXSC_INDEX_CHECK)
1786 throw(OP_WITH_WRONG_DIM);
1790 void accumulate(cidotprecision &dp,
const cvector & rv1,
const cmatrix_subv &rv2)
1792 #if(CXSC_INDEX_CHECK)
1793 throw(OP_WITH_WRONG_DIM);
1797 void accumulate(cidotprecision &dp,
const cmatrix_subv & rv1,
const cvector &rv2)
1799 #if(CXSC_INDEX_CHECK)
1800 throw(OP_WITH_WRONG_DIM);
1804 void accumulate(cidotprecision &dp,
const cvector_slice & sl1,
const cvector_slice &sl2)
1806 #if(CXSC_INDEX_CHECK)
1807 throw(OP_WITH_WRONG_DIM);
1811 void accumulate(cidotprecision &dp,
const cmatrix_subv & rv1,
const cmatrix_subv &rv2)
1813 #if(CXSC_INDEX_CHECK)
1814 throw(OP_WITH_WRONG_DIM);
1821 INLINE complex
operator *(
const cvector & rv1,
const cvector &rv2)
1822 #if(CXSC_INDEX_CHECK)
1823 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1827 INLINE complex
operator *(
const cvector_slice &sl,
const cvector &rv)
1829 #if(CXSC_INDEX_CHECK)
1830 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1834 INLINE complex
operator *(
const cvector &rv,
const cvector_slice &sl)
1836 #if(CXSC_INDEX_CHECK)
1837 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1841 INLINE complex
operator *(
const cvector_slice & sl1,
const cvector_slice &sl2)
1843 #if(CXSC_INDEX_CHECK)
1844 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1850 INLINE
const cvector &operator +(
const cvector &rv)
throw();
1852 INLINE cvector operator +(
const cvector_slice &sl)
throw();
1855 INLINE cvector operator +(
const cvector &rv1,
const cvector &rv2)
1856 #if(CXSC_INDEX_CHECK)
1857 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1861 INLINE cvector operator +(
const cvector &rv,
const cvector_slice &sl)
1863 #if(CXSC_INDEX_CHECK)
1864 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1868 INLINE cvector operator +(
const cvector_slice &sl,
const cvector &rv)
1870 #if(CXSC_INDEX_CHECK)
1871 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1875 INLINE cvector operator +(
const cvector_slice &sl1,
const cvector_slice &sl2)
1877 #if(CXSC_INDEX_CHECK)
1878 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1882 INLINE cvector &
operator +=(cvector &rv1,
const cvector &rv2)
1884 #if(CXSC_INDEX_CHECK)
1885 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1889 INLINE cvector &
operator +=(cvector &rv,
const cvector_slice &sl)
1891 #if(CXSC_INDEX_CHECK)
1892 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1898 INLINE cvector operator -(
const cvector &rv)
throw();
1900 INLINE cvector operator -(
const cvector_slice &sl)
throw();
1902 INLINE cvector operator -(
const cvector &rv1,
const cvector &rv2)
1903 #if(CXSC_INDEX_CHECK)
1904 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1908 INLINE cvector operator -(
const cvector &rv,
const cvector_slice &sl)
1910 #if(CXSC_INDEX_CHECK)
1911 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1915 INLINE cvector operator -(
const cvector_slice &sl,
const cvector &rv)
1917 #if(CXSC_INDEX_CHECK)
1918 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1922 INLINE cvector operator -(
const cvector_slice &sl1,
const cvector_slice &sl2)
1924 #if(CXSC_INDEX_CHECK)
1925 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1929 INLINE cvector & operator -=(cvector &rv1,
const cvector &rv2)
1931 #if(CXSC_INDEX_CHECK)
1932 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1936 INLINE cvector &operator -=(cvector &rv,
const cvector_slice &sl)
1938 #if(CXSC_INDEX_CHECK)
1939 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
1945 INLINE
bool operator ==(
const cvector &rv1,
const cvector &rv2)
throw();
1947 INLINE
bool operator ==(
const cvector_slice &sl1,
const cvector_slice &sl2)
throw();
1949 INLINE
bool operator ==(
const cvector_slice &sl,
const cvector &rv)
throw();
1951 INLINE
bool operator ==(
const cvector &rv,
const cvector_slice &sl)
throw();
1953 INLINE
bool operator !=(
const cvector &rv1,
const cvector &rv2)
throw();
1955 INLINE
bool operator !=(
const cvector_slice &sl1,
const cvector_slice &sl2)
throw();
1957 INLINE
bool operator !=(
const cvector_slice &sl,
const cvector &rv)
throw();
1959 INLINE
bool operator !=(
const cvector &rv,
const cvector_slice &sl)
throw();
1981 void accumulate(cdotprecision &dp,
const cvector & rv1,
const rvector &rv2)
1982 #if(CXSC_INDEX_CHECK)
1983 throw(OP_WITH_WRONG_DIM);
1989 void accumulate_approx(cdotprecision &dp,
const cvector & rv1,
const rvector &rv2);
1993 void accumulate(cdotprecision &dp,
const rvector & rv1,
const cvector &rv2)
1994 #if(CXSC_INDEX_CHECK)
1995 throw(OP_WITH_WRONG_DIM);
2001 void accumulate_approx(cdotprecision &dp,
const rvector & rv1,
const cvector &rv2);
2004 void accumulate(cdotprecision &dp,
const rvector_slice & sl,
const cvector &rv)
2005 #if(CXSC_INDEX_CHECK)
2006 throw(OP_WITH_WRONG_DIM);
2012 void accumulate_approx(cdotprecision &dp,
const rvector_slice & sl,
const cvector &rv);
2015 void accumulate(cdotprecision &dp,
const cvector_slice &sl,
const rvector &rv)
2016 #if(CXSC_INDEX_CHECK)
2017 throw(OP_WITH_WRONG_DIM);
2023 void accumulate_approx(cdotprecision &dp,
const cvector_slice &sl,
const rvector &rv);
2026 void accumulate(cdotprecision &dp,
const rvector &rv,
const cvector_slice &sl)
2027 #if(CXSC_INDEX_CHECK)
2028 throw(OP_WITH_WRONG_DIM);
2034 void accumulate_approx(cdotprecision &dp,
const rvector &rv,
const cvector_slice &sl);
2037 void accumulate(cdotprecision &dp,
const rvector & rv1,
const cmatrix_subv &rv2)
2038 #if(CXSC_INDEX_CHECK)
2039 throw(OP_WITH_WRONG_DIM);
2045 void accumulate_approx(cdotprecision &dp,
const rvector & rv1,
const cmatrix_subv &rv2);
2048 void accumulate(cdotprecision &dp,
const cvector & rv1,
const rmatrix_subv &rv2)
2049 #if(CXSC_INDEX_CHECK)
2050 throw(OP_WITH_WRONG_DIM);
2056 void accumulate_approx(cdotprecision &dp,
const cvector & rv1,
const rmatrix_subv &rv2);
2059 void accumulate(cdotprecision &dp,
const rvector_slice & rv1,
const cmatrix_subv &rv2)
2060 #if(CXSC_INDEX_CHECK)
2061 throw(OP_WITH_WRONG_DIM);
2067 void accumulate_approx(cdotprecision &dp,
const rvector_slice & rv1,
const cmatrix_subv &rv2);
2070 void accumulate(cdotprecision &dp,
const cvector_slice & rv1,
const rmatrix_subv &rv2)
2071 #if(CXSC_INDEX_CHECK)
2072 throw(OP_WITH_WRONG_DIM);
2078 void accumulate_approx(cdotprecision &dp,
const cvector_slice & rv1,
const rmatrix_subv &rv2);
2081 void accumulate(cdotprecision &dp,
const cvector &rv,
const rvector_slice &sl)
2082 #if(CXSC_INDEX_CHECK)
2083 throw(OP_WITH_WRONG_DIM);
2089 void accumulate_approx(cdotprecision &dp,
const cvector &rv,
const rvector_slice &sl);
2092 void accumulate(cdotprecision &dp,
const rmatrix_subv & rv1,
const cvector &rv2)
2093 #if(CXSC_INDEX_CHECK)
2094 throw(OP_WITH_WRONG_DIM);
2100 void accumulate_approx(cdotprecision &dp,
const rmatrix_subv & rv1,
const cvector &rv2);
2103 void accumulate(cdotprecision &dp,
const cmatrix_subv & rv1,
const rvector &rv2)
2104 #if(CXSC_INDEX_CHECK)
2105 throw(OP_WITH_WRONG_DIM);
2111 void accumulate_approx(cdotprecision &dp,
const cmatrix_subv & rv1,
const rvector &rv2);
2114 void accumulate(cdotprecision &dp,
const rmatrix_subv & rv1,
const cvector_slice &rv2)
2115 #if(CXSC_INDEX_CHECK)
2116 throw(OP_WITH_WRONG_DIM);
2122 void accumulate_approx(cdotprecision &dp,
const rmatrix_subv & rv1,
const cvector_slice &rv2);
2125 void accumulate(cdotprecision &dp,
const cmatrix_subv & rv1,
const rvector_slice &rv2)
2126 #if(CXSC_INDEX_CHECK)
2127 throw(OP_WITH_WRONG_DIM);
2133 void accumulate_approx(cdotprecision &dp,
const cmatrix_subv & rv1,
const rvector_slice &rv2);
2136 void accumulate(cdotprecision &dp,
const cvector_slice & sl1,
const rvector_slice &sl2)
2137 #if(CXSC_INDEX_CHECK)
2138 throw(OP_WITH_WRONG_DIM);
2144 void accumulate_approx(cdotprecision &dp,
const cvector_slice & sl1,
const rvector_slice &sl2);
2147 void accumulate(cdotprecision &dp,
const rvector_slice & sl1,
const cvector_slice &sl2)
2148 #if(CXSC_INDEX_CHECK)
2149 throw(OP_WITH_WRONG_DIM);
2155 void accumulate_approx(cdotprecision &dp,
const rvector_slice & sl1,
const cvector_slice &sl2);
2158 void accumulate(cdotprecision &dp,
const rmatrix_subv & rv1,
const cmatrix_subv &rv2)
2159 #if(CXSC_INDEX_CHECK)
2160 throw(OP_WITH_WRONG_DIM);
2166 void accumulate_approx(cdotprecision &dp,
const rmatrix_subv & rv1,
const cmatrix_subv &rv2);
2169 void accumulate(cdotprecision &dp,
const cmatrix_subv & rv1,
const rmatrix_subv &rv2)
2170 #if(CXSC_INDEX_CHECK)
2171 throw(OP_WITH_WRONG_DIM);
2177 void accumulate_approx(cdotprecision &dp,
const cmatrix_subv & rv1,
const rmatrix_subv &rv2);
2180 void accumulate(cidotprecision &dp,
const cvector & rv1,
const rvector &rv2)
2181 #if(CXSC_INDEX_CHECK)
2182 throw(OP_WITH_WRONG_DIM);
2186 void accumulate(cidotprecision &dp,
const rvector & rv1,
const cvector &rv2)
2188 #if(CXSC_INDEX_CHECK)
2189 throw(OP_WITH_WRONG_DIM);
2193 void accumulate(cidotprecision &dp,
const rvector_slice & sl,
const cvector &rv)
2195 #if(CXSC_INDEX_CHECK)
2196 throw(OP_WITH_WRONG_DIM);
2200 void accumulate(cidotprecision &dp,
const cvector_slice &sl,
const rvector &rv)
2202 #if(CXSC_INDEX_CHECK)
2203 throw(OP_WITH_WRONG_DIM);
2207 void accumulate(cidotprecision &dp,
const rvector &rv,
const cvector_slice &sl)
2209 #if(CXSC_INDEX_CHECK)
2210 throw(OP_WITH_WRONG_DIM);
2214 void accumulate(cidotprecision &dp,
const rvector & rv1,
const cmatrix_subv &rv2)
2216 #if(CXSC_INDEX_CHECK)
2217 throw(OP_WITH_WRONG_DIM);
2221 void accumulate(cidotprecision &dp,
const cvector & rv1,
const rmatrix_subv &rv2)
2223 #if(CXSC_INDEX_CHECK)
2224 throw(OP_WITH_WRONG_DIM);
2228 void accumulate(cidotprecision &dp,
const rvector_slice & rv1,
const cmatrix_subv &rv2)
2230 #if(CXSC_INDEX_CHECK)
2231 throw(OP_WITH_WRONG_DIM);
2235 void accumulate(cidotprecision &dp,
const cvector_slice & rv1,
const rmatrix_subv &rv2)
2237 #if(CXSC_INDEX_CHECK)
2238 throw(OP_WITH_WRONG_DIM);
2242 void accumulate(cidotprecision &dp,
const cvector &rv,
const rvector_slice &sl)
2244 #if(CXSC_INDEX_CHECK)
2245 throw(OP_WITH_WRONG_DIM);
2249 void accumulate(cidotprecision &dp,
const rmatrix_subv & rv1,
const cvector &rv2)
2251 #if(CXSC_INDEX_CHECK)
2252 throw(OP_WITH_WRONG_DIM);
2256 void accumulate(cidotprecision &dp,
const cmatrix_subv & rv1,
const rvector &rv2)
2258 #if(CXSC_INDEX_CHECK)
2259 throw(OP_WITH_WRONG_DIM);
2263 void accumulate(cidotprecision &dp,
const rmatrix_subv & rv1,
const cvector_slice &rv2)
2265 #if(CXSC_INDEX_CHECK)
2266 throw(OP_WITH_WRONG_DIM);
2270 void accumulate(cidotprecision &dp,
const cmatrix_subv & rv1,
const rvector_slice &rv2)
2272 #if(CXSC_INDEX_CHECK)
2273 throw(OP_WITH_WRONG_DIM);
2277 void accumulate(cidotprecision &dp,
const cvector_slice & sl1,
const rvector_slice &sl2)
2279 #if(CXSC_INDEX_CHECK)
2280 throw(OP_WITH_WRONG_DIM);
2284 void accumulate(cidotprecision &dp,
const rvector_slice & sl1,
const cvector_slice &sl2)
2286 #if(CXSC_INDEX_CHECK)
2287 throw(OP_WITH_WRONG_DIM);
2291 void accumulate(cidotprecision &dp,
const rmatrix_subv & rv1,
const cmatrix_subv &rv2)
2293 #if(CXSC_INDEX_CHECK)
2294 throw(OP_WITH_WRONG_DIM);
2298 void accumulate(cidotprecision &dp,
const cmatrix_subv & rv1,
const rmatrix_subv &rv2)
2300 #if(CXSC_INDEX_CHECK)
2301 throw(OP_WITH_WRONG_DIM);
2305 void accumulate(cidotprecision &dp,
const cvector_slice &,
const ivector &)
2307 #if(CXSC_INDEX_CHECK)
2308 throw(OP_WITH_WRONG_DIM);
2312 void accumulate(cidotprecision &dp,
const ivector & sl1,
const cvector_slice &)
2314 #if(CXSC_INDEX_CHECK)
2315 throw(OP_WITH_WRONG_DIM);
2319 void accumulate(cidotprecision &dp,
const cvector &,
const ivector &)
2321 #if(CXSC_INDEX_CHECK)
2322 throw(OP_WITH_WRONG_DIM);
2326 void accumulate(cidotprecision &dp,
const ivector &,
const cvector &)
2328 #if(CXSC_INDEX_CHECK)
2329 throw(OP_WITH_WRONG_DIM);
2333 void accumulate(cidotprecision &dp,
const ivector_slice &,
const cvector &)
2335 #if(CXSC_INDEX_CHECK)
2336 throw(OP_WITH_WRONG_DIM);
2340 void accumulate(cidotprecision &dp,
const cvector &,
const ivector_slice &)
2342 #if(CXSC_INDEX_CHECK)
2343 throw(OP_WITH_WRONG_DIM);
2347 void accumulate(cidotprecision &dp,
const cvector_slice &,
const ivector_slice &)
2349 #if(CXSC_INDEX_CHECK)
2350 throw(OP_WITH_WRONG_DIM);
2354 void accumulate(cidotprecision &dp,
const ivector_slice &,
const cvector_slice &)
2356 #if(CXSC_INDEX_CHECK)
2357 throw(OP_WITH_WRONG_DIM);
2363 INLINE complex
operator *(
const rvector & rv1,
const cvector &rv2)
2364 #if(CXSC_INDEX_CHECK)
2365 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2369 INLINE complex
operator *(
const rvector_slice &sl,
const cvector &rv)
2371 #if(CXSC_INDEX_CHECK)
2372 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2376 INLINE complex
operator *(
const rvector &rv,
const cvector_slice &sl)
2378 #if(CXSC_INDEX_CHECK)
2379 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2383 INLINE complex
operator *(
const rvector_slice & sl1,
const cvector_slice &sl2)
2385 #if(CXSC_INDEX_CHECK)
2386 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2392 INLINE complex
operator *(
const cvector & rv1,
const rvector &rv2)
2393 #if(CXSC_INDEX_CHECK)
2394 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2398 INLINE complex
operator *(
const cvector_slice &sl,
const rvector &rv)
2400 #if(CXSC_INDEX_CHECK)
2401 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2405 INLINE complex
operator *(
const cvector &rv,
const rvector_slice &sl)
2407 #if(CXSC_INDEX_CHECK)
2408 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2412 INLINE complex
operator *(
const cvector_slice & sl1,
const rvector_slice &sl2)
2414 #if(CXSC_INDEX_CHECK)
2415 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2421 INLINE cvector operator +(
const rvector &rv1,
const cvector &rv2)
2422 #if(CXSC_INDEX_CHECK)
2423 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2427 INLINE cvector operator +(
const rvector &rv,
const cvector_slice &sl)
2429 #if(CXSC_INDEX_CHECK)
2430 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2434 INLINE cvector operator +(
const rvector_slice &sl,
const cvector &rv)
2436 #if(CXSC_INDEX_CHECK)
2437 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2441 INLINE cvector operator +(
const rvector_slice &sl1,
const cvector_slice &sl2)
2443 #if(CXSC_INDEX_CHECK)
2444 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2450 INLINE cvector operator +(
const cvector &rv1,
const rvector &rv2)
2451 #if(CXSC_INDEX_CHECK)
2452 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2456 INLINE cvector operator +(
const cvector &rv,
const rvector_slice &sl)
2458 #if(CXSC_INDEX_CHECK)
2459 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2463 INLINE cvector operator +(
const cvector_slice &sl,
const rvector &rv)
2465 #if(CXSC_INDEX_CHECK)
2466 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2470 INLINE cvector operator +(
const cvector_slice &sl1,
const rvector_slice &sl2)
2472 #if(CXSC_INDEX_CHECK)
2473 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2479 INLINE cvector &
operator +=(cvector &rv1,
const rvector &rv2)
2480 #if(CXSC_INDEX_CHECK)
2481 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2485 INLINE cvector &
operator +=(cvector &rv,
const rvector_slice &sl)
2487 #if(CXSC_INDEX_CHECK)
2488 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2494 INLINE cvector operator -(
const rvector &rv1,
const cvector &rv2)
2495 #if(CXSC_INDEX_CHECK)
2496 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2500 INLINE cvector operator -(
const rvector &rv,
const cvector_slice &sl)
2502 #if(CXSC_INDEX_CHECK)
2503 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2507 INLINE cvector operator -(
const rvector_slice &sl,
const cvector &rv)
2509 #if(CXSC_INDEX_CHECK)
2510 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2514 INLINE cvector operator -(
const rvector_slice &sl1,
const cvector_slice &sl2)
2516 #if(CXSC_INDEX_CHECK)
2517 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2523 INLINE cvector operator -(
const cvector &rv1,
const rvector &rv2)
2524 #if(CXSC_INDEX_CHECK)
2525 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2529 INLINE cvector operator -(
const cvector &rv,
const rvector_slice &sl)
2531 #if(CXSC_INDEX_CHECK)
2532 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2536 INLINE cvector operator -(
const cvector_slice &sl,
const rvector &rv)
2538 #if(CXSC_INDEX_CHECK)
2539 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2543 INLINE cvector operator -(
const cvector_slice &sl1,
const rvector_slice &sl2)
2545 #if(CXSC_INDEX_CHECK)
2546 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2550 INLINE cvector & operator -=(cvector &rv1,
const rvector &rv2)
2552 #if(CXSC_INDEX_CHECK)
2553 throw(ERROR__OP_WITH_WRONG_DIM<cvector>);
2557 INLINE cvector &operator -=(cvector &rv,
const rvector_slice &sl)
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"