3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-25 01:55:32 +00:00

Implement RCF external C API

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2013-01-06 20:06:27 -08:00
parent f1d47f35b2
commit 9fbbdb56e4
6 changed files with 155 additions and 31 deletions

View file

@ -2464,10 +2464,18 @@ namespace realclosure {
set(a, neg(a.m_value));
}
void neg(numeral const & a, numeral & b) {
set(b, neg(a.m_value));
}
void inv(numeral & a) {
set(a, inv(a.m_value));
}
void inv(numeral const & a, numeral & b) {
set(b, inv(a.m_value));
}
void add(numeral const & a, numeral const & b, numeral & c) {
set(c, add(a.m_value, b.m_value));
}
@ -2879,11 +2887,21 @@ namespace realclosure {
m_imp->neg(a);
}
void manager::neg(numeral const & a, numeral & b) {
save_interval_ctx ctx(this);
m_imp->neg(a, b);
}
void manager::inv(numeral & a) {
save_interval_ctx ctx(this);
m_imp->inv(a);
}
void manager::inv(numeral const & a, numeral & b) {
save_interval_ctx ctx(this);
m_imp->inv(a, b);
}
void manager::div(numeral const & a, numeral const & b, numeral & c) {
save_interval_ctx ctx(this);
m_imp->div(a, b, c);

View file

@ -181,11 +181,21 @@ namespace realclosure {
\brief a <- -a
*/
void neg(numeral & a);
/**
\brief b <- -a
*/
void neg(numeral const & a, numeral & b);
/**
\brief a <- 1/a if a != 0
*/
void inv(numeral & a);
/**
\brief b <- 1/a if a != 0
*/
void inv(numeral const & a, numeral & b);
/**
\brief c <- a/b if b != 0