When adding libpoly, we forgot to add a proper define to cvc4autoconfig and included real_algebraic_number.h everywhere to get this define. This PR introduces the CVC4_POLY_IMP define and removes all obsolete includes to real_algebraic_number.h.
set(CVC4_CLN_IMP ${CVC4_USE_CLN_IMP})
# Defined if using the GMP multi-precision arithmetic library.
set(CVC4_GMP_IMP ${CVC4_USE_GMP_IMP})
+# Defined if using the libpoly polynomial library.
+set(CVC4_POLY_IMP ${CVC4_USE_POLY_IMP})
# Define the full name of this package.
set(CVC4_PACKAGE_NAME "${PROJECT_NAME}")
/* Define to use the GMP multi-precision arithmetic library. */
#cmakedefine CVC4_GMP_IMP
+/* Define to use the libpoly polynomial library. */
+#cmakedefine CVC4_POLY_IMP
+
/* Define to 1 if Boost threading library has support for thread attributes. */
#cmakedefine01 BOOST_HAS_THREAD_ATTR
#ifndef CVC4__THEORY__ARITH__NL__CAD__CDCAC_H
#define CVC4__THEORY__ARITH__NL__CAD__CDCAC_H
-#include "util/real_algebraic_number.h"
-
#ifdef CVC4_POLY_IMP
#include <poly/polyxx.h>
#ifndef CVC4__THEORY__ARITH__NL__CAD__CDCAC_UTILS_H
#define CVC4__THEORY__ARITH__NL__CAD__CDCAC_UTILS_H
-#include "util/real_algebraic_number.h"
-
#ifdef CVC4_POLY_IMP
#include <poly/polyxx.h>
#ifndef CVC4__THEORY__ARITH__NL__CAD__CONSTRAINTS_H
#define CVC4__THEORY__ARITH__NL__CAD__CONSTRAINTS_H
-#include "util/real_algebraic_number.h"
-
#ifdef CVC4_POLY_IMP
#include <poly/polyxx.h>
#ifndef CVC4__THEORY__ARITH__NL__CAD_PROJECTIONS_H
#define CVC4__THEORY__ARITH__NL__CAD_PROJECTIONS_H
-#include "util/real_algebraic_number.h"
-
#ifdef CVC4_USE_POLY
#include <poly/polyxx.h>
#ifndef CVC4__THEORY__ARITH__NL__CAD__PROOF_GENERATOR_H
#define CVC4__THEORY__ARITH__NL__CAD__PROOF_GENERATOR_H
-#include "util/real_algebraic_number.h"
-
#ifdef CVC4_POLY_IMP
#include <poly/polyxx.h>
#ifndef CVC4__THEORY__ARITH__NL__CAD__VARIABLE_ORDERING_H
#define CVC4__THEORY__ARITH__NL__CAD__VARIABLE_ORDERING_H
-#include "util/real_algebraic_number.h"
-
#ifdef CVC4_POLY_IMP
#include <poly/polyxx.h>
#include "expr/node.h"
#include "theory/arith/nl/cad/cdcac.h"
#include "theory/arith/nl/cad/proof_checker.h"
-#include "util/real_algebraic_number.h"
namespace CVC4 {
namespace theory {
#ifndef CVC4__THEORY__ARITH__ICP__CANDIDATE_H
#define CVC4__THEORY__ARITH__ICP__CANDIDATE_H
-#include "util/real_algebraic_number.h"
+#include "cvc4_private.h"
#ifdef CVC4_POLY_IMP
#include <poly/polyxx.h>
#ifndef CVC4__THEORY__ARITH__ICP__ICP_SOLVER_H
#define CVC4__THEORY__ARITH__ICP__ICP_SOLVER_H
-#include "util/real_algebraic_number.h"
+#include "cvc4_private.h"
#ifdef CVC4_POLY_IMP
#include <poly/polyxx.h>
#ifndef CVC4__THEORY__ARITH__ICP__INTERSECTION_H
#define CVC4__THEORY__ARITH__ICP__INTERSECTION_H
-#include "util/real_algebraic_number.h"
+#include "cvc4_private.h"
#ifdef CVC4_POLY_IMP
+
+#include <cstddef>
+
namespace poly {
class Interval;
}
#ifndef CVC4__THEORY__ARITH__ICP__INTERVAL_H
#define CVC4__THEORY__ARITH__ICP__INTERVAL_H
-#include "util/real_algebraic_number.h"
+#include "cvc4_private.h"
#ifdef CVC4_POLY_IMP
#include <poly/polyxx.h>
#ifndef CVC4__THEORY__ARITH__NL__POLY_CONVERSION_H
#define CVC4__THEORY__ARITH__NL__POLY_CONVERSION_H
-#include "util/real_algebraic_number.h"
+#include "cvc4_private.h"
#ifdef CVC4_POLY_IMP
#include <utility>
#include "expr/node.h"
+#include "util/real_algebraic_number.h"
namespace CVC4 {
namespace theory {