27 #ifndef _CXSC_CIVECIMAT_INL_INCLUDED 28 #define _CXSC_CIVECIMAT_INL_INCLUDED 34 throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ)
38 { _vmconstr<civector,imatrix,cinterval>(*
this,sl); }
41 throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ)
45 { _vmsconstr<civector,imatrix_slice,cinterval>(*
this,sl); }
49 for (
int i=0, j=v.start;i<v.size;i++,j+=v.offset)
54 throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ)
59 INLINE civector _civector(
const imatrix_slice &sl)
61 throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ)
65 {
return civector(sl); }
68 INLINE
void SetIm(civector &iv,
const imatrix_subv &rv)
70 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
75 INLINE
void SetRe(civector &iv,
const imatrix_subv &rv)
77 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
82 INLINE
void SetIm(civector_slice &iv,
const imatrix_subv &rv)
84 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
88 { _vsvsetim(iv,ivector(rv)); }
89 INLINE
void SetRe(civector_slice &iv,
const imatrix_subv &rv)
91 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
95 { _vsvsetre(iv,ivector(rv)); }
100 #if(CXSC_INDEX_CHECK) 101 throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ)
105 {
return _vmassign<civector,imatrix,cinterval>(*
this,m); }
107 #if(CXSC_INDEX_CHECK) 108 throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ)
112 {
return _vmassign<civector,imatrix,cinterval>(*
this,
imatrix(m)); }
114 #if(CXSC_INDEX_CHECK) 115 throw(ERROR__OP_WITH_WRONG_DIM<ivector>,ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ)
119 {
return _vsvassign(*
this,
ivector(m)); }
121 #if(CXSC_INDEX_CHECK) 122 throw(ERROR__OP_WITH_WRONG_DIM<ivector>,ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ)
129 #if(CXSC_INDEX_CHECK) 130 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
134 {
return _mvcimult<imatrix,civector,civector>(m,v); }
135 INLINE civector
operator *(
const imatrix_slice &ms,
const civector &v)
136 #if(CXSC_INDEX_CHECK) 137 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
141 {
return _msvcimult<imatrix_slice,civector,civector>(ms,v); }
142 INLINE civector
operator *(
const civector &v,
const imatrix &m)
143 #if(CXSC_INDEX_CHECK) 144 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
148 {
return _vmcimult<civector,imatrix,civector>(v,m); }
149 INLINE civector
operator *(
const civector &v,
const imatrix_slice &ms)
150 #if(CXSC_INDEX_CHECK) 151 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
155 {
return _vmscimult<civector,imatrix_slice,civector>(v,ms); }
156 INLINE civector &
operator *=(civector &v,
const imatrix &m)
157 #if(CXSC_INDEX_CHECK) 158 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
162 {
return _vmcimultassign<civector,imatrix,cinterval>(v,m); }
163 INLINE civector &
operator *=(civector &v,
const imatrix_slice &ms)
164 #if(CXSC_INDEX_CHECK) 165 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
169 {
return _vmscimultassign<civector,imatrix_slice,cinterval>(v,ms); }
171 INLINE civector
operator *(
const civector_slice &v,
const imatrix &m)
172 #if(CXSC_INDEX_CHECK) 173 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
177 {
return _vmcimult<civector,imatrix,civector>(civector(v),m); }
179 #if(CXSC_INDEX_CHECK) 180 throw(ERROR_IMATRIX_OP_WITH_WRONG_DIM)
184 {
return _vsmcimultassign<civector_slice,imatrix,cinterval>(*
this,m); }
187 #if(CXSC_INDEX_CHECK) 188 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM)
192 {
return _vmcimult<cvector,imatrix,civector>(v,m); }
193 INLINE civector
operator *(
const cvector &v,
const imatrix_slice &ms)
194 #if(CXSC_INDEX_CHECK) 195 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM)
199 {
return _vmscimult<cvector,imatrix_slice,civector>(v,ms); }
200 INLINE civector
operator *(
const cvector_slice &v,
const imatrix &m)
201 #if(CXSC_INDEX_CHECK) 202 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM)
206 {
return _vmcimult<civector,imatrix,civector>(civector(v),m); }
207 INLINE civector
operator *(
const imatrix &m,
const cvector &v)
208 #if(CXSC_INDEX_CHECK) 209 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM)
213 {
return _mvcimult<imatrix,cvector,civector>(m,v); }
214 INLINE civector
operator *(
const imatrix_slice &ms,
const cvector &v)
215 #if(CXSC_INDEX_CHECK) 216 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM)
220 {
return _msvcimult<imatrix_slice,cvector,civector>(ms,v); }
The Data Type imatrix_subv.
civector_slice & operator=(const scivector_slice &sl)
Implementation of standard assigning operator.
The namespace cxsc, providing all functionality of the class library C-XSC.
civector operator*(const cimatrix_subv &rv, const cinterval &s)
Implementation of multiplication operation.
The Data Type imatrix_slice.
The Scalar Type cinterval.
The Data Type civector_slice.
civector_slice & operator*=(const cinterval &r)
Implementation of multiplication and allocation operation.
civector()
Constructor of class civector.
civector & operator=(const civector &rv)
Implementation of standard assigning operator.
cimatrix & operator*=(cimatrix &m, const cinterval &c)
Implementation of multiplication and allocation operation.