27 #ifndef _CXSC_CVECRMAT_INL_INCLUDED
28 #define _CXSC_CVECRMAT_INL_INCLUDED
34 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
38 { _vmconstr<cvector,rmatrix,complex>(*
this,sl); }
41 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
45 { _vmsconstr<cvector,rmatrix_slice,complex>(*
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 cvector _cvector(
const rmatrix_slice &sl)
61 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
65 {
return cvector(sl); }
128 #if(CXSC_INDEX_CHECK)
129 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
133 {
return _vmassign<cvector,rmatrix,complex>(*
this,m); }
135 #if(CXSC_INDEX_CHECK)
136 throw(ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
140 {
return _vmassign<cvector,rmatrix,complex>(*
this,
rmatrix(m)); }
142 #if(CXSC_INDEX_CHECK)
143 throw(ERROR__OP_WITH_WRONG_DIM<rvector>,ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
147 {
return _vsvassign(*
this,
rvector(m)); }
149 #if(CXSC_INDEX_CHECK)
150 throw(ERROR__OP_WITH_WRONG_DIM<rvector>,ERROR_RMATRIX_TYPE_CAST_OF_THICK_OBJ)
157 #if(CXSC_INDEX_CHECK)
158 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
162 {
return _mvcmult<rmatrix,cvector,cvector>(m,v); }
163 INLINE cvector
operator *(
const rmatrix_slice &ms,
const cvector &v)
164 #if(CXSC_INDEX_CHECK)
165 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
169 {
return _msvcmult<rmatrix_slice,cvector,cvector>(ms,v); }
170 INLINE cvector
operator *(
const cvector &v,
const rmatrix &m)
171 #if(CXSC_INDEX_CHECK)
172 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
176 {
return _vmcmult<cvector,rmatrix,cvector>(v,m); }
177 INLINE cvector
operator *(
const cvector &v,
const rmatrix_slice &ms)
178 #if(CXSC_INDEX_CHECK)
179 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
183 {
return _vmscmult<cvector,rmatrix_slice,cvector>(v,ms); }
184 INLINE cvector &
operator *=(cvector &v,
const rmatrix &m)
185 #if(CXSC_INDEX_CHECK)
186 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
190 {
return _vmcmultassign<cvector,rmatrix,complex>(v,m); }
191 INLINE cvector &
operator *=(cvector &v,
const rmatrix_slice &ms)
192 #if(CXSC_INDEX_CHECK)
193 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
197 {
return _vmscmultassign<cvector,rmatrix_slice,complex>(v,ms); }
199 INLINE cvector
operator *(
const cvector_slice &v,
const rmatrix &m)
200 #if(CXSC_INDEX_CHECK)
201 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
205 {
return _vmcmult<cvector,rmatrix,cvector>(cvector(v),m); }
207 #if(CXSC_INDEX_CHECK)
208 throw(ERROR_RMATRIX_OP_WITH_WRONG_DIM)
212 {
return _vsmcmultassign<cvector_slice,rmatrix,complex>(*
this,m); }