@@ -374,10 +374,10 @@ namespace polynomial {
374
374
return y;
375
375
}
376
376
377
- void display (std::ostream & out, display_var_proc const & proc = display_var_proc(), bool use_star = false) const {
377
+ std::ostream& display (std::ostream & out, display_var_proc const & proc = display_var_proc(), bool use_star = false) const {
378
378
if (m_size == 0 ) {
379
379
out << " 1" ;
380
- return ;
380
+ return out ;
381
381
}
382
382
for (unsigned i = 0 ; i < m_size; i++) {
383
383
if (i > 0 ) {
@@ -390,6 +390,7 @@ namespace polynomial {
390
390
if (degree (i) > 1 )
391
391
out << " ^" << degree (i);
392
392
}
393
+ return out;
393
394
}
394
395
395
396
void display_smt2 (std::ostream & out, display_var_proc const & proc = display_var_proc()) const {
@@ -795,7 +796,7 @@ namespace polynomial {
795
796
CTRACE (" polynomial" , !m_monomials.empty (),
796
797
tout << " monomials leaked\n " ;
797
798
for (auto * m : m_monomials) {
798
- m->display (tout); tout << " \n " ;
799
+ m->display (tout << m-> id () << " " << m-> ref_count () << " " ) << " \n " ;
799
800
});
800
801
SASSERT (m_monomials.empty ());
801
802
if (m_own_allocator)
@@ -1044,7 +1045,7 @@ namespace polynomial {
1044
1045
return div_core<false >(m1->size (), m1->get_powers (), m2->size (), m2->get_powers (), m_tmp1);
1045
1046
}
1046
1047
1047
- bool div (monomial const * m1, monomial const * m2, monomial * & r) {
1048
+ bool div (monomial const * m1, monomial const * m2, monomial_ref & r) {
1048
1049
if (m1->total_degree () < m2->total_degree ())
1049
1050
return false ;
1050
1051
if (m1 == m2) {
@@ -1513,10 +1514,10 @@ namespace polynomial {
1513
1514
1514
1515
bool is_zero () const { return m_size == 0 ; }
1515
1516
1516
- void display (std::ostream & out, mpzzp_manager & nm, display_var_proc const & proc = display_var_proc(), bool use_star = false) const {
1517
+ std::ostream& display (std::ostream & out, mpzzp_manager & nm, display_var_proc const & proc = display_var_proc(), bool use_star = false) const {
1517
1518
if (is_zero ()) {
1518
1519
out << " 0" ;
1519
- return ;
1520
+ return out ;
1520
1521
}
1521
1522
1522
1523
for (unsigned i = 0 ; i < m_size; i++) {
@@ -1552,6 +1553,7 @@ namespace polynomial {
1552
1553
m (i)->display (out, proc, use_star);
1553
1554
}
1554
1555
}
1556
+ return out;
1555
1557
}
1556
1558
1557
1559
static void display_num_smt2 (std::ostream & out, mpzzp_manager & nm, numeral const & a) {
@@ -2366,17 +2368,12 @@ namespace polynomial {
2366
2368
m_manager.del (m_zero_numeral);
2367
2369
m_mgcd_iterpolators.flush ();
2368
2370
m_mgcd_skeletons.reset ();
2369
- DEBUG_CODE ({
2370
- TRACE (" polynomial" ,
2371
- tout << " leaked polynomials\n " ;
2372
- for (unsigned i = 0 ; i < m_polynomials.size (); i++) {
2373
- if (m_polynomials[i] != nullptr ) {
2374
- m_polynomials[i]->display (tout, m_manager);
2375
- tout << " \n " ;
2376
- }
2377
- });
2378
- m_polynomials.reset ();
2379
- });
2371
+ CTRACE (" polynomial" , !m_polynomials.empty (),
2372
+ tout << " leaked polynomials\n " ;
2373
+ for (auto * p : m_polynomials) {
2374
+ if (p) p->display (tout, m_manager) << " \n " ;
2375
+ });
2376
+ m_polynomials.reset ();
2380
2377
SASSERT (m_polynomials.empty ());
2381
2378
m_iccp_ZpX_buffers.clear ();
2382
2379
m_monomial_manager->dec_ref ();
@@ -2655,7 +2652,7 @@ namespace polynomial {
2655
2652
return mm ().div (m1, m2);
2656
2653
}
2657
2654
2658
- bool div (monomial const * m1, monomial const * m2, monomial * & r) {
2655
+ bool div (monomial const * m1, monomial const * m2, monomial_ref & r) {
2659
2656
return mm ().div (m1, m2, r);
2660
2657
}
2661
2658
@@ -5151,7 +5148,7 @@ namespace polynomial {
5151
5148
}
5152
5149
monomial const * m_r = R.m (max_R);
5153
5150
numeral const & a_r = R.a (max_R);
5154
- monomial * m_r_q = nullptr ;
5151
+ monomial_ref m_r_q ( pm ()) ;
5155
5152
VERIFY (div (m_r, m_q, m_r_q));
5156
5153
TRACE (" polynomial" , tout << " m_r: " ; m_r->display (tout); tout << " \n m_q: " ; m_q->display (tout); tout << " \n " ;
5157
5154
if (m_r_q) { tout << " m_r_q: " ; m_r_q->display (tout); tout << " \n " ; });
@@ -5188,7 +5185,7 @@ namespace polynomial {
5188
5185
}
5189
5186
monomial const * m_r = R.m (max_R);
5190
5187
numeral const & a_r = R.a (max_R);
5191
- monomial * m_r_q = nullptr ;
5188
+ monomial_ref m_r_q ( pm ()) ;
5192
5189
bool q_div_r = div (m_r, m_q, m_r_q);
5193
5190
m_r_q_ref = m_r_q;
5194
5191
TRACE (" polynomial" , tout << " m_r: " ; m_r->display (tout); tout << " \n m_q: " ; m_q->display (tout); tout << " \n " ;
@@ -6048,7 +6045,7 @@ namespace polynomial {
6048
6045
return true ;
6049
6046
}
6050
6047
monomial * m = C.m (curr_max);
6051
- monomial * m_i;
6048
+ monomial_ref m_i ( pm ()) ;
6052
6049
if (!div (m, m1, m_i)) {
6053
6050
// m1 does not divide maximal monomial of C.
6054
6051
R.reset ();
@@ -7088,7 +7085,7 @@ namespace polynomial {
7088
7085
return m_imp->div (m1, m2);
7089
7086
}
7090
7087
7091
- bool manager::div (monomial const * m1, monomial const * m2, monomial * & r) {
7088
+ bool manager::div (monomial const * m1, monomial const * m2, monomial_ref & r) {
7092
7089
return m_imp->div (m1, m2, r);
7093
7090
}
7094
7091
0 commit comments