mirror of
https://github.com/Z3Prover/z3
synced 2025-06-03 04:41:21 +00:00
resource-limit related fixes in src/test
This commit is contained in:
parent
e91b1e1da4
commit
c2ab9b72dc
11 changed files with 672 additions and 569 deletions
|
@ -19,6 +19,7 @@ Notes:
|
|||
#include"algebraic_numbers.h"
|
||||
#include"polynomial_var2value.h"
|
||||
#include"mpbq.h"
|
||||
#include"rlimit.h"
|
||||
|
||||
static void display_anums(std::ostream & out, scoped_anum_vector const & rs) {
|
||||
out << "numbers in decimal:\n";
|
||||
|
@ -40,14 +41,15 @@ static void display_anums(std::ostream & out, scoped_anum_vector const & rs) {
|
|||
}
|
||||
|
||||
static void tst1() {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
polynomial_ref p(m);
|
||||
p = 3*x - 2;
|
||||
|
||||
algebraic_numbers::manager am(nm);
|
||||
algebraic_numbers::manager am(rl, nm);
|
||||
scoped_anum_vector rs1(am);
|
||||
std::cout << "p: " << p << "\n";
|
||||
am.isolate_roots(p, rs1);
|
||||
|
@ -221,8 +223,9 @@ void tst_mpbq_root() {
|
|||
|
||||
static void tst_wilkinson() {
|
||||
// Test Wilkinson Polynomial
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
polynomial_ref p(m);
|
||||
|
@ -234,7 +237,7 @@ static void tst_wilkinson() {
|
|||
}
|
||||
std::cout << "Wilkinson's polynomial: " << p << "\n";
|
||||
|
||||
algebraic_numbers::manager am(nm);
|
||||
algebraic_numbers::manager am(rl, nm);
|
||||
scoped_anum_vector rs1(am);
|
||||
std::cout << "p: " << p << "\n";
|
||||
am.isolate_roots(p, rs1);
|
||||
|
@ -246,8 +249,9 @@ static void tst_wilkinson() {
|
|||
}
|
||||
|
||||
static void tst_dejan() {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager qm;
|
||||
algebraic_numbers::manager am(qm);
|
||||
algebraic_numbers::manager am(rl, qm);
|
||||
|
||||
scoped_anum two101(am);
|
||||
am.set(two101, 2);
|
||||
|
@ -332,9 +336,10 @@ static void tst_eval_sign(polynomial_ref const & p, anum_manager & am,
|
|||
|
||||
static void tst_eval_sign() {
|
||||
enable_trace("anum_eval_sign");
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager qm;
|
||||
polynomial::manager pm(qm);
|
||||
algebraic_numbers::manager am(qm);
|
||||
polynomial::manager pm(rl, qm);
|
||||
algebraic_numbers::manager am(rl, qm);
|
||||
polynomial_ref x0(pm);
|
||||
polynomial_ref x1(pm);
|
||||
polynomial_ref x2(pm);
|
||||
|
@ -412,9 +417,10 @@ static void tst_isolate_roots(polynomial_ref const & p, anum_manager & am,
|
|||
|
||||
static void tst_isolate_roots() {
|
||||
enable_trace("isolate_roots");
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager qm;
|
||||
polynomial::manager pm(qm);
|
||||
algebraic_numbers::manager am(qm);
|
||||
polynomial::manager pm(rl, qm);
|
||||
algebraic_numbers::manager am(rl, qm);
|
||||
polynomial_ref x0(pm);
|
||||
polynomial_ref x1(pm);
|
||||
polynomial_ref x2(pm);
|
||||
|
@ -485,7 +491,8 @@ static void pp(polynomial_ref const & p, polynomial::var x) {
|
|||
|
||||
static void ex1() {
|
||||
unsynch_mpq_manager qm;
|
||||
polynomial::manager pm(qm);
|
||||
reslimit rl;
|
||||
polynomial::manager pm(rl, qm);
|
||||
polynomial_ref x(pm);
|
||||
polynomial_ref a(pm);
|
||||
polynomial_ref b(pm);
|
||||
|
@ -508,7 +515,7 @@ static void ex1() {
|
|||
std::cout << "d: " << d << "\n";
|
||||
std::cout << "h3: "; pp(h3, 0); std::cout << "\n";
|
||||
|
||||
algebraic_numbers::manager am(qm);
|
||||
algebraic_numbers::manager am(rl, qm);
|
||||
scoped_anum v1(am), v2(am);
|
||||
am.set(v1, 2);
|
||||
am.root(v1, 3, v1);
|
||||
|
@ -542,8 +549,9 @@ static void ex1() {
|
|||
}
|
||||
|
||||
static void tst_root() {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager qm;
|
||||
algebraic_numbers::manager am(qm);
|
||||
algebraic_numbers::manager am(rl, qm);
|
||||
scoped_anum v1(am), v2(am);
|
||||
am.set(v1, 4);
|
||||
am.root(v1, 2, v2);
|
||||
|
|
|
@ -12,6 +12,7 @@ Copyright (c) 2015 Microsoft Corporation
|
|||
#include "tactic.h"
|
||||
#include "tactic2solver.h"
|
||||
#include "solver.h"
|
||||
#include "rlimit.h"
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include <sstream>
|
||||
|
@ -283,7 +284,8 @@ static void saturate_basis(hilbert_basis& hb) {
|
|||
static void gorrila_test(unsigned seed, unsigned n, unsigned k, unsigned bound, unsigned num_ineqs) {
|
||||
std::cout << "Gorrila test\n";
|
||||
random_gen rand(seed);
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
SASSERT(0 < bound);
|
||||
SASSERT(k <= n);
|
||||
int ibound = static_cast<int>(bound);
|
||||
|
@ -368,7 +370,8 @@ static vector<rational> vec(int i, int j, int k, int l, int x, int y, int z) {
|
|||
// -y + z <= 0
|
||||
|
||||
static void tst1() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_eq(vec(1,1,-2));
|
||||
hb.add_eq(vec(1,0,-1));
|
||||
hb.add_le(vec(0,1,-1));
|
||||
|
@ -380,7 +383,8 @@ static void tst1() {
|
|||
// 23x - 12y - 9z <= 0
|
||||
// x - 8y - 8z <= 0
|
||||
void tst2() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
|
||||
hb.add_eq(vec(-23,12,9));
|
||||
hb.add_eq(vec(-1,8,8));
|
||||
|
@ -391,7 +395,8 @@ void tst2() {
|
|||
// example 6, Ajili, Contenjean
|
||||
// 3x + 2y - z - 2u <= 0
|
||||
static void tst3() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec(3,2,-1,-2));
|
||||
saturate_basis(hb);
|
||||
}
|
||||
|
@ -400,7 +405,8 @@ static void tst3() {
|
|||
|
||||
// Sigma_1, table 1, Ajili, Contejean
|
||||
static void tst4() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec( 0,-2, 1, 3, 2,-2, 3), R(3));
|
||||
hb.add_le(vec(-1, 7, 0, 1, 3, 5,-4), R(2));
|
||||
hb.add_le(vec( 0,-1, 1,-1,-1, 0, 0), R(2));
|
||||
|
@ -416,7 +422,8 @@ static void tst4() {
|
|||
|
||||
// Sigma_2 table 1, Ajili, Contejean
|
||||
static void tst5() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec( 1, 2,-1, 1), R(3));
|
||||
hb.add_le(vec( 2, 4, 1, 2), R(12));
|
||||
hb.add_le(vec( 1, 4, 2, 1), R(9));
|
||||
|
@ -429,7 +436,8 @@ static void tst5() {
|
|||
|
||||
// Sigma_3 table 1, Ajili, Contejean
|
||||
static void tst6() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec( 4, 3, 0), R(6));
|
||||
hb.add_le(vec(-3,-4, 0), R(-1));
|
||||
hb.add_le(vec( 4, 0,-3), R(3));
|
||||
|
@ -441,7 +449,8 @@ static void tst6() {
|
|||
|
||||
// Sigma_4 table 1, Ajili, Contejean
|
||||
static void tst7() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_eq(vec( 1, 1, 1, 0), R(5));
|
||||
hb.add_le(vec( 2, 1, 0, 1), R(6));
|
||||
hb.add_le(vec( 1, 2, 1, 1), R(7));
|
||||
|
@ -454,7 +463,8 @@ static void tst7() {
|
|||
|
||||
// Sigma_5 table 1, Ajili, Contejean
|
||||
static void tst8() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec( 2, 1, 1), R(2));
|
||||
hb.add_le(vec( 1, 2, 3), R(5));
|
||||
hb.add_le(vec( 2, 2, 3), R(6));
|
||||
|
@ -464,7 +474,8 @@ static void tst8() {
|
|||
|
||||
// Sigma_6 table 1, Ajili, Contejean
|
||||
static void tst9() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec( 1, 2, 3), R(11));
|
||||
hb.add_le(vec( 2, 2, 5), R(13));
|
||||
hb.add_le(vec( 1,-1,-11), R(3));
|
||||
|
@ -473,7 +484,8 @@ static void tst9() {
|
|||
|
||||
// Sigma_7 table 1, Ajili, Contejean
|
||||
static void tst10() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec( 1,-1,-1,-3), R(2));
|
||||
hb.add_le(vec(-2, 3, 3,-5), R(3));
|
||||
saturate_basis(hb);
|
||||
|
@ -481,14 +493,16 @@ static void tst10() {
|
|||
|
||||
// Sigma_8 table 1, Ajili, Contejean
|
||||
static void tst11() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec( 7,-2,11, 3, -5), R(5));
|
||||
saturate_basis(hb);
|
||||
}
|
||||
|
||||
// Sigma_9 table 1, Ajili, Contejean
|
||||
static void tst12() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_eq(vec( 1,-2,-3,4), R(0));
|
||||
hb.add_le(vec(100,45,-78,-67), R(0));
|
||||
saturate_basis(hb);
|
||||
|
@ -496,34 +510,39 @@ static void tst12() {
|
|||
|
||||
// Sigma_10 table 1, Ajili, Contejean
|
||||
static void tst13() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec( 23, -56, -34, 12, 11), R(0));
|
||||
saturate_basis(hb);
|
||||
}
|
||||
|
||||
// Sigma_11 table 1, Ajili, Contejean
|
||||
static void tst14() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_eq(vec(1, 0, -4, 8), R(2));
|
||||
hb.add_le(vec(12,19,-11,-7), R(-7));
|
||||
saturate_basis(hb);
|
||||
}
|
||||
|
||||
static void tst15() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec(1, 0), R(1));
|
||||
hb.add_le(vec(0, 1), R(1));
|
||||
saturate_basis(hb);
|
||||
}
|
||||
|
||||
static void tst16() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_le(vec(1, 0), R(100));
|
||||
saturate_basis(hb);
|
||||
}
|
||||
|
||||
static void tst17() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_eq(vec(1, 0), R(0));
|
||||
hb.add_eq(vec(-1, 0), R(0));
|
||||
hb.add_eq(vec(0, 2), R(0));
|
||||
|
@ -533,21 +552,24 @@ static void tst17() {
|
|||
}
|
||||
|
||||
static void tst18() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_eq(vec(0, 1), R(0));
|
||||
hb.add_eq(vec(1, -1), R(2));
|
||||
saturate_basis(hb);
|
||||
}
|
||||
|
||||
static void tst19() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
hb.add_eq(vec(0, 1, 0), R(0));
|
||||
hb.add_eq(vec(1, -1, 0), R(2));
|
||||
saturate_basis(hb);
|
||||
}
|
||||
|
||||
static void test_A_5_5_3() {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
for (unsigned i = 0; i < 15; ++i) {
|
||||
vector<rational> v;
|
||||
for (unsigned j = 0; j < 5; ++j) {
|
||||
|
|
|
@ -22,6 +22,7 @@ Revision History:
|
|||
#include"mpq.h"
|
||||
#include"ast.h"
|
||||
#include"debug.h"
|
||||
#include"rlimit.h"
|
||||
|
||||
template class interval_manager<im_default_config>;
|
||||
typedef im_default_config::interval interval;
|
||||
|
@ -235,9 +236,10 @@ static void display_lemmas(unsynch_mpq_manager & nm, char const * result_term,
|
|||
|
||||
#define MK_BINARY(NAME, RES_TERM) \
|
||||
static void tst_ ## NAME(unsigned N, unsigned magnitude) { \
|
||||
reslimit rl; \
|
||||
unsynch_mpq_manager nm; \
|
||||
im_default_config imc(nm); \
|
||||
interval_manager<im_default_config> im(imc); \
|
||||
interval_manager<im_default_config> im(rl, imc); \
|
||||
interval a, b, r; \
|
||||
\
|
||||
for (unsigned i = 0; i < N; i++) { \
|
||||
|
@ -256,9 +258,10 @@ MK_BINARY(add, "(+ a b)");
|
|||
MK_BINARY(sub, "(- a b)");
|
||||
|
||||
static void tst_neg(unsigned N, unsigned magnitude) {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
interval a, b, r;
|
||||
|
||||
for (unsigned i = 0; i < N; i++) {
|
||||
|
@ -271,9 +274,10 @@ static void tst_neg(unsigned N, unsigned magnitude) {
|
|||
}
|
||||
|
||||
static void tst_pw_2(unsigned N, unsigned magnitude) {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
interval a, b, r;
|
||||
|
||||
for (unsigned i = 0; i < N; i++) {
|
||||
|
@ -286,9 +290,10 @@ static void tst_pw_2(unsigned N, unsigned magnitude) {
|
|||
}
|
||||
|
||||
static void tst_pw_3(unsigned N, unsigned magnitude) {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
interval a, b, r;
|
||||
|
||||
for (unsigned i = 0; i < N; i++) {
|
||||
|
@ -301,9 +306,10 @@ static void tst_pw_3(unsigned N, unsigned magnitude) {
|
|||
}
|
||||
|
||||
static void tst_root_2(unsigned N, unsigned magnitude, unsigned precision) {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
interval a, b, r;
|
||||
scoped_mpq p(nm);
|
||||
p = precision;
|
||||
|
@ -323,9 +329,10 @@ static void tst_root_2(unsigned N, unsigned magnitude, unsigned precision) {
|
|||
}
|
||||
|
||||
static void tst_root_3(unsigned N, unsigned magnitude, unsigned precision) {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
interval a, b, r;
|
||||
scoped_mpq p(nm);
|
||||
p = precision;
|
||||
|
@ -343,9 +350,10 @@ static void tst_root_3(unsigned N, unsigned magnitude, unsigned precision) {
|
|||
}
|
||||
|
||||
static void tst_inv(unsigned N, unsigned magnitude) {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
interval a, b, r;
|
||||
|
||||
for (unsigned i = 0; i < N; i++) {
|
||||
|
@ -362,9 +370,10 @@ static void tst_inv(unsigned N, unsigned magnitude) {
|
|||
}
|
||||
|
||||
static void tst_div(unsigned N, unsigned magnitude) {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
interval a, b, r;
|
||||
|
||||
for (unsigned i = 0; i < N; i++) {
|
||||
|
@ -420,9 +429,10 @@ static void tst_float() {
|
|||
#endif
|
||||
|
||||
void tst_pi() {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
interval r;
|
||||
for (unsigned i = 0; i < 8; i++) {
|
||||
im.pi(i, r);
|
||||
|
@ -436,10 +446,11 @@ void tst_pi() {
|
|||
#if 0
|
||||
static void tst_pi_float() {
|
||||
std::cout << "pi float...\n";
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager qm;
|
||||
mpf_manager fm;
|
||||
im_float_config<mpf_manager> ifc(fm, 22, 106);
|
||||
interval_manager<im_float_config<mpf_manager> > im(ifc);
|
||||
interval_manager<im_float_config<mpf_manager> > im(rl, ifc);
|
||||
scoped_mpq q(qm);
|
||||
im_float_config<mpf_manager>::interval r;
|
||||
for (unsigned i = 0; i < 8; i++) {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
Copyright (c) 2015 Microsoft Corporation
|
||||
|
||||
--*/
|
||||
|
||||
#include"rlimit.h"
|
||||
#include "hilbert_basis.h"
|
||||
|
||||
/*
|
||||
|
@ -46,7 +46,8 @@ namespace karr {
|
|||
|
||||
// treat src as a homogeneous matrix.
|
||||
void dualizeH(matrix& dst, matrix const& src) {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
for (unsigned i = 0; i < src.size(); ++i) {
|
||||
vector<rational> v(src.A[i]);
|
||||
v.push_back(src.b[i]);
|
||||
|
@ -74,7 +75,8 @@ namespace karr {
|
|||
|
||||
// treat src as an inhomegeneous matrix.
|
||||
void dualizeI(matrix& dst, matrix const& src) {
|
||||
hilbert_basis hb;
|
||||
reslimit rl;
|
||||
hilbert_basis hb(rl);
|
||||
for (unsigned i = 0; i < src.size(); ++i) {
|
||||
hb.add_eq(src.A[i], -src.b[i]);
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ Notes:
|
|||
#include"nlsat_evaluator.h"
|
||||
#include"nlsat_solver.h"
|
||||
#include"util.h"
|
||||
#include"rlimit.h"
|
||||
|
||||
nlsat::interval_set_ref tst_interval(nlsat::interval_set_ref const & s1,
|
||||
nlsat::interval_set_ref const & s2,
|
||||
|
@ -57,8 +58,9 @@ nlsat::interval_set_ref tst_interval(nlsat::interval_set_ref const & s1,
|
|||
|
||||
static void tst3() {
|
||||
enable_trace("nlsat_interval");
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager qm;
|
||||
anum_manager am(qm);
|
||||
anum_manager am(rl, qm);
|
||||
small_object_allocator allocator;
|
||||
nlsat::interval_set_manager ism(am, allocator);
|
||||
|
||||
|
@ -241,8 +243,9 @@ static void check_subset_result(nlsat::interval_set_ref const & s1,
|
|||
|
||||
static void tst4() {
|
||||
enable_trace("nlsat_interval");
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager qm;
|
||||
anum_manager am(qm);
|
||||
anum_manager am(rl, qm);
|
||||
small_object_allocator allocator;
|
||||
nlsat::interval_set_manager ism(am, allocator);
|
||||
nlsat::interval_set_ref s1(ism), s2(ism), r(ism);
|
||||
|
|
|
@ -22,11 +22,13 @@ Notes:
|
|||
#include"polynomial_var2value.h"
|
||||
#include"polynomial_cache.h"
|
||||
#include"linear_eq_solver.h"
|
||||
#include"rlimit.h"
|
||||
|
||||
static void tst1() {
|
||||
std::cout << "\n----- Basic testing -------\n";
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -56,6 +58,7 @@ static void tst1() {
|
|||
}
|
||||
|
||||
static void tst_pseudo_div(polynomial_ref const & A, polynomial_ref const & B, polynomial::var x) {
|
||||
reslimit rl;
|
||||
polynomial::manager & m = A.m();
|
||||
std::cout << "---- Pseudo-division test ----\n";
|
||||
std::cout << "A: " << A << "\n";
|
||||
|
@ -81,8 +84,9 @@ static void tst_pseudo_div(polynomial_ref const & A, polynomial_ref const & B, p
|
|||
}
|
||||
|
||||
static void tst2() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -98,8 +102,9 @@ static void tst2() {
|
|||
|
||||
|
||||
static void tst3() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
x0 = m.mk_polynomial(m.mk_var());
|
||||
|
@ -113,8 +118,9 @@ static void tst3() {
|
|||
|
||||
static void tst4() {
|
||||
std::cout << "---- Testing renaming/reordering ----\n";
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -141,8 +147,9 @@ static void tst_quasi_resultant(polynomial_ref const & p, polynomial_ref const &
|
|||
}
|
||||
|
||||
static void tst5() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -158,8 +165,9 @@ static void tst5() {
|
|||
}
|
||||
|
||||
static void tst6() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -176,8 +184,9 @@ static void tst6() {
|
|||
}
|
||||
|
||||
static void tst7() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -198,8 +207,9 @@ static void tst7() {
|
|||
}
|
||||
|
||||
static void tst8() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -220,8 +230,9 @@ static void tst8() {
|
|||
|
||||
|
||||
static void tst9() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -261,8 +272,9 @@ static void tst9() {
|
|||
}
|
||||
|
||||
static void tst10() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -300,8 +312,9 @@ static void tst10() {
|
|||
}
|
||||
|
||||
static void tst11() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -342,8 +355,9 @@ static void tst_discriminant(polynomial_ref const & p, polynomial_ref const & ex
|
|||
}
|
||||
|
||||
static void tst_discriminant() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref a(m);
|
||||
polynomial_ref b(m);
|
||||
polynomial_ref c(m);
|
||||
|
@ -460,8 +474,9 @@ static void tst_resultant(polynomial_ref const & p, polynomial_ref const & q, po
|
|||
}
|
||||
|
||||
static void tst_resultant() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref a(m);
|
||||
polynomial_ref b(m);
|
||||
polynomial_ref c(m);
|
||||
|
@ -545,8 +560,9 @@ static void tst_resultant() {
|
|||
}
|
||||
|
||||
static void tst_compose() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
x0 = m.mk_polynomial(m.mk_var());
|
||||
|
@ -560,8 +576,9 @@ static void tst_compose() {
|
|||
}
|
||||
|
||||
void tst_prem() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
polynomial_ref y(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
|
@ -577,8 +594,9 @@ void tst_prem() {
|
|||
}
|
||||
|
||||
void tst_sqrt() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
polynomial_ref y(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
|
@ -622,8 +640,9 @@ static void tst_gcd(polynomial_ref const & p, polynomial_ref const & q, polynomi
|
|||
}
|
||||
|
||||
static void tst_gcd() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -721,8 +740,9 @@ static void tst_psc_perf(polynomial_ref const & p, polynomial_ref const & q, pol
|
|||
#endif
|
||||
|
||||
static void tst_psc() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -834,7 +854,7 @@ static void tst_vars(polynomial_ref const & p, unsigned sz, polynomial::var * xs
|
|||
|
||||
static void tst_vars() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -874,7 +894,7 @@ static void tst_sqf(polynomial_ref const & p, polynomial_ref const & expected) {
|
|||
|
||||
static void tst_sqf() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -919,7 +939,7 @@ static void tst_substitute(polynomial_ref const & p,
|
|||
|
||||
static void tst_substitute() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -960,7 +980,7 @@ static void tst_qsubstitute(polynomial_ref const & p,
|
|||
|
||||
static void tst_qsubstitute() {
|
||||
unsynch_mpq_manager qm;
|
||||
polynomial::manager m(qm);
|
||||
reslimit rl; polynomial::manager m(rl, qm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -1013,7 +1033,7 @@ void tst_mfact(polynomial_ref const & p, unsigned num_distinct_factors) {
|
|||
|
||||
static void tst_mfact() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -1175,7 +1195,7 @@ static void tst_mfact() {
|
|||
|
||||
static void tst_zp() {
|
||||
unsynch_mpz_manager z;
|
||||
polynomial::manager pm(z);
|
||||
reslimit rl; polynomial::manager pm(rl, z);
|
||||
|
||||
polynomial_ref x(pm);
|
||||
polynomial_ref y(pm);
|
||||
|
@ -1233,7 +1253,7 @@ static void tst_translate(polynomial_ref const & p, polynomial::var x0, int v0,
|
|||
|
||||
static void tst_translate() {
|
||||
unsynch_mpq_manager qm;
|
||||
polynomial::manager m(qm);
|
||||
reslimit rl; polynomial::manager m(rl, qm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -1264,7 +1284,7 @@ static void tst_translate() {
|
|||
#if 0
|
||||
static void tst_p25() {
|
||||
unsynch_mpq_manager qm;
|
||||
polynomial::manager m(qm);
|
||||
reslimit rl; polynomial::manager m(rl, qm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -1288,10 +1308,11 @@ static void tst_p25() {
|
|||
static void tst_mm() {
|
||||
unsynch_mpq_manager qm;
|
||||
// pm1 and pm2 share the same monomial manager
|
||||
polynomial::manager * pm1_ptr = alloc(polynomial::manager, qm);
|
||||
reslimit rl;
|
||||
polynomial::manager * pm1_ptr = alloc(polynomial::manager, rl, qm);
|
||||
polynomial::manager & pm1 = *pm1_ptr;
|
||||
polynomial::manager pm2(qm, &pm1.mm());
|
||||
polynomial::manager pm3(qm); // pm3 has its own manager
|
||||
polynomial::manager pm2(rl, qm, &pm1.mm());
|
||||
polynomial::manager pm3(rl, qm); // pm3 has its own manager
|
||||
polynomial_ref p2(pm2);
|
||||
{
|
||||
polynomial_ref x0(pm1);
|
||||
|
@ -1336,7 +1357,7 @@ static void tst_eval(polynomial_ref const & p, polynomial::var x0, rational v0,
|
|||
|
||||
static void tst_eval() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -1369,7 +1390,7 @@ static void tst_eval() {
|
|||
|
||||
static void tst_mk_unique() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -1414,7 +1435,7 @@ static void tst_del_eh() {
|
|||
dummy_del_eh eh2;
|
||||
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
x0 = m.mk_polynomial(m.mk_var());
|
||||
|
@ -1444,7 +1465,7 @@ static void tst_del_eh() {
|
|||
|
||||
static void tst_const_coeff() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
x0 = m.mk_polynomial(m.mk_var());
|
||||
|
@ -1490,7 +1511,7 @@ static void tst_const_coeff() {
|
|||
static void tst_gcd2() {
|
||||
// enable_trace("mgcd");
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
polynomial_ref x1(m);
|
||||
polynomial_ref x2(m);
|
||||
|
@ -1582,7 +1603,7 @@ static void tst_gcd3() {
|
|||
enable_trace("polynomial_gcd_detail");
|
||||
enable_trace("mpzzp");
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
polynomial_ref p(m);
|
||||
|
@ -1607,7 +1628,7 @@ static void tst_gcd4() {
|
|||
enable_trace("mgcd");
|
||||
// enable_trace("CRA");
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
polynomial_ref p(m);
|
||||
|
@ -1631,7 +1652,7 @@ static void tst_gcd4() {
|
|||
static void tst_newton_interpolation() {
|
||||
// enable_trace("newton");
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
polynomial_ref y(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
|
@ -1654,7 +1675,7 @@ static void tst_newton_interpolation() {
|
|||
|
||||
static void tst_slow_mod_gcd() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m), x1(m), x2(m), x3(m), x4(m), x5(m);
|
||||
x0 = m.mk_polynomial(m.mk_var());
|
||||
x1 = m.mk_polynomial(m.mk_var());
|
||||
|
@ -1735,7 +1756,7 @@ static void tst_lex(polynomial_ref const & p1, polynomial_ref const & p2, int le
|
|||
|
||||
static void tst_lex() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m), x1(m), x2(m), x3(m), x4(m), x5(m);
|
||||
x0 = m.mk_polynomial(m.mk_var());
|
||||
x1 = m.mk_polynomial(m.mk_var());
|
||||
|
@ -1772,7 +1793,7 @@ static void tst_lex() {
|
|||
|
||||
static void tst_divides() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
reslimit rl; polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
x0 = m.mk_polynomial(m.mk_var());
|
||||
polynomial_ref q(m);
|
||||
|
|
|
@ -19,7 +19,7 @@ Notes:
|
|||
#include"upolynomial_factorization_int.h"
|
||||
#include"timeit.h"
|
||||
#include"polynomial.h"
|
||||
|
||||
#include"rlimit.h"
|
||||
#if 0
|
||||
#include"polynomial_factorization.h"
|
||||
#endif
|
||||
|
@ -176,7 +176,7 @@ int random_polynomial[20][2][11] = {
|
|||
#if 0
|
||||
static void tst_square_free_finite_1() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager pm(nm);
|
||||
reslimit rl; polynomial::manager pm(rl, nm);
|
||||
|
||||
// example from Knuth, p. 442
|
||||
polynomial_ref x(pm);
|
||||
|
@ -224,7 +224,7 @@ static void tst_square_free_finite_1() {
|
|||
static void tst_factor_finite_1() {
|
||||
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager pm(nm);
|
||||
reslimit rl; polynomial::manager pm(rl, nm);
|
||||
|
||||
// example from Knuth, p. 442
|
||||
polynomial_ref x(pm);
|
||||
|
@ -274,7 +274,7 @@ static void tst_factor_finite_1() {
|
|||
static void tst_factor_finite_2() {
|
||||
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager pm(nm);
|
||||
reslimit rl; polynomial::manager pm(rl, nm);
|
||||
|
||||
polynomial_ref x(pm);
|
||||
x = pm.mk_polynomial(pm.mk_var());
|
||||
|
@ -333,7 +333,7 @@ static void tst_factor_finite_2() {
|
|||
static void tst_factor_finite_3() {
|
||||
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager pm(nm);
|
||||
reslimit rl; polynomial::manager pm(rl, nm);
|
||||
|
||||
polynomial_ref x(pm);
|
||||
x = pm.mk_polynomial(pm.mk_var());
|
||||
|
@ -403,7 +403,7 @@ static void tst_factor_finite_3() {
|
|||
|
||||
static void tst_factor_enumeration() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager pm(nm);
|
||||
reslimit rl; polynomial::manager pm(rl, nm);
|
||||
|
||||
polynomial_ref x(pm);
|
||||
x = pm.mk_polynomial(pm.mk_var());
|
||||
|
@ -514,7 +514,7 @@ static void tst_factor_square_free_univariate_1(unsigned max_length) {
|
|||
nm.set(p, 5);
|
||||
nm.mod(test, p, test);
|
||||
|
||||
polynomial::manager pm(nm);
|
||||
reslimit rl; polynomial::manager pm(rl, nm);
|
||||
|
||||
polynomial_ref x(pm);
|
||||
x = pm.mk_polynomial(pm.mk_var());
|
||||
|
@ -560,7 +560,7 @@ static void tst_factor_square_free_univariate_1(unsigned max_length) {
|
|||
|
||||
static void tst_factor_square_free_univariate_2() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager pm(nm);
|
||||
reslimit rl; polynomial::manager pm(rl, nm);
|
||||
|
||||
polynomial_ref x(pm);
|
||||
x = pm.mk_polynomial(pm.mk_var());
|
||||
|
@ -598,7 +598,7 @@ static void tst_factor_square_free_univariate_2() {
|
|||
|
||||
static void tst_factor_square_free_univariate_3() {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager pm(nm);
|
||||
reslimit rl; polynomial::manager pm(rl, nm);
|
||||
|
||||
polynomial_ref x(pm);
|
||||
x = pm.mk_polynomial(pm.mk_var());
|
||||
|
@ -622,7 +622,7 @@ static void tst_factor_square_free_univariate_3() {
|
|||
|
||||
void tst_factor_swinnerton_dyer_big(unsigned max) {
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager pm(nm);
|
||||
reslimit rl; polynomial::manager pm(rl, nm);
|
||||
|
||||
polynomial_ref x(pm);
|
||||
x = pm.mk_polynomial(pm.mk_var());
|
||||
|
@ -669,7 +669,8 @@ void tst_factor_swinnerton_dyer_big(unsigned max) {
|
|||
{
|
||||
timeit timer(true, "factoring swinnerton-dyer");
|
||||
|
||||
upolynomial::manager upm(nm);
|
||||
reslimit rl;
|
||||
upolynomial::manager upm(rl, nm);
|
||||
scoped_mpz_vector sd_u(nm);
|
||||
upm.to_numeral_vector(computation, sd_u);
|
||||
upolynomial::factors factors(upm);
|
||||
|
@ -689,7 +690,7 @@ static void tst_factor_square_free_multivariate_1(unsigned max_n) {
|
|||
nm.set(p, 5);
|
||||
nm.mod(test, p, test);
|
||||
|
||||
polynomial::manager pm(nm);
|
||||
reslimit rl; polynomial::manager pm(rl, nm);
|
||||
|
||||
polynomial_ref x(pm);
|
||||
x = pm.mk_polynomial(pm.mk_var());
|
||||
|
|
|
@ -18,10 +18,12 @@ Notes:
|
|||
--*/
|
||||
#include"realclosure.h"
|
||||
#include"mpz_matrix.h"
|
||||
#include"rlimit.h"
|
||||
|
||||
static void tst1() {
|
||||
unsynch_mpq_manager qm;
|
||||
rcmanager m(qm);
|
||||
reslimit rl;
|
||||
rcmanager m(rl, qm);
|
||||
scoped_rcnumeral a(m);
|
||||
#if 0
|
||||
a = 10;
|
||||
|
@ -143,8 +145,9 @@ static void tst_lin_indep(unsigned m, unsigned n, int _A[], unsigned ex_sz, unsi
|
|||
}
|
||||
|
||||
static void tst_denominators() {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager qm;
|
||||
rcmanager m(qm);
|
||||
rcmanager m(rl, qm);
|
||||
scoped_rcnumeral a(m);
|
||||
scoped_rcnumeral t(m);
|
||||
scoped_rcnumeral eps(m);
|
||||
|
|
|
@ -11,6 +11,7 @@ Copyright (c) 2015 Microsoft Corporation
|
|||
#include "mpq_inf.h"
|
||||
#include "vector.h"
|
||||
#include "rational.h"
|
||||
#include "rlimit.h"
|
||||
|
||||
#define R rational
|
||||
typedef simplex::simplex<simplex::mpz_ext> Simplex;
|
||||
|
@ -99,7 +100,8 @@ static void feas(Simplex& S) {
|
|||
}
|
||||
|
||||
static void test1() {
|
||||
Simplex S;
|
||||
reslimit rl;
|
||||
Simplex S(rl);
|
||||
add_row(S, vec(1,0), R(1));
|
||||
add_row(S, vec(0,1), R(1));
|
||||
add_row(S, vec(1,1), R(1));
|
||||
|
@ -107,7 +109,7 @@ static void test1() {
|
|||
}
|
||||
|
||||
static void test2() {
|
||||
Simplex S;
|
||||
reslimit rl; Simplex S(rl);
|
||||
add_row(S, vec(1, 0), R(1));
|
||||
add_row(S, vec(0, 1), R(1));
|
||||
add_row(S, vec(1, 1), R(1), true);
|
||||
|
@ -115,7 +117,7 @@ static void test2() {
|
|||
}
|
||||
|
||||
static void test3() {
|
||||
Simplex S;
|
||||
reslimit rl; Simplex S(rl);
|
||||
add_row(S, vec(-1, 0), R(-1));
|
||||
add_row(S, vec(0, -1), R(-1));
|
||||
add_row(S, vec(1, 1), R(1), true);
|
||||
|
@ -123,7 +125,7 @@ static void test3() {
|
|||
}
|
||||
|
||||
static void test4() {
|
||||
Simplex S;
|
||||
reslimit rl; Simplex S(rl);
|
||||
add_row(S, vec(1, 0), R(1));
|
||||
add_row(S, vec(0, -1), R(-1));
|
||||
add_row(S, vec(1, 1), R(1), true);
|
||||
|
@ -131,7 +133,7 @@ static void test4() {
|
|||
}
|
||||
|
||||
void tst_simplex() {
|
||||
Simplex S;
|
||||
reslimit rl; Simplex S(rl);
|
||||
|
||||
std::cout << "simplex\n";
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ Revision History:
|
|||
#include"ast.h"
|
||||
#include"debug.h"
|
||||
#include"im_float_config.h"
|
||||
#include"rlimit.h"
|
||||
|
||||
#define PREC 100000
|
||||
|
||||
|
@ -39,7 +40,8 @@ static void tst_sine_core(std::ostream & out, unsynch_mpq_manager & nm, interval
|
|||
static void tst_sine(std::ostream & out, unsigned N, unsigned k) {
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
reslimit rl;
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
scoped_mpq a(nm);
|
||||
nm.set(a, 0);
|
||||
tst_sine_core(out, nm, im, a, 1);
|
||||
|
@ -63,9 +65,10 @@ static void tst_cosine_core(std::ostream & out, unsynch_mpq_manager & nm, interv
|
|||
}
|
||||
|
||||
static void tst_cosine(std::ostream & out, unsigned N, unsigned k) {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
scoped_mpq a(nm);
|
||||
nm.set(a, 0);
|
||||
tst_cosine_core(out, nm, im, a, 1);
|
||||
|
@ -95,9 +98,10 @@ const unsigned SBITS = 53;
|
|||
|
||||
template<typename fmanager>
|
||||
static void tst_float_sine(std::ostream & out, unsigned N, unsigned k) {
|
||||
reslimit rl;
|
||||
fmanager fm;
|
||||
im_float_config<fmanager> ifc(fm, EBITS, SBITS);
|
||||
interval_manager<im_float_config<fmanager> > im(ifc);
|
||||
interval_manager<im_float_config<fmanager> > im(rl, ifc);
|
||||
_scoped_numeral<fmanager> a(fm);
|
||||
fm.set(a, EBITS, SBITS, static_cast<int>(0));
|
||||
tst_float_sine_core(out, fm, im, a, 1);
|
||||
|
@ -130,9 +134,10 @@ static void tst_mpf_bug() {
|
|||
#endif
|
||||
|
||||
static void tst_e(std::ostream & out) {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
im_default_config imc(nm);
|
||||
interval_manager<im_default_config> im(imc);
|
||||
interval_manager<im_default_config> im(rl, imc);
|
||||
im_default_config::interval r;
|
||||
for (unsigned i = 0; i < 64; i++) {
|
||||
im.e(i, r);
|
||||
|
@ -144,10 +149,11 @@ static void tst_e(std::ostream & out) {
|
|||
|
||||
static void tst_e_float(std::ostream & out) {
|
||||
std::cout << "e float...\n";
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager qm;
|
||||
mpf_manager fm;
|
||||
im_float_config<mpf_manager> ifc(fm);
|
||||
interval_manager<im_float_config<mpf_manager> > im(ifc);
|
||||
interval_manager<im_float_config<mpf_manager> > im(rl, ifc);
|
||||
scoped_mpq q(qm);
|
||||
im_float_config<mpf_manager>::interval r;
|
||||
for (unsigned i = 0; i < 64; i++) {
|
||||
|
|
|
@ -18,11 +18,13 @@ Notes:
|
|||
--*/
|
||||
#include"upolynomial.h"
|
||||
#include"timeit.h"
|
||||
#include"rlimit.h"
|
||||
|
||||
static void tst1() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
upolynomial::manager um(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
upolynomial::manager um(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -64,7 +66,8 @@ static void tst1() {
|
|||
}
|
||||
|
||||
static void tst_isolate_roots(polynomial_ref const & p, unsigned prec, mpbq_manager & bqm, mpbq_vector & roots, mpbq_vector & lowers, mpbq_vector & uppers) {
|
||||
upolynomial::manager um(p.m().m());
|
||||
reslimit rl;
|
||||
upolynomial::manager um(rl, p.m().m());
|
||||
upolynomial::scoped_numeral_vector q(um);
|
||||
um.to_numeral_vector(p, q);
|
||||
std::cout << "isolating roots of: "; um.display(std::cout, q); std::cout << "\n";
|
||||
|
@ -189,8 +192,9 @@ static void tst_isolate_roots(polynomial_ref const & p, unsigned expected_sz, ra
|
|||
}
|
||||
|
||||
static void tst_isolate_roots() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -275,15 +279,16 @@ static void tst_isolate_roots() {
|
|||
}
|
||||
|
||||
static void tst_remove_one_half() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
polynomial_ref p(m), r(m);
|
||||
p = 4*(x^3) - 12*(x^2) - x + 3;
|
||||
r = 16*(x^2) - 40*x - 24;
|
||||
upolynomial::manager um(nm);
|
||||
upolynomial::manager um(rl, nm);
|
||||
upolynomial::scoped_numeral_vector _p(um), _q(um), _r(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
um.to_numeral_vector(r, _r);
|
||||
|
@ -321,15 +326,16 @@ static void tst_gcd(polynomial_ref const & p, polynomial_ref const & q, pmanager
|
|||
|
||||
static void tst_gcd() {
|
||||
std::cout << "\n\nTesting GCD\n";
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
polynomial_ref p(m);
|
||||
polynomial_ref q(m);
|
||||
|
||||
upolynomial::manager um(nm);
|
||||
upolynomial::manager um(rl, nm);
|
||||
|
||||
p = 13*((x - 3)^6)*((x - 5)^5)*((x - 11)^7);
|
||||
q = derivative(p, 0);
|
||||
|
@ -351,8 +357,9 @@ static void tst_gcd() {
|
|||
|
||||
static void tst_zp() {
|
||||
std::cout << "\n\nTesting Z_p\n";
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -363,20 +370,21 @@ static void tst_zp() {
|
|||
|
||||
// Computing GCD of p an q in Z[x]
|
||||
std::cout << "GCD in Z[x]\n";
|
||||
upolynomial::manager um(nm);
|
||||
upolynomial::manager um(rl, nm);
|
||||
tst_gcd(p, q, um);
|
||||
|
||||
// Computing GCD of p an q in Z_3[x]
|
||||
std::cout << "GCD in Z_3[x]\n";
|
||||
upolynomial::zp_manager um3(nm);
|
||||
upolynomial::zp_manager um3(rl, nm);
|
||||
um3.set_zp(3);
|
||||
tst_gcd(p, q, um3);
|
||||
}
|
||||
|
||||
static void tst_zp2() {
|
||||
std::cout << "\n\nTesting Z_p\n";
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -387,20 +395,21 @@ static void tst_zp2() {
|
|||
|
||||
// Computing GCD of p an q in Z[x]
|
||||
std::cout << "GCD in Z[x]\n";
|
||||
upolynomial::manager um(nm);
|
||||
upolynomial::manager um(rl, nm);
|
||||
tst_gcd(u, v, um);
|
||||
|
||||
// Computing GCD of p an q in Z_3[x]
|
||||
std::cout << "GCD in Z_13[x]\n";
|
||||
upolynomial::zp_manager um13(nm);
|
||||
upolynomial::zp_manager um13(rl, nm);
|
||||
um13.set_zp(13);
|
||||
tst_gcd(u, v, um13);
|
||||
}
|
||||
|
||||
static void tst_ext_gcd() {
|
||||
std::cout << "\nExtended GCD\n";
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -411,7 +420,7 @@ static void tst_ext_gcd() {
|
|||
|
||||
// Computing GCD of p an q in Z_3[x]
|
||||
std::cout << "GCD in Z_13[x]\n";
|
||||
upolynomial::zp_manager um(nm);
|
||||
upolynomial::zp_manager um(rl, nm);
|
||||
um.set_zp(13);
|
||||
mpzzp_manager & z13 = um.m();
|
||||
upolynomial::zp_manager::scoped_numeral_vector A(z13), B(z13), U(z13), V(z13), D(z13);
|
||||
|
@ -427,8 +436,9 @@ static void tst_ext_gcd() {
|
|||
|
||||
static void tst_ext_gcd_z7() {
|
||||
std::cout << "\nExtended GCD in Z_7\n";
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -441,7 +451,7 @@ static void tst_ext_gcd_z7() {
|
|||
// Computing GCD of a and b in Z_3[x]
|
||||
// expecting: D = 1, U = 3*x + 6, V = 3*x^2 + 6*x + 4
|
||||
std::cout << "GCD in Z_7[x]\n";
|
||||
upolynomial::zp_manager um(nm);
|
||||
upolynomial::zp_manager um(rl, nm);
|
||||
um.set_zp(7);
|
||||
mpzzp_manager & z7 = um.m();
|
||||
upolynomial::zp_manager::scoped_numeral_vector A(z7), B(z7), U(z7), V(z7), D(z7);
|
||||
|
@ -457,8 +467,9 @@ static void tst_ext_gcd_z7() {
|
|||
|
||||
static void tst_sturm() {
|
||||
std::cout << "\nSturm Seq\n";
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -467,7 +478,7 @@ static void tst_sturm() {
|
|||
// p = ((x^17) + 5*(x^16) + 3*(x^15) + 10*(x^13) + 13*(x^10) + (x^9) + 8*(x^5) + 3*(x^2) + 7)*(((x^5) - x - 1)^2)*(((x^3) - 2)^2);
|
||||
// p = ((x^17) + 5*(x^16) + 3*(x^15) + 10*(x^13) + 13*(x^10) + (x^9) + 8*(x^5) + 3*(x^2) + 7)*(((x^5) - x - 1))*(((x^3) - 2));
|
||||
|
||||
upolynomial::manager um(nm);
|
||||
upolynomial::manager um(rl, nm);
|
||||
upolynomial::scoped_numeral_vector _p(um);
|
||||
upolynomial::scoped_upolynomial_sequence seq2(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
|
@ -478,7 +489,8 @@ static void tst_sturm() {
|
|||
|
||||
|
||||
static void tst_refinable(polynomial_ref const & p, mpbq_manager & bqm, mpbq & a, mpbq & b) {
|
||||
upolynomial::manager um(p.m().m());
|
||||
reslimit rl;
|
||||
upolynomial::manager um(rl, p.m().m());
|
||||
upolynomial::scoped_numeral_vector _p(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
std::cout << "before (" << bqm.to_string(a) << ", " << bqm.to_string(b) << ")\n";
|
||||
|
@ -497,8 +509,9 @@ static void tst_refinable(polynomial_ref const & p, mpbq_manager & bqm, mpbq & a
|
|||
|
||||
static void tst_refinable() {
|
||||
std::cout << "\nRefinable intervals\n";
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -544,7 +557,7 @@ static void tst_refinable() {
|
|||
}
|
||||
|
||||
static void tst_refine(polynomial_ref const & p, mpbq_manager & bqm, mpbq & a, mpbq & b, unsigned prec_k=100) {
|
||||
upolynomial::manager um(p.m().m());
|
||||
reslimit rl; upolynomial::manager um(rl, p.m().m());
|
||||
upolynomial::scoped_numeral_vector _p(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
std::cout << "before (" << bqm.to_string(a) << ", " << bqm.to_string(b) << ")\n";
|
||||
|
@ -561,8 +574,9 @@ static void tst_refine(polynomial_ref const & p, mpbq_manager & bqm, mpbq & a, m
|
|||
|
||||
static void tst_refine() {
|
||||
std::cout << "\nRefining intervals\n";
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -583,14 +597,15 @@ static void tst_refine() {
|
|||
}
|
||||
|
||||
static void tst_translate_q() {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
polynomial_ref p(m);
|
||||
p = (x-1)*(x-2)*(x-3)*(x-4);
|
||||
upolynomial::manager um(nm);
|
||||
upolynomial::manager um(rl, nm);
|
||||
upolynomial::scoped_numeral_vector _p(um), _q(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
SASSERT(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(1)) == 0);
|
||||
|
@ -637,7 +652,8 @@ static void tst_translate_q() {
|
|||
}
|
||||
|
||||
static void tst_convert_q2bq(unsynch_mpq_manager & m, polynomial_ref const & p, mpq const & a, mpq const & b) {
|
||||
upolynomial::manager um(m);
|
||||
reslimit rl;
|
||||
upolynomial::manager um(rl, m);
|
||||
upolynomial::scoped_numeral_vector _p(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
std::cout << "\np: ";
|
||||
|
@ -657,8 +673,9 @@ static void tst_convert_q2bq(unsynch_mpq_manager & m, polynomial_ref const & p,
|
|||
}
|
||||
|
||||
static void tst_convert_q2bq() {
|
||||
reslimit rl;
|
||||
unsynch_mpq_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -704,8 +721,9 @@ static void tst_convert_q2bq() {
|
|||
}
|
||||
|
||||
static void tst_sturm2() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -715,7 +733,7 @@ static void tst_sturm2() {
|
|||
p = (x^16) - 136*(x^14) + 6476*(x^12) - 141912*(x^10) + 1513334*(x^8) - 7453176*(x^6) + 13950764*(x^4) - 5596840*(x^2) + 46225;
|
||||
q = ((x^8) - 40*(x^6) + 352*(x^4) - 960*(x^2) + 576)^2;
|
||||
|
||||
upolynomial::manager um(nm);
|
||||
upolynomial::manager um(rl, nm);
|
||||
upolynomial::scoped_numeral_vector _p(um), _q(um);
|
||||
upolynomial::scoped_upolynomial_sequence seq2(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
|
@ -784,7 +802,7 @@ static void tst_gcd2() {
|
|||
polynomial_ref p(m);
|
||||
p = ((x^1000) - x + 1)^5;
|
||||
|
||||
upolynomial::manager um(nm);
|
||||
reslimit rl; upolynomial::manager um(rl, nm);
|
||||
upolynomial::scoped_numeral_vector _p(um);
|
||||
upolynomial::scoped_numeral_vector _p_sqf(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
|
@ -797,8 +815,9 @@ static void tst_gcd2() {
|
|||
#endif
|
||||
|
||||
static void tst_isolate_roots5() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -811,7 +830,8 @@ static void tst_isolate_roots5() {
|
|||
}
|
||||
|
||||
static void tst_exact_div(polynomial_ref const & p1, polynomial_ref const & p2, bool expected, polynomial_ref const & expected_q) {
|
||||
upolynomial::manager um(p1.m().m());
|
||||
reslimit rl;
|
||||
upolynomial::manager um(rl, p1.m().m());
|
||||
upolynomial::scoped_numeral_vector _p1(um), _p2(um), _q(um), _r(um);
|
||||
um.to_numeral_vector(p1, _p1);
|
||||
um.to_numeral_vector(p2, _p2);
|
||||
|
@ -834,8 +854,9 @@ static void tst_exact_div(polynomial_ref const & p1, polynomial_ref const & p2,
|
|||
}
|
||||
|
||||
static void tst_exact_div() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
// create univariate polynomial using multivariate polynomial package
|
||||
|
@ -860,7 +881,7 @@ static void tst_fact(polynomial_ref const & p, unsigned num_distinct_factors, up
|
|||
SASSERT(is_univariate(p));
|
||||
std::cout << "---------------\n";
|
||||
std::cout << "p: " << p << std::endl;
|
||||
upolynomial::manager um(p.m().m());
|
||||
reslimit rl; upolynomial::manager um(rl, p.m().m());
|
||||
upolynomial::scoped_numeral_vector _p(um);
|
||||
upolynomial::factors fs(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
|
@ -878,8 +899,9 @@ static void tst_fact(polynomial_ref const & p, unsigned num_distinct_factors, up
|
|||
}
|
||||
|
||||
static void tst_fact() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m);
|
||||
x0 = m.mk_polynomial(m.mk_var());
|
||||
tst_fact((x0^4) + (x0^2) - 20, 3);
|
||||
|
@ -975,7 +997,7 @@ static void tst_rem(polynomial_ref const & p, polynomial_ref const & q, polynomi
|
|||
std::cout << "---------------\n";
|
||||
std::cout << "p: " << p << std::endl;
|
||||
std::cout << "q: " << q << std::endl;
|
||||
upolynomial::manager um(p.m().m());
|
||||
reslimit rl; upolynomial::manager um(rl, p.m().m());
|
||||
upolynomial::scoped_numeral_vector _p(um), _q(um), _r(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
um.to_numeral_vector(q, _q);
|
||||
|
@ -987,8 +1009,9 @@ static void tst_rem(polynomial_ref const & p, polynomial_ref const & q, polynomi
|
|||
}
|
||||
|
||||
static void tst_rem() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x0(m), zero(m), one(m);
|
||||
x0 = m.mk_polynomial(m.mk_var());
|
||||
zero = m.mk_zero();
|
||||
|
@ -1002,7 +1025,7 @@ static void tst_lower_bound(polynomial_ref const & p) {
|
|||
SASSERT(is_univariate(p));
|
||||
std::cout << "---------------\n";
|
||||
std::cout << "p: " << p << std::endl;
|
||||
upolynomial::manager um(p.m().m());
|
||||
reslimit rl; upolynomial::manager um(rl, p.m().m());
|
||||
upolynomial::scoped_numeral_vector _p(um);
|
||||
um.to_numeral_vector(p, _p);
|
||||
std::cout << "_p: "; um.display(std::cout, _p); std::cout << "\n";
|
||||
|
@ -1012,8 +1035,9 @@ static void tst_lower_bound(polynomial_ref const & p) {
|
|||
}
|
||||
|
||||
static void tst_lower_bound() {
|
||||
reslimit rl;
|
||||
polynomial::numeral_manager nm;
|
||||
polynomial::manager m(nm);
|
||||
polynomial::manager m(rl, nm);
|
||||
polynomial_ref x(m), zero(m), one(m);
|
||||
x = m.mk_polynomial(m.mk_var());
|
||||
zero = m.mk_zero();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue