}
}
free(targv[0]);
- delete targv;
+ delete [] targv;
free(tbuf);
}
}
, progress_estimate (0)
, remove_satisfied (true)
+ , ca ()
+
+ // even though these are temporaries and technically should be set
+ // before calling, lets intialize them. this will reduces chances of
+ // non-determinism in portfolio (parallel) solver if variables are
+ // being (incorrectly) used without initialization.
+ , seen(), analyze_stack(), analyze_toclear(), add_tmp()
+ , max_learnts(0.0), learntsize_adjust_confl(0.0), learntsize_adjust_cnt(0)
+
// Resource constraints:
//
, conflict_budget (-1)
, d_isDifficult(c, false)
, d_budget(options::bitvectorAlgebraicBudget())
, d_explanations()
+ , d_inputAssertions()
+ , d_ids()
+ , d_numSolved(0)
+ , d_numCalls(0)
, d_ctx(new context::Context())
, d_quickXplain(options::bitvectorQuickXplain() ? new QuickXPlain("alg", d_quickSolver) : NULL)
, d_statistics()
if (d_numCalls == 0)
return true;
- double success_rate = d_numSolved/d_numCalls;
+ double success_rate = double(d_numSolved)/double(d_numCalls);
d_statistics.d_useHeuristic.setData(success_rate);
return success_rate > 0.8;
}
std::vector<Node> d_explanations; /**< explanations for assertions indexed by assertion id */
TNodeSet d_inputAssertions; /**< assertions in current context (for debugging purposes only) */
NodeIdMap d_ids; /**< map from assertions to ids */
- double d_numSolved;
- double d_numCalls;
+ uint64_t d_numSolved;
+ uint64_t d_numCalls;
context::Context* d_ctx;
QuickXPlain* d_quickXplain; /**< separate quickXplain module as it can reuse the current SAT solver */