Skip to content

Commit 661c08a

Browse files
committed
Use complex_real_exprt and complex_imag_exprt in bitvector flattening
1 parent 1aa6e26 commit 661c08a

File tree

3 files changed

+8
-14
lines changed

3 files changed

+8
-14
lines changed

src/solvers/flattening/boolbv.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,9 +279,9 @@ bvt boolbvt::convert_bitvector(const exprt &expr)
279279
else if(expr.id()==ID_complex)
280280
return convert_complex(expr);
281281
else if(expr.id()==ID_complex_real)
282-
return convert_complex_real(expr);
282+
return convert_complex_real(to_complex_real_expr(expr));
283283
else if(expr.id()==ID_complex_imag)
284-
return convert_complex_imag(expr);
284+
return convert_complex_imag(to_complex_imag_expr(expr));
285285
else if(expr.id()==ID_lambda)
286286
return convert_lambda(expr);
287287
else if(expr.id()==ID_array_of)

src/solvers/flattening/boolbv.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ class boolbvt:public arrayst
142142
virtual bvt convert_array(const exprt &expr);
143143
virtual bvt convert_vector(const exprt &expr);
144144
virtual bvt convert_complex(const exprt &expr);
145-
virtual bvt convert_complex_real(const exprt &expr);
146-
virtual bvt convert_complex_imag(const exprt &expr);
145+
virtual bvt convert_complex_real(const complex_real_exprt &expr);
146+
virtual bvt convert_complex_imag(const complex_imag_exprt &expr);
147147
virtual bvt convert_lambda(const exprt &expr);
148148
virtual bvt convert_let(const let_exprt &);
149149
virtual bvt convert_array_of(const array_of_exprt &expr);

src/solvers/flattening/boolbv_complex.cpp

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,35 +45,29 @@ bvt boolbvt::convert_complex(const exprt &expr)
4545
return conversion_failed(expr);
4646
}
4747

48-
bvt boolbvt::convert_complex_real(const exprt &expr)
48+
bvt boolbvt::convert_complex_real(const complex_real_exprt &expr)
4949
{
5050
std::size_t width=boolbv_width(expr.type());
5151

5252
if(width==0)
5353
return conversion_failed(expr);
5454

55-
if(expr.operands().size()!=1)
56-
return conversion_failed(expr);
57-
58-
bvt bv=convert_bv(expr.op0());
55+
bvt bv = convert_bv(expr.op());
5956

6057
assert(bv.size()==width*2);
6158
bv.resize(width); // chop
6259

6360
return bv;
6461
}
6562

66-
bvt boolbvt::convert_complex_imag(const exprt &expr)
63+
bvt boolbvt::convert_complex_imag(const complex_imag_exprt &expr)
6764
{
6865
std::size_t width=boolbv_width(expr.type());
6966

7067
if(width==0)
7168
return conversion_failed(expr);
7269

73-
if(expr.operands().size()!=1)
74-
return conversion_failed(expr);
75-
76-
bvt bv=convert_bv(expr.op0());
70+
bvt bv = convert_bv(expr.op());
7771

7872
assert(bv.size()==width*2);
7973
bv.erase(bv.begin(), bv.begin()+width);

0 commit comments

Comments
 (0)