25 #ifndef PPL_Difference_Floating_Point_Expression_templates_hh
26 #define PPL_Difference_Floating_Point_Expression_templates_hh 1
30 template <
typename FP_Interval_Type,
typename FP_Format>
35 if (!first_operand->linearize(int_store, lf_store, result)) {
39 relative_error(result, rel_error);
42 if (!second_operand->linearize(int_store, lf_store,
43 linearized_second_operand)) {
46 result -= linearized_second_operand;
47 relative_error(linearized_second_operand, rel_error);
49 result += this->absolute_error;
50 return !this->overflows(result);
55 #endif // !defined(PPL_Difference_Floating_Point_Expression_templates_hh)
A not necessarily closed, iso-oriented hyperrectangle.
Floating_Point_Expression< FP_Interval_Type, FP_Format >::FP_Linear_Form_Abstract_Store FP_Linear_Form_Abstract_Store
Alias for the std::map from Floating_Point_Expression.
The entire library is confined to this namespace.
bool linearize(const FP_Interval_Abstract_Store &int_store, const FP_Linear_Form_Abstract_Store &lf_store, FP_Linear_Form &result) const
Linearizes the expression in a given astract store.