cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
widened_range.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: helper for extending intervals during widening merges
4
5
Author: Jez Higgins
6
7
\*******************************************************************/
8
9
#ifndef CPROVER_ANALYSES_VARIABLE_SENSITIVITY_WIDENED_RANGE_H
10
#define CPROVER_ANALYSES_VARIABLE_SENSITIVITY_WIDENED_RANGE_H
11
12
#include <
util/arith_tools.h
>
13
#include <
util/interval.h
>
14
#include <
util/namespace.h
>
15
#include <
util/symbol_table.h
>
16
17
class
widened_ranget
18
{
19
public
:
20
widened_ranget
(
21
const
constant_interval_exprt
&lhs,
22
const
constant_interval_exprt
&rhs)
23
:
is_lower_widened
(
24
constant_interval_exprt
::
less_than
(rhs.get_lower(), lhs.get_lower())),
25
is_upper_widened
(
26
constant_interval_exprt
::
less_than
(lhs.get_upper(), rhs.get_upper())),
27
lower_bound
(
28
constant_interval_exprt
::get_min(lhs.get_lower(), rhs.get_lower())),
29
upper_bound
(
30
constant_interval_exprt
::get_max(lhs.get_upper(), rhs.get_upper())),
31
ns_
(
symbol_tablet
{}),
32
range_
(
plus_exprt
(
33
minus_exprt
(
upper_bound
,
lower_bound
),
34
from_integer
(1, lhs.type()))),
35
widened_lower_bound
(
widen_lower_bound
()),
36
widened_upper_bound
(
widen_upper_bound
())
37
{
38
}
39
40
const
bool
is_lower_widened
;
41
const
bool
is_upper_widened
;
42
const
exprt
lower_bound
;
43
const
exprt
upper_bound
;
44
45
private
:
46
namespacet
ns_
;
47
exprt
range_
;
48
49
public
:
50
const
exprt
widened_lower_bound
;
51
const
exprt
widened_upper_bound
;
52
53
private
:
54
exprt
widen_lower_bound
()
const
;
55
exprt
widen_upper_bound
()
const
;
56
};
57
58
#endif
// CPROVER_ANALYSES_VARIABLE_SENSITIVITY_WIDENED_RANGE_H
from_integer
constant_exprt from_integer(const mp_integer &int_value, const typet &type)
Definition
arith_tools.cpp:99
arith_tools.h
constant_interval_exprt
Represents an interval of values.
Definition
interval.h:52
exprt
Base class for all expressions.
Definition
expr.h:57
minus_exprt
Binary minus.
Definition
std_expr.h:1055
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h:91
plus_exprt
The plus expression Associativity is not specified.
Definition
std_expr.h:996
symbol_tablet
The symbol table.
Definition
symbol_table.h:14
widened_ranget::widened_ranget
widened_ranget(const constant_interval_exprt &lhs, const constant_interval_exprt &rhs)
Definition
widened_range.h:20
widened_ranget::upper_bound
const exprt upper_bound
Definition
widened_range.h:43
widened_ranget::widen_lower_bound
exprt widen_lower_bound() const
Definition
widened_range.cpp:22
widened_ranget::is_upper_widened
const bool is_upper_widened
Definition
widened_range.h:41
widened_ranget::ns_
namespacet ns_
Definition
widened_range.h:46
widened_ranget::widened_upper_bound
const exprt widened_upper_bound
Definition
widened_range.h:51
widened_ranget::lower_bound
const exprt lower_bound
Definition
widened_range.h:42
widened_ranget::widen_upper_bound
exprt widen_upper_bound() const
Definition
widened_range.cpp:37
widened_ranget::range_
exprt range_
Definition
widened_range.h:47
widened_ranget::widened_lower_bound
const exprt widened_lower_bound
Definition
widened_range.h:50
widened_ranget::is_lower_widened
const bool is_lower_widened
Definition
widened_range.h:40
interval.h
namespace.h
less_than
binary_relation_exprt less_than(exprt lhs, exprt rhs)
Definition
string_expr.h:49
symbol_table.h
Author: Diffblue Ltd.
analyses
variable-sensitivity
widened_range.h
Generated by
1.17.0