27 #ifndef _CXSC_CIVECRMAT_INL_INCLUDED 28 #define _CXSC_CIVECRMAT_INL_INCLUDED 34 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
38 { _vmconstr<civector,rmatrix,cinterval>(*
this,sl); }
41 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
45 { _vmsconstr<civector,rmatrix_slice,cinterval>(*
this,sl); }
49 for (
int i=0, j=v.start;i<v.size;i++,j+=v.offset)
54 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
59 INLINE civector _civector(
const rmatrix_slice &sl)
61 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
65 {
return civector(sl); }
71 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
75 {
return _vmassign<civector,rmatrix,cinterval>(*
this,m); }
78 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
82 {
return _vmassign<civector,rmatrix,cinterval>(*
this,
rmatrix(m)); }
85 throw(ERROR__OP_WITH_WRONG_DIM<rvector>,ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
89 {
return _vsvassign(*
this,
rvector(m)); }
92 throw(ERROR__OP_WITH_WRONG_DIM<rvector>,ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
100 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
104 {
return _mvcimult<rmatrix,civector,civector>(m,v); }
105 INLINE civector
operator *(
const rmatrix_slice &ms,
const civector &v)
106 #if(CXSC_INDEX_CHECK) 107 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
111 {
return _msvcimult<rmatrix_slice,civector,civector>(ms,v); }
112 INLINE civector
operator *(
const civector &v,
const rmatrix &m)
113 #if(CXSC_INDEX_CHECK) 114 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
118 {
return _vmcimult<civector,rmatrix,civector>(v,m); }
119 INLINE civector
operator *(
const civector &v,
const rmatrix_slice &ms)
120 #if(CXSC_INDEX_CHECK) 121 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
125 {
return _vmscimult<civector,rmatrix_slice,civector>(v,ms); }
126 INLINE civector &
operator *=(civector &v,
const rmatrix &m)
127 #if(CXSC_INDEX_CHECK) 128 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
132 {
return _vmcimultassign<civector,rmatrix,cinterval>(v,m); }
133 INLINE civector &
operator *=(civector &v,
const rmatrix_slice &ms)
134 #if(CXSC_INDEX_CHECK) 135 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
139 {
return _vmscimultassign<civector,rmatrix_slice,cinterval>(v,ms); }
141 INLINE civector
operator *(
const civector_slice &v,
const rmatrix &m)
142 #if(CXSC_INDEX_CHECK) 143 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
147 {
return _vmcimult<civector,rmatrix,civector>(civector(v),m); }
149 #if(CXSC_INDEX_CHECK) 150 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
154 {
return _vsmcimultassign<civector_slice,rmatrix,cinterval>(*
this,m); }
The Data Type rmatrix_slice.
civector_slice & operator=(const scivector_slice &sl)
Implementation of standard assigning operator.
The namespace cxsc, providing all functionality of the class library C-XSC.
cimatrix & operator *=(cimatrix &m, const cinterval &c)
Implementation of multiplication and allocation operation.
The Data Type rmatrix_subv.
civector operator *(const cimatrix_subv &rv, const cinterval &s)
Implementation of multiplication operation.
civector_slice & operator *=(const cinterval &r)
Implementation of multiplication and allocation operation.
The Scalar Type cinterval.
The Data Type civector_slice.
civector()
Constructor of class civector.
civector & operator=(const civector &rv)
Implementation of standard assigning operator.