26 #ifndef _CXSC_LRMATRIX_HPP_INCLUDED
27 #define _CXSC_LRMATRIX_HPP_INCLUDED
29 #include "xscclass.hpp"
32 #include "l_rvector.hpp"
35 #include "rmatrix.hpp"
40 class l_rmatrix_slice;
55 int size,start,offset;
61 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT);
68 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT);
75 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT);
82 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT);
88 template<
typename S,
typename T>
89 friend inline void addDot(
const S &x,
const T &y,
dotprecision &val);
92 #ifdef _CXSC_FRIEND_TPL
94 template <
class MV1,
class MV2>
friend MV1 &_mvmvassign(MV1 &v,
const MV2 &rv)
96 throw(ERROR__OP_WITH_WRONG_DIM<MV1>);
100 template <
class MV,
class S>
friend MV &_mvsassign(MV &v,
const S &r)
throw();
101 template <
class MV,
class V>
friend MV &_mvvassign(MV &v,
const V &rv)
102 #if(CXSC_INDEX_CHECK)
103 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
107 template <
class V,
class MV2,
class S>
friend V &_vmvassign(V &v,
const MV2 &rv)
throw();
108 template <
class MV,
class V>
friend V _mvabs(
const MV &mv)
throw();
109 template <
class DP,
class V,
class SV>
friend void _vmvaccu(DP &dp,
const V & rv1,
const SV &rv2)
110 #if(CXSC_INDEX_CHECK)
111 throw(OP_WITH_WRONG_DIM);
115 template <
class DP,
class MV1,
class MV2>
friend void _mvmvaccu(DP &dp,
const MV1 & rv1,
const MV2 &rv2)
116 #if(CXSC_INDEX_CHECK)
117 throw(OP_WITH_WRONG_DIM);
123 template <
class MV1,
class MV2,
class S>
friend S _mvmvlmult(
const MV1 & rv1,
const MV2 &rv2)
124 #if(CXSC_INDEX_CHECK)
125 throw(ERROR__OP_WITH_WRONG_DIM<MV1>);
129 template <
class V,
class MV,
class S>
friend S _vmvlmult(
const V &rv1,
const MV &rv2)
130 #if(CXSC_INDEX_CHECK)
131 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
135 template <
class MV,
class S,
class E>
friend E _mvsmult(
const MV &rv,
const S &s)
throw();
136 template <
class MV1,
class MV2,
class E>
friend E _mvmvplus(
const MV1 &rv1,
const MV2 &rv2)
137 #if(CXSC_INDEX_CHECK)
138 throw(ERROR__OP_WITH_WRONG_DIM<E>);
142 template <
class MV1,
class MV2,
class E>
friend E _mvmvminus(
const MV1 &rv1,
const MV2 &rv2)
143 #if(CXSC_INDEX_CHECK)
144 throw(ERROR__OP_WITH_WRONG_DIM<E>);
148 template <
class MV,
class V,
class E>
friend E _mvvplus(
const MV &rv1,
const V &rv2)
149 #if(CXSC_INDEX_CHECK)
150 throw(ERROR__OP_WITH_WRONG_DIM<E>);
154 template <
class MV,
class V,
class E>
friend E _mvvminus(
const MV &rv1,
const V &rv2)
155 #if(CXSC_INDEX_CHECK)
156 throw(ERROR__OP_WITH_WRONG_DIM<E>);
160 template <
class V,
class MV,
class E>
friend E _vmvminus(
const V &rv1,
const MV &rv2)
161 #if(CXSC_INDEX_CHECK)
162 throw(ERROR__OP_WITH_WRONG_DIM<E>);
166 template <
class MV,
class S,
class E>
friend E _mvsdiv(
const MV &rv,
const S &s)
throw();
167 template <
class MV,
class S>
friend MV &_mvsmultassign(MV &v,
const S &r)
throw();
168 template <
class MV,
class S>
friend MV &_mvsplusassign(MV &v,
const S &r)
throw();
169 template <
class MV,
class S>
friend MV &_mvsminusassign(MV &v,
const S &r)
throw();
170 template <
class MV,
class S>
friend MV &_mvsdivassign(MV &v,
const S &r)
throw();
171 template <
class MV,
class V>
friend MV &_mvvplusassign(MV &v,
const V &rv)
172 #if(CXSC_INDEX_CHECK)
173 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
177 template <
class V,
class MV>
friend V &_vmvplusassign(V &rv,
const MV &v)
178 #if(CXSC_INDEX_CHECK)
179 throw(ERROR__OP_WITH_WRONG_DIM<V>);
183 template <
class MV,
class V>
friend MV &_mvvminusassign(MV &v,
const V &rv)
184 #if(CXSC_INDEX_CHECK)
185 throw(ERROR__OP_WITH_WRONG_DIM<MV>);
189 template <
class V,
class MV>
friend V &_vmvminusassign(V &rv,
const MV &v)
190 #if(CXSC_INDEX_CHECK)
191 throw(ERROR__OP_WITH_WRONG_DIM<V>);
196 template <
class V,
class MV>
friend V &_vmvsetinf(V &rv,
const MV &v)
197 #if(CXSC_INDEX_CHECK)
198 throw(ERROR__OP_WITH_WRONG_DIM<V>);
202 template <
class V,
class MV>
friend V &_vmvsetsup(V &rv,
const MV &v)
203 #if(CXSC_INDEX_CHECK)
204 throw(ERROR__OP_WITH_WRONG_DIM<V>);
208 template <
class V,
class MV>
friend V &_vmvusetinf(V &rv,
const MV &v)
209 #if(CXSC_INDEX_CHECK)
210 throw(ERROR__OP_WITH_WRONG_DIM<V>);
214 template <
class V,
class MV>
friend V &_vmvusetsup(V &rv,
const MV &v)
215 #if(CXSC_INDEX_CHECK)
216 throw(ERROR__OP_WITH_WRONG_DIM<V>);
226 explicit INLINE
l_rmatrix_subv (
l_real *d,
const int &l,
const int &u,
const int &s,
const int &st,
const int &o)
throw():dat(d),lb(l),ub(u),size(s),start(st),offset(o) { }
239 #if(CXSC_INDEX_CHECK)
240 throw(ERROR_LRVECTOR_ELEMENT_NOT_IN_VEC);
248 #if(CXSC_INDEX_CHECK)
249 throw(ERROR_LRVECTOR_SUB_ARRAY_TOO_BIG);
255 #if(CXSC_INDEX_CHECK)
256 throw(ERROR_LRVECTOR_SUB_ARRAY_TOO_BIG);
268 #if(CXSC_INDEX_CHECK)
269 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ);
275 #if(CXSC_INDEX_CHECK)
276 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ);
282 #if(CXSC_INDEX_CHECK)
283 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
289 #if(CXSC_INDEX_CHECK)
290 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
305 #if(CXSC_INDEX_CHECK)
306 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
312 #if(CXSC_INDEX_CHECK)
313 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
319 #if(CXSC_INDEX_CHECK)
320 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
326 #if(CXSC_INDEX_CHECK)
327 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
338 #if(CXSC_INDEX_CHECK)
339 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ);
345 #if(CXSC_INDEX_CHECK)
346 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ);
352 #if(CXSC_INDEX_CHECK)
353 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
359 #if(CXSC_INDEX_CHECK)
360 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
375 #if(CXSC_INDEX_CHECK)
376 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
382 #if(CXSC_INDEX_CHECK)
383 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
389 #if(CXSC_INDEX_CHECK)
390 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
396 #if(CXSC_INDEX_CHECK)
397 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
409 class l_rmatrix_slice;
422 int lb1,ub1,lb2,ub2,xsize,ysize;
426 #ifdef _CXSC_FRIEND_TPL
428 template <
class S,
class M>
friend void _smconstr(S &s,
const M &m)
429 #if(CXSC_INDEX_CHECK)
430 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<M>,ERROR__USE_OF_UNINITIALIZED_OBJ<M>);
434 template <
class V,
class M,
class S>
friend void _vmconstr(V &v,
const M &m)
435 #if(CXSC_INDEX_CHECK)
436 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<M>);
440 template <
class M1,
class M2,
class S>
friend M1 &_mmassign(M1 &m1,
const M2 &m,S ms)
throw();
441 template <
class M,
class MS2,
class S>
friend M &_mmsassign(M &m,
const MS2 &ms)
throw();
442 template <
class MS,
class M>
friend MS &_msmassign(MS &ms,
const M &m)
443 #if(CXSC_INDEX_CHECK)
444 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
448 template <
class M,
class S>
friend M &_msassign(M &m,
const S &r)
throw();
449 template <
class V,
class M,
class S>
friend V &_vmassign(V &v,
const M &m)
450 #if(CXSC_INDEX_CHECK)
451 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<M>);
455 template <
class M,
class V,
class S>
friend M &_mvassign(M &m,
const V &v)
throw();
456 template <
class M>
friend int _mlb(
const M &m,
const int &i)
457 #if(CXSC_INDEX_CHECK)
458 throw(ERROR__WRONG_ROW_OR_COL<M>);
462 template <
class M>
friend int _mub(
const M &m,
const int &i)
463 #if(CXSC_INDEX_CHECK)
464 throw(ERROR__WRONG_ROW_OR_COL<M>);
468 template <
class M>
friend M &_msetlb(M &m,
const int &i,
const int &j)
469 #if(CXSC_INDEX_CHECK)
470 throw(ERROR__WRONG_ROW_OR_COL<M>);
474 template <
class M>
friend M &_msetub(M &m,
const int &i,
const int &j)
475 #if(CXSC_INDEX_CHECK)
476 throw(ERROR__WRONG_ROW_OR_COL<M>);
480 template <
class M>
friend void _mresize(M &A)
throw();
481 template <
class M,
class S>
friend void _mresize(M &A,
const int &m,
const int &n)
482 #if(CXSC_INDEX_CHECK)
483 throw(ERROR__WRONG_BOUNDARIES<M>);
487 template <
class M,
class S>
friend void _mresize(M &A,
const int &m1,
const int &m2,
const int &n1,
const int &n2)
488 #if(CXSC_INDEX_CHECK)
489 throw(ERROR__WRONG_BOUNDARIES<M>);
493 template <
class M,
class E>
friend E _mabs(
const M &m)
throw();
494 template <
class MS,
class E>
friend E _msabs(
const MS &ms)
throw();
496 template <
class M1,
class M2,
class E>
friend E _mmplus(
const M1 &m1,
const M2 &m2)
497 #if(CXSC_INDEX_CHECK)
498 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
502 template <
class M,
class MS,
class E>
friend E _mmsplus(
const M &m,
const MS &ms)
503 #if(CXSC_INDEX_CHECK)
504 throw(ERROR__OP_WITH_WRONG_DIM<M>);
508 template <
class M>
friend M _mminus(
const M &m)
throw();
509 template <
class MS,
class E>
friend E _msminus(
const MS &ms)
throw();
510 template <
class M1,
class M2,
class E>
friend E _mmminus(
const M1 &m1,
const M2 &m2)
511 #if(CXSC_INDEX_CHECK)
512 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
516 template <
class M1,
class M2>
friend M1 &_mmplusassign(M1 &m1,
const M2 &m2)
517 #if(CXSC_INDEX_CHECK)
518 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
522 template <
class M,
class MS>
friend M &_mmsplusassign(M &m1,
const MS &ms)
523 #if(CXSC_INDEX_CHECK)
524 throw(ERROR__OP_WITH_WRONG_DIM<M>);
528 template <
class MS,
class M>
friend MS &_msmplusassign(MS &ms,
const M &m1)
529 #if(CXSC_INDEX_CHECK)
530 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
534 template <
class MS1,
class MS2,
class E>
friend E _msmsplus(
const MS1 &m1,
const MS2 &m2)
535 #if(CXSC_INDEX_CHECK)
536 throw(ERROR__OP_WITH_WRONG_DIM<E>);
540 template <
class M,
class MS,
class E>
friend E _mmsminus(
const M &m,
const MS &ms)
541 #if(CXSC_INDEX_CHECK)
542 throw(ERROR__OP_WITH_WRONG_DIM<E>);
546 template <
class MS,
class M,
class E>
friend E _msmminus(
const MS &ms,
const M &m)
547 #if(CXSC_INDEX_CHECK)
548 throw(ERROR__OP_WITH_WRONG_DIM<E>);
552 template <
class MS1,
class MS2,
class E>
friend E _msmsminus(
const MS1 &ms1,
const MS2 &ms2)
553 #if(CXSC_INDEX_CHECK)
554 throw(ERROR__OP_WITH_WRONG_DIM<E>);
558 template <
class M1,
class M2>
friend M1 &_mmminusassign(M1 &m1,
const M2 &m2)
559 #if(CXSC_INDEX_CHECK)
560 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
564 template <
class M,
class MS>
friend M &_mmsminusassign(M &m1,
const MS &ms)
565 #if(CXSC_INDEX_CHECK)
566 throw(ERROR__OP_WITH_WRONG_DIM<M>);
570 template <
class MS,
class M>
friend MS &_msmminusassign(MS &ms,
const M &m1)
571 #if(CXSC_INDEX_CHECK)
572 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
576 template <
class M1,
class M2,
class E>
friend E _mmlmult(
const M1 &m1,
const M2 &m2)
577 #if(CXSC_INDEX_CHECK)
578 throw(ERROR__OP_WITH_WRONG_DIM<E>);
582 template <
class M1,
class M2,
class S>
friend M1 &_mmlmultassign(M1 &m1,
const M2 &m2)
583 #if(CXSC_INDEX_CHECK)
584 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
588 template <
class M,
class MS,
class E>
friend E _mmslmult(
const M &m1,
const MS &ms)
589 #if(CXSC_INDEX_CHECK)
590 throw(ERROR__OP_WITH_WRONG_DIM<E>);
594 template <
class MS,
class M,
class E>
friend E _msmlmult(
const MS &ms,
const M &m2)
595 #if(CXSC_INDEX_CHECK)
596 throw(ERROR__OP_WITH_WRONG_DIM<E>);
600 template <
class M,
class MS,
class S>
friend M &_mmslmultassign(M &m1,
const MS &ms)
601 #if(CXSC_INDEX_CHECK)
602 throw(ERROR__OP_WITH_WRONG_DIM<M>);
606 template <
class MS1,
class MS2,
class E>
friend E _msmslmult(
const MS1 &ms1,
const MS2 &ms2)
607 #if(CXSC_INDEX_CHECK)
608 throw(ERROR__OP_WITH_WRONG_DIM<E>);
612 template <
class M1,
class M2,
class E>
friend E _mmconv(
const M1 &m1,
const M2 &m2)
613 #if(CXSC_INDEX_CHECK)
614 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
618 template <
class M,
class MS,
class E>
friend E _mmsconv(
const M &m,
const MS &ms)
619 #if(CXSC_INDEX_CHECK)
620 throw(ERROR__OP_WITH_WRONG_DIM<M>);
625 template <
class S,
class M,
class E>
friend E _smmult(
const S &c,
const M &m)
throw();
626 template <
class M,
class S>
friend M &_msmultassign(M &m,
const S &c)
throw();
627 template <
class S,
class MS,
class E>
friend E _smsmult(
const S &c,
const MS &ms)
throw();
628 template <
class M,
class S,
class E>
friend E _msdiv(
const M &m,
const S &c)
throw();
629 template <
class M,
class S>
friend M &_msdivassign(M &m,
const S &c)
throw();
630 template <
class MS,
class S,
class E>
friend E _mssdiv(
const MS &ms,
const S &c)
throw();
632 template <
class M,
class V,
class E>
friend E _mvlmult(
const M &m,
const V &v)
633 #if(CXSC_INDEX_CHECK)
634 throw(ERROR__OP_WITH_WRONG_DIM<M>);
638 template <
class V,
class M,
class E>
friend E _vmlmult(
const V &v,
const M &m)
639 #if(CXSC_INDEX_CHECK)
640 throw(ERROR__OP_WITH_WRONG_DIM<M>);
644 template <
class V,
class M,
class S>
friend V &_vmlmultassign(V &v,
const M &m)
645 #if(CXSC_INDEX_CHECK)
646 throw(ERROR__OP_WITH_WRONG_DIM<M>);
650 template <
class VS,
class M,
class S>
friend VS &_vsmlmultassign(VS &v,
const M &m)
651 #if(CXSC_INDEX_CHECK)
652 throw(ERROR__OP_WITH_WRONG_DIM<M>);
657 template <
class M>
friend void *_mvoid(
const M &m)
throw();
658 template <
class M>
friend bool _mnot(
const M &m)
throw();
659 template <
class MS>
friend void *_msvoid(
const MS &ms)
throw();
660 template <
class MS>
friend bool _msnot(
const MS &ms)
throw();
661 template <
class M1,
class M2>
friend bool _mmeq(
const M1 &m1,
const M2 &m2)
throw();
662 template <
class M1,
class M2>
friend bool _mmneq(
const M1 &m1,
const M2 &m2)
throw();
663 template <
class M1,
class M2>
friend bool _mmless(
const M1 &m1,
const M2 &m2)
throw();
664 template <
class M1,
class M2>
friend bool _mmleq(
const M1 &m1,
const M2 &m2)
throw();
665 template <
class M,
class MS>
friend bool _mmseq(
const M &m1,
const MS &ms)
throw();
666 template <
class M,
class MS>
friend bool _mmsneq(
const M &m1,
const MS &ms)
throw();
667 template <
class M,
class MS>
friend bool _mmsless(
const M &m1,
const MS &ms)
throw();
668 template <
class M,
class MS>
friend bool _mmsleq(
const M &m1,
const MS &ms)
throw();
669 template <
class MS,
class M>
friend bool _msmless(
const MS &ms,
const M &m1)
throw();
670 template <
class MS,
class M>
friend bool _msmleq(
const MS &ms,
const M &m1)
throw();
671 template <
class M>
friend std::ostream &_mout(std::ostream &s,
const M &r)
throw();
672 template <
class M>
friend std::istream &_min(std::istream &s,M &r)
throw();
675 template <
class MS,
class V,
class E>
friend E _msvlmult(
const MS &ms,
const V &v)
676 #if(CXSC_INDEX_CHECK)
677 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
681 template <
class V,
class MS,
class E>
friend E _vmslmult(
const V &v,
const MS &ms)
682 #if(CXSC_INDEX_CHECK)
683 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
688 template <
class M1,
class M2,
class E>
friend E _mmlimult(
const M1 &m1,
const M2 &m2)
689 #if(CXSC_INDEX_CHECK)
690 throw(ERROR__OP_WITH_WRONG_DIM<E>);
695 template <
class M,
class MS,
class E>
friend E _mmslimult(
const M &m1,
const MS &ms)
696 #if(CXSC_INDEX_CHECK)
697 throw(ERROR__OP_WITH_WRONG_DIM<E>);
702 template <
class MS,
class M,
class E>
friend E _msmlimult(
const MS &ms,
const M &m2)
703 #if(CXSC_INDEX_CHECK)
704 throw(ERROR__OP_WITH_WRONG_DIM<E>);
709 template <
class MS1,
class MS2,
class E>
friend E _msmslimult(
const MS1 &ms1,
const MS2 &ms2)
710 #if(CXSC_INDEX_CHECK)
711 throw(ERROR__OP_WITH_WRONG_DIM<E>);
716 template <
class MS1,
class MS2,
class E>
friend E _msmsconv(
const MS1 &m1,
const MS2 &m2)
717 #if(CXSC_INDEX_CHECK)
718 throw(ERROR__OP_WITH_WRONG_DIM<E>);
722 template <
class M1,
class M2,
class E>
friend E _mmsect(
const M1 &m1,
const M2 &m2)
723 #if(CXSC_INDEX_CHECK)
724 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
728 template <
class M,
class MS,
class E>
friend E _mmssect(
const M &m,
const MS &ms)
729 #if(CXSC_INDEX_CHECK)
730 throw(ERROR__OP_WITH_WRONG_DIM<M>);
735 template <
class MS1,
class MS2,
class E>
friend E _msmssect(
const MS1 &m1,
const MS2 &m2)
736 #if(CXSC_INDEX_CHECK)
737 throw(ERROR__OP_WITH_WRONG_DIM<E>);
745 template <
class M,
class V,
class E>
friend E _mvlimult(
const M &m,
const V &v)
746 #if(CXSC_INDEX_CHECK)
747 throw(ERROR__OP_WITH_WRONG_DIM<M>);
751 template <
class V,
class M,
class E>
friend E _vmlimult(
const V &v,
const M &m)
752 #if(CXSC_INDEX_CHECK)
753 throw(ERROR__OP_WITH_WRONG_DIM<M>);
757 template <
class MS,
class V,
class E>
friend E _msvlimult(
const MS &ms,
const V &v)
758 #if(CXSC_INDEX_CHECK)
759 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
766 template <
class M,
class E>
friend E _mdiam(
const M &m)
throw();
767 template <
class M,
class E>
friend E _mmid(
const M &m)
throw();
768 template <
class MS,
class E>
friend E _msdiam(
const MS &ms)
throw();
769 template <
class MS,
class E>
friend E _msmid(
const MS &ms)
throw();
770 template <
class M,
class E>
friend E _minf(
const M &m)
throw();
771 template <
class MS,
class E>
friend E _msinf(
const MS &ms)
throw();
772 template <
class M,
class E>
friend E _msup(
const M &m)
throw();
773 template <
class MS,
class E>
friend E _mssup(
const MS &ms)
throw();
774 template <
class M1,
class M2>
friend M1 &_mmsetinf(M1 &m1,
const M2 &m2)
775 #if(CXSC_INDEX_CHECK)
776 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
780 template <
class M1,
class M2>
friend M1 &_mmsetsup(M1 &m1,
const M2 &m2)
781 #if(CXSC_INDEX_CHECK)
782 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
786 template <
class M1,
class M2>
friend M1 &_mmusetinf(M1 &m1,
const M2 &m2)
787 #if(CXSC_INDEX_CHECK)
788 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
792 template <
class M1,
class M2>
friend M1 &_mmusetsup(M1 &m1,
const M2 &m2)
793 #if(CXSC_INDEX_CHECK)
794 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
798 template <
class MS1,
class M2>
friend MS1 &_msmsetinf(MS1 &ms1,
const M2 &m2)
799 #if(CXSC_INDEX_CHECK)
800 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
804 template <
class MS1,
class M2>
friend MS1 &_msmsetsup(MS1 &ms1,
const M2 &m2)
805 #if(CXSC_INDEX_CHECK)
806 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
810 template <
class MS1,
class M2>
friend MS1 &_msmusetinf(MS1 &ms1,
const M2 &m2)
811 #if(CXSC_INDEX_CHECK)
812 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
816 template <
class MS1,
class M2>
friend MS1 &_msmusetsup(MS1 &ms1,
const M2 &m2)
817 #if(CXSC_INDEX_CHECK)
818 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
823 template <
class M1,
class M2,
class S>
friend M1 &_mmlimultassign(M1 &m1,
const M2 &m2)
824 #if(CXSC_INDEX_CHECK)
825 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
830 template <
class M,
class MS,
class S>
friend M &_mmslimultassign(M &m1,
const MS &ms)
831 #if(CXSC_INDEX_CHECK)
832 throw(ERROR__OP_WITH_WRONG_DIM<M>);
837 template <
class M1,
class M2>
friend M1 &_mmconvassign(M1 &m1,
const M2 &m2)
838 #if(CXSC_INDEX_CHECK)
839 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
843 template <
class M,
class MS>
friend M &_mmsconvassign(M &m1,
const MS &ms)
844 #if(CXSC_INDEX_CHECK)
845 throw(ERROR__OP_WITH_WRONG_DIM<M>);
849 template <
class MS,
class M>
friend MS &_msmconvassign(MS &ms,
const M &m1)
850 #if(CXSC_INDEX_CHECK)
851 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
856 template <
class M1,
class M2>
friend M1 &_mmsectassign(M1 &m1,
const M2 &m2)
857 #if(CXSC_INDEX_CHECK)
858 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
862 template <
class M,
class MS>
friend M &_mmssectassign(M &m1,
const MS &ms)
863 #if(CXSC_INDEX_CHECK)
864 throw(ERROR__OP_WITH_WRONG_DIM<M>);
868 template <
class MS,
class M>
friend MS &_msmsectassign(MS &ms,
const M &m1)
869 #if(CXSC_INDEX_CHECK)
870 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
875 template <
class V,
class M,
class S>
friend V &_vmlimultassign(V &v,
const M &m)
876 #if(CXSC_INDEX_CHECK)
877 throw(ERROR__OP_WITH_WRONG_DIM<M>);
881 template <
class VS,
class M,
class S>
friend VS &_vsmlimultassign(VS &v,
const M &m)
882 #if(CXSC_INDEX_CHECK)
883 throw(ERROR__OP_WITH_WRONG_DIM<M>);
900 explicit INLINE
l_rmatrix(
const int &m,
const int &n)
901 #if(CXSC_INDEX_CHECK)
902 throw(ERROR_LRMATRIX_WRONG_BOUNDARIES);
906 explicit INLINE
l_rmatrix(
const int &m1,
const int &n1,
const int &m2,
const int &n2)
908 #if(CXSC_INDEX_CHECK)
909 throw(ERROR_LRMATRIX_WRONG_BOUNDARIES);
953 INLINE ~
l_rmatrix()
throw() {
delete [] dat; }
959 #if(CXSC_INDEX_CHECK)
960 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT);
966 #if(CXSC_INDEX_CHECK)
967 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT);
975 #if(CXSC_INDEX_CHECK)
976 throw(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG);
982 #if(CXSC_INDEX_CHECK)
983 throw(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG);
987 INLINE
operator void*()
throw();
1005 int offset1,offset2,mxsize,mysize;
1006 int start1,end1,start2,end2,sxsize,sysize;
1010 #ifdef _CXSC_FRIEND_TPL
1012 template <
class V,
class MS,
class S>
friend void _vmsconstr(V &v,
const MS &m)
1013 #if(CXSC_INDEX_CHECK)
1014 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<MS>);
1018 template <
class MS,
class M>
friend MS &_msmassign(MS &ms,
const M &m)
1019 #if(CXSC_INDEX_CHECK)
1020 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1024 template <
class MS1,
class MS2>
friend MS1 &_msmsassign(MS1 &ms1,
const MS2 &ms)
1025 #if(CXSC_INDEX_CHECK)
1026 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
1030 template <
class M,
class MS2,
class S>
friend M &_mmsassign(M &m,
const MS2 &ms)
throw();
1031 template <
class MS,
class S>
friend MS &_mssassign(MS &ms,
const S &r)
throw();
1033 template <
class MS>
friend int _mslb(
const MS &ms,
const int &i)
1034 #if(CXSC_INDEX_CHECK)
1035 throw(ERROR__WRONG_ROW_OR_COL<MS>);
1039 template <
class MS>
friend int _msub(
const MS &ms,
const int &i)
1040 #if(CXSC_INDEX_CHECK)
1041 throw(ERROR__WRONG_ROW_OR_COL<MS>);
1045 template <
class MS,
class E>
friend E _msabs(
const MS &ms)
throw();
1047 template <
class MS,
class E>
friend E _msminus(
const MS &ms)
throw();
1048 template <
class M,
class MS,
class E>
friend E _mmsplus(
const M &m,
const MS &ms)
1049 #if(CXSC_INDEX_CHECK)
1050 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1054 template <
class MS1,
class MS2,
class E>
friend E _msmsplus(
const MS1 &m1,
const MS2 &m2)
1055 #if(CXSC_INDEX_CHECK)
1056 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1060 template <
class M,
class MS>
friend M &_mmsplusassign(M &m1,
const MS &ms)
1061 #if(CXSC_INDEX_CHECK)
1062 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1066 template <
class MS,
class M>
friend MS &_msmplusassign(MS &ms,
const M &m1)
1067 #if(CXSC_INDEX_CHECK)
1068 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1072 template <
class MS1,
class MS2>
friend MS1 &_msmsplusassign(MS1 &ms1,
const MS2 &ms2)
1073 #if(CXSC_INDEX_CHECK)
1074 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
1078 template <
class M,
class MS,
class E>
friend E _mmsminus(
const M &m,
const MS &ms)
1079 #if(CXSC_INDEX_CHECK)
1080 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1084 template <
class MS,
class M,
class E>
friend E _msmminus(
const MS &ms,
const M &m)
1085 #if(CXSC_INDEX_CHECK)
1086 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1090 template <
class MS1,
class MS2,
class E>
friend E _msmsminus(
const MS1 &ms1,
const MS2 &ms2)
1091 #if(CXSC_INDEX_CHECK)
1092 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1096 template <
class M,
class MS>
friend M &_mmsminusassign(M &m1,
const MS &ms)
1097 #if(CXSC_INDEX_CHECK)
1098 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1102 template <
class MS,
class M>
friend MS &_msmminusassign(MS &ms,
const M &m1)
1103 #if(CXSC_INDEX_CHECK)
1104 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1108 template <
class MS1,
class MS2>
friend MS1 &_msmsminusassign(MS1 &ms1,
const MS2 &ms2)
1109 #if(CXSC_INDEX_CHECK)
1110 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
1114 template <
class M,
class MS,
class E>
friend E _mmslmult(
const M &m1,
const MS &ms)
1115 #if(CXSC_INDEX_CHECK)
1116 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1120 template <
class MS,
class M,
class E>
friend E _msmlmult(
const MS &ms,
const M &m2)
1121 #if(CXSC_INDEX_CHECK)
1122 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1126 template <
class M,
class MS,
class S>
friend M &_mmslmultassign(M &m1,
const MS &ms)
1127 #if(CXSC_INDEX_CHECK)
1128 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1132 template <
class MS1,
class MS2,
class E>
friend E _msmslmult(
const MS1 &ms1,
const MS2 &ms2)
1133 #if(CXSC_INDEX_CHECK)
1134 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1138 template <
class M,
class MS,
class E>
friend E _mmsconv(
const M &m,
const MS &ms)
1139 #if(CXSC_INDEX_CHECK)
1140 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1144 template <
class MS1,
class MS2,
class E>
friend E _msmsconv(
const MS1 &m1,
const MS2 &m2)
1145 #if(CXSC_INDEX_CHECK)
1146 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1151 template <
class MS,
class V,
class E>
friend E _msvlmult(
const MS &ms,
const V &v)
1152 #if(CXSC_INDEX_CHECK)
1153 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1157 template <
class V,
class MS,
class E>
friend E _vmslmult(
const V &v,
const MS &ms)
1158 #if(CXSC_INDEX_CHECK)
1159 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1163 template <
class V,
class MS,
class S>
friend V &_vmslmultassign(V &v,
const MS &ms)
1164 #if(CXSC_INDEX_CHECK)
1165 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1170 template <
class S,
class MS,
class E>
friend E _smsmult(
const S &c,
const MS &ms)
throw();
1171 template <
class MS,
class S>
friend MS &_mssmultassign(MS &ms,
const S &c)
throw();
1172 template <
class MS,
class S,
class E>
friend E _mssdiv(
const MS &ms,
const S &c)
throw();
1173 template <
class MS,
class S>
friend MS &_mssdivassign(MS &ms,
const S &c)
throw();
1175 template <
class MS>
friend void *_msvoid(
const MS &ms)
throw();
1176 template <
class MS>
friend bool _msnot(
const MS &ms)
throw();
1177 template <
class M,
class MS>
friend bool _mmseq(
const M &m1,
const MS &ms)
throw();
1178 template <
class M,
class MS>
friend bool _mmsneq(
const M &m1,
const MS &ms)
throw();
1179 template <
class M,
class MS>
friend bool _mmsless(
const M &m1,
const MS &ms)
throw();
1180 template <
class M,
class MS>
friend bool _mmsleq(
const M &m1,
const MS &ms)
throw();
1181 template <
class MS,
class M>
friend bool _msmless(
const MS &ms,
const M &m1)
throw();
1182 template <
class MS,
class M>
friend bool _msmleq(
const MS &ms,
const M &m1)
throw();
1183 template <
class MS1,
class MS2>
friend bool _msmseq(
const MS1 &ms1,
const MS2 &ms2)
throw();
1184 template <
class MS1,
class MS2>
friend bool _msmsneq(
const MS1 &ms1,
const MS2 &ms2)
throw();
1185 template <
class MS1,
class MS2>
friend bool _msmsless(
const MS1 &ms1,
const MS2 &ms2)
throw();
1186 template <
class MS1,
class MS2>
friend bool _msmsleq(
const MS1 &ms1,
const MS2 &ms2)
throw();
1187 template <
class MS>
friend std::ostream &_msout(std::ostream &s,
const MS &r)
throw();
1188 template <
class MS>
friend std::istream &_msin(std::istream &s,MS &r)
throw();
1192 template <
class M,
class MS,
class E>
friend E _mmslimult(
const M &m1,
const MS &ms)
1193 #if(CXSC_INDEX_CHECK)
1194 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1198 template <
class MS,
class M,
class E>
friend E _msmlimult(
const MS &ms,
const M &m2)
1199 #if(CXSC_INDEX_CHECK)
1200 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1205 template <
class MS1,
class MS2,
class E>
friend E _msmslimult(
const MS1 &ms1,
const MS2 &ms2)
1206 #if(CXSC_INDEX_CHECK)
1207 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1212 template <
class M,
class MS,
class E>
friend E _mmssect(
const M &m,
const MS &ms)
1213 #if(CXSC_INDEX_CHECK)
1214 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1218 template <
class MS1,
class MS2,
class E>
friend E _msmssect(
const MS1 &m1,
const MS2 &m2)
1219 #if(CXSC_INDEX_CHECK)
1220 throw(ERROR__OP_WITH_WRONG_DIM<E>);
1227 template <
class MS,
class V,
class E>
friend E _msvlimult(
const MS &ms,
const V &v)
1228 #if(CXSC_INDEX_CHECK)
1229 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1233 template <
class V,
class MS,
class E>
friend E _vmslimult(
const V &v,
const MS &ms)
1234 #if(CXSC_INDEX_CHECK)
1235 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1242 template <
class M1,
class MS2>
friend M1 &_mmssetinf(M1 &m1,
const MS2 &ms2)
1243 #if(CXSC_INDEX_CHECK)
1244 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
1248 template <
class M1,
class MS2>
friend M1 &_mmssetsup(M1 &m1,
const MS2 &ms2)
1249 #if(CXSC_INDEX_CHECK)
1250 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
1254 template <
class M1,
class MS2>
friend M1 &_mmsusetinf(M1 &m1,
const MS2 &ms2)
1255 #if(CXSC_INDEX_CHECK)
1256 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
1260 template <
class M1,
class MS2>
friend M1 &_mmsusetsup(M1 &m1,
const MS2 &ms2)
1261 #if(CXSC_INDEX_CHECK)
1262 throw(ERROR__OP_WITH_WRONG_DIM<M1>);
1266 template <
class MS1,
class MS2>
friend MS1 &_msmssetinf(MS1 &ms1,
const MS2 &ms2)
1267 #if(CXSC_INDEX_CHECK)
1268 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
1272 template <
class MS1,
class MS2>
friend MS1 &_msmssetsup(MS1 &ms1,
const MS2 &ms2)
1273 #if(CXSC_INDEX_CHECK)
1274 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
1278 template <
class MS1,
class MS2>
friend MS1 &_msmsusetinf(MS1 &ms1,
const MS2 &ms2)
1279 #if(CXSC_INDEX_CHECK)
1280 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
1284 template <
class MS1,
class MS2>
friend MS1 &_msmsusetsup(MS1 &ms1,
const MS2 &ms2)
1285 #if(CXSC_INDEX_CHECK)
1286 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
1292 template <
class M,
class MS,
class S>
friend M &_mmslimultassign(M &m1,
const MS &ms)
1293 #if(CXSC_INDEX_CHECK)
1294 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1300 template <
class M,
class MS>
friend M &_mmsconvassign(M &m1,
const MS &ms)
1301 #if(CXSC_INDEX_CHECK)
1302 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1306 template <
class MS1,
class MS2>
friend MS1 &_msmsconvassign(MS1 &ms1,
const MS2 &ms2)
1307 #if(CXSC_INDEX_CHECK)
1308 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
1313 template <
class M,
class MS>
friend M &_mmssectassign(M &m1,
const MS &ms)
1314 #if(CXSC_INDEX_CHECK)
1315 throw(ERROR__OP_WITH_WRONG_DIM<M>);
1319 template <
class MS1,
class MS2>
friend MS1 &_msmssectassign(MS1 &ms1,
const MS2 &ms2)
1320 #if(CXSC_INDEX_CHECK)
1321 throw(ERROR__OP_WITH_WRONG_DIM<MS1>);
1332 template <
class V,
class MS,
class S>
friend V &_vmslimultassign(V &v,
const MS &ms)
1333 #if(CXSC_INDEX_CHECK)
1334 throw(ERROR__OP_WITH_WRONG_DIM<MS>);
1344 explicit INLINE
l_rmatrix_slice(
l_rmatrix &a,
const int &l1,
const int &u1,
const int &l2,
const int &u2)
throw():dat(a.dat),offset1(l1-a.lb1),offset2(l2-a.lb2),mxsize(a.xsize),mysize(a.ysize),start1(l1),end1(u1),start2(l2),end2(u2),sxsize(u2-l2+1),sysize(u1-l1+1) { }
1346 explicit INLINE
l_rmatrix_slice(
l_rmatrix_slice &a,
const int &l1,
const int &u1,
const int &l2,
const int &u2)
throw():dat(a.dat),offset1(a.offset1+l1-a.start1),offset2(a.offset2+l2-a.start2),mxsize(a.mxsize),mysize(a.mysize),start1(l1),end1(u1),start2(l2),end2(u2),sxsize(u2-l2+1),sysize(u1-l1+1) { }
1349 INLINE
l_rmatrix_slice(
const l_rmatrix_slice &ms)
throw():dat(ms.dat),offset1(ms.offset1),offset2(ms.offset2),mxsize(ms.mxsize),mysize(ms.mysize),start1(ms.start1),end1(ms.end1),start2(ms.start2),end2(ms.end2),sxsize(ms.sxsize),sysize(ms.sysize) { }
1355 #if(CXSC_INDEX_CHECK)
1356 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ);
1363 #if(CXSC_INDEX_CHECK)
1364 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1370 #if(CXSC_INDEX_CHECK)
1371 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1379 #if(CXSC_INDEX_CHECK)
1380 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1386 #if(CXSC_INDEX_CHECK)
1387 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1393 #if(CXSC_INDEX_CHECK)
1394 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1400 #if(CXSC_INDEX_CHECK)
1401 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1409 #if(CXSC_INDEX_CHECK)
1410 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1416 #if(CXSC_INDEX_CHECK)
1417 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1423 #if(CXSC_INDEX_CHECK)
1424 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT);
1430 #if(CXSC_INDEX_CHECK)
1431 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT);
1439 #if(CXSC_INDEX_CHECK)
1440 throw(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG);
1446 #if(CXSC_INDEX_CHECK)
1447 throw(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG);
1453 #if(CXSC_INDEX_CHECK)
1454 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1460 #if(CXSC_INDEX_CHECK)
1461 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1467 #if(CXSC_INDEX_CHECK)
1468 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1474 #if(CXSC_INDEX_CHECK)
1475 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1481 #if(CXSC_INDEX_CHECK)
1482 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1488 #if(CXSC_INDEX_CHECK)
1489 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1495 #if(CXSC_INDEX_CHECK)
1496 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1502 #if(CXSC_INDEX_CHECK)
1503 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1509 #if(CXSC_INDEX_CHECK)
1510 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1516 #if(CXSC_INDEX_CHECK)
1517 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1523 #if(CXSC_INDEX_CHECK)
1524 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1530 #if(CXSC_INDEX_CHECK)
1531 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1537 #if(CXSC_INDEX_CHECK)
1538 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1544 #if(CXSC_INDEX_CHECK)
1545 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1551 #if(CXSC_INDEX_CHECK)
1552 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1558 #if(CXSC_INDEX_CHECK)
1559 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1571 INLINE
operator void*()
throw();
1582 INLINE l_rvector
operator /(
const l_rmatrix_subv &rv,
const l_real &s)
throw();
1584 INLINE l_rvector
operator *(
const l_rmatrix_subv &rv,
const l_real &s)
throw();
1586 INLINE l_rvector
operator *(
const l_real &s,
const l_rmatrix_subv &rv)
throw();
1591 INLINE l_rvector
abs(
const l_rmatrix_subv &mv)
throw();
1594 INLINE
void accumulate(dotprecision &dp,
const l_rmatrix_subv & rv1,
const l_rmatrix_subv &rv2)
1595 #if(CXSC_INDEX_CHECK)
1596 throw(OP_WITH_WRONG_DIM);
1600 INLINE
void accumulate(dotprecision &dp,
const l_rvector & rv1,
const l_rmatrix_subv &rv2)
1602 #if(CXSC_INDEX_CHECK)
1603 throw(OP_WITH_WRONG_DIM);
1607 INLINE
void accumulate(dotprecision &dp,
const l_rmatrix_subv & rv1,
const l_rvector &rv2)
1609 #if(CXSC_INDEX_CHECK)
1610 throw(OP_WITH_WRONG_DIM);
1614 INLINE
void accumulate(dotprecision &dp,
const l_rvector_slice & sl1,
const l_rmatrix_subv &rv2)
1616 #if(CXSC_INDEX_CHECK)
1617 throw(OP_WITH_WRONG_DIM);
1621 INLINE
void accumulate(dotprecision &dp,
const l_rmatrix_subv & rv1,
const l_rvector_slice &sl2)
1623 #if(CXSC_INDEX_CHECK)
1624 throw(OP_WITH_WRONG_DIM);
1630 INLINE
void accumulate(idotprecision &dp,
const l_rmatrix_subv & rv1,
const l_rmatrix_subv &rv2)
1631 #if(CXSC_INDEX_CHECK)
1632 throw(OP_WITH_WRONG_DIM);
1636 INLINE
void accumulate(idotprecision &dp,
const l_rvector & rv1,
const l_rmatrix_subv &rv2)
1638 #if(CXSC_INDEX_CHECK)
1639 throw(OP_WITH_WRONG_DIM);
1643 INLINE
void accumulate(idotprecision &dp,
const l_rmatrix_subv & rv1,
const l_rvector &rv2)
1645 #if(CXSC_INDEX_CHECK)
1646 throw(OP_WITH_WRONG_DIM);
1650 INLINE
void accumulate(idotprecision &dp,
const l_rvector_slice & sl1,
const l_rmatrix_subv &rv2)
1652 #if(CXSC_INDEX_CHECK)
1653 throw(OP_WITH_WRONG_DIM);
1657 INLINE
void accumulate(idotprecision &dp,
const l_rmatrix_subv & rv1,
const l_rvector_slice &sl2)
1659 #if(CXSC_INDEX_CHECK)
1660 throw(OP_WITH_WRONG_DIM);
1666 INLINE l_real
operator *(
const l_rmatrix_subv & rv1,
const l_rmatrix_subv &rv2)
1667 #if(CXSC_INDEX_CHECK)
1668 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1672 INLINE l_real
operator *(
const l_rvector & rv1,
const l_rmatrix_subv &rv2)
1674 #if(CXSC_INDEX_CHECK)
1675 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1679 INLINE l_real
operator *(
const l_rmatrix_subv &rv1,
const l_rvector &rv2)
1681 #if(CXSC_INDEX_CHECK)
1682 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1686 INLINE l_real
operator *(
const l_rvector_slice &sl,
const l_rmatrix_subv &sv)
1688 #if(CXSC_INDEX_CHECK)
1689 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1693 INLINE l_real
operator *(
const l_rmatrix_subv &mv,
const l_rvector_slice &vs)
1695 #if(CXSC_INDEX_CHECK)
1696 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1702 INLINE l_rvector operator +(
const l_rmatrix_subv & rv1,
const l_rmatrix_subv &rv2)
1703 #if(CXSC_INDEX_CHECK)
1704 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1708 INLINE l_rvector operator +(
const l_rmatrix_subv &rv1,
const l_rvector &rv2)
1710 #if(CXSC_INDEX_CHECK)
1711 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1715 INLINE l_rvector operator +(
const l_rvector & rv1,
const l_rmatrix_subv &rv2)
1717 #if(CXSC_INDEX_CHECK)
1718 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1722 INLINE l_rvector operator +(
const l_rvector_slice &sl,
const l_rmatrix_subv &mv)
1724 #if(CXSC_INDEX_CHECK)
1725 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1729 INLINE l_rvector operator +(
const l_rmatrix_subv &mv,
const l_rvector_slice &sl)
1731 #if(CXSC_INDEX_CHECK)
1732 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1738 INLINE l_rvector operator -(
const l_rmatrix_subv & rv1,
const l_rmatrix_subv &rv2)
1739 #if(CXSC_INDEX_CHECK)
1740 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1744 INLINE l_rvector operator -(
const l_rvector & rv1,
const l_rmatrix_subv &rv2)
1746 #if(CXSC_INDEX_CHECK)
1747 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1751 INLINE l_rvector operator -(
const l_rmatrix_subv &rv1,
const l_rvector &rv2)
1753 #if(CXSC_INDEX_CHECK)
1754 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1758 INLINE l_rvector operator -(
const l_rvector_slice &sl,
const l_rmatrix_subv &mv)
1760 #if(CXSC_INDEX_CHECK)
1761 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1765 INLINE l_rvector operator -(
const l_rmatrix_subv &mv,
const l_rvector_slice &sl)
1767 #if(CXSC_INDEX_CHECK)
1768 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM);
1777 INLINE l_rmatrix
_l_rmatrix(
const l_rmatrix &rm)
throw();
1779 INLINE l_rmatrix
_l_rmatrix(
const l_rvector &v)
throw();
1781 INLINE l_rmatrix
_l_rmatrix(
const l_rvector_slice &v)
throw();
1783 INLINE l_rmatrix
_l_rmatrix(
const l_real &r)
throw();
1786 INLINE
int Lb(
const l_rmatrix &rm,
const int &i)
1787 #if(CXSC_INDEX_CHECK)
1788 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL);
1792 INLINE
int Ub(
const l_rmatrix &rm,
const int &i)
1794 #if(CXSC_INDEX_CHECK)
1795 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL);
1799 INLINE
int Lb(
const l_rmatrix_slice &rm,
const int &i)
1801 #if(CXSC_INDEX_CHECK)
1802 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL);
1806 INLINE
int Ub(
const l_rmatrix_slice &rm,
const int &i)
1808 #if(CXSC_INDEX_CHECK)
1809 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL);
1813 INLINE l_rmatrix &
SetLb(l_rmatrix &m,
const int &i,
const int &j)
1815 #if(CXSC_INDEX_CHECK)
1816 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL);
1820 INLINE l_rmatrix &
SetUb(l_rmatrix &m,
const int &i,
const int &j)
1822 #if(CXSC_INDEX_CHECK)
1823 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL);
1827 INLINE
void Resize(l_rmatrix &A)
throw();
1830 INLINE
void Resize(l_rmatrix &A,
const int &m,
const int &n)
1831 #if(CXSC_INDEX_CHECK)
1832 throw(ERROR_LRMATRIX_WRONG_BOUNDARIES);
1836 INLINE
void Resize(l_rmatrix &A,
const int &m1,
const int &m2,
const int &n1,
const int &n2)
1838 #if(CXSC_INDEX_CHECK)
1839 throw(ERROR_LRMATRIX_WRONG_BOUNDARIES);
1845 INLINE l_rmatrix
abs(
const l_rmatrix &m)
throw();
1847 INLINE l_rmatrix
abs(
const l_rmatrix_slice &ms)
throw();
1852 INLINE l_rmatrix
operator *(
const l_real &c,
const l_rmatrix &m)
throw();
1854 INLINE l_rmatrix
operator *(
const l_real &c,
const l_rmatrix_slice &ms)
throw();
1856 INLINE l_rmatrix
operator *(
const l_rmatrix &m,
const l_real &c)
throw();
1858 INLINE l_rmatrix
operator *(
const l_rmatrix_slice &ms,
const l_real &c)
throw();
1860 INLINE l_rmatrix &
operator *=(l_rmatrix &m,
const l_real &c)
throw();
1862 INLINE l_rmatrix
operator /(
const l_rmatrix &m,
const l_real &c)
throw();
1864 INLINE l_rmatrix
operator /(
const l_rmatrix_slice &ms,
const l_real &c)
throw();
1866 INLINE l_rmatrix &
operator /=(l_rmatrix &m,
const l_real &c)
throw();
1871 INLINE l_rmatrix
operator *(
const real &c,
const l_rmatrix &m)
throw();
1873 INLINE l_rmatrix
operator *(
const real &c,
const l_rmatrix_slice &ms)
throw();
1875 INLINE l_rmatrix
operator *(
const l_rmatrix &m,
const real &c)
throw();
1877 INLINE l_rmatrix
operator *(
const l_rmatrix_slice &ms,
const real &c)
throw();
1879 INLINE l_rmatrix &
operator *=(l_rmatrix &m,
const real &c)
throw();
1881 INLINE l_rmatrix
operator /(
const l_rmatrix &m,
const real &c)
throw();
1883 INLINE l_rmatrix
operator /(
const l_rmatrix_slice &ms,
const real &c)
throw();
1885 INLINE l_rmatrix &
operator /=(l_rmatrix &m,
const real &c)
throw();
1889 INLINE l_rmatrix
operator *(
const l_real &c,
const rmatrix &m)
throw();
1891 INLINE l_rmatrix
operator *(
const l_real &c,
const rmatrix_slice &ms)
throw();
1893 INLINE l_rmatrix
operator *(
const rmatrix &m,
const l_real &c)
throw();
1895 INLINE l_rmatrix
operator *(
const rmatrix_slice &ms,
const l_real &c)
throw();
1897 INLINE l_rmatrix
operator /(
const rmatrix &m,
const l_real &c)
throw();
1899 INLINE l_rmatrix
operator /(
const rmatrix_slice &ms,
const l_real &c)
throw();
1906 INLINE l_rvector
operator *(
const l_rmatrix &m,
const l_rvector &v)
1907 #if(CXSC_INDEX_CHECK)
1908 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1912 INLINE l_rvector
operator *(
const l_rmatrix_slice &ms,
const l_rvector &v)
1914 #if(CXSC_INDEX_CHECK)
1915 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1919 INLINE l_rvector
operator *(
const l_rvector &v,
const l_rmatrix &m)
1921 #if(CXSC_INDEX_CHECK)
1922 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1926 INLINE l_rvector
operator *(
const l_rvector &v,
const l_rmatrix_slice &ms)
1928 #if(CXSC_INDEX_CHECK)
1929 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1933 INLINE l_rvector &
operator *=(l_rvector &v,
const l_rmatrix &m)
1935 #if(CXSC_INDEX_CHECK)
1936 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1940 INLINE l_rvector &
operator *=(l_rvector &v,
const l_rmatrix_slice &ms)
1942 #if(CXSC_INDEX_CHECK)
1943 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1949 INLINE l_rvector
operator *(
const l_rvector_slice &v,
const l_rmatrix &m)
1950 #if(CXSC_INDEX_CHECK)
1951 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1955 INLINE l_rvector
operator *(
const l_rvector_slice &v,
const l_rmatrix_slice &m)
1957 #if(CXSC_INDEX_CHECK)
1958 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1966 INLINE l_rvector
operator *(
const rvector &v,
const l_rmatrix &m)
1967 #if(CXSC_INDEX_CHECK)
1968 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1972 INLINE l_rvector
operator *(
const rvector &v,
const l_rmatrix_slice &ms)
1974 #if(CXSC_INDEX_CHECK)
1975 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1979 INLINE l_rvector
operator *(
const rvector_slice &v,
const l_rmatrix &m)
1981 #if(CXSC_INDEX_CHECK)
1982 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1988 INLINE l_rvector
operator *(
const l_rmatrix &m,
const rvector &v)
1989 #if(CXSC_INDEX_CHECK)
1990 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
1994 INLINE l_rvector
operator *(
const l_rmatrix_slice &ms,
const rvector &v)
1996 #if(CXSC_INDEX_CHECK)
1997 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2006 INLINE
const l_rmatrix &operator +(
const l_rmatrix &m1)
throw();
2008 INLINE l_rmatrix operator +(
const l_rmatrix_slice &ms)
throw();
2010 INLINE l_rmatrix operator +(
const l_rmatrix &m1,
const l_rmatrix &m2)
2011 #if(CXSC_INDEX_CHECK)
2012 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2016 INLINE l_rmatrix operator +(
const l_rmatrix &m,
const l_rmatrix_slice &ms)
2018 #if(CXSC_INDEX_CHECK)
2019 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2023 INLINE l_rmatrix operator +(
const l_rmatrix_slice &ms,
const l_rmatrix &m)
2025 #if(CXSC_INDEX_CHECK)
2026 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2030 INLINE l_rmatrix operator +(
const l_rmatrix_slice &m1,
const l_rmatrix_slice &m2)
2032 #if(CXSC_INDEX_CHECK)
2033 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2037 INLINE l_rmatrix &
operator +=(l_rmatrix &m1,
const l_rmatrix &m2)
2039 #if(CXSC_INDEX_CHECK)
2040 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2044 INLINE l_rmatrix &
operator +=(l_rmatrix &m1,
const l_rmatrix_slice &ms)
2046 #if(CXSC_INDEX_CHECK)
2047 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2053 INLINE l_rmatrix operator -(
const l_rmatrix &m)
throw();
2055 INLINE l_rmatrix operator -(
const l_rmatrix_slice &ms)
throw();
2057 INLINE l_rmatrix operator -(
const l_rmatrix &m1,
const l_rmatrix &m2)
2058 #if(CXSC_INDEX_CHECK)
2059 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2063 INLINE l_rmatrix operator -(
const l_rmatrix &m,
const l_rmatrix_slice &ms)
2065 #if(CXSC_INDEX_CHECK)
2066 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2070 INLINE l_rmatrix operator -(
const l_rmatrix_slice &ms,
const l_rmatrix &m)
2072 #if(CXSC_INDEX_CHECK)
2073 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2077 INLINE l_rmatrix operator -(
const l_rmatrix_slice &ms1,
const l_rmatrix_slice &ms2)
2079 #if(CXSC_INDEX_CHECK)
2080 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2084 INLINE l_rmatrix &operator -=(l_rmatrix &m1,
const l_rmatrix &m2)
2086 #if(CXSC_INDEX_CHECK)
2087 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2091 INLINE l_rmatrix &operator -=(l_rmatrix &m1,
const l_rmatrix_slice &ms)
2093 #if(CXSC_INDEX_CHECK)
2094 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2100 INLINE l_rmatrix
operator *(
const l_rmatrix &m1,
const l_rmatrix &m2)
2101 #if(CXSC_INDEX_CHECK)
2102 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2106 INLINE l_rmatrix
operator *(
const l_rmatrix &m1,
const l_rmatrix_slice &ms)
2108 #if(CXSC_INDEX_CHECK)
2109 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2113 INLINE l_rmatrix
operator *(
const l_rmatrix_slice &ms,
const l_rmatrix &m1)
2115 #if(CXSC_INDEX_CHECK)
2116 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2120 INLINE l_rmatrix
operator *(
const l_rmatrix_slice &ms1,
const l_rmatrix_slice &ms2)
2122 #if(CXSC_INDEX_CHECK)
2123 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2127 INLINE l_rmatrix &
operator *=(l_rmatrix &m1,
const l_rmatrix &m2)
2129 #if(CXSC_INDEX_CHECK)
2130 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2134 INLINE l_rmatrix &
operator *=(l_rmatrix &m1,
const l_rmatrix_slice &ms)
2136 #if(CXSC_INDEX_CHECK)
2137 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2145 INLINE l_rmatrix operator +(
const rmatrix &m1,
const l_rmatrix &m2)
2146 #if(CXSC_INDEX_CHECK)
2147 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2151 INLINE l_rmatrix operator +(
const l_rmatrix &m1,
const rmatrix &m2)
2153 #if(CXSC_INDEX_CHECK)
2154 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2158 INLINE l_rmatrix operator +(
const rmatrix &m,
const l_rmatrix_slice &ms)
2160 #if(CXSC_INDEX_CHECK)
2161 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2165 INLINE l_rmatrix operator +(
const l_rmatrix &m,
const rmatrix_slice &ms)
2167 #if(CXSC_INDEX_CHECK)
2168 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2172 INLINE l_rmatrix operator +(
const rmatrix_slice &ms,
const l_rmatrix &m)
2174 #if(CXSC_INDEX_CHECK)
2175 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2179 INLINE l_rmatrix operator +(
const l_rmatrix_slice &ms,
const rmatrix &m)
2181 #if(CXSC_INDEX_CHECK)
2182 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2186 INLINE l_rmatrix operator +(
const rmatrix_slice &m1,
const l_rmatrix_slice &m2)
2188 #if(CXSC_INDEX_CHECK)
2189 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2193 INLINE l_rmatrix operator +(
const l_rmatrix_slice &m1,
const rmatrix_slice &m2)
2195 #if(CXSC_INDEX_CHECK)
2196 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2200 INLINE l_rmatrix &
operator +=(l_rmatrix &m1,
const rmatrix &m2)
2202 #if(CXSC_INDEX_CHECK)
2203 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2207 INLINE l_rmatrix &
operator +=(l_rmatrix &m1,
const rmatrix_slice &ms)
2209 #if(CXSC_INDEX_CHECK)
2210 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2216 INLINE l_rmatrix operator -(
const rmatrix &m1,
const l_rmatrix &m2)
2217 #if(CXSC_INDEX_CHECK)
2218 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2222 INLINE l_rmatrix operator -(
const l_rmatrix &m1,
const rmatrix &m2)
2224 #if(CXSC_INDEX_CHECK)
2225 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2229 INLINE l_rmatrix operator -(
const rmatrix &m,
const l_rmatrix_slice &ms)
2231 #if(CXSC_INDEX_CHECK)
2232 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2236 INLINE l_rmatrix operator -(
const l_rmatrix &m,
const rmatrix_slice &ms)
2238 #if(CXSC_INDEX_CHECK)
2239 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2243 INLINE l_rmatrix operator -(
const rmatrix_slice &ms,
const l_rmatrix &m)
2245 #if(CXSC_INDEX_CHECK)
2246 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2250 INLINE l_rmatrix operator -(
const l_rmatrix_slice &ms,
const rmatrix &m)
2252 #if(CXSC_INDEX_CHECK)
2253 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2257 INLINE l_rmatrix operator -(
const rmatrix_slice &ms1,
const l_rmatrix_slice &ms2)
2259 #if(CXSC_INDEX_CHECK)
2260 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2264 INLINE l_rmatrix operator -(
const l_rmatrix_slice &ms1,
const rmatrix_slice &ms2)
2266 #if(CXSC_INDEX_CHECK)
2267 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2271 INLINE l_rmatrix &operator -=(l_rmatrix &m1,
const rmatrix &m2)
2273 #if(CXSC_INDEX_CHECK)
2274 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2278 INLINE l_rmatrix &operator -=(l_rmatrix &m1,
const rmatrix_slice &ms)
2280 #if(CXSC_INDEX_CHECK)
2281 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2287 INLINE l_rmatrix
operator *(
const rmatrix &m1,
const l_rmatrix &m2)
2288 #if(CXSC_INDEX_CHECK)
2289 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2293 INLINE l_rmatrix
operator *(
const l_rmatrix &m1,
const rmatrix &m2)
2295 #if(CXSC_INDEX_CHECK)
2296 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2300 INLINE l_rmatrix
operator *(
const rmatrix &m1,
const l_rmatrix_slice &ms)
2302 #if(CXSC_INDEX_CHECK)
2303 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2307 INLINE l_rmatrix
operator *(
const l_rmatrix &m1,
const rmatrix_slice &ms)
2309 #if(CXSC_INDEX_CHECK)
2310 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2314 INLINE l_rmatrix
operator *(
const rmatrix_slice &ms,
const l_rmatrix &m1)
2316 #if(CXSC_INDEX_CHECK)
2317 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2321 INLINE l_rmatrix
operator *(
const l_rmatrix_slice &ms,
const rmatrix &m1)
2323 #if(CXSC_INDEX_CHECK)
2324 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2328 INLINE l_rmatrix
operator *(
const rmatrix_slice &ms1,
const l_rmatrix_slice &ms2)
2330 #if(CXSC_INDEX_CHECK)
2331 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2335 INLINE l_rmatrix
operator *(
const l_rmatrix_slice &ms1,
const rmatrix_slice &ms2)
2337 #if(CXSC_INDEX_CHECK)
2338 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2342 INLINE l_rmatrix &
operator *=(l_rmatrix &m1,
const rmatrix &m2)
2344 #if(CXSC_INDEX_CHECK)
2345 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2349 INLINE l_rmatrix &
operator *=(l_rmatrix &m1,
const rmatrix_slice &ms)
2351 #if(CXSC_INDEX_CHECK)
2352 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM);
2363 INLINE
bool operator ==(
const l_rmatrix &m1,
const l_rmatrix &m2)
throw();
2365 INLINE
bool operator !=(
const l_rmatrix &m1,
const l_rmatrix &m2)
throw();
2367 INLINE
bool operator <(
const l_rmatrix &m1,
const l_rmatrix &m2)
throw();
2369 INLINE
bool operator <=(
const l_rmatrix &m1,
const l_rmatrix &m2)
throw();
2371 INLINE
bool operator >(
const l_rmatrix &m1,
const l_rmatrix &m2)
throw();
2373 INLINE
bool operator >=(
const l_rmatrix &m1,
const l_rmatrix &m2)
throw();
2375 INLINE
bool operator ==(
const l_rmatrix &m1,
const l_rmatrix_slice &ms)
throw();
2377 INLINE
bool operator !=(
const l_rmatrix &m1,
const l_rmatrix_slice &ms)
throw();
2379 INLINE
bool operator <(
const l_rmatrix &m1,
const l_rmatrix_slice &ms)
throw();
2381 INLINE
bool operator <=(
const l_rmatrix &m1,
const l_rmatrix_slice &ms)
throw();
2383 INLINE
bool operator >(
const l_rmatrix &m1,
const l_rmatrix_slice &ms)
throw();
2385 INLINE
bool operator >=(
const l_rmatrix &m1,
const l_rmatrix_slice &ms)
throw();
2390 INLINE
bool operator ==(
const l_rmatrix_slice &m1,
const l_rmatrix_slice &m2)
throw();
2392 INLINE
bool operator !=(
const l_rmatrix_slice &m1,
const l_rmatrix_slice &m2)
throw();
2394 INLINE
bool operator <(
const l_rmatrix_slice &m1,
const l_rmatrix_slice &m2)
throw();
2396 INLINE
bool operator <=(
const l_rmatrix_slice &m1,
const l_rmatrix_slice &m2)
throw();
2398 INLINE
bool operator >(
const l_rmatrix_slice &m1,
const l_rmatrix_slice &m2)
throw();
2400 INLINE
bool operator >=(
const l_rmatrix_slice &m1,
const l_rmatrix_slice &m2)
throw();
2405 INLINE
bool operator !(
const l_rmatrix &ms)
throw();
2407 INLINE
bool operator !(
const l_rmatrix_slice &ms)
throw();
2412 INLINE std::ostream &operator <<(std::ostream &s,
const l_rmatrix &r)
throw();
2414 INLINE std::ostream &operator <<(std::ostream &s,
const l_rmatrix_slice &r)
throw();
2416 INLINE std::istream &operator >>(std::istream &s,l_rmatrix &r)
throw();
2418 INLINE std::istream &operator >>(std::istream &s,l_rmatrix_slice &r)
throw();
2421 INLINE
int RowLen (
const l_rmatrix& );
2423 INLINE
int ColLen (
const l_rmatrix& );
2425 INLINE
int RowLen (
const l_rmatrix_slice& );
2427 INLINE
int ColLen (
const l_rmatrix_slice& );
2429 l_rmatrix
Id (
const l_rmatrix& );
2431 l_rmatrix
transp (
const l_rmatrix& );
2437 #ifdef _CXSC_INCL_INL
2438 #include "matrix.inl"
2439 #include "l_rmatrix.inl"
2442 #ifdef _CXSC_LIVECTOR_HPP_INCLUDED
2443 # ifdef _CXSC_INCL_INL
2444 # include "liveclrmat.inl"
2446 # include "liveclrmat.hpp"
2450 #ifdef _CXSC_IVECTOR_HPP_INCLUDED
2451 # ifdef _CXSC_INCL_INL
2452 # include "iveclrmat.inl"
2454 # include "iveclrmat.hpp"
2458 #ifdef _CXSC_IMATRIX_HPP_INCLUDED
2459 # ifdef _CXSC_INCL_INL
2460 # include "lrmatimat.inl"
2462 # include "lrmatimat.hpp"