mirror of
https://github.com/Z3Prover/z3
synced 2026-02-13 04:13:01 +00:00
Modern C++: Add std::span overload for mk_or, adopt std::clamp, optimize stream output (#8507)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
384a8e291b
commit
bb35267e46
10 changed files with 19 additions and 20 deletions
|
|
@ -2206,6 +2206,7 @@ public:
|
|||
app * mk_xor(ref_buffer<expr, ast_manager> const& args) { return mk_xor(args.size(), args.data()); }
|
||||
app * mk_or(unsigned num_args, expr * const * args) { return mk_app(basic_family_id, OP_OR, num_args, args); }
|
||||
app * mk_and(std::span<expr* const> args) { return mk_app(basic_family_id, OP_AND, args); }
|
||||
app * mk_or(std::span<expr* const> args) { return mk_app(basic_family_id, OP_OR, args); }
|
||||
app * mk_or(expr * arg1, expr * arg2) { return mk_app(basic_family_id, OP_OR, arg1, arg2); }
|
||||
app * mk_and(expr * arg1, expr * arg2) { return mk_app(basic_family_id, OP_AND, arg1, arg2); }
|
||||
app * mk_or(expr * arg1, expr * arg2, expr * arg3) { return mk_app(basic_family_id, OP_OR, arg1, arg2, arg3); }
|
||||
|
|
@ -2216,10 +2217,10 @@ public:
|
|||
app * mk_and(ptr_vector<expr> const& args) { return mk_and(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_and(ref_buffer<expr, ast_manager> const& args) { return mk_and(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_and(ptr_buffer<expr> const& args) { return mk_and(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_or(ref_vector<expr, ast_manager> const& args) { return mk_or(args.size(), args.data()); }
|
||||
app * mk_or(ptr_vector<expr> const& args) { return mk_or(args.size(), args.data()); }
|
||||
app * mk_or(ref_buffer<expr, ast_manager> const& args) { return mk_or(args.size(), args.data()); }
|
||||
app * mk_or(ptr_buffer<expr> const& args) { return mk_or(args.size(), args.data()); }
|
||||
app * mk_or(ref_vector<expr, ast_manager> const& args) { return mk_or(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_or(ptr_vector<expr> const& args) { return mk_or(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_or(ref_buffer<expr, ast_manager> const& args) { return mk_or(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_or(ptr_buffer<expr> const& args) { return mk_or(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_implies(expr * arg1, expr * arg2) { return mk_app(basic_family_id, OP_IMPLIES, arg1, arg2); }
|
||||
app * mk_not(expr * n) { return mk_app(basic_family_id, OP_NOT, n); }
|
||||
app * mk_distinct(unsigned num_args, expr * const * args);
|
||||
|
|
|
|||
|
|
@ -284,14 +284,14 @@ namespace euf {
|
|||
out << " " << c.m_label->get_name() << " " << c.m_oreg;
|
||||
for (unsigned i = 0; i < c.m_num_args; ++i)
|
||||
out << " " << c.m_iregs[i];
|
||||
out << ")";
|
||||
out << ')';
|
||||
}
|
||||
|
||||
void display_is_cgr(std::ostream & out, const is_cgr & c) {
|
||||
out << "(IS_CGR " << c.m_label->get_name() << " " << c.m_ireg;
|
||||
for (unsigned i = 0; i < c.m_num_args; ++i)
|
||||
out << " " << c.m_iregs[i];
|
||||
out << ")";
|
||||
out << ')';
|
||||
}
|
||||
|
||||
void display_yield(std::ostream & out, const yield & y) {
|
||||
|
|
|
|||
|
|
@ -522,7 +522,7 @@ struct nnf::imp {
|
|||
|
||||
app * r;
|
||||
if (fr.m_pol)
|
||||
r = m.mk_or(2, m_result_stack.data() + fr.m_spos);
|
||||
r = m.mk_or(std::span<expr* const>(m_result_stack.data() + fr.m_spos, 2));
|
||||
else
|
||||
r = m.mk_and(std::span<expr* const>(m_result_stack.data() + fr.m_spos, 2));
|
||||
|
||||
|
|
|
|||
|
|
@ -391,7 +391,7 @@ bool bound_propagator::relevant_bound(var x, double new_k) const {
|
|||
if (abs_k < 0.0)
|
||||
abs_k -= abs_k;
|
||||
if (bounded)
|
||||
improvement = m_threshold * std::max(std::min(interval_size, abs_k), 1.0);
|
||||
improvement = m_threshold * std::clamp(interval_size, 1.0, abs_k);
|
||||
else
|
||||
improvement = m_threshold * std::max(abs_k, 1.0);
|
||||
|
||||
|
|
|
|||
|
|
@ -580,7 +580,7 @@ void substitution_tree::display(std::ostream & out, subst const & s) const {
|
|||
out << "(" << to_app(s.second)->get_decl()->get_name();
|
||||
for (unsigned i = 0; i < num; ++i)
|
||||
out << " r!" << to_var(to_app(s.second)->get_arg(i))->get_idx();
|
||||
out << ")";
|
||||
out << ')';
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue