28 #include "rvector.hpp"
30 #include "rvector.inl"
46 if(
VecLen(rv1)!=
VecLen(rv2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(dotprecision&, const rvector &, const rvector &)"));
52 addDot_op(dp,rv1,rv2);
66 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(dotprecision&, const rvector_slice &, const rvector &)"));
83 if(
VecLen(rv)!=
VecLen(sl)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(dotprecision&, const rvector &, const rvector_slice &)"));
100 if(
VecLen(sl1)!=
VecLen(sl2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(dotprecision&, const rvector_slice &, const rvector_slice &)"));
106 addDot_op(dp,sl1,sl2);
111 #if(CXSC_INDEX_CHECK)
117 #if(CXSC_INDEX_CHECK)
118 if(
VecLen(rv1)!=
VecLen(rv2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision&, const rvector &, const rvector &)"));
131 #if(CXSC_INDEX_CHECK)
137 #if(CXSC_INDEX_CHECK)
138 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision&, const rvector_slice &, const rvector &)"));
148 #if(CXSC_INDEX_CHECK)
154 #if(CXSC_INDEX_CHECK)
155 if(
VecLen(rv)!=
VecLen(sl)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision&, const rvector &, const rvector_slice &)"));
164 #if(CXSC_INDEX_CHECK)
170 #if(CXSC_INDEX_CHECK)
171 if(
VecLen(sl1)!=
VecLen(sl2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision&, const rvector_slice &, const rvector_slice &)"));
180 #if(CXSC_INDEX_CHECK)
186 #if(CXSC_INDEX_CHECK)
187 if(
VecLen(rv1)!=
VecLen(rv2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cdotprecision&, const rvector &, const rvector &)"));
189 addDot(Re(dp),rv1,rv2);
194 addDot_op(Re(dp),rv1,rv2);
202 #if(CXSC_INDEX_CHECK)
208 #if(CXSC_INDEX_CHECK)
209 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cdotprecision&, const rvector_slice &, const rvector &)"));
211 addDot(Re(dp),sl,rv);
216 addDot_op(Re(dp),sl,rv);
221 #if(CXSC_INDEX_CHECK)
227 #if(CXSC_INDEX_CHECK)
228 if(
VecLen(rv)!=
VecLen(sl)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cdotprecision&, const rvector &, const rvector_slice &)"));
230 addDot(Re(dp),rv,sl);
235 addDot_op(Re(dp),rv,sl);
240 #if(CXSC_INDEX_CHECK)
246 #if(CXSC_INDEX_CHECK)
247 if(
VecLen(sl1)!=
VecLen(sl2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cdotprecision&, const rvector_slice &, const rvector_slice &)"));
249 addDot(Re(dp),sl1,sl2);
254 addDot_op(Re(dp),sl1,sl2);
259 #if(CXSC_INDEX_CHECK)
265 #if(CXSC_INDEX_CHECK)
266 if(
VecLen(rv1)!=
VecLen(rv2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision&, const rvector &, const rvector &)"));
279 #if(CXSC_INDEX_CHECK)
285 #if(CXSC_INDEX_CHECK)
286 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision&, const rvector_slice &, const rvector &)"));
296 #if(CXSC_INDEX_CHECK)
302 #if(CXSC_INDEX_CHECK)
303 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision&, const rvector &, const rvector_slice &)"));
313 #if(CXSC_INDEX_CHECK)
319 #if(CXSC_INDEX_CHECK)
320 if(
VecLen(sl1)!=
VecLen(sl2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision&, const rvector_slice &, const rvector_slice &)"));
The Data Type cdotprecision.
The Data Type cidotprecision.
int get_k() const
Get currently set precision for computation of dot products.
The Data Type dotprecision.
void set_k(unsigned int i)
Set precision for computation of dot products.
The Data Type idotprecision.
int get_k() const
Get currently set precision for computation of dot products.
The Data Type rvector_slice.
The namespace cxsc, providing all functionality of the class library C-XSC.
int VecLen(const scimatrix_subv &S)
Returns the length of the subvector.
void accumulate_approx(cdotprecision &dp, const cmatrix_subv &rv1, const cmatrix_subv &rv2)
The accurate scalar product of the last two arguments added to the value of the first argument (witho...