CBMC
float_approximation.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Floating Point with under/over-approximation
4 
5 Author:
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_SOLVERS_FLOATBV_FLOAT_APPROXIMATION_H
13 #define CPROVER_SOLVERS_FLOATBV_FLOAT_APPROXIMATION_H
14 
15 #include "float_utils.h"
16 
18 {
19 public:
20  explicit float_approximationt(propt &_prop):
21  float_utilst(_prop),
22  over_approximate(false),
24  {
25  }
26 
27  virtual ~float_approximationt();
28 
31 
32 protected:
33  virtual void normalization_shift(bvt &fraction, bvt &exponent);
34  bvt overapproximating_left_shift(const bvt &src, unsigned dist);
35 
36 private:
37  // NOLINTNEXTLINE(readability/identifiers)
38  typedef float_utilst SUB;
39 };
40 
41 #endif // CPROVER_SOLVERS_FLOATBV_FLOAT_APPROXIMATION_H
float_approximationt::over_approximate
bool over_approximate
Definition: float_approximation.h:29
float_utilst
Definition: float_utils.h:17
float_utils.h
bvt
std::vector< literalt > bvt
Definition: literal.h:201
float_approximationt::SUB
float_utilst SUB
Definition: float_approximation.h:38
float_approximationt
Definition: float_approximation.h:17
float_approximationt::float_approximationt
float_approximationt(propt &_prop)
Definition: float_approximation.h:20
float_approximationt::partial_interpretation
bool partial_interpretation
Definition: float_approximation.h:30
float_approximationt::overapproximating_left_shift
bvt overapproximating_left_shift(const bvt &src, unsigned dist)
Definition: float_approximation.cpp:66
propt
TO_BE_DOCUMENTED.
Definition: prop.h:22
float_approximationt::~float_approximationt
virtual ~float_approximationt()
Definition: float_approximation.cpp:11
float_approximationt::normalization_shift
virtual void normalization_shift(bvt &fraction, bvt &exponent)
normalize fraction/exponent pair returns 'zero' if fraction is zero
Definition: float_approximation.cpp:15