28 #include "ivector.hpp" 30 #include "ivector.inl" 38 int i =
Lb(x), n =
Ub(x), ok = 1;
40 while (ok && i <= n) { ok =
in(x[i],y[i]); i++; }
46 int i =
Lb(y), n =
Ub(y), ok = 1;
49 while (ok && i <= n) { ok =
in(d,y[i]); i++; }
58 for (i =
Lb(x); i <=
Ub(x); i++) h[i] =
Blow(x[i],eps);
64 int al =
Lb(a), au =
Ub(a), bl =
Lb(b);
76 }
while ( !(disjointed || i > au) );
83 for (i =
Lb(x), ok = 1; i <=
Ub(x) && ok; i++) ok = (x[i] == 0.0);
90 int l =
Lb(v), u =
Ub(v);
93 for (i = l; i <= u; i++) w[i] =
mid(v[i]);
100 int i, l=
Lb(v), u=
Ub(v);
103 for (i = l; i <= u; i++)
111 int i, l=
Lb(v), u=
Ub(v);
114 for (i = l; i <= u; i++)
127 for (k =
Lb(v), upper =
Ub(v); (k < upper) &&
UlpAcc(v[k],n); k++);
145 #if(CXSC_INDEX_CHECK) 146 throw(OP_WITH_WRONG_DIM)
151 #if(CXSC_INDEX_CHECK) 152 if(
VecLen(rv1)!=
VecLen(rv2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const ivector &, ivector &)"));
159 #if(CXSC_INDEX_CHECK) 160 throw(OP_WITH_WRONG_DIM)
165 #if(CXSC_INDEX_CHECK) 166 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const ivector_slice &, ivector &)"));
173 #if(CXSC_INDEX_CHECK) 174 throw(OP_WITH_WRONG_DIM)
179 #if(CXSC_INDEX_CHECK) 180 if(
VecLen(rv)!=
VecLen(sl)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const ivector &, ivector_slice &)"));
187 #if(CXSC_INDEX_CHECK) 188 throw(OP_WITH_WRONG_DIM)
193 #if(CXSC_INDEX_CHECK) 194 if(
VecLen(sl1)!=
VecLen(sl2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const ivector_slice &, ivector_slice &)"));
201 #if(CXSC_INDEX_CHECK) 202 throw(OP_WITH_WRONG_DIM)
207 #if(CXSC_INDEX_CHECK) 208 if(
VecLen(rv1)!=
VecLen(rv2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const ivector &, ivector &)"));
218 #if(CXSC_INDEX_CHECK) 219 throw(OP_WITH_WRONG_DIM)
224 #if(CXSC_INDEX_CHECK) 225 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const ivector_slice &, ivector &)"));
235 #if(CXSC_INDEX_CHECK) 236 throw(OP_WITH_WRONG_DIM)
241 #if(CXSC_INDEX_CHECK) 242 if(
VecLen(rv)!=
VecLen(sl)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const ivector &, ivector_slice &)"));
252 #if(CXSC_INDEX_CHECK) 253 throw(OP_WITH_WRONG_DIM)
258 #if(CXSC_INDEX_CHECK) 259 if(
VecLen(sl1)!=
VecLen(sl2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const ivector_slice &, ivector_slice &)"));
269 #if(CXSC_INDEX_CHECK) 270 throw(OP_WITH_WRONG_DIM)
275 #if(CXSC_INDEX_CHECK) 276 if(
VecLen(rv1)!=
VecLen(rv2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const rvector &, ivector &)"));
283 #if(CXSC_INDEX_CHECK) 284 throw(OP_WITH_WRONG_DIM)
289 #if(CXSC_INDEX_CHECK) 290 if(
VecLen(rv1)!=
VecLen(rv2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const ivector &, rvector &)"));
297 #if(CXSC_INDEX_CHECK) 298 throw(OP_WITH_WRONG_DIM)
303 #if(CXSC_INDEX_CHECK) 304 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const rvector_slice &, ivector &)"));
311 #if(CXSC_INDEX_CHECK) 312 throw(OP_WITH_WRONG_DIM)
317 #if(CXSC_INDEX_CHECK) 318 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const ivector_slice &, rvector &)"));
325 #if(CXSC_INDEX_CHECK) 326 throw(OP_WITH_WRONG_DIM)
331 #if(CXSC_INDEX_CHECK) 332 if(
VecLen(rv)!=
VecLen(sl)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const rvector &, ivector_slice &)"));
339 #if(CXSC_INDEX_CHECK) 340 throw(OP_WITH_WRONG_DIM)
345 #if(CXSC_INDEX_CHECK) 346 if(
VecLen(rv)!=
VecLen(sl)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const ivector &, rvector_slice &)"));
353 #if(CXSC_INDEX_CHECK) 354 throw(OP_WITH_WRONG_DIM)
359 #if(CXSC_INDEX_CHECK) 360 if(
VecLen(sl1)!=
VecLen(sl2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const ivector_slice &, rvector_slice &)"));
367 #if(CXSC_INDEX_CHECK) 368 throw(OP_WITH_WRONG_DIM)
373 #if(CXSC_INDEX_CHECK) 374 if(
VecLen(sl1)!=
VecLen(sl2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(idotprecision &, const rvector_slice &, ivector_slice &)"));
381 #if(CXSC_INDEX_CHECK) 382 throw(OP_WITH_WRONG_DIM)
387 #if(CXSC_INDEX_CHECK) 388 if(
VecLen(rv1)!=
VecLen(rv2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const rvector &, ivector &)"));
398 #if(CXSC_INDEX_CHECK) 399 throw(OP_WITH_WRONG_DIM)
404 #if(CXSC_INDEX_CHECK) 405 if(
VecLen(rv1)!=
VecLen(rv2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const ivector &, rvector &)"));
415 #if(CXSC_INDEX_CHECK) 416 throw(OP_WITH_WRONG_DIM)
421 #if(CXSC_INDEX_CHECK) 422 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const rvector_slice &, ivector &)"));
432 #if(CXSC_INDEX_CHECK) 433 throw(OP_WITH_WRONG_DIM)
438 #if(CXSC_INDEX_CHECK) 439 if(
VecLen(sl)!=
VecLen(rv)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const ivector_slice &, rvector &)"));
449 #if(CXSC_INDEX_CHECK) 450 throw(OP_WITH_WRONG_DIM)
455 #if(CXSC_INDEX_CHECK) 456 if(
VecLen(rv)!=
VecLen(sl)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const rvector &, ivector_slice &)"));
466 #if(CXSC_INDEX_CHECK) 467 throw(OP_WITH_WRONG_DIM)
472 #if(CXSC_INDEX_CHECK) 473 if(
VecLen(rv)!=
VecLen(sl)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const ivector &, rvector_slice &)"));
483 #if(CXSC_INDEX_CHECK) 484 throw(OP_WITH_WRONG_DIM)
489 #if(CXSC_INDEX_CHECK) 490 if(
VecLen(sl1)!=
VecLen(sl2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const ivector_slice &, rvector_slice &)"));
500 #if(CXSC_INDEX_CHECK) 501 throw(OP_WITH_WRONG_DIM)
506 #if(CXSC_INDEX_CHECK) 507 if(
VecLen(sl1)!=
VecLen(sl2)) cxscthrow(OP_WITH_WRONG_DIM(
"void accumulate(cidotprecision &, const rvector_slice &, ivector_slice &)"));
518 addSum(Inf(dp),Inf(v));
519 addSum(Sup(dp),Sup(v));
523 addSum(InfRe(dp),Inf(v));
524 addSum(SupRe(dp),Sup(v));
cinterval Blow(cinterval x, const real &eps)
Performs an epsilon inflation.
real MaxRelDiam(const imatrix_subv &v)
Computes the relative diameter .
The Data Type idotprecision.
int Lb(const cimatrix &rm, const int &i)
Returns the lower bound index.
The namespace cxsc, providing all functionality of the class library C-XSC.
int Zero(ivector &x)
Checks if vector is zero vector.
int in(const cinterval &x, const cinterval &y)
Checks if first argument is part of second argument.
cvector mid(const cimatrix_subv &mv)
Returns the middle of the matrix.
int VecLen(const scimatrix_subv &S)
Returns the length of the subvector.
int UlpAcc(const interval &x, int n)
Checks if the diameter of the interval is ulps.
real RelDiam(const interval &x)
Computes the relative diameter .
void DoubleSize(cimatrix &A)
Doubles the size of the matrix.
The Data Type ivector_slice.
The Data Type cidotprecision.
The Data Type rvector_slice.
void set_k(unsigned int i)
Set precision for computation of dot products.
void Resize(cimatrix &A)
Resizes the matrix.
int Disjoint(const interval &a, const interval &b)
Checks arguments for disjointness.
int get_k() const
Get currently set precision for computation of dot products.
int Ub(const cimatrix &rm, const int &i)
Returns the upper bound index.