21 : _valKnown( 1 ), _val( val ), _errKnown( 0 ), _err( 0. ) {}
24 : _valKnown( 1 ), _val( val ), _errKnown( 1 ), _err( err ) {}
27 : _valKnown( other._valKnown )
29 , _errKnown( other._errKnown )
30 , _err( other._err ) {}
35 assert( _valKnown && _errKnown );
36 return ( _val != 0 ) ? _err / _val : 0;
40 _valKnown = other._valKnown;
42 _errKnown = other._errKnown;
47 assert( _valKnown && other._valKnown );
50 if ( _errKnown && other._errKnown )
51 _err = _val * other._val * sqrt(
prec() *
prec() + other.prec() * other.prec() );
59 assert( _valKnown && other._valKnown && other._val != 0. );
62 if ( _errKnown && other._errKnown )
63 _err = _val / other._val * sqrt(
prec() *
prec() + other.prec() * other.prec() );
71 if ( _valKnown ) os << _val;
74 if ( _errKnown ) os << _err;
81 assert( other._valKnown );
86 if ( _errKnown && other._errKnown ) { _err = sqrt( _err * _err + other._err * other._err ); }
87 else { _errKnown = 0; }
94 if ( _errKnown ) _err *= c;
EvtValError operator+(const EvtValError &x1, const EvtValError &x2)
EvtValError operator/(const EvtValError &x1, const EvtValError &x2)
ostream & operator<<(ostream &os, const EvtValError &other)
EvtValError operator*(const EvtValError &x1, const EvtValError &x2)
void operator=(const EvtValError &other)
void operator/=(const EvtValError &other)
void operator+=(const EvtValError &other)
void operator*=(const EvtValError &other)
void print(std::ostream &) const