27#ifndef _CXSC_CIVECCMAT_INL_INCLUDED
28#define _CXSC_CIVECCMAT_INL_INCLUDED
38 { _vmconstr<civector,cmatrix,cinterval>(*
this,sl); }
45 { _vmsconstr<civector,cmatrix_slice,cinterval>(*
this,sl); }
49 for (
int i=0, j=v.start;i<v.size;i++,j+=v.offset)
59 INLINE civector _civector(
const cmatrix_slice &sl)
65 {
return civector(sl); }
67 INLINE
void SetInf(civector &iv,
const cmatrix_subv &rv)
73 { _vmvsetinf(iv,rv); }
74 INLINE
void SetSup(civector &iv,
const cmatrix_subv &rv)
80 { _vmvsetsup(iv,rv); }
81 INLINE
void SetInf(civector_slice &iv,
const cmatrix_subv &rv)
87 { _vsvsetinf(iv,cvector(rv)); }
88 INLINE
void SetSup(civector_slice &iv,
const cmatrix_subv &rv)
94 { _vsvsetsup(iv,cvector(rv)); }
96 INLINE
void UncheckedSetInf(civector &iv,
const cmatrix_subv &rv)
102 { _vmvusetinf(iv,rv); }
103 INLINE
void UncheckedSetSup(civector &iv,
const cmatrix_subv &rv)
109 { _vmvusetsup(iv,rv); }
110 INLINE
void UncheckedSetInf(civector_slice &iv,
const cmatrix_subv &rv)
116 { _vsvusetinf(iv,cvector(rv)); }
117 INLINE
void UncheckedSetSup(civector_slice &iv,
const cmatrix_subv &rv)
123 { _vsvusetsup(iv,cvector(rv)); }
133 {
return _vmassign<civector,cmatrix,cinterval>(*
this,m); }
140 {
return _vmassign<civector,cmatrix,cinterval>(*
this,
cmatrix(m)); }
147 {
return _vsvassign(*
this,
cvector(m)); }
162 {
return _mvcimult<cmatrix,civector,civector>(m,v); }
163 INLINE civector
operator *(
const cmatrix_slice &ms,
const civector &v)
169 {
return _msvcimult<cmatrix_slice,civector,civector>(ms,v); }
170 INLINE civector
operator *(
const civector &v,
const cmatrix &m)
176 {
return _vmcimult<civector,cmatrix,civector>(v,m); }
177 INLINE civector
operator *(
const civector &v,
const cmatrix_slice &ms)
183 {
return _vmscimult<civector,cmatrix_slice,civector>(v,ms); }
184 INLINE civector &
operator *=(civector &v,
const cmatrix &m)
190 {
return _vmcimultassign<civector,cmatrix,cinterval>(v,m); }
191 INLINE civector &
operator *=(civector &v,
const cmatrix_slice &ms)
197 {
return _vmscimultassign<civector,cmatrix_slice,cinterval>(v,ms); }
199 INLINE civector
operator *(
const civector_slice &v,
const cmatrix &m)
205 {
return _vmcimult<civector,cmatrix,civector>(civector(v),m); }
212 {
return _vsmcimultassign<civector_slice,cmatrix,cinterval>(*
this,m); }
220 {
return _vmcimult<ivector,cmatrix,civector>(v,m); }
221 INLINE civector
operator *(
const ivector &v,
const cmatrix_slice &ms)
227 {
return _vmscimult<ivector,cmatrix_slice,civector>(v,ms); }
228 INLINE civector
operator *(
const ivector_slice &v,
const cmatrix &m)
234 {
return _vmcimult<civector,cmatrix,civector>(civector(v),m); }
235 INLINE civector
operator *(
const cmatrix &m,
const ivector &v)
241 {
return _mvcimult<cmatrix,ivector,civector>(m,v); }
242 INLINE civector
operator *(
const cmatrix_slice &ms,
const ivector &v)
248 {
return _msvcimult<cmatrix_slice,ivector,civector>(ms,v); }
The Scalar Type cinterval.
The Data Type civector_slice.
civector_slice & operator*=(const cinterval &r) noexcept
Implementation of multiplication and allocation operation.
civector_slice & operator=(const scivector_slice &sl)
Implementation of standard assigning operator.
civector & operator=(const civector &rv) noexcept
Implementation of standard assigning operator.
civector() noexcept
Constructor of class civector.
The Data Type cmatrix_slice.
The Data Type cmatrix_subv.
The namespace cxsc, providing all functionality of the class library C-XSC.
cimatrix & operator*=(cimatrix &m, const cinterval &c) noexcept
Implementation of multiplication and allocation operation.
civector operator*(const cimatrix_subv &rv, const cinterval &s) noexcept
Implementation of multiplication operation.