Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Dr. Michael Petter
LLVM-abstractinterpretation
Commits
cdd89b09
Verified
Commit
cdd89b09
authored
Apr 04, 2020
by
Tim Gymnich
Browse files
comments
parent
30debb9f
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/affine_relation.cpp
View file @
cdd89b09
...
...
@@ -134,7 +134,6 @@ bool AffineRelation::merge(Merge_op::Type op, AffineRelation const& other) {
if
(
other
.
isBottom
)
{
return
false
;
}
else
if
(
isBottom
)
{
// FIXME: is this correct?
basis
=
other
.
basis
;
index
=
other
.
index
;
isBottom
=
false
;
...
...
@@ -172,6 +171,7 @@ bool AffineRelation::leastUpperBound(AffineRelation const& rhs) {
// MARK: - Assignments
// xi = a1x1 + ... + anxn + a0
void
AffineRelation
::
affineAssignment
(
Value
const
*
xi
,
unordered_map
<
Value
const
*
,
T
>
relations
,
T
constant
)
{
Matrix
<
T
>
Wr
=
Matrix
<
T
>
(
getNumberOfVariables
()
+
1
);
Wr
(
index
.
at
(
xi
),
index
.
at
(
xi
))
=
0
;
...
...
@@ -191,6 +191,7 @@ void AffineRelation::affineAssignment(Value const* xi, unordered_map<Value const
}
}
// xi = a * xj + b
void
AffineRelation
::
affineAssignment
(
Value
const
*
xi
,
T
a
,
Value
const
*
xj
,
T
b
)
{
if
(
xj
==
nullptr
)
{
affineAssignment
(
xi
,
{},
b
);
...
...
@@ -199,6 +200,7 @@ void AffineRelation::affineAssignment(Value const* xi, T a, Value const* xj, T b
}
}
// xi = ?
void
AffineRelation
::
nonDeterminsticAssignment
(
Value
const
*
xi
)
{
if
(
index
.
count
(
xi
)
==
0
)
return
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment