26 #ifndef _CXSC_LRMATRIX_INL_INCLUDED
27 #define _CXSC_LRMATRIX_INL_INCLUDED
49 dat=
new l_real[xsize*ysize];
50 for(
int i=0;i<xsize*ysize;i++)
56 dat=
new l_real[xsize*ysize];
57 for(
int i=0;i<xsize*ysize;i++)
63 throw(ERROR_LRMATRIX_WRONG_BOUNDARIES):lb1(1),ub1(m),lb2(1),ub2(n),xsize(n),ysize(m)
65 throw():lb1(1),ub1(m),lb2(1),ub2(n),xsize(n),ysize(m)
69 if((n<0)||(m<0)) cxscthrow(ERROR_LRMATRIX_WRONG_BOUNDARIES(
"l_rmatrix::l_rmatrix(const int &m, const int &n)"));
76 throw(ERROR_LRMATRIX_WRONG_BOUNDARIES):lb1(m1),ub1(m2),lb2(n1),ub2(n2),xsize(n2-n1+1),ysize(m2-m1+1)
78 throw():lb1(m1),ub1(m2),lb2(n1),ub2(n2),xsize(n2-n1+1),ysize(m2-m1+1)
82 if((m2<m1)||(n2<n1)) cxscthrow(ERROR_LRMATRIX_WRONG_BOUNDARIES(
"l_rmatrix::l_rmatrix(const int &m1, const int &n1, const int &m2, const int &n2)"));
84 dat=
new l_real[xsize*ysize];
90 for (
int i=0, j=v.start;i<v.size;i++,j+=v.offset)
96 throw(ERROR__OP_WITH_WRONG_DIM<l_rvector>,ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ)
100 {
return _vsvassign(*
this,
l_rvector(m)); }
107 for(
int i=0;i<v.size;i++)
114 for(
int i=0;i<v.size;i++)
121 for(
int i=0,j=v.start-v.l;i<v.size;i++,j++)
128 for(
int i=0,j=v.start-v.l;i<v.size;i++,j++)
133 #if(CXSC_INDEX_CHECK)
134 throw(ERROR_LRVECTOR_ELEMENT_NOT_IN_VEC)
139 #if(CXSC_INDEX_CHECK)
140 if((i<lb)||(i>ub)) cxscthrow(ERROR_LRVECTOR_ELEMENT_NOT_IN_VEC(
"l_real &l_rmatrix_subv::operator [](const int &i)"));
142 return dat[start+((i-lb)*offset)];
149 dat=
new l_real[xsize*ysize];
150 for (i=0;i<ysize;i++)
154 dat[i*xsize+j]=sl.dat[(sl.offset1+i)*sl.mxsize+sl.offset2+j];
163 dat=
new l_real[xsize*ysize];
164 for (i=0;i<ysize;i++)
168 dat[i*xsize+j]=sl.dat[(sl.offset1+i)*sl.mxsize+sl.offset2+j];
174 #if(CXSC_INDEX_CHECK)
175 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT)
185 #if(CXSC_INDEX_CHECK)
186 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT)
196 #if(CXSC_INDEX_CHECK)
197 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT)
207 #if(CXSC_INDEX_CHECK)
208 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT)
218 #if(CXSC_INDEX_CHECK)
219 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT)
224 #if(CXSC_INDEX_CHECK)
225 if((i<lb1)||(i>ub1)) cxscthrow(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT(
"l_rmatrix_subv l_rmatrix::operator [](const int &i)"));
231 #if(CXSC_INDEX_CHECK)
232 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT)
237 #if(CXSC_INDEX_CHECK)
238 if((i.col()<lb2)||(i.col()>ub2)) cxscthrow(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT(
"l_rmatrix_subv l_rmatrix::operator [](const cxscmatrix_column &i)"));
244 #if(CXSC_INDEX_CHECK)
245 throw(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG)
250 #if(CXSC_INDEX_CHECK)
251 if((m<1)||(n<1)||(m<lb1)||(n<lb2)||(m>ub1)||(n>ub2)) cxscthrow(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG(
"l_rmatrix_slice l_rmatrix::operator ()(const int &m, const int &n)"));
257 #if(CXSC_INDEX_CHECK)
258 throw(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG)
263 #if(CXSC_INDEX_CHECK)
264 if((m1<lb1)||(n1<lb2)||(m2>ub1)||(n2>ub2)) cxscthrow(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG(
"l_rmatrix_slice l_rmatrix::operator ()(const int &m1, const int &n1, const int &m2, const int &n2)"));
270 #if(CXSC_INDEX_CHECK)
271 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT)
276 #if(CXSC_INDEX_CHECK)
277 if((i<start1)||(i>end1)) cxscthrow(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT(
"l_rmatrix_subv l_rmatrix_slice::operator [](const int &i)"));
279 return l_rmatrix_subv(dat, start2, end2, sxsize, mxsize*(i-start1+offset1)+offset2,1);
283 #if(CXSC_INDEX_CHECK)
284 throw(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT)
289 #if(CXSC_INDEX_CHECK)
290 if((i.col()<start2)||(i.col()>end2)) cxscthrow(ERROR_LRMATRIX_ROW_OR_COL_NOT_IN_MAT(
"l_rmatrix_subv l_rmatrix_slice::operator [](const cxscmatrix_column &i)"));
292 return l_rmatrix_subv(dat, start1, end1, sysize, offset1*mxsize+i.col()-start2+offset2, mxsize);
296 #if(CXSC_INDEX_CHECK)
297 throw(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG)
302 #if(CXSC_INDEX_CHECK)
303 if((m<1)||(n<1)||(m<start1)||(n<start2)||(m>end1)||(n>end2)) cxscthrow(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG(
"l_rmatrix_slice l_rmatrix_slice::operator ()(const int &m, const int &n)"));
309 #if(CXSC_INDEX_CHECK)
310 throw(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG)
315 #if(CXSC_INDEX_CHECK)
316 if((m1<start1)||(n1<start2)||(m2>end1)||(n2>end2)) cxscthrow(ERROR_LRMATRIX_SUB_ARRAY_TOO_BIG(
"l_rmatrix_slice l_rmatrix_slice::operator ()(const int &m1, const int &m2, const int &n1, const int &n2)"));
322 #if(CXSC_INDEX_CHECK)
323 throw(ERROR_LRVECTOR_SUB_ARRAY_TOO_BIG)
328 #if(CXSC_INDEX_CHECK)
329 if(1<lb||i>ub) cxscthrow(ERROR_LRVECTOR_SUB_ARRAY_TOO_BIG(
"l_rmatrix_subv l_rmatrix_subv::operator ()(const int &i)"));
335 #if(CXSC_INDEX_CHECK)
336 throw(ERROR_LRVECTOR_SUB_ARRAY_TOO_BIG)
341 #if(CXSC_INDEX_CHECK)
342 if(i1<lb||i2>ub) cxscthrow(ERROR_LRVECTOR_SUB_ARRAY_TOO_BIG(
"l_rmatrix_subv l_rmatrix_subv::operator ()(const int &i1,const int &i2)"));
344 return l_rmatrix_subv(dat,i1,i2,i2-i1+1,start+(i1-lb)*offset,offset);
352 #if(CXSC_INDEX_CHECK)
353 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
357 {
return _mvvassign(*
this,v); }
359 #if(CXSC_INDEX_CHECK)
360 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
364 {
return _mvvassign(*
this,
l_rvector(v)); }
368 #if(CXSC_INDEX_CHECK)
369 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
373 {
return _mvvassign(*
this,v); }
375 #if(CXSC_INDEX_CHECK)
376 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
380 {
return _mvvassign(*
this,
l_rvector(v)); }
392 INLINE l_rmatrix::operator
void*()
throw() {
return _mvoid(*
this); }
394 #if(CXSC_INDEX_CHECK)
395 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
399 {
return _msmassign(*
this,m); }
401 #if(CXSC_INDEX_CHECK)
402 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
406 {
return _msmsassign(*
this,ms); }
409 #if(CXSC_INDEX_CHECK)
410 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
414 {
return _msmassign(*
this,
l_rmatrix(v)); }
416 #if(CXSC_INDEX_CHECK)
417 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
423 #if(CXSC_INDEX_CHECK)
424 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
428 {
return _msmassign(*
this,m); }
430 #if(CXSC_INDEX_CHECK)
431 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
435 {
return _msmsassign(*
this,ms); }
438 #if(CXSC_INDEX_CHECK)
439 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
443 {
return _msmassign(*
this,
rmatrix(v)); }
445 #if(CXSC_INDEX_CHECK)
446 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
451 INLINE l_rmatrix_slice::operator
void*()
throw() {
return _msvoid(*
this); }
463 #if(CXSC_INDEX_CHECK)
464 throw(OP_WITH_WRONG_DIM)
468 { _mvmvaccu(dp,rv1,rv2); }
470 #if(CXSC_INDEX_CHECK)
471 throw(OP_WITH_WRONG_DIM)
475 { _vmvaccu(dp,rv1,rv2); }
477 #if(CXSC_INDEX_CHECK)
478 throw(OP_WITH_WRONG_DIM)
482 { _vmvaccu(dp,rv2,rv1); }
484 #if(CXSC_INDEX_CHECK)
485 throw(OP_WITH_WRONG_DIM)
491 #if(CXSC_INDEX_CHECK)
492 throw(OP_WITH_WRONG_DIM)
498 #if(CXSC_INDEX_CHECK)
499 throw(OP_WITH_WRONG_DIM)
503 { _mvmvaccu(dp,rv1,rv2); }
505 #if(CXSC_INDEX_CHECK)
506 throw(OP_WITH_WRONG_DIM)
510 { _vmvaccu(dp,rv1,rv2); }
512 #if(CXSC_INDEX_CHECK)
513 throw(OP_WITH_WRONG_DIM)
517 { _vmvaccu(dp,rv2,rv1); }
519 #if(CXSC_INDEX_CHECK)
520 throw(OP_WITH_WRONG_DIM)
526 #if(CXSC_INDEX_CHECK)
527 throw(OP_WITH_WRONG_DIM)
533 #if(CXSC_INDEX_CHECK)
534 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
538 {
return _mvmvlmult<l_rmatrix_subv,l_rmatrix_subv,l_real>(rv1,rv2); }
540 #if(CXSC_INDEX_CHECK)
541 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
545 {
return _vmvlmult<l_rvector,l_rmatrix_subv,l_real>(rv1,rv2); }
547 #if(CXSC_INDEX_CHECK)
548 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
552 {
return _vmvlmult<l_rvector,l_rmatrix_subv,l_real>(rv2,rv1); }
554 #if(CXSC_INDEX_CHECK)
555 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
559 {
return _vmvlmult<l_rvector,l_rmatrix_subv,l_real>(
l_rvector(sl),sv); }
561 #if(CXSC_INDEX_CHECK)
562 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
566 {
return _vmvlmult<l_rvector,l_rmatrix_subv,l_real>(
l_rvector(vs),mv); }
568 #if(CXSC_INDEX_CHECK)
569 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
573 {
return _mvmvplus<l_rmatrix_subv,l_rmatrix_subv,l_rvector>(rv1,rv2); }
575 #if(CXSC_INDEX_CHECK)
576 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
580 {
return _mvvplus<l_rmatrix_subv,l_rvector,l_rvector>(rv1,rv2); }
582 #if(CXSC_INDEX_CHECK)
583 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
587 {
return _mvvplus<l_rmatrix_subv,l_rvector,l_rvector>(rv2,rv1); }
589 #if(CXSC_INDEX_CHECK)
590 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
594 {
return _mvvplus<l_rmatrix_subv,l_rvector,l_rvector>(mv,
l_rvector(sl)); }
596 #if(CXSC_INDEX_CHECK)
597 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
601 {
return _mvvplus<l_rmatrix_subv,l_rvector,l_rvector>(mv,
l_rvector(sl)); }
603 #if(CXSC_INDEX_CHECK)
604 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
608 {
return _mvvplusassign(*
this,rv); }
610 #if(CXSC_INDEX_CHECK)
611 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
615 {
return _mvvplusassign(*
this,
l_rvector(rv)); }
617 #if(CXSC_INDEX_CHECK)
618 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
622 {
return _mvmvminus<l_rmatrix_subv,l_rmatrix_subv,l_rvector>(rv1,rv2); }
624 #if(CXSC_INDEX_CHECK)
625 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
629 {
return _vmvminus<l_rvector,l_rmatrix_subv,l_rvector>(rv1,rv2); }
631 #if(CXSC_INDEX_CHECK)
632 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
636 {
return _mvvminus<l_rmatrix_subv,l_rvector,l_rvector>(rv1,rv2); }
638 #if(CXSC_INDEX_CHECK)
639 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
643 {
return _vmvminus<l_rvector,l_rmatrix_subv,l_rvector>(
l_rvector(sl),mv); }
645 #if(CXSC_INDEX_CHECK)
646 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
650 {
return _mvvminus<l_rmatrix_subv,l_rvector,l_rvector>(mv,
l_rvector(sl)); }
652 #if(CXSC_INDEX_CHECK)
653 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
657 {
return _mvvminusassign(*
this,rv); }
659 #if(CXSC_INDEX_CHECK)
660 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
664 {
return _mvvminusassign(*
this,
l_rvector(rv)); }
667 #if(CXSC_INDEX_CHECK)
668 throw(OP_WITH_WRONG_DIM)
672 { _mvmvaccu(dp,rv1,rv2); }
674 #if(CXSC_INDEX_CHECK)
675 throw(OP_WITH_WRONG_DIM)
679 { _mvmvaccu(dp,rv2,rv1); }
681 #if(CXSC_INDEX_CHECK)
682 throw(OP_WITH_WRONG_DIM)
686 { _vmvaccu(dp,rv1,rv2); }
688 #if(CXSC_INDEX_CHECK)
689 throw(OP_WITH_WRONG_DIM)
693 { _vmvaccu(dp,rv2,rv1); }
695 #if(CXSC_INDEX_CHECK)
696 throw(OP_WITH_WRONG_DIM)
700 { _vmvaccu(dp,
rvector(sl1),rv2); }
702 #if(CXSC_INDEX_CHECK)
703 throw(OP_WITH_WRONG_DIM)
707 { _vmvaccu(dp,
rvector(sl2),rv1); }
710 #if(CXSC_INDEX_CHECK)
711 throw(OP_WITH_WRONG_DIM)
715 { _mvmvaccu(dp,rv1,rv2); }
717 #if(CXSC_INDEX_CHECK)
718 throw(OP_WITH_WRONG_DIM)
722 { _mvmvaccu(dp,rv2,rv1); }
724 #if(CXSC_INDEX_CHECK)
725 throw(OP_WITH_WRONG_DIM)
729 { _vmvaccu(dp,rv1,rv2); }
731 #if(CXSC_INDEX_CHECK)
732 throw(OP_WITH_WRONG_DIM)
736 { _vmvaccu(dp,rv2,rv1); }
738 #if(CXSC_INDEX_CHECK)
739 throw(OP_WITH_WRONG_DIM)
743 { _vmvaccu(dp,
rvector(sl1),rv2); }
745 #if(CXSC_INDEX_CHECK)
746 throw(OP_WITH_WRONG_DIM)
750 { _vmvaccu(dp,
rvector(sl2),rv1); }
753 #if(CXSC_INDEX_CHECK)
754 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
758 {
return _mvvplusassign(*
this,rv); }
760 #if(CXSC_INDEX_CHECK)
761 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
765 {
return _mvvplusassign(*
this,
l_rvector(rv)); }
767 #if(CXSC_INDEX_CHECK)
768 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
772 {
return _mvvminusassign(*
this,rv); }
774 #if(CXSC_INDEX_CHECK)
775 throw(ERROR_LRVECTOR_OP_WITH_WRONG_DIM)
779 {
return _mvvminusassign(*
this,
rvector(rv)); }
807 #if(CXSC_INDEX_CHECK)
808 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL)
812 {
return _mlb(rm,i); }
814 #if(CXSC_INDEX_CHECK)
815 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL)
819 {
return _mub(rm,i); }
821 #if(CXSC_INDEX_CHECK)
822 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL)
826 {
return _mslb(rm,i); }
828 #if(CXSC_INDEX_CHECK)
829 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL)
833 {
return _msub(rm,i); }
835 #if(CXSC_INDEX_CHECK)
836 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL)
840 {
return _msetlb(m,i,j); }
842 #if(CXSC_INDEX_CHECK)
843 throw(ERROR_LRMATRIX_WRONG_ROW_OR_COL)
847 {
return _msetub(m,i,j); }
850 {
return Ub(A,2)-
Lb(A,2)+1; }
853 {
return Ub(A,1)-
Lb(A,1)+1; }
856 {
return Ub(A,2)-
Lb(A,2)+1; }
859 {
return Ub(A,1)-
Lb(A,1)+1; }
863 #if(CXSC_INDEX_CHECK)
864 throw(ERROR_LRMATRIX_WRONG_BOUNDARIES)
868 { _mresize<l_rmatrix,l_real>(A,m,n); }
869 INLINE
void Resize(
l_rmatrix &A,
const int &m1,
const int &m2,
const int &n1,
const int &n2)
870 #if(CXSC_INDEX_CHECK)
871 throw(ERROR_LRMATRIX_WRONG_BOUNDARIES)
875 { _mresize<l_rmatrix,l_real>(A,m1,m2,n1,n2); }
879 #if(CXSC_INDEX_CHECK)
880 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_LRMATRIX_USE_OF_UNINITIALIZED_OBJ)
884 { _smconstr(*
this,m); }
892 #if(CXSC_INDEX_CHECK)
893 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
897 {
return (*
this=*
this*m); }
899 #if(CXSC_INDEX_CHECK)
900 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
904 {
return (*
this=*
this*m); }
916 #if(CXSC_INDEX_CHECK)
917 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
921 {
return (*
this=*
this*m); }
923 #if(CXSC_INDEX_CHECK)
924 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
928 {
return (*
this=*
this*m); }
943 #if(CXSC_INDEX_CHECK)
944 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ)
948 { _vmconstr<l_rvector,l_rmatrix,l_real>(*
this,sl); }
950 #if(CXSC_INDEX_CHECK)
951 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ)
955 { _vmsconstr<l_rvector,l_rmatrix_slice,l_real>(*
this,sl); }
957 #if(CXSC_INDEX_CHECK)
958 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ)
962 {
return _vmassign<l_rvector,l_rmatrix,l_real>(*
this,m); }
964 #if(CXSC_INDEX_CHECK)
965 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ)
969 {
return _vmassign<l_rvector,l_rmatrix,l_real>(*
this,
l_rmatrix(m)); }
971 #if(CXSC_INDEX_CHECK)
972 throw(ERROR__OP_WITH_WRONG_DIM<l_rvector>,ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ)
978 #if(CXSC_INDEX_CHECK)
979 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ)
983 {
return _mvvassign(*
this,
l_rvector(m)); }
985 #if(CXSC_INDEX_CHECK)
986 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ)
992 #if(CXSC_INDEX_CHECK)
993 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
997 {
return _mvlmult<l_rmatrix,l_rvector,l_rvector>(m,v); }
999 #if(CXSC_INDEX_CHECK)
1000 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1004 {
return _msvlmult<l_rmatrix_slice,l_rvector,l_rvector>(ms,v); }
1006 #if(CXSC_INDEX_CHECK)
1007 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1011 {
return _vmlmult<l_rvector,l_rmatrix,l_rvector>(v,m); }
1013 #if(CXSC_INDEX_CHECK)
1014 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1018 {
return _vmslmult<l_rvector,l_rmatrix_slice,l_rvector>(v,ms); }
1020 #if(CXSC_INDEX_CHECK)
1021 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1025 {
return _vmlmultassign<l_rvector,l_rmatrix,l_real>(v,m); }
1027 #if(CXSC_INDEX_CHECK)
1028 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1032 {
return _vmslmultassign<l_rvector,l_rmatrix_slice,l_real>(v,ms); }
1034 #if(CXSC_INDEX_CHECK)
1035 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1039 {
return _vsmlmultassign<l_rvector_slice,l_rmatrix,l_real>(*
this,m); }
1041 #if(CXSC_INDEX_CHECK)
1042 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1046 {
return _vmlmult<l_rvector,l_rmatrix,l_rvector>(
l_rvector(v),m); }
1048 #if(CXSC_INDEX_CHECK)
1049 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1053 {
return _vmslmult<l_rvector,l_rmatrix_slice,l_rvector>(
l_rvector(v),m); }
1055 #if(CXSC_INDEX_CHECK)
1056 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ)
1060 {
return _mvvassign(*
this,
rvector(m)); }
1062 #if(CXSC_INDEX_CHECK)
1063 throw(ERROR_LRMATRIX_TYPE_CAST_OF_THICK_OBJ)
1069 #if(CXSC_INDEX_CHECK)
1070 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1074 {
return _vmlmult<rvector,l_rmatrix,l_rvector>(v,m); }
1076 #if(CXSC_INDEX_CHECK)
1077 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1081 {
return _vmslmult<rvector,l_rmatrix_slice,l_rvector>(v,ms); }
1083 #if(CXSC_INDEX_CHECK)
1084 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1088 {
return _vmlmult<l_rvector,l_rmatrix,l_rvector>(
l_rvector(v),m); }
1090 #if(CXSC_INDEX_CHECK)
1091 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1095 {
return _mvlmult<l_rmatrix,rvector,l_rvector>(m,v); }
1097 #if(CXSC_INDEX_CHECK)
1098 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1102 {
return _msvlmult<l_rmatrix_slice,rvector,l_rvector>(ms,v); }
1107 #if(CXSC_INDEX_CHECK)
1108 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1112 {
return _mmplus<l_rmatrix,l_rmatrix,l_rmatrix>(m1,m2); }
1114 #if(CXSC_INDEX_CHECK)
1115 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1119 {
return _mmsplus<l_rmatrix,l_rmatrix_slice,l_rmatrix>(m,ms); }
1121 #if(CXSC_INDEX_CHECK)
1122 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1126 {
return _mmsplus<l_rmatrix,l_rmatrix_slice,l_rmatrix>(m,ms); }
1128 #if(CXSC_INDEX_CHECK)
1129 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1133 {
return _msmsplus<l_rmatrix_slice,l_rmatrix_slice,l_rmatrix>(m1,m2); }
1135 #if(CXSC_INDEX_CHECK)
1136 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1140 {
return _mmplusassign(m1,m2); }
1142 #if(CXSC_INDEX_CHECK)
1143 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1147 {
return _mmsplusassign(m1,ms); }
1149 #if(CXSC_INDEX_CHECK)
1150 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1154 {
return _msmplusassign(*
this,m1); }
1156 #if(CXSC_INDEX_CHECK)
1157 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1161 {
return _msmsplusassign(*
this,ms2); }
1165 #if(CXSC_INDEX_CHECK)
1166 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1170 {
return _mmminus<l_rmatrix,l_rmatrix,l_rmatrix>(m1,m2); }
1172 #if(CXSC_INDEX_CHECK)
1173 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1177 {
return _mmsminus<l_rmatrix,l_rmatrix_slice,l_rmatrix>(m,ms); }
1179 #if(CXSC_INDEX_CHECK)
1180 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1184 {
return _msmminus<l_rmatrix_slice,l_rmatrix,l_rmatrix>(ms,m); }
1186 #if(CXSC_INDEX_CHECK)
1187 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1191 {
return _msmsminus<l_rmatrix_slice,l_rmatrix_slice,l_rmatrix>(ms1,ms2); }
1193 #if(CXSC_INDEX_CHECK)
1194 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1198 {
return _mmminusassign(m1,m2); }
1200 #if(CXSC_INDEX_CHECK)
1201 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1205 {
return _mmsminusassign(m1,ms); }
1207 #if(CXSC_INDEX_CHECK)
1208 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1212 {
return _msmminusassign(*
this,m1); }
1214 #if(CXSC_INDEX_CHECK)
1215 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1219 {
return _msmsminusassign(*
this,ms2); }
1221 #if(CXSC_INDEX_CHECK)
1222 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1226 {
return _mmlmult<l_rmatrix,l_rmatrix,l_rmatrix>(m1,m2); }
1228 #if(CXSC_INDEX_CHECK)
1229 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1233 {
return _mmslmult<l_rmatrix,l_rmatrix_slice,l_rmatrix>(m1,ms); }
1235 #if(CXSC_INDEX_CHECK)
1236 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1240 {
return _msmlmult<l_rmatrix_slice,l_rmatrix,l_rmatrix>(ms,m1); }
1242 #if(CXSC_INDEX_CHECK)
1243 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1247 {
return _msmslmult<l_rmatrix_slice,l_rmatrix_slice,l_rmatrix>(ms1,ms2); }
1249 #if(CXSC_INDEX_CHECK)
1250 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1254 {
return _mmlmultassign<l_rmatrix,l_rmatrix,l_real>(m1,m2); }
1256 #if(CXSC_INDEX_CHECK)
1257 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1261 {
return _mmslmultassign<l_rmatrix,l_rmatrix_slice,l_real>(m1,ms); }
1263 #if(CXSC_INDEX_CHECK)
1264 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1268 {
return _mmplus<rmatrix,l_rmatrix,l_rmatrix>(m1,m2); }
1270 #if(CXSC_INDEX_CHECK)
1271 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1275 {
return _mmplus<rmatrix,l_rmatrix,l_rmatrix>(m2,m1); }
1277 #if(CXSC_INDEX_CHECK)
1278 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1282 {
return _mmsplus<rmatrix,l_rmatrix_slice,l_rmatrix>(m,ms); }
1284 #if(CXSC_INDEX_CHECK)
1285 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1289 {
return _mmsplus<l_rmatrix,rmatrix_slice,l_rmatrix>(m,ms); }
1291 #if(CXSC_INDEX_CHECK)
1292 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1296 {
return _mmsplus<l_rmatrix,rmatrix_slice,l_rmatrix>(m,ms); }
1298 #if(CXSC_INDEX_CHECK)
1299 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1303 {
return _mmsplus<rmatrix,l_rmatrix_slice,l_rmatrix>(m,ms); }
1305 #if(CXSC_INDEX_CHECK)
1306 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1310 {
return _msmsplus<rmatrix_slice,l_rmatrix_slice,l_rmatrix>(m1,m2); }
1312 #if(CXSC_INDEX_CHECK)
1313 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1317 {
return _msmsplus<rmatrix_slice,l_rmatrix_slice,l_rmatrix>(m2,m1); }
1319 #if(CXSC_INDEX_CHECK)
1320 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1324 {
return _mmplusassign(m1,m2); }
1326 #if(CXSC_INDEX_CHECK)
1327 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1331 {
return _mmsplusassign(m1,ms); }
1333 #if(CXSC_INDEX_CHECK)
1334 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1338 {
return _msmplusassign(*
this,m1); }
1340 #if(CXSC_INDEX_CHECK)
1341 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1345 {
return _msmsplusassign(*
this,ms2); }
1347 #if(CXSC_INDEX_CHECK)
1348 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1352 {
return _mmminus<rmatrix,l_rmatrix,l_rmatrix>(m1,m2); }
1354 #if(CXSC_INDEX_CHECK)
1355 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1359 {
return _mmminus<l_rmatrix,rmatrix,l_rmatrix>(m1,m2); }
1361 #if(CXSC_INDEX_CHECK)
1362 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1366 {
return _mmsminus<rmatrix,l_rmatrix_slice,l_rmatrix>(m,ms); }
1368 #if(CXSC_INDEX_CHECK)
1369 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1373 {
return _mmsminus<l_rmatrix,rmatrix_slice,l_rmatrix>(m,ms); }
1375 #if(CXSC_INDEX_CHECK)
1376 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1380 {
return _msmminus<rmatrix_slice,l_rmatrix,l_rmatrix>(ms,m); }
1382 #if(CXSC_INDEX_CHECK)
1383 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1387 {
return _msmminus<l_rmatrix_slice,rmatrix,l_rmatrix>(ms,m); }
1389 #if(CXSC_INDEX_CHECK)
1390 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1394 {
return _msmsminus<rmatrix_slice,l_rmatrix_slice,l_rmatrix>(ms1,ms2); }
1396 #if(CXSC_INDEX_CHECK)
1397 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1401 {
return _msmsminus<l_rmatrix_slice,rmatrix_slice,l_rmatrix>(ms1,ms2); }
1403 #if(CXSC_INDEX_CHECK)
1404 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1408 {
return _mmminusassign(m1,m2); }
1410 #if(CXSC_INDEX_CHECK)
1411 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1415 {
return _mmsminusassign(m1,ms); }
1417 #if(CXSC_INDEX_CHECK)
1418 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1422 {
return _msmminusassign(*
this,m1); }
1424 #if(CXSC_INDEX_CHECK)
1425 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1429 {
return _msmsminusassign(*
this,ms2); }
1431 #if(CXSC_INDEX_CHECK)
1432 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1436 {
return _mmlmult<rmatrix,l_rmatrix,l_rmatrix>(m1,m2); }
1438 #if(CXSC_INDEX_CHECK)
1439 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1443 {
return _mmlmult<l_rmatrix,rmatrix,l_rmatrix>(m1,m2); }
1445 #if(CXSC_INDEX_CHECK)
1446 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1450 {
return _mmslmult<rmatrix,l_rmatrix_slice,l_rmatrix>(m1,ms); }
1452 #if(CXSC_INDEX_CHECK)
1453 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1457 {
return _mmslmult<l_rmatrix,rmatrix_slice,l_rmatrix>(m1,ms); }
1459 #if(CXSC_INDEX_CHECK)
1460 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1464 {
return _msmlmult<rmatrix_slice,l_rmatrix,l_rmatrix>(ms,m1); }
1466 #if(CXSC_INDEX_CHECK)
1467 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1471 {
return _msmlmult<l_rmatrix_slice,rmatrix,l_rmatrix>(ms,m1); }
1473 #if(CXSC_INDEX_CHECK)
1474 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1478 {
return _msmslmult<rmatrix_slice,l_rmatrix_slice,l_rmatrix>(ms1,ms2); }
1480 #if(CXSC_INDEX_CHECK)
1481 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1485 {
return _msmslmult<l_rmatrix_slice,rmatrix_slice,l_rmatrix>(ms1,ms2); }
1487 #if(CXSC_INDEX_CHECK)
1488 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1492 {
return _mmlmultassign<l_rmatrix,rmatrix,l_real>(m1,m2); }
1494 #if(CXSC_INDEX_CHECK)
1495 throw(ERROR_LRMATRIX_OP_WITH_WRONG_DIM)
1499 {
return _mmslmultassign<l_rmatrix,rmatrix_slice,l_real>(m1,ms); }
1518 INLINE
bool operator !(
const l_rmatrix &ms)
throw() {
return _mnot(ms); }
1520 INLINE std::ostream &operator <<(std::ostream &s,
const l_rmatrix &r)
throw() {
return _mout(s,r); }
1521 INLINE std::ostream &operator <<(std::ostream &s,
const l_rmatrix_slice &r)
throw() {
return _msout(s,r); }
1522 INLINE std::istream &operator >>(std::istream &s,
l_rmatrix &r)
throw() {
return _min(s,r); }
1523 INLINE std::istream &operator >>(std::istream &s,
l_rmatrix_slice &r)
throw() {
return _msin(s,r); }