Affine2Main<AF_iAF>::Affine2Main(int n, int m, const Interval& itv) : _n (n), _elt (NULL,0.0) { assert((n>=0) && (m>=0) && (m<=n)); if (!(itv.is_unbounded()||itv.is_empty())) { _elt._val =new Interval[n + 1]; _elt._val[0] = itv.mid(); for (int i = 1; i <= n; i++){ _elt._val[i] = 0.0; } if (m == 0) { _elt._err = itv.rad(); } else { _elt._val[m] = itv.rad(); } } else { *this = itv; } }
Affine2Main<AF_iAF>::Affine2Main(const Interval & itv): _n (0), _elt (NULL,0.0) { if (itv.is_empty()) { _n = -1; _elt._err = itv; } else if (itv.ub()>= POS_INFINITY && itv.lb()<= NEG_INFINITY ) { _n = -2; _elt._err = itv; } else if (itv.ub()>= POS_INFINITY ) { _n = -3; _elt._err = itv; } else if (itv.lb()<= NEG_INFINITY ) { _n = -4; _elt._err = itv; } else { _n = 0; _elt._val = new Interval[1]; _elt._val[0] = itv.mid(); _elt._err = itv.rad(); } }